Vì vậy, tôi có một ma trận với hình ảnh mẫu của tôi (tất cả biến thành vectơ) được chạy máng PCA/LDA, và một vector biểu thị lớp mỗi hình ảnh thuộc về. Bây giờ tôi muốn sử dụng lớp SVM OpenCV để huấn luyện SVM của tôi (Tôi đang sử dụng Python, OpenCV 2.3.1). Nhưng tôi có vấn đề với việc xác định tham số:Python OpenCV SVM thực hiện
test = cv2.SVM()
test.train(trainData, responses, ????)
Tôi bị kẹt về cách xác định loại SVM (tuyến tính, v.v.) và các nội dung khác. Trong C++ bạn định nghĩa nó bằng cách nói rõ ví dụ: svm_type = CvSVM :: C_SVC ... Python không có. C++ cũng có một lớp đặc biệt để lưu trữ các tham số này -> CvSVMParams. Ai đó có thể cho tôi một ví dụ về điều này trong Python? Giống như việc xác định loại SVM, gamma vv
Các 2.3.1 tài liệu nói nó như thế này:
Python: cv2.SVM.train(trainData, responses[, varIdx[, sampleIdx[, params]]]) → retval
varIdx và sampleIdx là gì, và làm thế nào để xác định params?
Tôi hiện đang đọc tài liệu, nhưng trong khi đó, bạn có thể sử dụng giải pháp thay thế: chuyển ma trận thành gumpy và sử dụng sk-learn cho nhiệm vụ học máy. – timgluz
Xin chào! Hãy thử các ví dụ sau: https://code.ros.org/svn/opencv/trunk/opencv/samples/python2/letter_recog.py – timgluz
timgluz THX đó chính xác là những gì tôi đang tìm kiếm ... bạn có thể vui lòng sao chép phần SVM từ các liên kết trong một câu trả lời để tôi có thể chấp nhận nó (để những người khác có thể tìm thấy câu trả lời ngay lập tức và u nhận được tín dụng) ... phần SVM là từ dòng 79 đến 91 ... – Veles