我需要一些幫助來訓練Android應用程序的SVM。 我有一組圖像在不同的類(12類),並從它們獲取所有描述符。我設法爲每個圖像獲得相同數量的描述符。我需要的是用這些描述符爲我的android應用程序訓練SVM。 我不知道應該在Android模擬器中訓練它還是編寫一個C++程序來訓練SVM,然後將其加載到我的應用程序中(如果我使用OpenCV的lib for windows來訓練SVM並保存它,將我用於Android的庫識別保存的SVM文件?)。我想我不應該在模擬器中訓練帶有這麼大數據集的SVM。 我已經在Weka的SMO(http://www.cs.waikato.ac.nz/ml/weka/)上測試過描述符的數據集,並且獲得了很好的結果,但是我需要實現(或使用openCV的)SVM並將其保存爲未來的分類。OpenCV for Android - 使用SURF描述符訓練SVM
回答
這裏是一個在OpenCV4Android中訓練SVM的例子。 trainData
是一個MatOfFloat
,它的形式將取決於您用來獲取特徵向量的方法。爲了製作trainData
,我用Core.hconcat()
將數據集中每個元素的特徵向量連接成一個單獨的Mat
。
Mat responses = new Mat(1, sizeOfDataset, CvType.CV_32F);
responses.put(0, 0, labelArray); // labelArray is a float[] of labels for the data
CvSVM svm = new CvSVM();
CvSVMParams params = new CvSVMParams();
params.set_svm_type(CvSVM.C_SVC);
params.set_kernel_type(CvSVM.LINEAR);
params.set_term_crit(new TermCriteria(TermCriteria.EPS, 100, 1e-6)); // use TermCriteria.COUNT for speed
svm.train_auto(trainData, responses, new Mat(), new Mat(), params);
我很確定OpenCV使用相同的格式在Android和C++接口中保存SVM。當然,你總是可以培養在Android中SVM和保存XML文件來使用的東西你的模擬器的SD卡一樣
File datasetFile = new File(Environment.getExternalStorageDirectory(), "dataset.xml");
svm.save(datasetFile.getAbsolutePath());
然後從SD卡把它並將其存儲在您的應用程序的文件夾/res/raw
。
非常感謝您的回答!我在設置trainData時遇到了一些麻煩,但在閱讀[this](http://stackoverflow.com/questions/14694810/using-opencv-and-svm-with-images)文章和[documentation](http:// docs.opencv.org/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html)我想通了。 – 2013-04-28 19:29:23
很高興幫助你:) – 2013-04-28 20:24:21
@ 1'':你可以請提供一些關於[這個問題]的建議(http://stackoverflow.com/questions/29072000/opencv4android-template-matching-using-camera)? – 2015-03-16 08:03:48
- 1. OpenCV SURF描述符匹配
- 2. 在OpenCV中訓練SVM
- 3. 訓練SVM與可變大小的訓練圖像描述符(MATLAB)
- 4. OpenCV線性SVM不訓練
- 5. OpenCV的SURF比較描述
- 6. HOG描述符結果的SVM訓練(Matlab中)
- 7. 提取形狀上下文描述符以訓練SVM
- 8. SURF的描述符評估opencv
- 9. OPENCV SURF特徵描述符強度
- 10. OpenCv中SVM的訓練矩陣
- 11. OpenCV中的描述符匹配器訓練器中使用的算法
- 12. OpenCV - 使用SURF描述符和BruteForceMatcher對象匹配
- 13. 連接SURF特徵和氡特徵來訓練SVM
- 14. 加載訓練SVM - Emgu CV
- 15. 使用SIFT和ORB功能在OpenCV中訓練SVM分類器
- 16. 使用顏色直方圖訓練支持OpenCV的SVM
- 17. 使用LibSVM訓練一類SVM
- 18. Opecv 3.3使用SVM訓練時崩潰
- 19. 使用Ferns描述符保存opencv描述符匹配器
- 20. accord.net svm增量訓練
- 21. LS-SVM的訓練:內存
- 22. 使用dlib提取高維磅數描述符後使用LIBSVM進行訓練
- 23. 用於行人檢測訓練的HOG描述符
- 24. 使用SURF描述符的miniflann.cpp中的錯誤
- 25. SURF描述符的值是什麼?
- 26. KeyPoint描述符OpenCV
- 27. 不同維度的圖像訓練SVM
- 28. Opencv 3支持SVM訓練自動縮放標籤嗎?
- 29. OpenCV 3.1.0:保存並加載訓練過的SVM
- 30. HOG描述符使用Python + OpenCV
我是OpenCV的新手,我想問你一個問題。這是什麼意思,你有12個不同的課程? – definera 2014-12-23 21:19:59