1

我目前正在为我正在建造的无人机开发视觉系统。该系统的目标是在视频流中找到定义相当明确(见下文)的目标对象,该视频流将是地面的二维飞越视图。到目前为止,我已经尝试过训练并使用基于 Haar 特征的级联(la Viola Jones)来进行检测。我正在使用 5000 多张不同角度(透视偏移)和范围(框架中的大小)的目标图像进行训练,但只有 1900 张“背景”图像。这根本不会产生好的结果,因为我找不到合适数量的级联级联来平衡少量误报和少量误报。

我正在向在这方面有经验的人寻求建议,关于我是否应该:1)放弃级联,转而采用更适合由其轮廓和颜色定义的对象的东西(我读过 VJ 级联是不是)。2)改进我的级联训练集,或者通过添加正面、背景帧、更好地组织/拍摄它们等。3)我目前无法理解的其他一些方法。

目标描述:

  • 主要形状:三角形、正方形、圆形、椭圆形等。
  • 不同的、纯色的、原色(或接近)的颜色。
  • 最小尺寸在 2 到 8 英尺之间(大到足以从几百英尺的 AGL 上轻松看到)
  • 对象中心的大而单一的字母数字,具有自己独特的、纯色、原色或几乎原色。

我的目标是使用非常快速的东西,例如 VJ 级联,来找到可能的对象及其相关的边界框,然后将它们传递给更精细的处理例程以确定属性(对象的颜色和 AN,AN 的值,实际形状和 GPS 位置)。您可以为我完成此目标提供的任何建议将不胜感激。我目前拥有的源代码在这里发布有点长,但如果您想查看它以供参考,可以免费获得。提前致谢!

-JB

4

2 回答 2

2

我建议放弃 Haar 分类,因为您对自己的对象了解很多。在这些情况下,您应该首先检查您可以使用哪些功能:

1)头顶飞行意味着,正如您所说,您基本上可以将这些视为二维平面上的固定形状。会有缩放、旋转和一些小的仿射变换,这在很大程度上取决于你的相机的广角。如果它不是特别广角,那部分可能可以忽略不计。此外,您可能知道您的高度,通过它您可能还可以对目标大小(缩放)做出很好的假设。

2)你知道颜色,这也很容易找到对象。如果这些非常定义为原色,那么您可以根据颜色过滤图像并找到这些轮廓。如果你想做一些更高级的事情(虽然对我来说似乎没有必要......)你可以做一个backprojection,根据我的经验,这是非常有效和快速的。请注意,如果您正在创建对象,最好使用红绿色和蓝色而不是原色(红绿色和黄色)。然后,您可以简单地将图像拆分为各自的通道并使用非常高的阈值。

3)你知道几何形状。我自己从来没有这样做过,但据我所知,选项是使用或使用霍夫变换(虽然openCV只有直线和圆的霍夫算法,所以你必须为其他形状编写自己的.. .)。如果没有这一步,你可能已经有了足够好的结果......

如果您想要更具体的建议,上传几个示例图像会非常有用。:)

于 2012-06-27T08:21:25.947 回答
1

可以解决,但我最近遇到了一篇论文,其中包含使用归一化梯度特征进行通用对象检测的开源许可证:http: //mmcheng.net/bing/comment-page-9/

算法对光照、旋转和缩放的性能细节可能需要一点挖掘。我不记得原始论文在哪里。

于 2015-08-07T10:29:29.003 回答