簡體   English   中英

在Android中訓練SVM算法

[英]training SVM algorithm in android

嗨,大家好,我在android中訓練我的SVM算法時遇到了一些問題。這是我的代碼

Imgproc.calcHist(list, channels, new Mat(), hist, histSize, ranges);
          Imgproc.calcHist(lis, channels, new Mat(), his, histSize, ranges);
         // tl.setText(his.toString());
          Mat train_data = new Mat(2, 0, CvType.CV_32FC1);
          train_data.push_back(hist);
          train_data.push_back(his);
          Mat train_dat = new Mat(2, 0, CvType.CV_32FC1);
          train_dat.put(2, 0, labelArray);
           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));
          svm.train_auto(train_data, train_dat, new Mat(), new Mat(), params);

當我運行它時,會出現此類錯誤

03-15 13:08:30.065: E/cv::error()(381): OpenCV Error: Bad argument (Invalid response array) in cvPreprocessCategoricalResponses, file /home/reports/ci/slave/50-SDK/opencv/modules/ml/src/inner_functions.cpp, line 664
03-15 13:08:30.120: E/AndroidRuntime(381): CvException [org.opencv.core.CvException: /home/reports/ci/slave/50-SDK/opencv/modules/ml/src/inner_functions.cpp:664: error: (-5) Invalid response array in function cvPreprocessCategoricalResponses
03-15 13:08:30.120: E/AndroidRuntime(381):  at org.opencv.ml.CvSVM.train_auto_1(Native Method)
03-15 13:08:30.120: E/AndroidRuntime(381):  at org.opencv.ml.CvSVM.train_auto(CvSVM.java:395)

我需要你的幫助pliz.thnx

您正在創建兩個具有2行和零列的Mats,這非常可疑。 最終,OpenCV抱怨傳遞給train_auto的第二個數組的形狀不正確。 根據您所展示的內容,這可以說的無非。 您需要了解傳遞給train_auto的Mats的預期形狀。

這是一個很好的示例,顯示了傳遞給train auto的兩個參數的大小應為:

http://docs.opencv.org/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html

同樣也不清楚是否有充分的理由要使用這種奇特的設置(在Android中訓練SVM),這可能對您嘗試在真實的機器上進行編程直到您完全理解為止可能很有用? 我很確定這些錯誤將對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM