2012-12-11 116 views
1

我開發了一個使用HOG描述符測試對象檢測的軟件。如何合併每個檢測到的物體的重疊檢測結果?

  • 我用窗口掃描方法來檢測目標對象類的實例。
  • 使用不同尺寸的掃描窗口對圖像進行多次檢查,以檢測具有不同尺寸(多尺度檢測)的物體。以這種方式,可以多次檢測每個對象。

每個對象的重疊檢測(不同位置和大小的多個邊界框)的存在需要一個過程將它們組合成一個包含與同一對象相關的所有檢測的邊界框。如何合併每個對象的多個檢測?

+0

你是什麼意思合併?這些Rect對象在不同的​​時間還是不同的對象? – Chubsdad

+0

@Chubsdad:如何將重疊檢測組合爲單個檢測? – enzom83

+0

所以,你只是想知道你已經處理了一個'矩形'並跳過'矩形'的進一步檢測? – Chubsdad

回答

1

這可以使用OpenCV groupRectangles function來完成,它根據相似性參數對具有相似大小和位置的矩形進行聚類。雖然,我認爲可能已經被HOG detectMultiScale function內根據參數group_threshold使用此功能:

void gpu::HOGDescriptor::detectMultiScale(
    const GpuMat& img, 
    vector<Rect>& found_locations, 
    double hit_threshold=0, 
    Size win_stride=Size(), 
    Size padding=Size(), 
    double scale0=1.05, 
    int group_threshold=2 
) 

當然,你將不得不嘗試和調整相似性準則,以滿足您的需求。

+0

定義此功能的OpenCV庫是什麼? – enzom83

+0

函數[groupRectangles](http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html#grouprectangles)在objdetect.hpp中的模塊objdetect中定義。 (至少這是OpenCV2.4.4中的地方)。 – Chris