033|Shi–Tomasi:好角点为什么仍然可能是坏特征
论文:Jianbo Shi、Carlo Tomasi,Good Features to Track,CVPR 1994,593–600。作者机构入口 · 会议原文 · 作者上传全文。相关 Cornell 技术报告已有 1993 年版本;下文以 1994 年会议稿的章节和图号为准。
先接住前作的问题
Lucas–Kanade给出局部跟踪方程,但不是每个窗口都能稳定解它。本篇据此选点并持续监控。
五个前置概念
五个前置概念:亮度一致性假定对应表面点的强度近似不变;孔径问题指单方向纹理难确定完整位移;二阶矩阵汇总窗口内梯度方向与强度;仿射变换用线性变形加平移近似局部运动;混叠使低于采样分辨率的纹理产生不稳定外观。
一、问题设定:适合求位移的窗口怎样在跟踪中继续保持可信
画面中两根不同深度的树枝交叉,形成一个漂亮角点。相机移动后,交叉位置会滑动,它并不是世界里一个固定的实体点。单张图像上的“角点强度很高”无法解决这个问题。
背景与问题:先问跟踪器需要什么
输入是图像序列与一组局部窗口,输出是窗口中心随时间的二维位置,以及该轨迹是否仍可信。它属于视觉前端,不直接估计完整机器人状态,也不学习控制策略。窗口越界、无法求解或质量失效可以结束一条轨迹,但这不是强化学习中的任务终止。
Lucas–Kanade 式方法通过局部亮度差求位移。平坦墙面没有足够梯度,沿直线边缘的切向运动又难以区分,这就是孔径问题。Harris 已用梯度二阶矩阵描述局部形状;本文更直接从跟踪器线性方程的可解性推导选择准则。
还有另一个独立问题:一个窗口即使数值上容易匹配,也可能跨越多个运动层、包含高光,或者后来被遮住。选点只检查当前局部信息;可靠长轨迹还需要持续检查。把整篇文章缩成“把 Harris 响应换成最小特征值”,会漏掉后一半思想。
二、按最小特征值选点,再用仿射残差监控
方法一:用最弱方向决定是否值得追踪
设参考图为 ,当前图为 ,窗口坐标为 ,权重为 。平移位移 的目标为
线性化后,位移增量需要求解 ,其中
是二维对称半正定矩阵。若一个特征值很小,该方向的位移很容易被噪声扰动;若两个都小,几乎任何微小位移都难以辨别。第 4 节因此要求
这个准则同时关心最弱方向有没有足够信号,不只是条件数。比如 条件数等于 1,却仍然几乎没有纹理。相反,两个特征值都很大时,即使不完全相等,也可能获得足够精度。
Harris 的 与最小特征值都使用同一类局部信息,但响应排序和阈值含义不同。本文的“optimal by construction”应理解为针对所采用跟踪模型与数值判据的设计,不是所有视觉任务的特征集合全局最优定理。
方法二:追踪时简单,检查时允许形变
连续两帧运动较小时,拟合二维平移通常稳定。若每个小窗口都拟合六个参数,窗口内形变信号可能不足,额外自由度容易响应噪声。可是隔了很多帧之后,真实特征可能已经旋转、缩放或剪切,纯平移无法解释累计变化。
仿射监控使用
其中 是首次观测该特征的模板, 为 形变矩阵, 为平移。论文第 3 节给出六参数迭代线性系统,第 5 节把对齐后的差异用于监控。一个真实标志牌变大,仿射模型可以解释;被前景物体挡住之后,即使允许形变,也难与旧模板一致。
计算位移与判断外观是否可解释,是两个不同用途。第 4 节还指出,监控并不要求所有形变参数都准确可观测:若某个方向变化几乎不影响图像,可用伪逆选择最小范数解。不能把一个低残差仿射拟合的每项参数都当作高精度运动测量。
优化目标是局部光度残差;算法机制是最弱方向选点和两种运动模型分工;实验改善是匹配稳定性和坏特征分离。残差变小不直接等于 SLAM 轨迹误差更小,因为后端还依赖特征空间分布、深度和数据关联。
把角点分数翻译成位移误差的量级
将窗口梯度逐行组成矩阵 ,时间亮度差组成 ,待估二维位移记为 。在线性光度模型 、独立同方差像素残差 下,最小二乘位移有近似协方差 。其中正规矩阵 必须可逆;因此最小特征值控制最大的位移方差。教学例令 、,两方向标准差约0.1和0.5像素;改为 ,最弱方向标准差降为0.2像素。分数与误差的联系来自模型,而非“越像拐角越好”的外观判断。
这一推导不包含遮挡、反光与亮度变化的偏差。它们可能使两个特征值都大而跟踪仍然错,所以原文第4–5节同时讨论最小特征值选点和仿射差异监控,而非仅提出一个角点算子。实验中坏特征分离与小位移精度应分别评价。
Lucas–Kanade是直接的方法继承:沿用局部光度线性化,再反过来挑适合该求解器的点。Harris是同一结构张量上的平行判据;VINS-Mono可把这类跟踪结果作为前端模块,但局部纹理强不等于整套视觉惯性系统可观测。
最小特征值保证局部位移求解的条件,仿射监控检验后续外观是否仍可信。下面把两道检查放进跟踪流程,避免只用最初的角点强度解释整段轨迹。
三、实现平移跟踪与模板检查,识别外观破坏
下面是机制级教学伪代码,阈值和迭代上限属于实现选择:
输入:图像序列、窗口尺寸、纹理与监控阈值
在首帧各候选窗口计算梯度二阶矩阵
保留最小特征值足够大的窗口,抑制相互重叠
保存每个窗口的首帧模板
对每张新图:
用相邻帧的纯平移迭代,更新窗口中心
若求解失效或窗口越界,结束轨迹
将当前窗口与首帧模板做仿射对齐
计算对齐后的光度差异
差异过大或持续异常时标记并丢弃该轨迹
输出:轨迹与质量状态
一个教学例子与五个前置概念
自构例子:窗口 A 是竖直条纹, 的特征值为 ;窗口 B 是清楚的棋盘交点,为 。虽然 A 的总梯度更大,它沿条纹方向的运动仍难确定,B 的最弱方向明显更可靠。若 B 恰是两个不同深度物体的投影交叉,初次可跟踪并不能消除长期物理不一致。
四、读序列对照,分开正常形变与错误特征

读图:多数曲线留在低差异带,若干特征的残差明显升高。仿射补偿先解释正常形变,再把异常轨迹凸显出来;高残差可以报警,低残差却不能证明对应必然正确。
实验设置与对照
图像窗口、仿射残差和特征淘汰要连起来看;强纹理只保证局部数值条件,不能独自保证长时间对应正确。
| 实验 | 任务与数据 | 对照与指标 | 预算及边界 |
|---|---|---|---|
| 电影片段 | 标志牌与被遮挡窗口 | 纯平移、仿射监控的差异曲线 | 图 1–5;不是大型标注视频基准 |
| 合成配准 | 四个圆斑、三种仿射变化及高斯噪声 | 真实与估计平移、形变误差 | 第 6 节;噪声标准差为最大强度的 16% |
| 复杂图像与错误配对 | 硬币图像、圆斑匹配十字 | 收敛过程与残差能否保持较高 | 图 8–图 9;没有普遍收敛域保证 |
| 相机前进序列 | 26 帧,Pulnix 相机、16 mm 镜头,每帧前进 2 mm | 102 个不重叠初始窗口的监控曲线 | 第 7 节;窗口 25×25 像素 |
| 统计报告 | 以上示例与曲线 | 没有汇总的多种子均值和置信区间 | 不足以量化任意场景的误检率 |
尚未内嵌:图 1、图 2、图 4、图 5。剩余四幅含《Manhattan》电影帧及其技术处理局部,属于论文之外的影像来源;当前已展示作者桌面实验拼图、合成实验和定量曲线,不再将两组电影序列成套加入。论文公开下载并不能说明电影画面的再利用条件;这不是对单幅必要评论摘引的绝对禁止判断。

读图:虚线为纯平移、实线为仿射模型;同一特征必须对应同一种点标记,才能区分形变建模带来的下降和遮挡造成的升高。

读图:上排展示局部图像逐步对齐,下排与图7同类地显示误差和参数变化;纹理更复杂并不改变所拟合的仿射模型。

读图:即使参数迭代趋于稳定,不相似度仍保持较高;这一反例说明收敛不等于匹配对象正确。
这篇论文没有神经网络训练预算或额外示范数据。计算量来自候选梯度矩阵和每个活跃窗口的迭代对齐。实验主要验证模型分工,不能从这些展示读出统一的现代硬件实时吞吐率。
五处证据:分别支持什么
图 2、3与第 5 节:标志牌随运动放大,纯平移监控的差异上升,仿射补偿后的差异较平稳。它支持形变补偿能减少对正常外观变化的误判。正文提到约 15% 尺寸增加;帧数叙述与图注有 21/25 的不一致,不能据此重新构造精确的每帧缩放率。
图 4、5及图 3的另一组曲线:窗口被标志牌遮挡,仿射差异出现跳变。它说明这个遮挡实例可被检测,不证明任意遮挡比例、重复纹理都能识别。
本页定位:图 3内嵌图 · 图 4缺口说明 · 图 5缺口说明。
表 1、图 6–7:合成形变中,第一组真实平移为 像素,估计为 。这是特定噪声样本与图案下的配准精度,并非所有真实图像都具有约 0.08 像素精度。图 7 横轴是优化迭代次数,不是环境交互量。

读图:逐项比较真实矩阵、估计矩阵与平移向量;表中误差展示数值恢复程度,不能据此推出任意初值均能收敛。

读图:每行从最左原图读到最右含噪目标,中间列是不同迭代阶段;收敛是模型与纹理共同决定的,不能仅凭终帧相似断言唯一解。

读图:前三列是不同误差量,后两列是参数轨迹;先分别确认纵轴和迭代步数,避免把不同量纲的下降速度直接比较。
本页定位:图 7内嵌图。
图 12与图 15:同一批真实特征的纯平移差异大多一起上升;允许仿射形变后,好特征形成低差异带,多个遮挡或显露特征更突出。这是最直接的模型对照,但原文没有提供完整 ROC 或固定阈值下的精确率、召回率。

读图:许多曲线一起上升,难以将真正失效的特征分离出来;与原有图15的仿射补偿结果对照,才能理解质量监测的改进。
本页定位:图 15内嵌图。
图 14、15与第 7 节末:细小文字特征 24、60 出现混叠,差异曲线从开始就不稳定。它们说明高频细节不一定是好信号;采样分辨率不足会让外观变化无法被平滑变形解释。

读图:第4行特征60对应细字区域,随运动出现混叠;这解释了为什么仅靠较低的外观差异分数也可能接受不可靠特征。该图来自作者桌面序列,不是Manhattan电影帧。
本页定位:图 15内嵌图。
五、保留遮挡、光度变化与镜面亮斑反例
本文把“选择什么”和“怎样跟踪”联系起来,再把外观监控接到前端。这是算法设计上的闭环:不是先任意挑出所谓有趣点,再期待跟踪器处理一切。
代价是每条轨迹都要保留模板并做额外对齐。模板始终锚定首帧有助于避免逐帧小漂移隐藏累计错误,但时间跨度增加也让仿射近似更容易失效。极端透视、形变物体、光照剧变、运动模糊或滚动快门都可能造成模型不匹配;这些是基于目标函数的系统分析,不是论文逐项评测结论。
作者明确承认,外观稳定的镜面亮斑可能仍是坏物理特征。局部图像无法完全决定刚性,这需要多点几何和更高层离群值检测。也因此,所有窗口都通过最小特征值和残差检查,不代表可以取消 RANSAC 或几何一致性验证。
六、追问:每次都把最新窗口当监控模板,会怎样改变检测漂移的能力?
每次都把最新窗口当监控模板,会怎样改变检测漂移的能力?
参考答案:正文把当前窗口与最初窗口作仿射比较,是为了保留较长时间的外观参照。若总换成最新窗口,连续的小变化可能逐步被接受,检查的问题就变成短时一致性。两种协议应分开测试并说明模板更新规则,不能把短时残差小当作长期身份正确。
七、把特征轨迹交给视觉惯性估计
- 模块组合:VINS-Mono:让单目视觉与 IMU 组成可以长期运行的定位系统。将特征轨迹送入视觉惯性几何估计,再用多源约束检查运动。
八、自测与参考答案
问题1:为什么不能只选条件数最接近 1 的窗口?
参考答案:条件数衡量两个方向的相对不平衡,不衡量总信号强度。两个特征值同样接近零时条件数也很好,但微小噪声足以造成巨大位移变化。最小特征值阈值同时约束最弱方向的绝对信息量。
问题2:既然仿射模型更强,为什么相邻帧不总用它?
参考答案:小窗口和小运动可能不足以稳定估计六个参数,额外自由度会拟合噪声。二维平移适合短间隔定位,而跨较长时间的模板比较需要解释累计缩放与旋转。模型复杂度应随用途和可观测信息选择。
问题3:仿射残差很小,可以证明是同一个静态三维点吗?
参考答案:不能。低残差只说明两块图像能被这个外观模型解释,重复纹理、平滑移动的高光等也可能满足。确认静态几何还需要多个视角、多点一致性或其他传感器证据,局部窗口本身没有提供这些信息。