本发明属于图像处理和计算机视觉领域,涉及多模态双目视差估计及置信度计算,并对多波段传感器获得的视差信息进行融合及计算深度。具体涉及一种置信度计算方法及多波段立体相机的视差图像融合方法。
背景技术:
基于可见光波段的双目立体视觉技术发展较为成熟,可见光成像具有丰富的对比度、颜色、形状信息,因而可以准确、迅速的获得双目图像之间的匹配信息,进而获取场景深度信息。但可见光波段成像存在其缺陷,如在强光、雾雨雪天气或夜晚,其成像质量大大下降,影响匹配的精度。因此利用不同波段信息源的互补性建立多波段立体视觉系统,是实现特殊环境下空间三维重构的一种有效途径。如利用可见光波段双目相机与红外波段双目相机构成多波段立体视觉系统,利用红外成像不受雾雨雪、光照影响优势,弥补可见光波段的成像不足,从而获取更完整、精确的深度信息。
多波段信息互补系统中,对多波段信息进行融合获取最终深度信息较为关键。目前,对红外与可见光波段构成的多波段立体成像系统的研究与应用较为常见。如佟颖博士,将红外与可见光信息在二维图像层面进行融合,以红外波段信息对缺失的可见光波段信息进行修补、增强,再以生成的融合图像为基础进行立体匹配和三维重构(《基于红外与可见光图像融合的三维重构若干关键技术研究》[d],天津大学,2015)。由于双目深度估计的关键步是根据像素强度及像素间相对位置信息获取左图l中的每一个像素在右图r中的位置,即双目匹配信息,且双目图像对应像素之间需满足严格的几何关系,才能根据双目匹配信息得到双目深度信息。而上述在二维图像层面对可见光图像与红外图像进行融合的方法,尽管恢复了图像的大致结构与像素强度信息,但融合过程中的误差及不确定性因素,会改变匹配像素对之间的几何关系,另外,由于融合的不确定性因素导致像素强度的微小改变及局部结构的微小变动会导致对应像素点间匹配代价变大,对匹配精度造成影响。
另外一个较主流的多波段信息融合方式为对多波段获得的点云信息融合,即利用红外双目图像与可见光双目图像,以及红外双目相机标定数据与可见光标定数据,分别生成红外波段与可见光波段对应的点云,再借助红外与可见光机组之间的刚性变换及各类点云配准、融合算法探索多波段双目点云融合。(《红外与可见光三维点云融合算法研究》)。上述方法对不同波段双目相机分别进行匹配,再根据匹配结果将图像映射为三维信息,在点云层面上进行融合,大大提高了计算量以及资源消耗,难以应用于实际产品。
本发明提出一种置信度计算方法和一种多波段视差信息融合方法,在各波段图像立体匹配过程中获得每个像素的置信度信息,各波段双目相机分别获取各自带置信度的视差信息后,直接在二维的视差图上根据置信度进行融合,再根据融合后的视差图计算深度信息。置信度信息在双目视差估计过程中获得,根据单波段双目图像直接获取视差,避免了波段间图像融合引入的匹配误差,且置信度信息由中间变量获得,未添加额外计算开销。另外,深度信息融合无需二维到三维之间的转换以及投影映射优化等操作,相较于在点云信息上做融合,大大提高了效率。
技术实现要素:
本发明旨在克服现有技术的不足,提供了一种针对多目、多波段相机全天候深度估计过程的视差融合方法,即利用不同波段双目相机得到各自对应的场景视差,将不同模态下传感器获得的视差图基于置信度策略进行融合,获得全天候、更完整、更精确的深度信息。
本发明的技术方案:
一种多波段立体相机的视差图像融合方法,步骤如下:
1、标定多波段双目相机各自的内部、外部参数。内部参数包括焦距、光心;外部参数包括旋转、平移。将不同波段双目相机输出的双目图像校正为平行等位关系。
2、对多波段双目相机之间进行联合标定,获取不同波段设备间的位置关系参数,包括旋转、平移。
3、对多波段双目相机之间进行配准,得到不同波段设备采集的图像间对应像素的坐标转换矩阵,即单应性矩阵。
4、根据全局匹配算法sgm(semi-globalmatching)方法进行双目图像间的匹配,获取多波段双目图像各自的代价图。根据代价图计算每个像素点的置信度以及视差,获得带置信度的视差图。
5、根据置信度、旋转与平移参数、单应性矩阵将两个模态下相机获得的视差图进行融合,获得更完整、精确的深度图。根据标定参数及三角测量原理,计算融合后的视差对应的深度图。
本发明的有益效果是:本发明基于多波段双目深度估计,提出了一种对不同波段设备获取的视差图进行融合的策略,以达到不同波段设备优势互补。本发明具有以下优势:
(1)本发明提出一种利用双目视差估计的中间输出获取像素视差置信度信息的方法,该置信度信息可用于判断该位置视差可信度,辅助视差融合。置信度获取过程充分利用计算的中间输出,可方便嵌入到传统视差估计过程中,计算效率高,简洁易操作。
(2)本发明提出一种多波段立体相机视差融合方法。参与融合的视差图是根据对应波段双目图像获得,充分利用了每个波段信息,同时避免引入不确定性及误差。根据置信度对视差进行融合的策略,可选取各波段的准确信息,达到多波段设备优势互补目的。
附图说明
图1为方案的整体流程图;
图2为视差估计模块的详细流程;
图3为能量传播对代价分布的影响示意图;
图4为视差融合模块的详细流程;
图5为视差融合后的效果图。
具体实施方式
本发明基于多波段传感器设备及双目视差估计方法,对基于多模态设备得到的视差图进行融合,再根据三角测量原理与融合后的视差计算距离信息,以利用不同波段设备在不同环境下的成像优势。以一对可见光双目相机与一对红外双目相机的深度估计为例,具体实施方案如下:
图1为方案的整体流程。
一、标定及联合标定模块具体操作如下:
1.分别对可见光双目相机及红外双目相机进行每个镜头的标定及各自系统的联合标定
1.1利用张正友标定法对每台红外相机、可见光相机分别进行标定,获得每台相机的焦距、主点位置等内部参数和旋转、平移等外部参数。
1.2对可见光双目相机进行联合标定,获得双目相机系统两台相机之间的旋转、平移等外部参数。对红外双目相机进行联合标定,获得红外双目系统两台相机之间的旋转、平移等外部参数。根据双目相机系统各自的外参对输出图像对进行校正,使同一部双目相机系统输出的双目图像满足平行等位关系。
2.对可见光双目相机系统和红外相机系统之间进行联合标定及配准
2.1利用张正友标定法对可见光双目系统的左镜头与红外双目系统的左镜头进行联合标定,获得可见光及红外相机之间的旋转、平移外部参数。
2.2用两对双目相机同时拍摄棋盘格在不同平面内的图像,利用联合标定获得的rt及检测的棋盘格角点计算同一平面在可见光图像与红外图像中的位置关系,用单应性矩阵h表示。
二、视差估计模块具体流程如图2,具体操作如下:
1采用高斯滤波算法对输入图像进行降噪滤波处理。高斯滤波窗口权值由高斯函数(式1)决定。
其中(x,y)是点坐标,σ是标准差。通过对高斯函数离散化,得到权值矩阵,即为高斯滤波器。
经过高斯滤波处理,能够有效的抑制噪声,平滑图像。防止噪声造成后续的匹配误差。
2对输入图像进行匹配,获得视差及置信度。立体匹配主要分为以下过程:代价计算,代价聚合,置信度计算,视差计算。
2.1首先进行初始代价计算。这里以基于census特征的滑动窗口匹配为例描述匹配代价计算流程。
获取每个像素的census特征描述子。利用滑动窗口,在扫描线上进行搜索,计算每个像素可能视差对应的代价(式2):
式中hd(·)表示汉明距离,censusl、censusr为分别为左图、右图像素的census特征描述子。代价计算的输出为高(h)×宽(w)×最大视差(d)大小的张量,即代价图。
2.2在初始代价图上做能量传播。获得能量图。能量描述如下:
其中c(p,dp)为p位置处当视差为dp时的代价,t[·]为指示函数,输入满足[]内条件时输出为1,否则为0。p1、p2为惩罚项。dq为q位置处的视差值。
根据式4,依据图像全局结构,从多个方向向中心像素传递周围像素代价分布信息:
lr(p,d)为p位置处视差为d时的聚合能量,r为传递方向。
能量传播后得到高(h)×宽(w)×最大视差(d)大小的张量,即能量图。以上到下(tb)、左上到右下(ltb)、左到右(lr)、右到左(rl)四个方向依次进行能量传播为例,能量传播过程中某个像素的代价曲线变化如图3。
2.3根据能量传播图,对每个像素位置找到最小能量对应的视差,即为该像素的整数视差d(x,y)。
energy(·)为聚合后能量。
2.4利用能量图与整像素视差图计算亚像素级视差图。
三、置信度计算
在双目视差计算过程中,由能量图信息可根据多种置信度策略计算每个像素视差的置信度信息,将置信度信息编码为二进制串,与视差串联,以节省存储空间。本发明提出一种置信度计算策略,具体操作如下:
1对能量图中每个像素对应的代价向量进行搜索,得到每个像素对应的最小代价costmin及其对应的视差dmin、次小代价costsecmin及其对应的视差dsecmin;
2计算两个视差之差绝对值:
abs2dis=|dmin-dsecmin|(6)
3计算两个能量值之间的比值:
rate2energy=costmin/costsecmin(7)
4判断两个量的大小关系。当abs2dis=thresh1时,若rate2energy<thresh2,则置信度置1,否则置0;当abs2dis>thresh1时,若rate2energy<thresh13,则置信度置1,否则置0。其中thresh1、thresh2、thresh3由统计获得,事先存储于硬件中。
四、对获取的视差图进行滤波操作,去除无效视差。
首先对图像进行斑点滤波,去除视差图中的异常值。
p(x,y)为(x,y)位置处的视差值,t与t1为阈值,由实验统计获得,实现存于硬件中,t[·]为指示函数,输入满足[]内条件时输出为1,否则为0。ω(x,y)为以(x,y)为中心的局部区域。
再对视差图进行中值滤波,p(x,y)=median(i,j)∈ω(x,y)(p(i,j))(9)
五、视差融合模块具体操作如下:
1.根据单应性矩阵h,可见光及红外系统之间的平移和旋转位置关系、两位置信度标记位对可见光双目相机获得的视差图disparityvis及红外双目相机获得的视差图disparityir进行融合,具体操作如下:
1.1以disparityvis为基准,根据单应性矩阵计算出每个位置对应的disparityir的坐标,disparityvis上某像素点pvis与disparityir上与pvis匹配的像素点pir坐标对应关系如下:
pvis=h·pir(10)
其中h为红外视差图映射到可见光视差图的单应性矩阵。
1.2判断匹配点对对应位置的视差值及置信度值。若pvis与pir对应位置的视差值均为0,则不进行处理,视差融合结束;若其中一个为0,则用非0一方填补disparityvis对应位置的值,进行1.3步;若两者皆不为0,则判断pvis与pir对应位置置信度,选择置信度大的对disparityvis对应位置进行填充,进行1.3步。
1.3首先将pir位置(对应像素坐标系下坐标表示为(uir,vir))对应的视差值dir变换到可见光双目相机坐标系下对应的视差值dvis,再对pvis位置(对应像素坐标系下坐标表示为(uvis,vvis))进行填充。红外设备对应相机坐标系下位置pir处坐标表示为(xir,yir,zir)。
将pir转换到红外相机坐标系下:
其中(cuir,cvir)为红外设备基准图像的主点位置。bir与fir分别为红外设备的基线长与焦距。dir为pir位置对应视差值;
再根据可见光系统与红外系统的位置关系,将pir转换到可见光相机坐标系下:
[x′vis,y′vis,z′vis]t=r·[xir,yir,zir]t t
(x′vis,y′vis,z′vis)为红外设备相机坐标系下的点pir转换到可见光设备相机坐标系下的坐标。;r为红外与可见光相机坐标系之间的旋转关系量,t为红外与可见光相机坐标系之间的平移关系量。
其中(cuvis,cvvis)为可见光设备基准图像的主点位置,。bvis与fvis分别为可见光设备的基线长与焦距。,dz_vis为根据z′vis坐标所得视差值,z′u_vis为根据x′vis坐标所得深度,z′v_vis为根据y′vis坐标所得深度。
由式12可得:
所以由式13可得视差:
其中,du_vis为根据x方向关系所得视差值,dv_vis为根据y方向关系所得视差值,dz_vis为根据z方向关系所得视差值;
计算pvis位置处应填入的视差值:
dvis=α·du_vis β·dv_vis γ·dz_vis(15)
其中α β γ=1,α、β、γ由实验获得。
将dvis填入pvis位置。
最后根据融合的视差计算深度图,视差与深度的关系公式如下:
其中b为基线长,f为焦距,z为深度,d为视差。
1.一种多波段立体相机的视差图像融合方法,其特征在于,包括下列步骤:
1、标定多波段双目相机各自的内部、外部参数;内部参数包括焦距、光心;外部参数包括旋转、平移;将不同波段双目相机输出的双目图像校正为平行等位关系;
2、对多波段双目相机之间进行联合标定,获取不同波段设备间的位置关系参数,包括旋转、平移;
3、对多波段双目相机之间进行配准,得到不同波段设备采集的图像间对应像素的坐标转换矩阵,即单应性矩阵;
4、根据全局匹配算法sgm方法进行双目图像间的匹配,获取多波段双目图像各自的代价图;根据代价图计算每个像素点的置信度以及视差,获得带置信度的视差图;
5、根据置信度、旋转与平移参数、单应性矩阵将两个模态下相机获得的视差图进行融合,获得更完整、精确的深度图;根据标定参数及三角测量原理,计算融合后的视差对应的深度图。
2.根据权利要求2所述的一种多波段立体相机的视差图像融合方法,其特征在于,全局匹配算法sgm方法的具体过程如下:1.1首先进行初始代价计算;当利用基于census特征的滑动窗口匹配时,过程为:
获取每个像素的census特征描述子,利用滑动窗口,在扫描线上进行搜索,计算每个像素可能视差对应的代价:
式中hd(·)表示汉明距离,censusl、censusr为分别为左图、右图像素的census特征描述子;代价计算的输出为高×宽×最大视差大小的张量,即代价图;
1.2在初始代价图上做能量传播,获得能量传播图;能量描述如下:
其中,c(p,dp)为p位置处当视差为dp时的代价,t[·]为指示函数,输入满足[]内条件时输出为1,否则为0;p1、p2为惩罚项;dq为q位置处的视差值;
根据式(4),依据图像全局结构,从多个方向向中心像素传递周围像素代价分布信息:
lr(p,d)为p位置处视差为d时的聚合能量,r为传递方向,i与k分别表示p位置处、p-r位置处视差值i、k;
能量传播后得到高×宽×最大视差大小的张量,即能量传播图;
1.3根据能量传播图,对每个像素位置找到最小能量对应的视差,即为该像素的整数视差d(x,y);
其中,energy(·)为聚合后能量;
1.4利用能量传播图与整像素视差图计算亚像素级视差图。
3.根据权利要求1或2所述的一种多波段立体相机的视差图像融合方法,其特征在于,置信度计算方法具体如下:
2.1对能量传播图中每个像素对应的代价向量进行搜索,得到每个像素对应的最小代价costmin及其对应的视差dmin、次小代价costsecmin及其对应的视差dsecmin;
2.2计算两个视差之差绝对值:
abs2dis=|dmin-dsecmin|(6)
2.3计算两个能量值之间的比值:
rate2energy=costmin/costsecmin(7)
2.4判断abs2dis和rate2energy的大小关系:当abs2dis=thresh1时,若rate2energy<thresh2,则置信度置1,否则置0;当abs2dis>thresh1时,若rate2energy<thresh13,则置信度置1,否则置0;其中thresh1、thresh2、thresh3由统计获得,事先存储于硬件中。
4.根据权利要求书1或2所述的一种多波段立体相机的视差图像融合方法,其特征在于,视差融合方法是根据单应性矩阵h,a波段双目系统与b波段双目系统之间的平移和旋转位置关系、两位置信度标记位对a波段双目系统获得的视差图disparitya及b波段双目系统获得的视差图disparityb进行融合,具体操作如下:
3.1以disparitya为基准,根据单应性矩阵计算出每个位置对应的disparityb的坐标,disparitya上某像素点pa与disparityb上与pa匹配的像素点pb坐标对应关系如下:
pa=h·pb(10)
其中,h为b波段获得的视差图映射到a波段获得的视差图的单应性矩阵;
3.2判断匹配点对对应位置的视差值及置信度值:若pa与pb对应位置的视差值均为0,则不进行处理,视差融合结束;若其中一个为0,则用非0一方填补disparitya对应位置的值,进行步骤3.3;若两者皆不为0,则判断pa与pb对应位置置信度,选择置信度大的对disparitya对应位置进行填充,进行步骤3.3;
3.3首先将pb位置对应的视差值db变换到a波段双目相机坐标系下对应的视差值da,再对pa位置进行填充;b波段系统对应相机坐标系下位置pb处坐标表示为(xb,yb,zb);其中,pb位置对应像素坐标系下坐标表示为(ub,vb),pa位置对应像素坐标系下坐标表示为(ua,va);
将pb转换到b相机坐标系下:
其中,(cub,cvb)为b设备基准图像的主点位置;bb与fb分别为b设备的基线长与焦距,zb为pb处z方向坐标,db为pb位置对应的视差值;
再根据a波段系统与b波段系统的位置关系,将pb转换到b波段系统相机坐标系下:
[x′a,y′a,z′a]t=r·[xb,yb,zb]t t
(x′a,y′a,z′a)为b波段设备相机坐标系下的点pb转换到a波段设备相机坐标系下的坐标;r为b设备与a设备相机坐标系的旋转关系量,t为b设备与a设备相机坐标系的旋转关系量;
其中,(cua,cva)为a设备基准图像的主点位置,ba与fa分别为a设备的基线长与焦距,z′u_a为由x′a坐标所得深度值,z′v_a为y′a坐标所得深度值,dz_a为根据z′a坐标所得视差值;
由式(12)得:
所以由式(13)得视差:
其中,du_a为根据x方向关系所得视差值,dv_a为根据y方向关系所得视差值,dz_a为根据z方向关系所得视差值;
计算pa位置处应填入的视差值:
da=α·du_a β·dv_a γ·dz_a(15)
其中α β γ=1,α、β、γ由实验获得;
将da填入pa位置。
5.根据权利要求书3所述的一种多波段立体相机的视差图像融合方法,其特征在于,视差融合方法是根据单应性矩阵h,a波段双目系统与b波段双目系统之间的平移和旋转位置关系、两位置信度标记位对a波段双目系统获得的视差图disparitya及b波段双目系统获得的视差图disparityb进行融合,具体操作如下:
3.1以disparitya为基准,根据单应性矩阵计算出每个位置对应的disparityb的坐标,disparitya上某像素点pa与disparityb上与pa匹配的像素点pb坐标对应关系如下:
pa=h·pb(10)
其中,h为b波段获得的视差图映射到a波段获得的视差图的单应性矩阵;
3.2判断匹配点对对应位置的视差值及置信度值:若pa与pb对应位置的视差值均为0,则不进行处理,视差融合结束;若其中一个为0,则用非0一方填补disparitya对应位置的值,进行步骤3.3;若两者皆不为0,则判断pa与pb对应位置置信度,选择置信度大的对disparitya对应位置进行填充,进行步骤3.3;
3.3首先将pb位置对应的视差值db变换到a波段双目相机坐标系下对应的视差值da,再对pa位置进行填充;b波段系统对应相机坐标系下位置pb处坐标表示为(xb,yb,zb);其中,pb位置对应像素坐标系下坐标表示为(ub,vb),pa位置对应像素坐标系下坐标表示为(ua,va);
将pb转换到b相机坐标系下:
其中,(cub,cvb)为b设备基准图像的主点位置;bb与fb分别为b设备的基线长与焦距,zb为pb处z方向坐标,db为pb位置对应的视差值;
再根据a波段系统与b波段系统的位置关系,将pb转换到b波段系统相机坐标系下:
[x′a,y′a,z′a]t=r·[xb,yb,zb]t t
(x′a,y′a,z′a)为b波段设备相机坐标系下的点pb转换到a波段设备相机坐标系下的坐标;r为b设备与a设备相机坐标系的旋转关系量,t为b设备与a设备相机坐标系的旋转关系量;
其中,(cua,cva)为a设备基准图像的主点位置,ba与fa分别为a设备的基线长与焦距,z′u_a为由x′a坐标所得深度值,z′v_a为y′a坐标所得深度值,dz_a为根据z′a坐标所得视差值;
由式(12)得:
所以由式(13)得视差:
其中,du_a为根据x方向关系所得视差值,dv_a为根据y方向关系所得视差值,dz_a为根据z方向关系所得视差值;
计算pa位置处应填入的视差值:
da=α·du_a β·dv_a γ·dz_a(15)
其中α β γ=1,α、β、γ由实验获得;
将da填入pa位置。
技术总结