我目前正在使用OpenCV开发计算机视觉应用程序.该应用涉及目标识别和特征确定.一般来说,我将有一个目标穿过可见区域,并在几秒钟内慢慢穿过它.这应该会让我从相机中获得超过50-60帧,我将能够找到目标.
我们已经使用SWT和OCR成功实现了检测算法(目标都具有字母数字标识符,这使得它们相对容易挑选出来).我想要做的是尽可能多地使用每个目标的50-60个镜头中的数据.为此,我需要一些方法来识别图像2的特定ROI包含与图像1中的另一个ROI相同的目标.
我之前要求任何可能遇到此问题的人提出一些建议.如何在合理的误差范围内轻松/快速地识别出ROI#2与ROI#1具有相同的目标?我的第一直觉是这样的:
>检测第1帧中的目标.
>计算第1帧中每个目标的某些独特特征.保存.
>获取第2帧.
>立即寻找具有与步骤2中计算的相同特征的ROI.抓住这些并将其发送到线路以进行进一步处理,跳过步骤5.
>检测第2帧中的新目标.
>将目标传递给线程以计算形状,颜色,GPS坐标等.
>泡沫,冲洗,重复.
我认为SURF或SIFT功能可能是实现这一目标的一种方法,但我担心由于失真或颜色衰减,他们可能无法在帧与帧之间识别目标.我不知道如何设置SIFT / SURF功能的阈值.
提前感谢你对这件事有所了解.
最佳答案 您可以做的一件事是局部均衡亮度和可能的饱和度.如果您没有使用YCrCb或HSV等高级空间,我建议您试试.
你能否认为物体移动得太快?如果在检测例程中输入先前的位置,则可以减小所查看窗口的大小.速度和运动方向也是如此.
我已成功使用区域的直方图组合和形状描述符以便可靠地检测它,您可以使用它或将其添加到SURF / SIFT分类器.