兴趣区域唯一性和身份

时间:2013-04-05 07:42:31

标签: c++ opencv

我目前正在使用OpenCV开发计算机视觉应用程序。该应用涉及目标识别和特征确定。一般来说,我将有一个目标穿过可见区域,并在几秒钟内慢慢穿过它。这应该会让我从相机中获得超过50-60帧,我将能够找到目标。

我们已经使用SWT和OCR成功实现了检测算法(目标都具有字母数字标识符,这使得它们相对容易挑选出来)。我想要做的是尽可能多地使用每个目标的50-60个镜头中的数据。为此,我需要一些方法来确定图像2的特定ROI包含与图像1中的另一个ROI相同的目标。

我之前要求任何可能遇到此问题的人提出一些建议。如何在合理的误差范围内轻松/快速地识别出ROI#2与ROI#1具有相同的目标?我的第一直觉是这样的:

  1. 检测第1帧中的目标。
  2. 计算第1帧中每个目标的某些独特功能。保存。
  3. 获取第2帧。
  4. 立即寻找具有与步骤2中计算的相同功能的ROI。抓住这些并将其发送到线路进行进一步处理,跳过第5步。
  5. 检测第2帧中的新目标。
  6. 将目标传递给线程以计算形状,颜色,GPS坐标等。
  7. 泡沫,冲洗,重复。
  8. 我认为SURF或SIFT功能可能是实现此目的的一种方法,但我担心由于失真或颜色衰减,他们可能无法在帧与帧之间识别目标。我不知道如何设置SIFT / SURF功能的阈值。

    提前感谢您对此事有任何启发。

1 个答案:

答案 0 :(得分:2)

您可以做的一件事是局部均衡亮度和可能的饱和度。如果您没有使用YCrCb或HSV等高级空间,我建议您试试。

你能否认为物体移动得太快?如果在检测例程中输入先前的位置,则可以减小所查看窗口的大小。同样的事情与速度和运动方向有关。

我已成功使用区域的直方图组合和形状描述符以便可靠地检测它,您可以使用它或将其添加到SURF / SIFT分类器。