根据 Stanford CS131 课程写的笔记(大部分为 note 翻译),英语水平一般,如有错误请评论指正
Lecture 18 Tracking
Introduction: What is tracking?
Definition
定位在连续时间下移动的物体的过程
Objective
在连续视频帧下关联目标物体并评估目标状态
Applications
- 人机互动
- 安全
- AR
- 交通
- 医疗图像
Challenges
因为视频的大量数据,耗时较长。并依赖于物体识别算法,在以下情况可能会失败:
- 几何改变,例如物体的尺度改变
- 光方面的改变
- 图像帧中遮挡
- 非线性移动
- 分辨率低的模糊视频
- 同框的相似物体
Feature Tracking
Definition
特征追踪是检测并追踪在连续时间下视觉特征点
Challenges of feature tracking
- 找出哪些特征可被追踪
- 随着帧追踪——一些点可能产生明显变化(例如,因为旋转,光照改变)
- 平移:随着模型升级,小错误可能积累成大错误
- 点可能会消失,需要能够删除、添加点
What are good features to track?
通常我们会避开选择光滑区域和边缘作为特征。为了选出 “高质量” 的特征,一种方法是检测 Harris Corners 作为关键点,这样能够保证较小的错误敏感性。
一旦选好了特征,接下来就可以使用光流算法来解决移动测量问题。
Example
Tracking methods
Simple Kanade–Lucas–Tomasi feature tracker
The Kanade–Lucas–Tomasi (KLT) 特征追踪器是一种特征提取方法。KLT 使用空间强度信息来引导位置的搜索,从而找到最佳匹配位置。算法如下:
找到一个好的点来追踪 (Harris corner)
Harris corner 点有较大特征值,所以光流方程可解
对每个 Harris corner 计算帧之间的运动(平移或仿射)
在连续帧内连接运动向量来得到每个 Harris corner 的轨迹。
如果新点周围和旧点差距太大,则抛弃这些点
对每 10 或 15 帧应用 Harris 检测器,引入新的 Harris 点。
下图的箭头表示 Harris corners 的运动追踪。
2D Transformations
Types of 2D Transformations
有多种类型的 2D 转换。可以通过摄像机(放置位置、移动、视角…)和物体来选择正确的 2D 转换。上图是几种 2D 转换的例子:
- 平移 (translation) 变换(例如,固定吊顶相机)
- 相似变换(例如,篮球赛固定相机)
- 仿射变换(例如,行人检测中的人)
- 射影变换(例如,移动相机)
Translation
平移运动是一个点平移到另一个点。假设我们有一个在左边
(x,y)
(
x
,
y
)
的点
m
m
。应用平移运动将从点
(x,y)
(
x
,
y
)
移动到
(x′,y′)
(
x
′
,
y
′
)
可以写成用其次坐标的矩阵变换:
定义 W W
其中因子向量 p=(b1 b2) p = ( b 1 b 2 )
则
W
W
对的偏导数为
上式被称作雅克比行列式 (Jacobian)
Similarity Motion
相似运动是一种刚体运动,包括缩放和平移。
我们可以定义相似性为
定义 W,p W , p
则 W W 对的偏导数,即雅克比行列式 (Jacobian) 为
Affine motion
仿射运动包括放缩,旋转,平移。我们可以表达为
定义 W,p W , p
则 W W 对的偏导数,即雅克比行列式 (Jacobian) 为
Iterative KLT tracker
Problem formulation
给定视频顺序,找到对应每帧相连的变化顺序。要求能够处理任意类型的运动。
Approach
与 KLT 追踪器不同之处在于连接帧的方式:用特征数据和线性相似直接解决相关的变换,而不是用光流连接运动向量并追踪运动。这种方式允许我们处理更加复杂(例如,仿射和投射)转换,并更加稳健的连接物体。
步骤:
用 Harris corner 检测找到特征
对于每个在位置 x=[x,y]T x = [ x , y ] T 的特征:选择一个特征描述子,并用这个描述子创建一个特征的初始模板(常用附近的像素): T(x) T ( x )
求出一个 p p ,能够最小化下一帧中在周围(假设是在特征的新位置)的特征描述的错误。用公式描述则是
∑x[T(W(x;p))−T(x)]2 ∑ x [ T ( W ( x ; p ) ) − T ( x ) ] 2迭代的重复以上步骤,将帧之间相连接,随着转换的不断应用,储存特征的坐标。这样能够得到关于物体如何在帧之间移动的测量。
像之前一样,每 10-15 帧引入一个新 Harris corner 来加入新特征,去除之前不好的特征。
Math
在上面第三步中,我们实际上可以近似计算 p p 。假设有一个关于的初始猜测,其中 p=p0+Δp p = p 0 + Δ p
现在
使用泰勒逼近,我们可以看出错误项约等于
为了最小化此项,我们对 p0 p 0 求偏导,并设为 0,求出 p0 p 0
迭代地设置 p0=p0+Δp p 0 = p 0 + Δ p ,我们可以最终收敛于一个精确的、最小化错误值的 p p ,告诉我们转换的类型。
Link to Harris Corner Detection
对平移运动,
容易得到,
但是,Harris corner 检测器假设只要 H H 有大特征值(即稳定可逆),那么该点就是一个角。因此,角可能是一个用于计算平移的好特征,恰恰因为角计算出的矩阵是稳定可逆的。