2013-04-23 21 views
0

所以,我創建了自己的HOG特徵提取和一個簡單的滑動窗口算法,其僞代碼如下所示:如何在自定義檢測算法中使用級聯分類器?

for(int i = 0; i < img.rows; i++) { 
    for(int j = 0; j < img.cols; j++) { 
    extract image ROI from the current position 
    calculate features for the ROI 
    feed the features into svm.predict() function, to determine whether it's human or not 
    } 
} 

但是因爲它的速度很慢(尤其是當你有不同的尺度),我我決定在我的正面和負面樣本上使用openv_traincascade命令訓練一些級聯分類器。

opencv_traincascade爲我提供了cascade.xml,params.xml,和一些stages.xml文件

我的問題是我怎麼利用我的檢測迴路這種訓練的級聯分類?

編輯:否,not detectMultiScale。我使用級聯分類器的原因只是爲了加速檢測非對象,我仍然需要使用自己的算法來計算可能的ROI分數。對不起

回答

1

爲了使用級聯分類器,你必須調用CascadeClassifier::load函數(將路徑傳遞到生成的XML文件作爲參數)。無論何時您想檢查感興趣的對象是否存在,您都應該調用CascadeClassifier::detectCascadeClassifier::detectMultiScale函數。

2

關於對象檢測的opencv doc,您必須創建級聯檢測器對象並::加載要應用的級聯(已生成的xml文件)。 :: detectMultiScale用於通過滑動不同比例和大小的窗口併合並高度自信的近距樣本來從當前幀中填充檢測到的對象的std :: vector。代碼here! 同一問題已解答here

相關問題