APP下载

着陆避障中双目立体匹配方法与仿真*

2018-07-12华宝成

空间控制技术与应用 2018年3期
关键词:立体匹配视差沙盘

刘 洋,王 立,华宝成,李 涛

0 引 言

为了提高深空探测器在危险区域的安全着陆能力,未来的着陆器势必要求具有一定的障碍规避能力.要达到障碍规避的效果,首先要对着陆区的障碍进行检测.相机相对于激光雷达有重量轻、成本低、成熟度高的优势,利用双目相机拍摄的图片采用匹配算法进行匹配,之后用三角测量原理得到稠密的数字高程图.根据高程图识别障碍找到最优着陆区可有效地降低着陆风险[1-2].

着陆过程中利用相机获得高程的方式主要有3种[3]:双目视觉法(stereo vision,SV)、基于运动的结构重建(structure from motion,SFM)和基于阴影的形貌重建(shape from shading,SFS).SV算法中2个相机以已知的基线长度安装在着陆器上,获得左右图后直接进行匹配;SFM算法与SV类似,但两幅输入图像不是在同一时间被两个不同的相机拍下,而是由一个相机在两个不同的时间拍下;SFS算法输入单幅图像,利用物体成像表面亮度的变化,参照表面反射特性或形状的附加约束,解析出物理表面矢量信息,转化得到表面深度信息[4].后续的研究表明SV算法更易于使用[3-5].美国喷气推进实验室对立体图像应用立体视觉算法,用SAD5(基于一个像素取5个重叠匹配窗口)作为代价函数来匹配计算得到高程图,从而进行斜坡估计和岩石探测[6];WOICKE等[5]也利用立体视觉的方式通过双目匹配得到高程图,进行着陆过程中的斜坡估计和粗糙度分析.双目立体匹配作为使用被动敏感器(即相机)进行着陆避障的重要步骤,对建立精准的稠密高程图有着重要作用.基于单目图像的避障已经在“嫦娥三号”任务中成功实施,我国火星探测任务也将考虑使用立体视觉等方式来获得着陆区域信息进行避障,针对地外天体着陆场景的特殊性,北京控制工程研究所正在积极研究适应于地外星体着陆任务要求的匹配方法.

双目匹配的方法可简要分为局部立体匹配和全局立体匹配.基于局部的立体匹配算法采用局部优化的理论方法进行视差估计,是在最大视差的范围内找出匹配代价最小的像素点作为目标匹配像素,利用局部信息求出匹配代价最小的像素点从而计算出视差.常见的算法有基于窗口灰度和非参数变换的立体匹配算法.基于全局的立体匹配算法使用全局约束来解决匹配问题,通常被描述为能量最小化问题,在其建立的能量函数中,除了数据项之外,还有平滑项.数据项主要是测量像素之间的相似性问题,而平滑项是平滑像素之间的视差关系,保证相邻像素之间视差的平滑性.全局立体匹配算法有:置信度传播算法、基于动态规划的全局立体匹配算法、基于图割的全局立体匹配算法等.在航天任务中由于硬件平台和处理时间的约束,匹配算法必须在保证实时性的基础上达到一定的精度.全局算法资源占用多且计算量大.从实时性的角度,本文选取几种局部立体匹配方法进行仿真和分析.

1 基于区域灰度的立体匹配方法

(1) 在极线对正的情况下,基于区域的代价计算是利用窗口内像素的灰度信息来进行代价计算,常见的代价计算方法有绝对误差之和(SAD)和差的平方和(SSD):

SAD:

(1)

SSD:

(2)

式中c(x,y,d)表示右图中(x,y)点在视差d下的匹配代价,W为像素点所在的窗口,I为像素灰度值.SAD比SSD计算复杂度低,使用较为广泛.为了解决遮挡、深度不连续、重复纹理等问题,除了固定窗口之外,还提出了可移动窗口法,多窗口法,变化窗口法等.在得到左右图对应像素所在窗口的所有代价值后,采用WTA(winner-take-all)的方法,在视差范围内选取匹配代价最优的点(如SAD为最小)作为对应的匹配点,得到对应的视差值.

(2) 但SAD仅应用像素灰度的方式容易受到左右相机拍到的图像光照条件不一致的影响,而这种情况在实际场景中经常发生.为了解决这个问题,对每个代价计算窗口减去窗口灰度均值

(3)

式中WR和WL分别表示右窗口和左窗口区域,AWR和AWL分别表示右窗口和左窗口中像素灰度的均值,I表示像素灰度.通过减去窗口像素灰度均值的方式可以让计算中的左右两个窗口处于同一灰度水平,一定程度上改善了算法的匹配效果.

(3) 对图像进行LOG滤波后,再用SAD的方式计算窗口的代价值.LOG算子源于D. Marr计算视觉理论中提出的边缘提取思想[7],即首先对原始图像进行最佳平滑处理,最大程度地抑制噪声,再对平滑后的图像求取边缘.对图像进行LOG滤波意在突出纹理信息,改善匹配效果.

2 非参数变换立体匹配方法

目前局部匹配的方法有很多,基本都集中于图像预处理、像素间相似性的评价以及最优匹配的选择.另外也提出一些后处理的方法来优化或改进结果.大部分的局部方法都着眼于通过不同的相似性评价方法来提高相对精度.在这些方法中,Census立体方法可以给出相对精确的结果,并且具有较好的鲁棒性能.同时,由于该算法大量应用按位计算的方法,所以也非常适用于在FPGA上实现[8-10].

2.1 Census变换

Census立体方法首先对左右图像进行Census变换.为了定义Census变换,首先定义一个函数ξ,它代表了中心像素P和它周围的像素P′之间的关系,I代表给定像素的灰度值

(4)

通过比较像素P和它周围方形窗口内灰度值的大小来计算得到,这些比较的结果组成一个简单的Census比特向量.对输入图像进行变换之后,对相关窗口计算Hamming距离之和.Hamming距离是两个向量间不同的比特个数,即对两个向量求异或,这种量化准则简单地评价了两个Census变换像素间的差异性.因此,所有Census方法的像素间差异表示为:

∑P′∈W(P)Hamming(C1(P′),C2(P′+d))

(5)

这里C1和C2表示两个Census变换的输入图像;d是水平向量,表示视差.Census变换和Hamming距离的求解如图1所示.

图1 Census变换和Hamming距离的求解Fig.1 Explanation of census transform andhamming distance

由于Census变换仅仅依赖于窗口内像素的相对强度,这种变换利用了强度的相对排序,一定程度上避免了辐射变形(radiometric distortion),由两个相机轻微的位置差异、渐晕(vegnetting)、辐射强度差异、图像噪声等,同时对立体图像对中的深度不连续处有较强的容忍能力.

一般来说选择的区域窗口越大,Census变换得到的向量越长,包含的信息量越大,需要更多的存储空间,例如窗口边长为T=5时,每个像素换算为一个24比特的向量,而边长为T=7时,每个像素的信息则需要48比特来存储.窗口大到一定程度会出现只增加计算量和资源占用量却没有大幅度改善匹配精度的情况,同时发现同等窗口大小时并不一定需要窗口内每个像素的比较结果.为了节省资源,提出了稀疏Census变换(sparse Census transform).

2.2 稀疏Census变换

思路与全Census变换相似.在该方法下只选择窗口内的一些点和中心像素进行比较.用来比较的点太少会影响匹配的效果,但根据文献[8],对于图2所示的变换方式,在代价聚合窗口为13*13时,图2的(a)(b)(c)能得到与全变换相当、甚至高于全变换的匹配精度.

图2 稀疏Census模板Fig.2 Sparse census transform examples

3 仿真测试

3.1 数据库图像测试

针对SAD经过LOG滤波的SAD、灰度规范化的SAD、全Census变换以及8-point Sparse Census变换这五种匹配算法,利用Middlebury提供的数据库中的图像(图3)测试和对左右图光照强度不一致的情况(图4)也进行了仿真,对应数据库中图像摩托车E.

将匹配得到的视差图和视差真实值进行比较,针对单个像素点,若当前点计算得到的视差与视差真实值中该点的视差的差值大于等于1,则该点记为误匹配点,统计误匹配点占总像素数的比例,从而得到各种算法对应的误匹配率.匹配错误率及计算用时如表1和表2及图5所示.运行平台为Inter(R) core(TM) i5-3470 CPU @3.20GHz, 3.47 GB的内存物理地址扩展.

表1 数据库图像匹配错误率Tab.1 Error rate of five algorithms in Middlebury College pictures test

表2 数据库图像匹配用时Tab.2 Time of five algorithms in Middlebury College pictures test/s

由上述匹配结果看出,SAD相比其他算法性能较差,在左右相机光照条件不一致的情况下几乎不能得到匹配正确的点;加了LOG滤波以及灰度规范化后的SAD算法的准确性得到提高,特别是改善了光照不一致时的匹配效果,如图摩托车E,匹配精度也能达到正常水平.Census算法的匹配准确性比SAD高出很多,由于算法本身的特性,其抗图像辐射不一致效果极佳;稀疏化后的Census变换也没有降低匹配精度,甚至在一些弱纹理场景(如:Recycle)下精度还会有小幅度的提升.从计算时间来看,LOG滤波后的SAD算法极大地缩减了计算时间,用时最少,实时性极佳.灰度规范化的SAD、sparse Census,这两种方法计算用时大致相当,全Census变换比前述方法用时多出一倍以上.

图3 数据库图像Fig.3 Middlebury college pictures

图4 摩托车EFig.4 Motorcycle E

图5 五种算法错误率及计算用时比较Fig.5 Error rate and time of five algorithms

3.2 沙盘图像测试

地外星体着陆避障任务中由于场景单一,图像纹理较弱,针对这种特殊应用场景,利用模拟沙盘图像对上述4种方法进行仿真,效果图如图6~11所示.

图6 沙盘拍图(原图)Fig.6 Sand table picture

图7 SAD匹配结果Fig.7 Disparity mapwith SAD

图8 LOG SAD匹配结果Fig.8 Disparity map with LOG SAD

图9 灰度规范化的SAD匹配结果Fig.9 Disparity map of Improved SAD (illumination normalization)

图10 全Census变换匹配结果Fig.10 Disparity map of Census transform

图11 8-points sparse Census变换匹配结果Fig.11 Disparity map of 8-points sparse Census transform

由于沙盘图像没有确切的视差真实值,所以上述匹配结果经过左右一致性比较来评价算法的性能,即左右图同名点的视差值不一致则该点视差值置零(即图中的黑色部分).简单认为视差不一致的点即为匹配错误点.统计上述放在在沙盘测试中的计算用时和误匹配率,如表3所示。

表3 沙盘测试中算法计算用时及误匹配率Tab.3 Error rates and time of five algorithms in sand table pictures test

4 结 论

本文针对航天应用场景横向比较了SAD和Census变换这两种匹配算法. SAD算法实时性很好,但匹配精度较低,且在左右图辐射情况不一致时匹配结果几乎全军覆没,故而提出窗口灰度规范化的改进SAD算法以及LOG滤波后的SAD,这两种方法一定程度上提高了算法的精度,而且加入LOG滤波后可相应缩短计算时间.但无论面对数据库中的场景还是地形模拟沙盘,基于SAD值的匹配算法精度还是显著低于Census变换加Hamming距离的匹配方式.Sparse Census变换和全Census变换精度相当,在适当地改变变换窗口后采用Sparse Census变换甚至会有更好的匹配效果,同时相比全Census变换,稀疏Census变换也很好地缩短了计算用时.综合算法精度和实时性要求,稀疏Census变换算法在行星着陆避障中有较好的适用性.

猜你喜欢

立体匹配视差沙盘
基于自适应窗的立体相机视差图优化方法研究
沙盘游戏
ERP电子模拟沙盘在高校创新创业教育中的应用
沙盘活动设计、实施和反思——以武夷山一中沙盘活动开展为例
基于梯度域引导滤波的视差精炼迭代算法
影像立体匹配中的凸优化理论研究
基于互补不变特征的倾斜影像高精度立体匹配
基于分割树的视差图修复算法研究
改进导向滤波器立体匹配算法
立体视差对瞳孔直径影响的研究