利用opencv的hog+svm實現細胞識別分類器

來源:互聯網
上載者:User

標籤:影像處理   模式識別   演算法   hog   svm   

利用opencv的hog+svm實現細胞識別分類器

 

影像處理中的細胞識別和Face Service可以這樣來類比,映像中的一張張人臉就是一個個細胞。

模式識別的關鍵在於樣本庫的選取,識別率也只能在和樣本庫比較接近的環境下才能保證。主要工作是三部分一是特徵提取,二是樣本庫的訓練train,三是目標檢測detect。

一.特徵提取

特徵提取採用的是HOG特徵即HOG描述子,該特徵在行人檢測中效果非常好。而一般Face Service採用的是haar特徵,這在opencv中都有實現,並都給出了相應的分類器,效果都很不錯。

首先採集了正樣本6000多份,然後負樣本90000多份,正樣本就是手動從映像中把細胞儲存下來,為了工作方便一般先大概截個正方形就好了,然後對得到的正樣本依次做三次順時針旋轉,目的是為了滿足旋轉不變性。之後寫個程式將這些正樣本的尺寸統一縮放到64*64,這個尺寸決定了最終svm演算法中的特徵維數。負樣本就是非細胞的映像,可以用程式得到,不需要人工了,最終也將尺寸統一縮放到64*64即可。

二.訓練樣本

利用HOGDescriptor.compute計算所有的樣本特徵值,存入svm演算法中訓練用的特徵矩陣train_mat中,同時將每個樣本的類別儲存到標籤向量label_mat中,正樣本的標籤為1,負樣本為0;然後用svm.train函數訓練得到分類器檔案svm_data.xml。

三.目標檢測

訓練好的SVM分類器儲存為XML檔案,然後根據其中的支援向量和參數產生OpenCV中的HOG描述子可用的檢測子參數,再調用OpenCV中的多尺度檢測函數進行細胞檢測。

檢測子參數的計算過程就是svm演算法中從一開始得到的阿爾法係數轉變得到w係數的過程。

---------------------------------------------------------------------------------------------------------------------

難例(Hard Example)是指利用第一次訓練的分類器在負樣本原圖(肯定沒有人體)上進行行人檢測時所有檢測到的矩形框,這些矩形框地區很明顯都是誤判,把這些誤判的矩形框儲存為圖片,加入到初始的負樣本集合中,重新進行SVM的訓練,可顯著減少誤判。

 

利用opencv的hog+svm實現細胞識別分類器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.