簡體   English   中英

如何在圖像上訓練OpenCV SVM分類器

[英]How to train OpenCV SVM classifier on images

任務的目的是通過SVM對圖像進行分類。 假定變量“ images”包含圖像信息,並且相應的labels包含圖像標簽。 imageslabels應如何構建(什么格式和尺寸)? 我嘗試將images作為Python數組失敗(附加了扁平化的圖像),然后嘗試將Numpy數組作為另一個數組:

images=np.zeros((number_of_images, image_size))
labels=np.zeros((number_of_images, 1))

svm=cv2.SVM()
svm.train(images, labels)

解決這個問題的方法是否正確?如果是,訓練分類器的正確方法是什么?

我認為您不能使用原始圖像數據來訓練SVM模型。 好的, 可以 ,但是效果不會很好。

基本方法是從每個圖像中提取一些特征 ,並將這些特征用於訓練模型。 一組功能構成一個單詞詞典,每個單詞都描述您的圖像。 由於您使用的是同一組詞來描述每個圖像,因此可以比較對應於不同圖像的特征。 該鏈接介紹了更多詳細信息,請進行檢查。

下一步是什么?

  1. 為您的算法選擇特征提取器-HOG,SURF,SIFT( 鏈接
  2. 從每個圖像中提取特征。 您將獲得與images數組長度相同的數組。
  3. 初始化詞袋(BoG)模型
  4. 使用BoG訓練SVM

有用的鏈接:

  1. C ++ vey詳細示例
  2. 現有BOG分類器的文檔

暫無
暫無

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

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