文章目录
主要参考南京大学王元庆老师的论文,总结阅读论文时得到的必要的知识
双焦距光学成像模型
2007年11月发表
从一个角度拍摄的多幅图像的光学特征变化来计算各像点的深度值。Carnegie Mellon 大学机器人学院的Y Xiong, Steven A Shafer 提出的采用离焦模糊的深度信息提取办 法, 从图像的离焦模糊特征中提取景像的深度信息;广岛大学的N Asada 等人提出的基于变焦模糊的深 度信息获取方法则是通过改变摄像机镜头的焦距来获得多幅画面的, 从中提取出景像的立体( 深度) 信息。
而作者介绍的“单目立体视觉中的双焦距成像系统”从一个角度同时获得两种焦距参数下的二维图像,这两幅图像中包含了场景的深度信息,利用双焦深度算法可以分析出空间物点的深度信息。
双焦成像原理
H
1
′
,
H
2
′
{H_1}^{'},{H_2}^{'}
H1′,H2′分别是两个焦距物镜的像方主平面,
f
1
,
f
2
f_1,f_2
f1,f2分别是物镜的焦距。以小焦距时的透镜中心为原点, 以透镜光轴为Z 轴, 设立摄像机坐标系, 并以此坐标系为参照系。如图,距离光轴径向为
R
R
R的空间物点
A
(
R
,
D
)
A(R,D)
A(R,D)相对于焦距为
f
1
f_1
f1的物镜光心距离为
D
D
D,即深度。物点
A
A
A在两个物镜上分别成像,像的矢量分别为
r
1
,
r
2
r_1,r_2
r1,r2。故而有成像关系
r
1
f
1
=
R
D
(1)
\frac{r_1}{f_1}=\frac{R}{D} \tag{1}
f1r1=DR(1)
r
2
f
2
=
R
D
−
(
f
2
−
f
1
)
(2)
\frac{r_2}{f_2}=\frac{R}{D-(f_2-f_1)} \tag{2}
f2r2=D−(f2−f1)R(2)
求解可得
D
=
−
{
f
1
+
f
2
V
α
r
1
−
V
}
=
−
{
f
1
+
f
2
1
α
r
1
/
V
−
1
}
(3)
D=-\{f_1+f_2\frac{V}{\alpha r_1-V}\} =-\{f_1+f_2\frac{1}{\alpha r_1/V-1}\} \tag{3}
D=−{f1+f2αr1−VV}=−{f1+f2αr1/V−11}(3)
其中,
V
=
r
2
−
r
1
V=r_2-r_1
V=r2−r1为径向视差;
α
=
(
f
2
−
f
1
)
/
f
1
\alpha =(f_2-f_1)/f_1
α=(f2−f1)/f1为相对焦距差。物点深度
D
D
D与径向视差的相对变化关系为
∂
D
∂
V
=
f
2
α
r
1
(
α
r
1
−
V
)
2
\frac{\partial D}{\partial V}=f_2\frac{\alpha r_1}{(\alpha r_1-V)^2}
∂V∂D=f2(αr1−V)2αr1
=
α
R
f
1
f
2
(
D
−
f
1
)
[
α
R
f
1
−
V
(
D
−
f
1
)
]
2
(4)
=\frac{\alpha Rf_1f_2(D-f_1)}{[\alpha Rf_1-V(D-f_1)]^2} \tag{4}
=[αRf1−V(D−f1)]2αRf1f2(D−f1)(4)
能够发现,双焦成像的深度分辨率与物点的径向位置
R
R
R有关,并且与
R
R
R成反比。对于处于视场中心区域的空间物点来说,其深度探测精度低;而对于处于视场边缘的空间物点来说,其深度探测精度较高。
所以上述系统不能直接用于机器视觉,作者提出使用光学转像提高视场中心区域的深度恢复精度
视场转像
坐标原点为物镜光轴与图像传感器感光面的相交点,
Z
Z
Z轴与物镜光轴重合,并指向物体方向。
物镜与上述简单系统一致,但是使用转像镜(上下前后四块)与合成镜对视场范围内的图像坐标进行转换,理想情况下:
其中
(
x
0
,
y
0
)
(
x
,
y
)
(x_0,y_0) (x,y)
(x0,y0)(x,y)分别是转像前后的物点坐标;
(
x
c
,
y
c
)
(x_c,y_c)
(xc,yc)为视场中心点坐标值,
s
i
g
n
sign
sign为正负运算符,当
x
x
x为负数、零、正数时,
s
i
g
n
(
x
)
sign(x)
sign(x)分别返回-1,0或1。
k
i
k_i
ki为成像系统的比例因子,
k
i
<
1
k_i<1
ki<1。理想情况下,同一深度的物点经焦距分别为
f
1
,
f
2
f_1,f_2
f1,f2的物镜成像后有:
k
1
/
k
2
=
f
1
/
f
2
(6)
k_1/k_2=f_1/f_2 \tag{6}
k1/k2=f1/f2(6)
但是由于光学制造工艺的限制,转像镜与合成镜的相对位置去查会引起图像坐标的偏转和平移,因此实际的成像系统坐标变换方式为
作者的实验结果:(测量深度为0.8m)
虽然平均的测量深度为798.857mm,平均误差很小但是测量的误差最大的点,误差达到了58mm,单独的误差还是挺大的。所以作者认为:需要对光学成像系统进行修正,同时提高图像对的匹配精度来提高测量精度。
本篇小结
主要讲述了双焦单目立体成像系统的基本光学模型,并且分析了该模型的特点(主要是测量精度与径向距离成反比的关系),提出了使用转向镜和合成镜以提高视场中心位置的物点的测量精度。通过转化,物点的位置关系相对于双焦物镜产生变化,物点的深度测量精度得以提高。
我对于转像镜与合成镜本身及其摆放存在疑问,需要进一步探讨。但是目前的理解就是:通过转化后的物点在双焦系统中可以得到一个三维坐标
(
x
,
y
)
(x,y)
(x,y),然后通过公式(7)的转换关系可以获得真实的点坐标。
基于双焦成像的单目立体视觉算法
2007年1月发表
这一篇也是王元庆老师的,主要对双焦算法进行了分析,为了提高算法精度,需要校正非理想变焦图像对的中心点。该文章分析了中心点校正方法,并且给出了校正后空间物点深度恢复的实验结果。
算法分析
文章有一半的篇幅介绍了双焦单目立体视觉的特点,与上一部分重复。主要为该方法限定了适用范围:近距离(1m以内),非光轴中心的位置的物点。并且说明了图像校正在计算中的必要性。
图像获取
双焦成像方法要求两幅图像实在同一中心的基础上进行缩放,但是拍摄过程中会引起相机的抖动,使得两次拍照时对应的相机坐标系之间可能存在三维旋转与平移,从而导致两幅图像之间也存在相应的旋转和平移关系。故而需要对获取的图像进行校正。
运动模型
主要描述了两幅图像之间存在什么样运动关系:假设旋转矩阵为
R
\textbf{R}
R,平移矩阵为
T
\textbf{T}
T,设两幅图像中的对应点坐标分别为
(
X
1
,
Y
1
)
(X_1,Y_1)
(X1,Y1)和
(
X
0
,
y
0
)
(X_0,y_0)
(X0,y0),则:
而考虑到由于手动拍摄造成的旋转和平移基本为垂直于光轴的二维平面,所以可以将模型进行转化为:
其中
θ
\theta
θ表示绕
z
z
z轴的旋转的角度,若是理想情况下
θ
\theta
θ很小,故而:
之后获得匹配点对对上式进行最小二乘求解即可。
深度恢复
获得经过校正的两幅变焦图像对后,采用LOG滤波器提取图像的特征点,并且进行匹配,通过匹配点对的坐标即可根据深度计算公式计算深度值。
作者比较了校正前后的深度计算结果,发现如果不进行校正的话,计算的深度值几乎没有任何意义,而校正之后的图像计算相对符合物理意义了。
本篇小结
本篇文章主要关注去除双焦图像采集中存在的非理想变换,作者通过分析双焦单目立体视觉系统的特性,提出了去除非理想旋转与平移变换的方法,并且将校正前后获得的深度进行了比较,体现了校正的必要性。
其实立体校正在立体视觉中时十分必要的,比如双目立体视觉中,只有进行了立体校正之后才能进行视差的稠密计算。而深度的恢复必定需要知道相机系统的参数,但是目前为止还没有看到双焦单目系统的标定。
基于双焦的单目立体成像系统分析
2008年发表
这篇文章主要探索了共轴模型下CCD成像离散型而导致的深度计算误差与镜头焦距及物点空间位置的关系。并且分析了适用于该系统的特征提取和匹配方法。
深度误差与焦距
双焦单目成像系统中引起误差的条件有
- 成像镜头光学误差
- 成像面位置偏差
- 数字传感器的离散误差
上述的前两个误差通过几何校正即可,第三种误差需要通过减小传感器的像素尺寸、提高同名点的匹配精度进行克服。
作者通过量化像素误差,将像素误差对于深度的影响也进行了量化。通过实验得到了以下几点结论:
- 深度计算误差与焦距大小、物点的空间位置有关:物点位置及焦距不变的情况下,深度计算误差随着CCD的分辨率的增大而减小——所以在实验中宜采用高分辨率摄像机。
- 深度误差随着深度的增大而增大,在同一深度下,焦距越大,深度误差越小;对于双焦成像系统,可恢复的深度取决于小焦距相机图像的深度误差——因此,在同样深度恢复条件下若使恢复深度增加,应使两摄像机焦距都增大。
总结来看:在两焦距不变的情况下,深度计算误差随深度的增加而增加;固定深度下,深度计算误差随着焦距的增加而减小,随焦距变化倍数的增加而增加。这种关系是由匹配精度以及与此相关的CCD离散成像对深度恢复的影响造成的。
文章中的焦距变化倍数我得理解一下:焦距的变化倍数表示两个焦距的比 f 1 / f 2 f_1/f_2 f1/f2,例如在文中的描述“保证两焦距的变化倍数不变为0.8,调整小焦距由50mm至90mm”,两个焦距就从 f 1 = 50 m m , f 2 = 62.5 m m f_1=50mm,f_2=62.5mm f1=50mm,f2=62.5mm变成了 f 1 = 90 m m , f 2 = 112.5 m m f_1=90mm,f_2=112.5mm f1=90mm,f2=112.5mm。
双焦系统相对于双目立体视觉的优点
- 同样深度限定条件下,寻找对应点的搜索范围不到双目的一半
- 如果选取基准匹配点为小焦距图像中的点,则不会出现因区域图像不对称而导致的失配现象,而像点失配是双目立体视觉中不可避免地问题。
emm,我觉得双目中地像点失配不构成大问题。根据目前的阅读内容来看,我还是比较可双目。
双焦特征匹配
- 例行图像去噪、增强等预处理;
- 特征提取时需要采用不同的滤波器参数,对于大焦距图像,应用较大的平滑算子。例如若同时采用LOG算子,两幅图像中的滤波器尺度比应该为: σ 1 / σ 2 = f 1 / f 2 \sigma_1/\sigma_2=f_1/f_2 σ1/σ2=f1/f2;
- 匹配方法采用特征匹配(一般有:区域匹配(假设区域内视差一样)、特征匹配以及相位匹配),由于在整幅图像中进行匹配过于耗时,所以采用变焦图像对的外极线定理寻找预匹配点,并且采用双向匹配策略。
预匹配点的寻找
由图4,
r
1
=
x
1
2
+
y
1
2
,
r
2
=
x
2
2
+
y
2
2
r_1=\sqrt{x_1^2+y_1^2},r_2=\sqrt{x_2^2+y_2^2}
r1=x12+y12,r2=x22+y22由图1可知,
P
1
,
P
2
P_1,P_2
P1,P2位于经过图像中心的一条射线上,由于物距远远大于焦距,故用
r
1
=
f
1
r
2
/
f
2
r_1=f_1r_2/f_2
r1=f1r2/f2作为射线上的预估点,然后在以预估点为中心的一定区域内进行特征点匹配。
稠密插值
由于特征匹配很难获得稠密的深度图,因此需要深度插值,双焦系统可以利用图像对中的线匹配关系进行相应的深度插值。具体方法为:
本篇小结
主要时获得了焦距与深度之间的关系,想要更高的精度最好:使用高分辨率CCD、小焦距决定整体深度测量精度(焦距越大同一深度精度越高);
以及双焦系统特征匹配应该注意的点:滤波尺度不同,注意极线关系。
双焦立体图像对像素级匹配
发表于2007年
介绍了基于双焦成像的同名点匹配方法,利用区域匹配法以及灰度相似度判据,对图像对中同名点进行像素级匹配。
这篇文章比较简单,所以只做简单总结
相似度判据
双焦图像区域匹配
选择区域匹配是因为特征匹配往往是稀疏的,后续的插值会比较麻烦。(上一篇文章中选择的是特征匹配,然后稠密插值,具体哪个好还是要实验验证了才行)
有了上述判据,使用区域匹配:以基准图的待匹配点位中心建立一个窗口,用邻域像素的灰度值分布来表征该像素。再匹配图中寻找一个像素,以该像素为中心创建同样大小的一个窗口,并用其邻域像素的灰度值分布来表征其特征,使该点与待匹配点的相关度最高。
双焦图片匹配点的特点
各成像点以摄影镜头光轴为中心“幅式”缩放,即不同焦距所对应的像点位置理论上应该再相邻帧图像对应像点的射线延长线上。如图:
P
,
P
′
P,P'
P,P′即对应点
双焦变焦方法获得的立体图像对之间,各像点存在极坐标描述条件下的像差,像差的矢量位移存在着近似的比例关系,比例系数与焦距的选取有关,所以搜索区域并不需要遍历整个图像,只需要遍历预匹配区域窗口中的所有的点,选择相关系数最大的点作为匹配点即可。
区域搜索改进
基本思想为:减少与预匹配窗口内的点的匹配次数。将原来的在预匹配窗口中遍历,修改为以下步骤:
- 搜索预匹配点9*9邻域内的九个点,找到相似度最大的点 A A A
- 再以点 A A A为预匹配点,搜索其7*7邻域内的九个点,得到相似度最大的点
- 以次类推,知道最后一步搜索区域3*3邻域内的九个点,从而得到相似度最大的点
作者的实验结果表明,该改进的区域匹配算法存在极少的误配。而误配的原因是基于区域匹配方式对光强和对比度敏感,当存在重复结构的纹理特征时会引起匹配的混淆。
本篇小结
主要描述了一个双焦图片对的匹配点搜索算法,特征为像素灰度相关测度,算法为区域匹配。作者结合双焦图片对的特点将区域匹配算法的搜索范围限制在极线约束的区域内(预匹配区域),并且提出了一种在预匹配区域内快速遍历的匹配方式。实验结果比较理想,但仍存在较大的误配,说明光照影响以及重复纹理等引起的匹配混淆时需要着重关注的。
共轴立体视觉深度测量
发表于2012年