Mục tiêu của tôi là huấn luyện SVM và nhận các vectơ hỗ trợ mà tôi có thể cắm vào HOGdescriptor của opencv để phát hiện đối tượng.Đào tạo cvSVM tạo ra kết quả kém cho HOGDescriptor
Tôi đã thu thập được 4000 ~ tích cực và 15000 ~ âm và tôi đào tạo bằng SVM do opencv cung cấp. kết quả cho tôi quá nhiều kết quả dương tính giả (tối đa 20 ảnh) tôi sẽ trích ra các kết quả dương tính giả và thêm chúng vào nhóm âm bản để đào tạo lại. và tôi sẽ kết thúc với nhiều lần tích cực sai hơn! Tôi đã thử điều chỉnh L2HysThreshold của hogdescriptor của tôi lên đến 300 mà không cải thiện đáng kể. hồ bơi tích cực và âm bản của tôi có đủ lớn không?
đào tạo SVM cũng nhanh hơn nhiều so với dự kiến. Tôi đã thử với kích thước vector tính năng là 2916 và 12996, sử dụng hình ảnh màu xám và hình ảnh màu trên các lần thử riêng biệt. Đào tạo SVM chưa bao giờ kéo dài hơn 20 phút. Tôi sử dụng auto_train. Tôi mới học máy nhưng từ những gì tôi nghe đào tạo với một tập dữ liệu lớn như tôi nên mất ít nhất một ngày không?
Tôi tin rằng cvSVM không học nhiều và theo số http://opencv-users.1802565.n2.nabble.com/training-a-HOG-descriptor-td6363437.html, nó không phù hợp cho mục đích này. có ai có kinh nghiệm với cvSVM có đầu vào nhiều hơn về điều này?
Tôi đang xem xét sử dụng SVMLight http://svmlight.joachims.org/ nhưng có vẻ như không có cách nào để hình dung siêu đa giác SVM. Những lựa chọn của tôi là gì?
tôi sử dụng opencv2.4.3 và đã thử các setsups sau cho hogdescriptor
hog.winSize = cv::Size(100,100);
hog.cellSize = cv::Size(5,5);
hog.blockSize = cv::Size(10,10);
hog.blockStride = cv::Size(5,5); //12996 feature vector
hog.winSize = cv::Size(100,100);
hog.cellSize = cv::Size(10,10);
hog.blockSize = cv::Size(20,20);
hog.blockStride = cv::Size(10,10); //2916 feature vector
Nếu bạn đang sử dụng bộ mô tả kích thước khoảng 3000 hoặc 10.000, bạn có nên sử dụng nhiều dữ liệu đào tạo hơn không? Khi tôi nhớ lại, quy tắc ngón tay cái nói rằng kích thước của dữ liệu đào tạo phải gấp khoảng 10 lần kích thước của vấn đề. Đúng không? – GilLevi