我目前正在使用 OpenCV 开发计算机视觉应用程序。该应用涉及目标识别和特征确定。一般来说,我会让一个目标穿过可见区域,然后在几秒钟内慢慢地穿过它。这应该让我能够从相机中找到超过 50-60 帧的目标。
我们已经使用 SWT 和 OCR 成功实现了检测算法(目标都有字母数字标识符,这使得它们相对容易被挑选出来)。我想要做的是尽可能多地使用来自每个目标的所有 50-60 次射击的数据。为此,我需要某种方法来识别图像 2 的特定 ROI 包含与图像 1 中的另一个 ROI 相同的目标。
我想从以前可能遇到过这个问题的任何人那里得到一点建议。如何在合理的误差范围内轻松/快速地识别 ROI #2 与 ROI#1 具有相同的目标?我的第一直觉是这样的:
- 检测第一帧中的目标。
- 计算第 1 帧中每个目标的某些独特特征。保存。
- 获取第 2 帧。
- 立即寻找与第 2 步中计算的 ROI 具有相同特征的 ROI。抓住这些并将它们发送到生产线上进行进一步处理,跳过第 5 步。
- 在第 2 帧中检测新目标。
- 将目标传递给线程以计算形状、颜色、GPS 坐标等。
- 起泡,冲洗,重复。
我认为 SURF 或 SIFT 功能可能是实现此目的的一种方式,但我担心由于失真或颜色褪色,它们可能无法在帧与帧之间识别相同的目标。我不知道如何设置 SIFT/SURF 特征的阈值。
提前感谢您对此事的任何启发。