Image processing 在低分辨率运动视频中,目标检测的最佳方法是什么?

Image processing 在低分辨率运动视频中,目标检测的最佳方法是什么?,image-processing,opencv,object-detection,Image Processing,Opencv,Object Detection,我正在寻找最快、更有效的方法来检测运动视频中的物体。关于这个视频需要注意的事情:它是非常颗粒和低分辨率,而且背景和前景同时移动 注意:我试图在移动视频中检测到道路上移动的卡车 我尝试过的方法: 训练Haar级联-我尝试训练分类器通过拍摄所需对象的多张图像来识别对象。这证明会产生许多错误检测或根本没有检测(从未检测到所需的对象)。我用了大约100张正片和4000张底片 SIFT和SURF关键点-当尝试使用这两种基于特征的方法时,我发现我想要检测的对象的分辨率太低,因此没有足够的特征来匹配以进行准确

我正在寻找最快、更有效的方法来检测运动视频中的物体。关于这个视频需要注意的事情:它是非常颗粒和低分辨率,而且背景和前景同时移动

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

我尝试过的方法:

训练Haar级联-我尝试训练分类器通过拍摄所需对象的多张图像来识别对象。这证明会产生许多错误检测或根本没有检测(从未检测到所需的对象)。我用了大约100张正片和4000张底片

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

模板匹配-这可能是我尝试过的最好的方法。这是最准确的,尽管是最粗糙的。我可以使用从视频中裁剪的模板检测特定视频的对象。但是,没有保证准确性,因为已知的是每个帧的最佳匹配,没有对匹配帧的模板百分比进行分析。基本上,只有当对象始终在视频中时,它才起作用,否则它将创建错误检测

这些是我尝试过的三大方法,但都失败了。最有效的方法是模板匹配,但具有缩放和旋转不变性(这让我尝试了SIFT/SURF),但我不知道如何修改模板匹配函数


有人对如何最好地完成这项任务有什么建议吗?

我们讨论的分辨率有多低?你能详细说明一下这个物体吗?它是一种特殊的颜色吗?它有图案吗?答案会影响您应该使用的内容


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

Haar Cascade需要大量的训练数据,并且对方向的任何调整都很不利

您最好的选择可能是将模板匹配与类似的算法以及概率模型相结合(您必须弄清楚这一点)卡车是否仍在图像中。

使用Gabor滤波器组进行低水平检测,然后使用响应创建特征空间,在其中训练SVM分类器


这项技术似乎工作得很好,至少具有尺度不变性。不过,我对旋转不太确定。

不知道您的应用程序,我最初的印象是,特别是因为我记得看到了一个纯粹的光学互相关器,它将车辆跟踪作为示例应用程序。(只使用光学元件和车辆侧面的图像跟踪车辆经过-我希望我能找到链接。)这与“模板匹配”类似(如果不完全相同的话),你说这是可行的,但如果图像旋转,这将不起作用,如你所知

然而,无论旋转、缩放、剪切和平移如何,都有一个有效的方法

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

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

这是一个古老的项目,它是这样运作的:


卡车是如何定位的?它的形状/方向会改变吗?相机会改变位置吗?这是一个一次性的视频,还是一个需要在许多不同条件下工作的系统?我同意endolith的观点,关键是你要用更多的细节来定义问题。方法的选择将影响鲁棒性。卡车侧面的视图和水平移动的视图。车辆的形状变化不大,这就是模板匹配有效的原因,但我仍然希望我的方法具有鲁棒性。基本上,摄像机会左右平移,跟随几辆不同的车辆,而一些其他车辆会在背景中驶过。从本质上讲,我希望它在不止一种情况下工作(但主要处理类似质量的视频)。我最不想做的是在移动视频中检测移动对象。你能从视频中发布一个样本帧吗?分辨率是720x480,但视频质量很差。在这种分辨率下,视频非常像素化。关于模板匹配,我没有进行任何培训。我只是使用视频中的一个裁剪对象,然后从每一帧中搜索,你只是在一组数据上训练它。如果对象的照明和方向几乎没有变化,模板将很好地匹配。一旦这样做,准确率就会下降。尽管如此,还是要尽你所能使用所有的提示——特别是颜色,如果有的话。