如何合并每个检测到的对象的重叠检测?

时间:2012-12-11 09:54:41

标签: c++ image-processing opencv object-detection

我开发了一个使用HOG描述符测试对象检测的软件。

  • 我使用窗口扫描方法来检测目标对象类的实例。
  • 使用不同尺寸的扫描窗口对图像进行多次检查,以便检测不同尺寸的物体(多尺度检测)。这样,可以多次检测每个对象。

每个对象存在重叠检测(不同位置和大小的多个边界框)需要一个过程将它们组合成一个包含与同一对象相关的所有检测的单个边界框。如何合并每个对象的多个检测?

1 个答案:

答案 0 :(得分:2)

这可以使用OpenCV groupRectangles function来完成,HOG detectMultiScale function根据相似性参数对具有相似大小和位置的矩形进行聚类。虽然,我认为根据参数group_threshold,此功能可能已在{{3}}内使用:

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
)

当然,您必须尝试调整相似性标准以满足您的需求。