第十八周学习笔记
《计算机视觉——算法与应用》
第四章 特征检测与匹配
匹配两幅图像
- 关键点特征(keypoint feature)或兴趣点(interest point)或角点(corner),比如山顶、建筑物角点等
- 边缘(edge),比如轮廓
4.1 点和块
点特征可以用来寻找一个不同图像中的对应位置的稀疏集合
获取特征点及其之间的对应关系的两种方法
- 在第一幅图像中寻找那些可以使用局部搜索方法来精确跟踪的特征,比如相关或最小二乘
- 第二种方法是在所有考察的图像中独立地检测特征点然后再基于它们的局部表观进行匹配
关键点检测和匹配的四个阶段
- 特征检测(feature detection)(提取)阶段,从一副图像中寻找那些能在其他图像中较好匹配的位置
- 特征描述(feature description),把检测到的关键点周围的每一个区域转化成一个更紧凑和稳定的描述子(descriptor),描述子可以和其他的描述子进行匹配
- 特征匹配(feature matching),在其他图像中高效地搜索可能的匹配候选
- 特征跟踪(feature tracking),是第三个阶段的另一种替代模式,它只在检测到的特征点周围一个小的邻域内寻找匹配,因此更适合视频处理
4.1.1 特征检测器
最简单的匹配策略
E
W
S
S
D
(
Δ
u
)
=
∑
i
w
(
x
i
)
[
I
1
(
x
i
+
Δ
u
)
−
I
0
(
x
i
)
]
2
E_{WSSD}(\Delta u)=\sum_i w(x_i)[I_1(x_i+\Delta u)-I_0(x_i)]^2
EWSSD(Δu)=i∑w(xi)[I1(xi+Δu)−I0(xi)]2
自相关函数
E
A
C
(
Δ
u
)
=
∑
i
w
(
x
i
)
[
I
0
(
x
i
+
Δ
u
)
−
I
0
(
x
i
)
]
2
E_{AC}(\Delta u)=\sum_i w(x_i)[I_0(x_i+\Delta u)-I_0(x_i)]^2
EAC(Δu)=i∑w(xi)[I0(xi+Δu)−I0(xi)]2
将特征块与原图比较来计算匹配结果的稳定度
图像梯度
- Harris检测器
- 更普遍的水平方向和垂直方向的高斯函数的导数对图像进行卷积
要求更高的特征检测
- 尺度不变
- 旋转不变
- 仿射不变
4.1.2 特征描述子
为了建立正确对应,我们必须提取对图像间变化具有不变性但仍然具备足够区分性的局部描述子
以下是一些局部描述子
- 偏差和增益规范化(MOPS)
- 尺度不变特征变换(SIFT),性能第二(在Mikolajczyk and Schmid(2005)中)
- PCA-SIFT
- 梯度位置方向直方图(GLOH),性能最好
- 导向滤波器
4.1.3 特征匹配
在图像之间建立一些初始特征的匹配,分为两个阶段
- 选择一个匹配策略,用来确定哪些匹配将被传到下一个阶段进行进一步处理
- 设计出有效的数据结构和算法来尽可能快的完成这个匹配
匹配策略
1.阈值匹配,返回阈值内的所有匹配
混淆矩阵
- TP,正确肯定
- FN,漏报
- FP,误报
- TN,正确否定
正确肯定率(TPR),召回率
T
P
R
=
T
P
T
P
+
F
N
TPR=\dfrac{TP}{TP+FN}
TPR=TP+FNTP
错误肯定率(FPR)
F
P
R
=
F
P
F
P
+
T
N
FPR=\dfrac{FP}{FP+TN}
FPR=FP+TNFP
肯定预测值(PPV),召回率
P
P
V
=
T
P
T
P
+
F
P
PPV=\dfrac{TP}{TP+FP}
PPV=TP+FPTP
精确度(ACC)
A
C
C
=
T
P
+
T
N
P
+
N
ACC=\dfrac{TP+TN}{P+N}
ACC=P+NTP+TN
随着阈值的变化,正确肯定率和错误肯定率组成ROC曲线
ROC曲线下的面积则是AUC,越大说明性能越好
2.最近邻匹配
某些特征可能没有匹配,仍需一个阈值来减少误报的数目
最近邻距离比率,选择一个已知和目标不匹配的图像中取得的最近邻距离与需要匹配图像最近邻图像的最近邻距离的比值进行判断
高效匹配
一旦确定匹配策略,仍需要在潜在的候选中高效地进行搜索,比如构造树等结构
4.1.4 特征跟踪
选择特征的两种方法
- 在所有候选图像中独立地寻找特征然后将它们进行匹配
- 在第一幅图像中寻找可能的特征位置集合,然后在后续的图像中搜索它们的对应位置(先检测后跟踪,detect and track)
4.1.5 应用:表演驱动的动画
Gamma Correction
Computer Color is Broken
视频主要内容
- 2015年,多数绘图软件的多种颜色的交界处会显得很暗
- 人眼对亮度的感知是非线性的
- RGB都取最大值的50%(中灰),逻辑上是50%的白色,但物理上只有22%白色,取最大值的25%,只有5%的白色
- 人类的视觉更擅长捕捉黑暗场景中的亮度变化
- 因此,为了节约储存,根据人眼感觉平均采样密度(将人眼感受到的中灰映射为0.5而非实际的0.2),曾经人们将原始像素的亮度开根号存储(通常这个值在1.8到2.2之间,称为gamma值),这样在感gfzs觉更敏感的低的亮度中采样了更多的点,在感觉相对不敏感的更亮的亮度中采样更少的点,可近似模拟人们对亮度均匀增加的感觉
- 在显示图像的时候,数值被还原后显示
- 这带来了图像处理上的问题,之前的很多软件直接进行图像处理,并没有通过平方还原后再处理×
- 假设从实际中捕捉了两个像素点,亮度分别为 x 1 x_1 x1, x 2 x_2 x2,它们存储的值分别是 x 1 \sqrt{x_1} x1, x 2 \sqrt{x_2} x2,为将它们叠加,本应该是先将存储值平方,后叠加为 x 1 + x 2 2 \frac{x_1+x_2}{2} 2x1+x2,然后存储为 x 1 + x 2 2 \sqrt\frac{x_1+x_2}{2} 2x1+x2,但疏忽的软件直接叠加并存储为 x 1 + x 2 2 \sqrt\frac{\sqrt{x_1}+\sqrt{x_2}}{2} 2x1+x2,因此看起来就比预期要暗了许多,这是导致交界处显暗的原因
韦伯定律
人对自然界刺激的感知,是非线性的,按比例增加的刺激在人感觉来是线性的
举例就是,在黑暗的房间点燃一根蜡烛,刺激是明显的,但在有1000根蜡烛的房间点燃一根蜡烛,物理上的亮度增加是与之前相同的,但对人的刺激几乎微不足道
由此也可以发现,黑和白实际上并不是对称的,在黑中增加0.01亮度和在白中减少0.01亮度对人的感觉完全不同,之所以无法感觉到后者,是因为变化量在本身存在的量中微不足道,可知黑类似一种无的状态,白类似一种有的状态韦伯定律
人对音高(频率)、分贝等的感觉以及分级也是如此
Gamma变换
人眼中的中灰其实是20%左右白而非50%白,这促使人们将20%对应的中灰存储为uint8(举例)中的128,防止原来情况下将中灰存储在20%*256这个位置时暗色存储数值范围小于亮色的情况。
总的来说