众所周知,为了在 OpenCV 中跟踪对象,我们可以使用:
- FeatureDetector寻找特征
- DescriptorMatcher匹配所需对象的特征与视频中当前帧的特征之间的相似性
- 然后使用findHomography找到对象的新位置
只有当大多数关键点具有相同的透视变换(单应性)时,我们才能找到单应性。但是如果一半的点有第一次变换,另一半有第二次不同的变换,如何找到这两个单应性呢?如何将一个点数组拆分为几个具有不同单应性的数组?
例如:
- 为了跟踪任意形状的对象,我使用了包含对象和背景的矩形参考图像。我们移动了物体,但背景保持在原地——现在我们找不到单应性了。
- 物体是分开的(我们正在跟踪移动的摩托车 - 摩托车停了下来,骑自行车的人走了 - 现在我们找不到单应性了)
- 稍微改变了物体的形状(我们正在跟踪车辆,打开后备箱后没有跟踪 - 现在我们找不到单应性)
如何在物体的参考图像和场景的框架之间找到不是一个,而是两个或三个主要的单应性?