发明内容
本发明的目的是提供一种基于RGB图像边缘捕捉的深度图像修复方法,解决现有技术中利用深度相机获取的深度图像中存在黑色孔洞区域的技术问题。
为解决上述技术问题,本发明的技术方案如下:
一种基于RGB图像边缘捕捉的深度图像修复方法,包括以下步骤:
利用深度相机获取RGB图像和深度图像;
根据相机的成像模型和坐标转化关系建立所述RGB图像与所述深度图像的映射关系,获取RGB图像中每个像素点对应的深度值;
通过基于带权重的联合双边滤波和FMM算法对所述深度图像中的孔洞区域进行填补;
通过边缘捕捉算法将填补后的深度图像中边缘点的深度值替换为最优的所述RGB图像中边缘点对应的深度值,得到修复好的深度图像。
进一步的,所述深度相机包括RGB相机、红外发射器和红外相机,所述RGB获取所述RGB图像,所述红外发射器将预先设计好的激光散斑参考图案投影到物体表面,所述红外相机接收返回回来的结构光图案并利用所述结构光图案的位置和形变程度来计算物体表面空间信息,最后采用三角测距原理得到物体的深度图像。
进一步的,所述根据相机的成像模型和坐标转化关系建立所述RGB图像与所述深度图像的映射关系,包括:
式中,所述RGB相机在摄像机坐标系下的坐标为/>,空间中一点/>在RGB图像坐标系下的坐标为/>,点/>在深度图像坐标系下的坐标为/>;为所述RGB相机的内参,/>为所述红外相机的内参,/>为旋转矩阵,/>为平移矩阵,所述RGB相机的内参、所述红外相机的内参、旋转矩阵和平移矩阵通过棋盘格校准图像分别计算,/>为/>的深度数据,从深度图像中读取,其取值为离散值。
进一步的,通过基于带权重的联合双边滤波和FMM算法对所述深度图像中的孔洞区域进行填补,包括以下步骤:
通过基于带权重的联合双边滤波对所述深度图像进行滤波;
利用FMM算法对滤波后的深度图像中的孔洞区域进行填补。
进一步的,所述通过基于带权重的联合双边滤波对所述深度图像进行滤波,包括:
式中,为滤波后的深度图像,/>为所述深度图像,/>为空间域核函数,为值域核函数,/>为所述深度图像中的像素点坐标,/>为/>在所述RGB图像中对应的像素点的像素值,/>为所述深度图像的所有像素点,/>分别为所述深度图像和所述RGB图像的标准差,/>为权重图像:
式中,为所述深度图像中孔洞区域掩码图像,在孔洞区域内的权重为0,在非孔洞区域内的权重为1,/>为权重图像的标准差。
进一步的,所述利用FMM算法对滤波后的深度图像中的孔洞区域进行填补,包括以下步骤:
寻找所述滤波后的深度图像中的孔洞区域边界上的像素点并计算其法线方向,选择以/>为中心,/>为半径的区域/>对/>的深度值进行估计:
式中,为估计的/>的深度值,/>为区域/>中的点,/>表示所述滤波后的深度图像中像素点的权重值,/>为点/>的深度值,/>为点/>的梯度,/>为方向因子,为几何距离因子,/>为水平距离因子,/>、/>为距离参数,/>表示点s距离点/>所在边界的轮廓线的距离;
对所述滤波后的深度图像中的孔洞区域边界上的像素进行深度值估计后,得到新的孔洞区域边界,重复对孔洞区域边界上的像素进行深度值估计,直到将孔洞区域全部填充完毕,最终得到填补后的深度图像。
进一步的,所述通过边缘捕捉算法将填补后的深度图像中边缘点的深度值替换为最优的所述RGB图像中边缘点对应的深度值,包括以下步骤:
从所述填补后的深度图像中提取边缘点并计算其法线方向,沿该法线方向搜索对应的候选彩色边缘点,在定义了包括数据项和平滑项的损失函数后通过动态规划算法执行损失函数最小化确定每个边缘点的最佳候选点,最后根据边缘捕捉的输出结果修复深度图像。
进一步的,从所述填补后的深度图像中提取边缘点,包括以下步骤:
对所述填补后的深度图像中每一个像素点搜索以其为中心3×3范围的邻域,若在邻域范围内与/>点相邻的四个像素深度值与/>点深度值相差超过设定的阈值/>则将/>点视为边缘点;
然后根据所属物体不同,利用深度优先搜索算法对边缘点进行分组并在组内进行排序使得该组内所有边缘点连接起来构成的轮廓近似于同一物体的边界轮廓。
进一步的,所述计算其法线方向,包括以下步骤:
利用低通滤波器对每一组边缘点形成的边界轮廓进行滤波平滑后,使用两个相邻点计算每个边缘点的法线方向。
进一步的,所述沿该法线方向搜索对应的候选彩色边缘点,在定义了包括数据项和平滑项的损失函数后通过动态规划算法执行损失函数最小化确定每个边缘点的最佳候选彩色边缘点,包括以下步骤:
假设对边缘点,其候选彩色边缘点/>构成的点集为:
式中,为搜索距离;
利用Sobel 算子求得RGB 图像在RGB 空间的梯度:
RGB 图像在YCbCr色彩空间中图像的梯度:
利用RGB 图像在RGB 空间的梯度和在YCbCr色彩空间中图像的梯度,构成边缘点选择候选彩色边缘点/>的损失函数:
式中,为损失函数,/>、/>分别为RGB空间梯度和YCbCr色彩空间中图像的梯度的权重,/>为损失函数的标准差;
定义关于深度图像平滑度的损失函数:
式中,表示允许两个连续边缘点空间距离的最大阈值;
集合和/>,得到整体损失函数为:
式中,表示平滑度的损失函数的权重;
利用动态规划算法选择一条最佳的优化路径,定义一个维度为的矩阵/>,/>表示边缘点数量,将矩阵/>初始化为/>得到:
遍历边缘点,得到从候选彩色边缘点到/>的最佳路径:
在更新矩阵的同时记录候选彩色边缘点的下标/>,用于查找最佳候选彩色边缘点:
=/>。
与现有技术相比,本发明技术方案的有益效果是:
本发明首先消除了深度图像与RGB图像的位置偏移,在利用基于GPU的并行方法快速获取RGB图像中像素点的深度值后利用带权重的联合双边滤波和FMM算法对深度图像进行降噪和填充孔洞处理,最后利用并行计算的边缘捕捉算法将边界信息不明确的深度图像边缘点深度值替换为法线方向上最优的彩色图像边缘点对应的深度值,可以确保得到的深度图像具有平滑特征以及具有清晰、锐利的边缘特征。实验结果表明本文方法可对原始深度图像进行有效的实时降噪和孔洞填充处理,在不影响物体内部深度值的同时保留了准确的边缘特征,取得了优于联合双边滤波以及带权重的联合双边滤波算法的修复效果。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
本实施例提供一种基于RGB图像边缘捕捉的深度图像修复方法,如图1所示,包括以下步骤:
利用深度相机获取RGB图像和深度图像;
根据相机的成像模型和坐标转化关系建立所述RGB图像与所述深度图像的映射关系,获取RGB图像中每个像素点对应的深度值;
通过基于带权重的联合双边滤波和FMM算法对所述深度图像中的孔洞区域进行填补;
通过边缘捕捉算法将填补后的深度图像中边缘点的深度值替换为最优的所述RGB图像中边缘点对应的深度值,得到修复好的深度图像。
本实施例首先利用相机的成像模型和坐标转化关系建立RGB图像与深度图像的映射关系,快速获取RGB图像中每个像素点对应的深度值,其次通过基于带权重的联合双边滤波和FMM算法对深度图像中的孔洞区域进行填充修复,最后针对同一物体的RGB图像和深度图像边界特征相似的特点,通过边缘捕捉算法将深度图像边缘点的深度值替换为最优的RGB图像边缘点对应的深度值,实现了对深度图像边缘区域的孔洞填充以及与RGB图像的边界对齐。
实施例2
本实施例在实施例1的基础上,继续公开以下内容:
如图2所示,所述深度相机包括RGB相机、红外发射器和红外相机,所述RGB获取所述RGB图像,所述红外发射器将预先设计好的激光散斑参考图案投影到物体表面,所述红外相机接收返回回来的结构光图案并利用所述结构光图案的位置和形变程度来计算物体表面空间信息,最后采用三角测距原理得到物体的深度图像。
在本实施例中,深度相机获取的图像如图3所示,在图3(b)中,圆形框表示噪声,小长方形表示物体内部的孔洞区域,大长方形表示物体边界的孔洞区域,除此之外,也可观察发现,深度相机获取的RGB图像和深度图像之间存在微小的位置偏移,因此,需要对深度图像和RGB图像进行位置配准。
进一步的实施例中,深度相机中的红外相机和RGB相机都适用于针孔成像模型,如图4所示,世界坐标系下真实场景中某一点/>经RGB 相机在摄像机坐标系/>下的坐标为/>,/>经过RGB 相机成像后在成像平面坐标系/>下坐标为/>。图像坐标系/>以图像左上角为原点,/>轴、/>轴分别与/>的/>轴、/>轴平行,/>点在图像坐标系下坐标为/>。
世界坐标系可通过平移、缩放和旋转等操作变换到摄像机坐标系,设平移向量为,旋转矩阵为/>,其中/>、/>和/>分别代表世界坐标系到摄像机坐标系轴、/>轴和/>轴的旋转角度。/>与/>之间的坐标变换关系为:
(1)
由相似三角形原理,点在摄像机坐标系和成像平面坐标系的坐标关系如式(2)所示,转换到齐次坐标系下如式(3)所示:
(2)
(3)
根据图4所示的成像平面坐标系和图像坐标系的空间位置关系可以得到式(4),将其改为齐次坐标形式如式(5)所示:
(4)
(5)
其中,为成像坐标系中原点对应到图像坐标系的坐标,/>和/>为单个像素在成像坐标系中的实际尺寸,整合式(1)、(3)、(5)得到世界坐标系与图像坐标系的关系如式(6)所示:
(6)
其中,为摄像机内部参数,/>为摄像机外部参数。
由于深度相机中的IR 摄像头和RGB 摄像头都符合针孔成像模型,因此可利用棋盘格校准图像分别计算两个相机的内部参数。假定棋盘格图像放置在世界坐标系的平面,棋盘格图像上每一个角点有/>。对于棋盘格上的角点/>,由式(6)可计算得到:
(7)
其中,为缩放因子,/>为旋转矩阵,/>为平移矩阵。
存在单应性矩阵使棋盘格上角点/>映射到像素点/>,将式(8)带入式(7),可得到/>的表达式如式(10)所示。
(8)
(9)
(10)
在世界坐标系下建立一系列的点集,检测棋盘格图像中对应点的位置以及建立多个以单应性矩阵/>为未知数的方程即可求解出红外相机和RGB相机的内、外参数。
利用上述的标定方法可得到红外相机和RGB相机的内参和/>以及RGB 相机标定后相对于标定板的投影矩阵/>和深度相机经标定后相对于同一标定板的投影矩阵/>,则RGB 相机坐标系变换到深度相机坐标系之间的投影矩阵为/>如式(11)所示。
(11)
由于深度相机与RGB 相机在空间位置上存在一定偏移,同时如图3所示的深度图像缺失RGB 图像的边界信息。因此,为求解出深度图像与RGB 图像像素点之间的映射关系,需要根据式(6)和式(11)确定深度图像坐标系和RGB 图像坐标系的相对位置关系。假定空间中某一点在深度图像坐标系下坐标为/>,在RGB图像坐标系下的坐标为,由式(3)将像素点/>反投影到深度相机坐标系下中点/>:
(12)
为/>的深度深度数据,从深度图像中读取,利用RGB 相机坐标系变换到深度相机坐标系之间的投影矩阵/>可以得到在RGB 相机坐标系下的坐标点/>:
(13)
最后通过RGB 相机的内参将/>投影到 RGB 图像平面,进而得到 RGB图像中像素点与深度图像中像素点的映射关系:
(14)
进一步的实施例中,深度图像中的孔洞点包括随机的孔洞点和结构化的孔洞点,其中随机的孔洞点零散、孤立、点状分布在深度图像中,而结构化的孔洞点由两个或两个以上物理关系上连续的孔洞点集合构成。
图像在空间域的变化是缓慢进行的,但是在边缘区域像素变化较大,利用中值滤波、盒式滤波等处理边缘区域会产生边界模糊问题。因此在遇到边缘区域时应先根据像素点的值对其所属区域进行判定并为所属的邻域设置相对高的权重,在邻域内部进行加权求和。双边滤波是一种非线性滤波器,能够在降低噪声的同时保持图像的边缘特征。双边滤波利用高斯分布的加权平均方法对邻域周边像素进行加权平均,并用加权平均后的像素代表中心点像素。双边滤波像素中心点的权重由像素的欧氏距离即空域信息和像素范围内的辐射差异即值域信息组成。式(15)描述了双边滤波的计算方法,其中表示输入图像,/>代表滤波后图像。
(15)
双边滤波的核函数由空间域核函数与颜色相似核函数共同决定。在图像平坦区域空间域权重发挥主要作用,而在图像边缘区域,颜色相似权重起主要作用,像素变化越大则权重越大,从而能够保留图像的边缘特征。
联合双边滤波是对双边滤波的一种改进,其基本思想仍然是以空间域核函数和颜色相似核函数作为权重参数,但颜色相似核函数中使用额外图像提供值域信息。其计算表达式为:
(16)
深度相机能够实时获取深度图像和RGB图像,其中RGB图像细节丰富,包含真实有效的边缘,因此利用双边滤波算法处理深度图像可将RGB图像作为值域参考图像,保留更多有效的边缘信息。
联合双边滤波考虑到了空间域信息和颜色相似程度对深度图像的影响,但是在噪声多、物体边界像素变化程度大的情况下,联合双边滤波难以取得良好效果。利用带权重的联合双边滤波对深度图像进行降噪处理,并保留清晰正确的边缘信息,其计算方式为:
(17)
为权重图像。
若图像中所有像素点的权重都为1,则加权联合双边滤波算法等效于联合双边滤波算法。权重图像受像素深度值的影响,在具体实现中对具有可靠深度值的像素点设置较高的权重,对边缘附近的权重/>设置较低的权重。由于深度图像的孔洞区域是由该区域深度值失效造成的,因此该区域/>设置为 0。若不能忽略边界区域和孔洞区域,则这些不可靠的深度值将随着平滑滤波器进行扩散,对深度图细化产生不利影响。为此忽略物体边界和散斑区域的模糊区域,为每个像素生成一个权重值即生成权重图/>。在权重值计算过程中,将像素点根据是否位于对象边界周围、是否位于孔洞区域进行分类,分类的结果由权重值表示。在分类过程中有两个假设,首先如果邻域中心点像素和邻域附近点像素之间没有边界,则两个像素都位于同一个物体上,中心点像素的深度值和强度/颜色与附近点像素类似;其次邻域范围小的区域会产生散斑噪声。基于以上假设,得到附近点/>的权重值为:
(18)
其中,是孔洞区域掩码图像,孔洞区域内的权重为0,非孔洞区域权重设置为1。第一个假设是通过中心点像素和附近点像素之间的颜色和深度值的距离来计算的,第二个假设由孔洞区域掩码图像表示,掩码图像利用由孔洞区域的上限阈值/>和深度允许的差异范围/>两个参数组成的滤波器处理初始深度图像得到。孔洞检测滤波器通过邻域尺寸是否小于/>以及邻域内深度值范围是否大于/>来判断区域是否为孔洞,孔洞区域没有权重,其他区域/>置为1。带有权重图的加权双边滤波器可以忽略边界的深度值和孔洞区域、抑制边界模糊、校正图像边界以及减少深度图像噪声。
对原始深度图像利用改进的双边滤波算法可得到如图5的深度图像,从中可以看出在保留图像中物体边缘的同时,该算法将显示器、桌面以及背景中的随机孔洞点进行填充和平滑处理,但是对于区域较大的结构化孔洞点作用不明显。
基于权重图像的联合双边滤波能够对深度图像进行降噪处理并过滤掉深度图像中随机孔洞点,但是物体边缘区域仍存在大面积的孔洞点。利用FMM 算法可以修复区域损坏像素,其基本思想是利用邻域像素层层递进地处理损坏边缘的像素点直到修复区域内所有像素。如图6所示,在深度图像前景与背景的交界处存在不规则孔洞区域,利用FMM算法可对/>内部深度值缺失区域进行修复。
在修复时首先寻找所述滤波后的深度图像中的孔洞区域边界上的像素点并计算其法线方向/>,选择以/>为中心,/>为半径的区域/>对/>的深度值进行估计:
(19)
式中,为估计的/>的深度值,/>为区域/>中的点,/>表示所述滤波后的深度图像中像素点的权重值,/>为点/>的深度值,/>为点/>的梯度,/>为方向因子,表示在/>内,越靠近法向量的像素点对/>点深度值修复贡献越大;/>为几何距离,表示在/>内,距离/>点越近的像素点贡献越大,/>为水平距离因子,表示了距离点轮廓线近的像素点贡献值更大,/>、/>为距离参数,一般情况下,/>,表示点s距离点/>所在边界的轮廓线的距离;
对所述滤波后的深度图像中的孔洞区域边界上的像素进行深度值估计后,得到新的孔洞区域边界,重复对孔洞区域边界上的像素进行深度值估计,直到将孔洞区域全部填充完毕,最终得到如图7所示的填补后的深度图像。
进一步的实施例中,在经过深度图像与RGB图像的位置配准、对深度图像执行带权重的联合双边滤波与FMM算法修复后,深度图像中的大量深度值缺失区域已被修复,但是其边缘信息无法与RGB图像准确对应。本节利用边缘捕捉算法将深度图像边缘与RGB图像边缘进行精准对齐。首先从深度图像中提取边缘点并计算其法线方向,沿该方向搜索对应的候选彩色边缘点,在定义了包括数据项和平滑项的能量函数后通过动态规划算法执行能量函数最小化确定每个边缘点的最佳候选点,最后根据边缘捕捉的输出结果修复深度图像。
深度图像中物体边缘点是局部邻域表现出较大差异的点,利用其深度值不连续的性质可在深度图像中进行检测。首先对修复后的深度图像中每一个像素点搜索以其为中心3×3范围的邻域,若在邻域范围内与/>点相邻的四个像素深度值与/>点深度值相差超过设定的阈值/>则将/>点视为边缘点。然后根据所属物体不同,利用深度优先搜索算法对边缘点进行分组并在组内进行排序。在对边缘点分组时随机选取起始边缘点,判断边缘点/>是否满足位于边缘点/>的3×3 邻域范围内且两个像素之间的深度值相差小于阈值/>的搜索条件,若满足则判定边缘点/>和/>属于同一组,否则判定两个像素点不属于同一组。对每一组边缘点进行重新排序使得所有边缘点连接起来构成的轮廓近似于同一物体的边界轮廓,后续所有操作均以组为单位进行,图8示出了边缘点分组结果,其中不同颜色的轮廓线代表不同组的边缘点集合。
边缘捕捉算法的基本思想是沿边缘点的二维法线方向搜索候选边缘点,因此在将每一组的边缘点进行排序后需要计算边缘点的法线方向。由于原始深度边缘构成了锯齿形图案,在此基础上计算出的边缘点法线误差过大。为此利用低通滤波器对边缘点位置进行滤波平滑其位置并使用两个相邻点计算每个边缘点的法线。低通滤波器只用于计算边缘点法线,后续对边缘点的搜索仍然以锯齿状分布的原始边缘点为准。
由于缺少彩色边缘点对于深度边缘点的相对位置关系等候选区域的先验信息,因此对每一个深度边缘点在其法线方向和法线反方向分别搜索距离内所有RGB 图像边缘点并将其作为候选点集合,假设对边缘点/>,其候选彩色边缘点/>构成的点集为:
(20)
深度图像边缘与RGB 图像的边缘具有相同的边界特征,在空间位置上距离较近且RGB 图像边缘具有较高的梯度。因此,利用Sobel 算子求得RGB 图像在RGB 空间的梯度:
(21)
考虑到在RGB 颜色空间中物体的边缘并不一定是梯度较高的区域,因此,需要额外增加RGB 图像在YCbCr色彩空间中图像的梯度:
(22)
利用RGB 图像在RGB 空间的梯度和在YCbCr色彩空间中图像的梯度,构成边缘点选择候选彩色边缘点/>的损失函数:
(23)
式中,为损失函数,/>、/>分别为RGB空间梯度和YCbCr色彩空间中图像的梯度的权重,/>;
为了平滑深度图像,相邻的深度边缘点和/>对应的候选点/>和/>在空间位置上也应该相邻。因此定义关于深度图像平滑度的损失函数:
(24)
式中,表示允许两个连续边缘点空间距离的最大阈值;
集合和/>,得到整体损失函数为:
(25)
式中,表示平滑度的损失函数的权重;
式(25)描述了一个离散优化问题,利用动态规划算法选择一条最佳的优化路径,定义一个维度为的矩阵/>,/>表示边缘点数量,将矩阵/>初始化为/>得到:
(26)
遍历边缘点,得到从候选彩色边缘点到/>的最佳路径:
(27)
在更新矩阵的同时记录候选彩色边缘点的下标/>,用于查找最佳候选彩色边缘点:
=/>(28)
实施例3
为了验证实施例1和实施例2提出的深度图像修复方法的有效性,本实施例首先介绍了深度相机的标定结果,然后对比经联合双边滤波、改进联合双边滤波和本发明实施例方法处理后深度图像的图像修复结果,最后对实验结果进行不同指标的定量评估。
深度相机的RGB 相机使用张正友标定法进行标定,深度图像由于只含有深度信息,无法用于检测棋盘格的角点,因此红外相机拍摄的图片可用于标定深度相机。在标定开始前自制了单元格尺寸25×25mm的棋盘格标定板,利用ORBBEC 相机的RGB 相机和红外相机同时拍摄了不同位姿的棋盘格图片。
利用MATLAB 软件的双目标定工具箱标定了RGB相机和红外相机,设置径向畸变参数为2并勾选切向畸变Skew 和Tangential Distortion,标定成功后两个相机的参数如表1所示。
表1 RGB 摄像头和IR 摄像头标定结果
深度图像修复效果采用如表2所示的实验环境配置信息进行验证。首先利用ORBBEC 相机采集了如图9(a)与图9(b)所示的RGB 图像和原始深度图像,其分辨率均为640×480。从中可以看出原始深度图像在位置上与 RGB 图像存在一定偏移,且包含大量深度值为0 的像素点构成的孔洞区域。
表2 深度图像修复过程实验环境配置信息
在实验中分别利用联合双边滤波、带权重的联合双边滤波以及本实施例方法对原始深度图像进行降噪和修复处理,实验结果如图9所示,从中可以看出联合双边滤波(图9(c))和带权重的联合双边滤波(图9(d))都具有良好的降噪效果,可填补原始深度图像中少量的孔洞区域,但同时也将噪声扩散到物体边界区域,导致边界模糊。图9(e)展示了本实施例图像修复算法的结果,从中可以看出与联合双边滤波和带权重的联合双边滤波方法相比,本实施例方法在对深度图像降噪的同时填充了大量孔洞区域,以RGB图像为参考将深度图像边缘点与彩色图像边缘点进行对齐处理,得到了具有平滑特征且边缘清晰准确的深度图像。
为了对深度图像修复算法的性能进行定量分析,本实施例比较了联合双边滤波、带权重的联合双边滤波以及本文方法的图像处理时间、均方根误差(Root Mean SquareError,RMSE)和峰值信噪比(Peak Signal to Noise Ratio,PSNR),比较结果如表3所示。从中可以看出,与联合双边滤波和带权重的联合双边滤波相比,本实施例方法虽然处理时间较长,但是通过并行处理可以保证实时性;同时本实施例方法得到的RMSE更小,PSNR更大,表明经过本实施例方法处理的深度图像失真更少,图像修复效果更好。
表3深度图像修复算法定量分析结果
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。