Tôi đang phát triển một dự án phân loại hình ảnh bằng cách sử dụng mô hình BOW và SVM. Tôi muốn tìm ra xác suất SVM dự đoán nhưng không có chức năng như vậy trong svm opencv. Có cách nào để làm điều này không? Tôi muốn tìm ra xác suất dự đoán trong SVM lớp n.OPencv SVM dự đoán xác suất
Trả lời
Không, bạn không thể làm điều này với CvSVM. Triển khai SVM của OpenCV dựa trên phiên bản libsvm rất cũ. Tải xuống phiên bản libsvm mới nhất và sử dụng phiên bản đó thay thế. Tất nhiên bạn sẽ phải viết một trình bao bọc để chuyển đổi định dạng dữ liệu. Xem http://www.csie.ntu.edu.tw/~cjlin/libsvm/
Bạn có thể thử tạo ma trận nhầm lẫn, điều này sẽ cho bạn biết xác suất của từng hình ảnh thuộc bất kỳ lớp nào. Confusion Matrix
Và ở đây bạn có một đoạn tôi thấy, mặc dù nó chưa đầy đủ nó có thể cung cấp cho bạn một số ý tưởng:
map<string,map<string,int> > confusion_matrix; // confusionMatrix[classA][classB] = number_of_times_A_voted_for_B;
map<string,CvSVM> classes_classifiers; //This we created earlier
vector<string> files; //load up with images
vector<string> classes; //load up with the respective classes
for(..loop over a directory?..) {
Mat img = imread(files[i]),resposne_hist;
vector<KeyPoint> keypoints;
detector->detect(img,keypoints);
bowide->compute(img, keypoints, response_hist);
float minf = FLT_MAX; string minclass;
for (map<string,CvSVM>::iterator it = classes_classifiers.begin(); it != classes_classifiers.end(); ++it) {
float res = (*it).second.predict(response_hist,true);
if (res < minf) {
minf = res;
minclass = (*it).first;
}
}
confusion_matrix[minclass][classes[i]]++;
}
tôi không thử nghiệm nó, vì vậy trong trường hợp bạn có được để làm cho nó công việc tôi sẽ đánh giá cao mà bạn giao tiếp nó ở đây :)
Tôi sẽ không đồng ý. Xác suất ma trận nhầm lẫn là một cách tiếp cận thường xuyên cho sự thật mặt đất. Ma trận nhầm lẫn là vô dụng đối với một hình ảnh không nhìn thấy. –
- 1. Python OpenCV SVM thực hiện
- 2. Làm thế nào để diễn giải dự đoán kết quả của SVM trong R?
- 3. Lập trình R: dự đoán(), "dự đoán" và "tin cậy"?
- 4. Dự đoán SIFT
- 5. OpenCV và Trình phát hiện SVM tiềm ẩn
- 6. Tại sao mạng neural không dự đoán?
- 7. Thuật toán dự đoán từ
- 8. Dự đoán tràn giai thừa
- 9. Python: sử dụng scikit-learning để dự đoán, đưa ra các dự đoán trống
- 10. Silverlight: Cách dự đoán kích thước chuỗi?
- 11. Dự đoán chương trình sẽ bị lỗi
- 12. Dự đoán ngôn ngữ WinRT là gì?
- 13. Phạm vi dự đoán cử chỉ Android
- 14. Hiệu suất OpenCV trên mẫu khớp với
- 15. Cảnh báo: mysqli_error() dự đoán chính xác 1 tham số, 0 lỗi cho
- 16. Xây dựng ma trận hạt nhân svm tùy chỉnh với opencv
- 17. Làm thế nào để đào tạo và dự đoán sử dụng túi từ?
- 18. GridSearchCV có sử dụng dự đoán hay guess_proba, khi sử dụng auc_score làm hàm điểm?
- 19. Làm thế nào tôi có thể biết xác suất của lớp được dự đoán bởi hàm predict() trong Máy hỗ trợ Vector?
- 20. Dự đoán từ ngày trước: dữ liệu giá trị
- 21. Dự đoán vector dung lượng nhị phân từ lịch sử vectơ
- 22. libsvm dự đoán sự nhầm lẫn về phương thức
- 23. cách dự đoán các trường hợp mới bằng gói neuralnet
- 24. Dự đoán chủ đề LDA cho dữ liệu mới
- 25. Dự đoán số chữ số của một phép nhân
- 26. Dự đoán va chạm vòng kết nối vòng tròn
- 27. R: không thể dự đoán giá trị cụ thể
- 28. Vẽ hình elip trên dự đoán sơ đồ nền matplotlib
- 29. Nhận đầu ra của dự đoán pybrain là mảng
- 30. Dự đoán MongoDB hiệu quả như thế nào?
Ngoài ra, bạn có thể thực hiện Platt rộng vào quyết định giá trị bản thân như một bước sau chế biến để có được xác suất. –
Đây có phải là phương pháp tiếp cận ưa thích nhất vào tháng 4 năm 2015 không? – Poyan