【发布时间】:2015-07-08 12:47:39
【问题描述】:
众所周知,对于在 OpenCV 中跟踪对象,我们可以使用:
- FeatureDetector 查找功能
- DescriptorMatcher 匹配所需对象的特征与视频中当前帧的特征之间的相似度
- 然后使用findHomography找到对象的新位置
对于匹配特征DescriptorMatcher 使用汉明距离(相同大小的两个序列之间的差异值,而不是坐标之间的距离)。
即我们在当前帧中找到最相似的对象,但不是最接近前一个位置的对象(如果我们知道的话)。
我们如何使用来匹配汉明距离和坐标之间的距离,例如,给定两者的权重,而不仅仅是汉明距离?
可以解决以下问题:
如果我们从前一帧的位置 (x,y) 开始跟踪对象,并且当前帧包含两个相似的对象,那么我们会找到最相似的,但不是最近的。但由于惯性,坐标的变化通常比相似度慢(光线的急剧变化或物体的旋转)。我们必须找到坐标最近的相似物体。
因此我们找到了特征,它们不仅最相似,而且会给出最准确的单应性,因为我们排除了虽然非常相似,但在坐标上相距很远并且很可能属于的特征到其他对象。
【问题讨论】:
标签: c++ opencv feature-detection hamming-distance video-tracking