我应该使用哪种物体识别算法?

时间:2014-01-01 13:06:27

标签: c++ algorithm object opencv object-recognition

我对简历很新,所以原谅我的愚蠢问题......

我想做什么:
我想在现场视频中识别出RC平面(现在它只是一个录制的视频)。

到目前为止我做了什么:

  • 框架之间的差异
  • 将其转换为灰度
  • GaussianBlur
  • 阈值
  • findContours

以下是一些示例框架:

但是也存在带噪声的帧,因此帧中有更多的对象。

我以为我可以这样做:

对已找到的每个轮廓使用一些对象识别算法。并且仅计算每个边界矩形的特征向量。

是否可以仅针对图像的特定色块(较小部分)计算SURF / SIFT / ...

由于算法能够处理实时视频非常重要,我认为只有在不查看整个图像的情况下才有可能吗?!或者也许决定例如是否有超过10个边界矩形我检查整个图像而不是每个矩形。

然后我将查看下一帧并尝试将我的特征向量与前一帧匹配。这样我就可以追踪我的物体了。一旦这些物体穿过画面中间的红线,它将触发另一个事件。但这在这里并不重要。

我需要确保不是每个穿过红线或在红线后面的物体都会触发该事件。因此,需要至少有2或3个连续的帧,其中包含该对象,如果它过了那么只有那时才会触发该事件。

对象识别算法有很多变化,我有点不知所措。 Sift / Surf / Orb / ...你得到我说的话。

任何人都可以给我一个提示我应该选择哪一个,或者我正在做什么甚至是有道理的?

1 个答案:

答案 0 :(得分:0)

假设飞机位置从一帧到下一帧没有太大变化,我认为你应该看看物体追踪,而不是试图在每一帧中独立估计位置。 http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html