- 9
- 0
- 约2.72千字
- 约 8页
- 2023-08-15 发布于上海
- 举报
计算机视觉——⽴体视觉NCC法计算视差图
计算机视觉——⽴体视觉NCC法计算视差图
原理
归⼀化互相关NCC
NCC,顾名思义,就是⽤于归⼀化待匹配⽬标之间的相关程度,注意这⾥⽐较的是原始像素。通过在待匹配像素位置p(px,py)构建3*3
邻域匹配窗⼝,与⽬标像素位置p’(px+d,py)同样构建邻域匹配窗⼝的⽅式建⽴⽬标函数来对匹配窗⼝进⾏度量相关性,注意这⾥构建相
关窗⼝的前提是两帧图像之间已经校正到⽔平位置,即光⼼处于同⼀⽔平线上,此时极线是⽔平的,否则匹配过程只能在倾斜的极线⽅向上
完成,这将消耗更多的计算资源。相关程度的度量⽅式由如下式⼦定义:
其中p点表⽰图像I1待匹配像素坐标(px,py),d表⽰在图像I2被查询像素位置在⽔平⽅向上与px的距离。
深度
图像中的⼀点距离拍摄的像平⾯的距离
双⽬视图通过略微移动相机拍摄两张左右的图⽚来呈现。图像中的⽬标离摄像机距离越近,左右拍摄时⽬标移动的幅度越⼤。
⽴体视觉
⽴体视觉是双眼观察景物能分辨物体远近形态的感觉。
⽴体视觉是计算机视觉领域的⼀个重要课题,它的⽬的在于重构场景的三维⼏何信息。⽴体视觉的研究具有重要的应⽤价值,其应⽤包括移
动机器⼈的⾃主导航系统,航空及遥感测量,⼯业⾃动化系统等。
⽴体视觉⽬标
拍摄出左右两幅图像,左右图像略微平移。对每⼀个点计算视差,视差越⼤,在视差图中体现出来的越亮,即距离摄像机距离越近。
计算视差图步骤
1. 将相机绑定在⼀个固定设备上,模拟⼈类双眼,以便于算出深度信息。
2. 在绑定时,尽量使两个相机的主光轴平⾏,像平⾯在同⼀个平⾯上,xy坐标相互平⾏。因此对相机进⾏标定,并校正。
3. 找到两个图像之间的匹配点,通过光⼼与匹配点的分别连线,在空间中的交点就是实际物体的空间坐标,这个交点到光⼼连线(像平
⾯)的垂直距离就是物体与摄像机的距离。
4. 计算每个点的视差⼤⼩。即求出点与点在左右图像中的坐标差了⼏个像素。
5. 利⽤每个点的三维坐标,通过三⾓化,⽣成空间中的三维点。
测试图像
⼀
左图像
右图像
⼆
左图像
右图像
运⾏结果及分析
⼀
窗⼝值为3
窗⼝值为6
窗⼝值为9
窗⼝值为11
窗⼝值为100
分析
前⾯在原理中我们提到,视差越⼤,在视差图中体现出来的越亮,即距离摄像机距离越近。先⽤⽬测对图像中的⼏个⽐较⼤的⽬标进⾏⼀下
距离排序(由近及远):台灯–⼈头和箱⼦–桌⼦上的两摞罐头和桌⼦–⿊⾊架⼦–书架⿊板墙⾯等。
我们从物体平滑部分和物体边缘部分的效果变化分析窗⼝值不同的各个结果图。当窗⼝值较⼩时(窗⼝值为3),对物体平滑的地⽅处理的
⽐较糟糕,体现在视差图混乱,有较多亮点(⽩点),⽐如说在平滑的桌⼦上就有所体现。尽管如此,物体的边缘部分,⽐如说⼈头和箱⼦
的轮廓,台灯的轮廓,还是有⽐较清晰的体现出来,但是如果说是离摄像机距离⽐较远的⿊⾊架⼦,罐头等,边缘还是有点模糊。当窗⼝值
较⼤(窗⼝值为11)时,可以看到,整张视差图层次⽐较清晰,也就是说,⽬标物体与摄像机的距离体现的⽐较清晰,可以⽐利⽤较⼩窗
⼝值处理出来的视差效果更好的表达2.5维的信息。我们看到,离摄像机⽐较近的⼈头和台灯,他们上⾯平滑的部分处理的很稳定,在⼈头
脸上的⿐⼦和头发这两个深度有渐变的部分(因为是⾯朝前的⽴体⼈头,⿐⼦肯定⽐头发更近摄像机⼀些,但也近的不多,所以我认为他是
深度有渐变的部分),利⽤较⼤的窗⼝值处理出来的效果⽐较明显。同时,在离摄像机较远的⿊⾊架⼦、罐头等的边缘部分也⽐利⽤较⼩窗
⼝值处理出来的更清晰。当窗⼝值过⼤(窗⼝值为100)时,所有物体的边缘都模糊了,看不出⽬标物体原来的形状了!
⼆
窗⼝值为3
窗⼝值为6
窗⼝值为9
窗⼝值为11
窗⼝值为100
分析
从原图像就可以看出,这⼀组测试图像的颜⾊⽐较少,有⼀些颜⾊,例如说⽩⾊,通过⽬测看出离摄像机近处也有,离摄像机远处的也有,
这就有可能造成对匹配点的困扰,有可能在前⾯的⽩⾊物体会匹配到在后⾯的⽩⾊物体上,这样可能就会导致视差计算的误差。因此,在视
差图的呈现上,也可以这⼀组测试图像呈现出来的效果是⽐上⼀组更混乱的。但是在窗⼝值过⼤(窗⼝值为100)的情况下,也是看不出边
缘的效果。当窗⼝值为6的时候,图⽚下⽅的⼏本书的边缘⽐较清楚。但是所有的平滑部分的处理效果都很不理想,我猜可能是与匹配的准
确度有关,因为颜⾊相近,场景单⼀,导致匹配误差,因⽽视差图的效果也不好了。
遇到的问题
NameError: name ‘filters’ is not defined
翻书得知,ndimag
原创力文档

文档评论(0)