关于 SURF 和跟踪算法的基本问题
Posted
技术标签:
【中文标题】关于 SURF 和跟踪算法的基本问题【英文标题】:Basic questions about SURF and tracking algorithms 【发布时间】:2013-03-27 08:46:47 【问题描述】:当使用 SURF 检测对象时,如何使用良好匹配和几个关键点绘制误报和命中图?
(A) 我如何获得良好匹配的统计数据,即 ROC 图或从这么多行描述符中检测的真阳性与假阳性?有人可以提供绘图代码吗?真阳性与假阳性统计。
(B)**其次,有很多资源vdo1,vdo2和实现,论文( Object tracking using improved Camshift with SURF method ; A Study on Moving Object Tracking Algorithm Using SURF Algorithm and Depth Information )说SURF 和 SIFT 可用于结合 camshift 或 meanshift 进行跟踪。
但是,我不明白的是,我们需要像卡尔曼滤波器这样的预测算法或像 Camshift、均值偏移或模板差分(不确定)这样的跟踪算法来进行跟踪。那么,为什么一些视频实现和教程说 Lukas Kanade光流、SIFT、SURF 是跟踪对象,而论文提到俱乐部要么是 camshift 要么是 meanshift。我错过了一些概念问题吗?
是否有义务提供关于如何单独使用 SURF 或 SIFT 或基于特征的方法进行跟踪的指针和详细说明?
【问题讨论】:
【参考方案1】:带有金字塔的 Lucas-Kandae (pyrLK) 是一种在单个特征位置寻找微小变化的方法。它可以一次对许多功能执行此操作。 Camshift 和 meanshift 跟踪一组特征的统计数据。您也可以尝试使用匹配器来查找特征在下一帧中的位置。 GoodFeturesToTrack、SIFT 和 SURF 是查找点的算法,这些点应该很容易找到并彼此区分开来。 SURF 和 SIFT 还包括描述符,以可以忽略大小变化、方向变化或两者兼而有之的方式来表征这些特征。
卡尔曼滤波器用于优化您的结果。它能够缩小答案所在的区域,因为上面的算法并不完美。
至于代码,除了Shi-Thomasi + pyrLK,我没做过太多跟踪,所以我觉得帮不上忙。
【讨论】:
感谢您的回复。我的困惑和疑问仍然存在,即是否可以单独使用 SIFT 或 SURF 进行跟踪,如链接(基于 SURF 的跟踪器)等中所述。附加“跟踪器”一词SURF 之后是我感到困惑的地方,因为跟踪本质上需要像 Kalman 或 mean shift/camshift 这样的预测器,而链接中的 SURF 没有实现。以上是关于关于 SURF 和跟踪算法的基本问题的主要内容,如果未能解决你的问题,请参考以下文章
特征提取算法的综合实验(多种角度比较sift/surf/brisk/orb/akze)