我所知,來完成這項任務所需的步驟:OpenCV的 - 使用SVM和HOG用於人員檢測
- 收集訓練集(正面和負面套)。
- 提取要用於訓練SVM的每個圖像的豬描述符(當前爲'1'類標籤爲正,'-1'類爲負類標籤)。
- 將訓練的SVM設置爲HOGDescriptor並使用detect/detectMultiscale。
我已經完成了上述所有步驟。我只是困惑,HOGDescriptor.detect/detectMultiscale檢測到哪個類?它是否僅檢測正面類別標籤(1)?
我所知,來完成這項任務所需的步驟:OpenCV的 - 使用SVM和HOG用於人員檢測
我已經完成了上述所有步驟。我只是困惑,HOGDescriptor.detect/detectMultiscale檢測到哪個類?它是否僅檢測正面類別標籤(1)?
在計算機視覺中,視覺描述符或圖像描述符(即,HoG)是圖像內容的視覺特徵的描述。他們描述了諸如形狀,顏色,紋理或運動等基本特徵。因此,HoG描述符僅描述了圖像中顯示的場景 - 即在街上行走的行人,您可以在下面看到示例HoG描述符(HoG僅計算圖像的局部部分中梯度方向的出現):
支持向量機是用於分類,迴歸和異常值檢測的一組監督學習方法。但最初,支持向量機是一種用於構建最佳二元(2級)分類器的技術,所以支持向量機決定了描述符的含義。因此,HoG的輸出是SVM的輸入,後者的輸出是+1或-1。
OpenCV提供了一個隱藏此操作的接口,可以通過函數調用完成全部對象檢測。這是HOGDescriptor::detectMultiScale()
所做的,它使用多尺度窗口執行對象檢測。一旦cv::HOGDescriptor hog
實例將被宣佈,那麼SVM分類的係數應該也做:
hog.setSVMDetector(cv::HOGDescriptor::getDefaultPeopleDetector());
然後detectMultiScale()
執行完整的對象檢測(描述符提取和二元分類在一起),並返回的邊框每個考生:
std::vector<cv::Rect> found;
hog.detectMultiScale(frame, found, 0, cv::Size(8,8), cv::Size(32,32), 1.05, 2);
這可以幫助你:http://www.geocities.ws/talh_davidc/ – SomethingSomething