2012-05-11 62 views
1

我正在使用haar cascadeclassifiers對視頻流執行行人檢測,並且我試圖通過減少檢測的縮放範圍來優化代碼,這要歸功於參數minSizemaxSizedetectMutliScale函數中:CascadeClassifier :: detectMultiScale的maxSize參數效率不高

fullbodyCascade.detectMultiScale(image, found_pedestrian, 1.1, 3, 0, Size(20,60), Size(50,100)); 

看來,minSize參數是唯一的考慮,同時仍然被檢測到比maxSize更大尺寸的物體。

有沒有人遇到這個問題?

在此先感謝您的幫助

Ilou

回答

1

我使用的哈爾cascadeclassifier是一個老格式的文件,似乎關聯到這種格式的功能不採取MAXSIZE考慮。因此,我修改haar.cpp加入:

if(winSize.width > maxSize.width || winSize.height > maxSize.height) break; 

正好在lig之前。 1202:

if(winSize.width < minSize.width || winSize.height < minSize.height) 
    { 
      if(findBiggestObject) 
       break; 
      continue; 
    } 

有可能是一個更聰明的方法來解決這個問題(使用標誌...?),但不管怎麼說,現在工作得很好。