在低分辨率移动视频中进行物体检测的最佳方法是什么?

时间:2009-11-20 15:52:25

标签: image-processing opencv object-detection

我正在寻找一种最快,更有效的方法来检测移动视频中的对象。有关此视频的注意事项:它非常颗粒感,分辨率低,背景和前景也同时移动。

注意:我正试图在移动视频中检测道路上移动的卡车。

我试过的方法:

训练哈尔级联 - 我试图训练分类器,通过拍摄所需物体的多个图像来识别物体。这被证明产生许多错误检测或根本没有检测到(期望的物体从未被检测到)。我使用了大约100张正面图片和4000张底片。

SIFT和SURF关键点 - 当尝试使用基于特征的这些方法中的任何一种时,我发现我想要检测的对象的分辨率太低,因此没有足够的特征来匹配以进行准确的检测。 (从未检测到期望的对象)

模板匹配 - 这可能是我尝试过的最好的方法。它是最准确的,尽管它们都是最黑的。我可以使用从视频裁剪的模板检测一个特定视频的对象。但是,没有保证准确性,因为所有已知的是每个帧的最佳匹配,没有对与帧匹配的百分比模板进行分析。基本上,它仅在对象始终在视频中时才有效,否则会产生错误检测。

所以这些是我尝试过的三大方法,但都失败了。什么最好的工作是模板匹配,但具有缩放和旋转不变性(这使我尝试SIFT / SURF),但我不知道如何修改模板匹配功能。

有没有人有任何建议如何最好地完成这项任务?

5 个答案:

答案 0 :(得分:5)

optical flow应用于图像,然后根据流场对其进行分段。背景流与“物体”流非常不同(主要取决于它是朝向还是远离你移动或收敛,还有一些横向分量)。

这是一个以这种方式工作的古老项目:

http://users.fmrib.ox.ac.uk/~steve/asset/index.html

答案 1 :(得分:2)

This vehicle detection paper使用 Gabor过滤器库进行低级别检测,然后使用响应创建用于训练 SVM分类器的功能空间。

这项技术似乎运作良好,至少是规模不变的。我不确定旋转。

答案 2 :(得分:1)

不知道你的应用程序,我的初步印象是normalized cross-correlation,特别是因为我记得看到一个纯粹的光学互相关器,它将车辆跟踪作为示例应用程序。 (仅使用光学组件和车辆侧面的图像跟踪车辆通过时 - 我希望我能找到链接。)这与“模板匹配”类似(如果不相同),您说有点工作,但如果图像旋转,这将无法工作,如您所知。

然而,无论旋转,缩放,剪切和平移如何,都会有related method based on log-polar coordinates

我想这也可以跟踪对象离开视频场景,因为最大相关性会降低。

答案 3 :(得分:0)

我们说话的分辨率有多低?你能详细说明这个对象吗?它是特定的颜色吗?它有模式吗?答案会影响您应该使用的内容。

另外,我可能正在阅读你的模板匹配语句错误,但听起来你正在过度训练(通过测试你从中提取对象的同一视频)。

答案 4 :(得分:0)

Haar Cascade将需要您提供重要的培训数据,并且对于任何方向调整都会很差。

你最好的选择可能是将模板匹配与类似于camshift in opencv (5,7MB PDF)的算法结合起来,以及卡车是否仍在图像中的概率模型(你必须弄清楚这一点)。 / p>