mac*_*ard 2 language-agnostic algorithm opencv tracking
我正在开展一个项目,我需要跟踪图像中的两个点.到目前为止,识别这些要点的最佳方法是让用户在程序首次运行时单击它们.我正在使用OpenCV中内置的Lucas-Kanade金字塔方法(在此处记录,但正如预期的那样,这不太合适.是否有更好的替代算法用于跟踪OpenCV中的点,或者另外一些方法验证我已经拥有的点?
我正在考虑使用GoodFeaturesToTrack,并从每个点到我想要跟踪的点之间的距离,也许某种向量指出两点之间的关系,并使用这些信息确定我的新观点.我正在寻找方法来解决这个问题,不一定是代码示例.谢谢
编辑:我正在跟踪小动作,如果这有帮助
如果你寻找一个在opencv中实现的解决方案,金字塔式的Lucas Kanade(PLK)方法就不行了,否则我更喜欢基于粒子滤波器的跟踪器.要使用PLK提高跟踪性能,请确保已正确设置参数.例如,对于大型动作,你需要一个大约等级.窗口不应该小(我更喜欢17x17到27x27).另请注意,这些方法需要纹理区域才能跟踪点.这意味着角落像图像内容(光圈问题).
我建议在你要跟踪的点(P)周围的网格中播种一组点(ps).而不是使用前向 - 后向阈值来拒绝错误跟踪的点.点(P)的运动将通过特定残差点集(ps)的平均运动来计算.
通过估计从第1帧到第2帧的运动来计算向前后向置信度.(ptList1 - > ptList2).从第2帧到第1帧的点有ptList2(ptList2 - > ptListRef).如果(|| ptRef - pt1 ||> fb_threshold),运动矢量将被拒绝.