双尺度顺序填充的深度图像修复
2022-08-09陈东岳朱晓明马腾宋园园贾同
陈东岳,朱晓明,马腾,宋园园,贾同
东北大学信息科学与工程学院,沈阳 110819
0 引 言
3维视觉(three dimensional vision, 3DV)是图形学、计算机视觉和图像处理相互交叉的一个重要研究方向,广泛应用于场景建模、人机交互、工业产品测量、无人驾驶汽车和智能移动机器人等领域。深度图像作为感知、表征和存储3维信息的一种基本数据形式,广泛应用于各类3D(three dimensional)感知和建模方法。深度图像的准确性和完整性在很大程度上决定了3D点云和网格模型的质量。然而在具体应用中,无论使用多视角、结构光、TOF(time of flying)或激光扫描,在捕获的深度图像中都不可避免地会出现一些孔洞,这严重影响了3D重建的性能。因此,深度图像孔洞填充一直是3DV领域的一个关键问题。由于标签信息的缺失、孔洞位置和大小的不确定性以及对实时性能的高要求,深度图像孔洞填充目前仍然是一个未得到充分解决的开放性课题。现有的深度图像修复方法主要有3种思路:滤波、顺序填充和局部优化。
滤波方法通常使用滤波函数的输出预测孔洞区域无效点的深度值。典型算法包括多模式联合滤波算法和时空滤波算法。前者采用彩色图像与深度图像的双边联合滤波。典型的有:Min等人(2012)提出的基于联合直方图的加权滤波;Kopf等人(2007)提出的联合双边上采样方法;李应彬等人(2013)提出的利用直方图生成孔洞掩膜的双边滤波算法。后者基于无效点周围的时空邻域进行滤波实现深度预测。Matyunin等人(2011)利用视频对象的运动和颜色信息对深度图进行修复;林玲等人(2019)提出了在前期加入卡尔曼滤波对跳变进行处理的解决方案。滤波方法快速、简便,但通常只适用于类似于噪声点的面积较小的孔洞。对于比较大的孔洞,无论是放大滤波器窗口还是采用迭代滤波策略,都无法保证算法的准确性、可靠性和计算成本。
顺序填充法的代表性工作是快速行进法(fast marching method,FMM)(Telea,2004),根据到种子区域的快速行进距离对所有孔洞区域无效点进行排序,并根据其邻域的距离加权平均值进行填充。尽管可以通过引入基于颜色的权重作为指导来改进FMM(Gong等,2013),但是当边界附近的无效点在其邻域未完全处理之前被预先填充时,FMM往往会增加虚假边缘。此外,快速行进距离的更新非常耗时。
局部优化的基本思想是找到一种面向能量函数优化的局部填充模式。最常用的局部优化算法是低秩矩阵补全,比较经典的有Lee等人(2014)提出的可以自适应减少迭代步长的ADMiRA(atomic decomposition for minimum rank approximation)。低秩矩阵补全这类方法对直线区域补全效果较高,但对曲线形状孔洞的填充效果无法令人满意。局部优化方法中,比较典型的有马尔可夫随机场(Harrison和Newman,2010)和采取混沌粒子群优化的马尔可夫方法(曾祥进和卢成,2013)。此外,Liu和Gong(2013)和郑传远等人(2016)也尝试将各向异性扩散用于深度图像修复。基于马尔可夫随机场和各向异性扩散的一些研究工作也属于局部优化法,但上述算法的修复结果通常带有毛刺和边缘模糊。
基于以上分析,本文在彩色图像和深度图像联合修复的假设下,主要面向具有较大面积的深度图像孔洞,将基于最大似然估计的局部优化方法融入基于条件熵的顺序填充框架中,通过对正常像素和超像素两个尺度上的深度预测结果的融合实现深度图像修复。本文具体贡献可概括为如下两点:1)基于条件熵在像素和超像素两个尺度上的快速逼近,提出一种填充优先级估计的新算法,用于生成更加合理的填充顺序;2)提出基于最大似然估计的深度值优化算法来填充无效点。通过在顺序填充框架下对上述两点进行整合,最终提出并实现了深度图像的准确快速恢复。
1 算 法
大多数深度图像修复算法在实际应用中对实时性要求较高。相比于其他类型方法,顺序填充方法由于仅需要对每个无效点处理一次,在计算速度上具有明显优势。因此本文采用顺序填充作为基本框架,将孔洞区域像素称为无效点,其他像素称为有效点,以无效点的填充优先级估计和深度值预测作为核心内容。算法框架如图1所示。
图1 顺序填充框架流程图Fig.1 Flow chart of sequential filling frame
1.1 RGB-D图像的超像素分割
完全依靠单个像素及其8-邻域特征来估计填充优先级和填充深度值是不可靠的,而使用多尺度滤波通常会显著增加计算负担。因此本文引入了超像素分割算法,将输入图像分为多个具有内部特征匀质性的超像素块。超像素可以在更大尺度上为填充优先级估计和深度值预测任务提供更可靠的判别与计算依据。
在超像素分割任务上,本文在可靠性与实时性表现最稳定的SLIC(simple linear Iterative clustering)(Achanta等,2012)算法的基础上,根据RGB-D图像的特点对算法进行了改进。原始的SLIC算法使用颜色和位置的差异来测量特定像素与相邻超像素之间的聚类距离。本文通过添加深度差构建了一种新的距离度量。具体为
(1)
图2 改进SLIC算法在RGB-D图像上的超像素分割结果Fig.2 Super-pixel segmentation results of a typical RGB-D image by the improved SLIC algorithm ((a) RGB image; (b) depth image)
1.2 填充优先级估计
本文基于当前无效点实际深度值可由其邻域深度进行预测的假设,建立了顺序填充框架。为了加快填充过程,每个像素在顺序填充框架中仅填充一次。由于填充深度值主要取决于其有效邻域点的深度,即无效点邻域周围有效点越多,填充深度值时可以参考的有用信息就越多,因此应尽可能多地填充当前无效点的相关邻近像素。这正是本文将填充顺序作为研究重点的原因。
在确定填充顺序之前,本文需要为无效点的可预测性建立数学描述。在最大似然估计的框架下,当前无效点x可以视为彩色—深度联合空间中的随机向量。假设当前无效点x与其邻域点xi∈Ω(x)满足独立同分布(independent and identically distributed,IID),则其深度值的后验概率分布为
(2)
式中,S(x)表示所有可从RGB-D图像中观测到的与当前无效点x的深度值有关的特征集合,主要包括其邻域Ω(x)中像素的深度与色彩特征和x点自身的色彩特征c(x)。d(x)代表深度值。根据信息论,微分熵可作为随机变量不可预测性的度量。因此,d(x)的不可预测性可以在c(x)的条件下通过条件熵Entd(x)预测,该熵根据条件概率密度函数pd(x|S(x))计算。具体为
(3)
本文将无效点x的完全特征向量表示为f(x)=[d(x),c(x)T]T。使用IID假设,可以通过将邻域Ω(x)视为一组样本来估计联合概率分布p(d(x),c(x))=p(f(x)),并假设p(f(x))服从高斯混合模型(Gaussian mixture model,GMM),即
(4)
(5)
θi(x)=f(x)-f(xi)
(6)
式(2)中的项p(c(x))是c(x)的边缘概率,可以通过沿d(x)方向积分p(f(x))计算,即
(7)
根据式(2)和式(3)分别计算条件概率分布pd(x|S(x))和条件熵Entd(x|S(x))。根据Entd(x)的基本定义,认为具有较低熵值的无效点x具有较强的可预测性。基于以上分析,最佳填充顺序应使所有无效点的整体条件熵最小。通过将填充过程视为时间序列Q={x(1),x(2),…,x(n)},总条件熵H(Q)定义为
(8)
最佳填充顺序的求解可以视为一个优化问题,即
(9)
(10)
1.3 条件熵的快速估计
(11)
(12)
显然,条件熵Entd的估计值由色彩特征边缘概率pc和RGB-D特征的熵Entf共同决定。pc的具体数值可以根据式(11)计算得到。问题的主要挑战来自于Entf的估计。
根据式(4),RGB-D特征f(x)服从GMM分布。作为一个经典问题,GMM分布的熵没有解析解。但Kampa等人(2011)以及Hershey和Olsen(2007)为GMM分布的熵给出了近似估计。为了加快估计算法,本文基于Huber等人(2008)提出的零阶泰勒级数展开式,选择一种简单的近似方法。具体为
(13)
式中,αi值表示式(4)的GMM分布中每一个高斯成分的比例权重,其取值应与当前无效点x和其有效邻域xi之间满足独立同分布假设的置信度成正比。正如本文在1.1节提到的,如果只考虑两个相邻像素自身的特征相似度来判断两者是否满足独立同分布假设,结果通常是不可靠的。因此本文从像素和超像素两个尺度对权重αi进行估计,即
(14)
式中,函数r(·,·)用于计算两个向量之间的相似度,cp(x)是像素x的LAB色彩向量,而csp(x)是像素x所在的超像素的平均色彩向量,η∈[0,1]是两个尺度的比例因子,C为归一化系数,确保所有αi的总和为1。基于式(11)—(14),可以在任意给定时刻t对所有无效点的条件熵进行快速估计,并选择条件熵Entd最小的无效点优先填充。
1.4 深度值最优预测
本文在第1.2节提到,无效点x的深度值d(x)视为服从概率分布pd(x|S(x))的随机变量,因此可以直接使用最大似然估计方法对d(x)进行最优预测。即
(15)
由于pc对于不同的d(x)保持恒定,根据式(2),可得出式(15)的优化问题与pf最大化问题有相同的最优解。然而,pf定义为GMM分布,其全局最大化问题没有封闭解且存在很多局部最优解。同时,考虑到在每个无效点x上都需要进行优化求解,因此采用梯度下降法的寻优思路也难以保证算法速度,且容易陷入局部最优陷阱。幸运的是,作为自变量的深度值d(x)具有有限数量的离散值。例如,对于8位灰度深度图像有D={0,1,2,…,255}。这意味着本文可以使用穷举搜索策略而不必担心巨大的计算负担。此外,本文通过一些典型的局部统计量(例如8邻域有效点的平均值、中值、局部最大值和加权平均值)近似估计d*(x),这些统计量易于计算,并在图像处理领域频繁使用。
1.5 算法步骤
本文提出的条件熵快速逼近的双尺度顺序优化填充算法流程可简化归纳为填充优先级估计和深度值预测,具体步骤如下:
输入:RGB-D图像。彩色图像部分使用LAB色彩空间。
输出:填充后的深度图像。
初始化:
1)执行改进SLIC算法,统计超像素色彩特征csp(x) //式(1);
2)统计有效点集合V和无效点集合U。
初始化pc(xj),∀xj∈U//式(11);
3)计算Entf(xj),∀xj∈U//式(13);
4)Entd(xj),∀xj∈U//式(12);
顺序填充:
1)在集合U中找出Entd值最小的点xk*;
2)为xk*填充深度值最优预测值d*(xk*) //式(15);
4)在集合U中搜索xk*的邻域点,记做集合Ψ(xk*);
5)更新pc(xk),Entf(xk),Entd(xk), ∀xk∈Ψ(xk*)//式(11)—(13);
7)重复上述步骤,直到集合U=∅。
2 实验结果与分析
实验使用具有32 GB RAM、1个Intel Xeon E5-2620处理器和2个GT1080Ti GPU卡的工作站,在MATLAB R2017a软件平台上测试。
2.1 数据集
实验采用在深度图像修复领域广泛使用的数据集Middlebury 2006(MB)(Scharstein和Pal,2007),并建立了在深度通道上带有噪声和孔洞的RGB-D图像及其真值深度图像两个新数据集,以验证本文算法。第1个数据集称为MB+,包含直接从原始MB的21组数据集中收集的10组测试图像,相应的真实深度图是通过人工手动填充测试深度图像的孔来制作的,如图3(a)(b)所示。第2个数据集称为MB-,其真实深度图与MB数据集的原始图像相同,相应的测试图像是通过添加一些新的孔来制作的,如图3(c)(d)所示。
图3 数据集MB+和MB-的一些典型示例的图示Fig.3 Illustration of some typical samples of the datasets MB+ and MB- ((a) test depth images of MB+; (b) the corresponding ground truth of MB+; (c) test depth images of MB-; (d) the corresponding ground truth of MB-)
2.2 消融实验
消融实验对本文提出的填充优先级估计、深度值优化和双尺度改进分别进行评估,以验证本文创新点的有效性。在第1个实验中,将本文提出的基于条件熵的填充优先级估计方法(Ent)替换为渐进式Z-scanning(Zscan)、geodesic distance(GD)、基于颜色的快速行进距离(color-based fast marching distance,CFM)、基于深度的快速行进距离(depth-based fast marching distance,DFM)、有效邻域数(valid neighbors number,VN)和局部协方差(covariance,COV)等6种方法,其中,GD、CFM和DFM优先考虑与有效点距离较小的无效点,VN倾向于使用具有更多有效邻域的点,COV优先考虑具有较低局部协方差的像素点。实验将这些方法与本文提出的基于最大似然估计的深度值预测方法(maximum-probability-based depth value prediction,MaxP)结合起来,分别在MB+和MB-数据集上进行测试,得到的PSNR分数如图4所示。
图4 不同填充排序方法在MB+和MB-数据集上的PSNR得分Fig.4 The PSNR scores with different filling ordering methods on the MB+ and MB- datasets((a)MB+ dataset;(b)MB- dataset)
与上述方法相似,在第2个实验中,采用本文提出的基于条件熵的填充优先级估计方法,并将基于最大似然估计的深度值预测方法(MaxP)与加权平均法(weighted mean,WMean)、中值滤波法(median filter,Med)和最近邻法(nearest neighbor,NN)等深度值填充方法进行比较,在MB+和MB-数据集上进行测试,结果如图5所示。
图5 不同深度值预测方法在MB+和MB-数据集上的PSNR分数Fig.5 The PSNR scores of different depth value prediction methods on the MB+ and MB- datasets((a)MB+ dataset;(b)MB- dataset)
上述结果表明,对于数据集MB+和MB-中的大多数图像,在填充优先级估计和深度值预测两个实验中,本文算法均优于其他算法。表1显示了MB+和MB-数据集上的9种替代算法以及本文算法的平均PSNR和SSIM得分。可以看出,本文算法Ent+MaxP在4个条件下均得分最高。结果表明,在两个阶段中本文方法都具有更好的精度和鲁棒性。从次优和第3优得分对比于其他没有应用基于熵的填充优先级的方法中可以看出,相比深度值预测,填充优先级估计的作用更关键。
表1 MB+和MB-上不同组合的平均PSNR和SSIM分数Table 1 Average PSNR and SSIM scores of different methods for the MB+ and MB-datasets
此外,本文还通过改变式(14)中的比例因子η的值,分析了双尺度权重对修复结果的影响。图6绘制了η的变化值与平均PSNR的比率曲线。尽管曲线的变化不稳定,但本文注意到,像素尺度和超像素尺度的组合通常比单独使用一个尺度要好。根据数据集MB+和MB-的平均值曲线,本文选择η=0.7,使得PSNR比率最大化。
图6 不同比例因子η的平均PSNR比率曲线Fig.6 Average PSNR ratio curves with different scale factor η
2.3 与其他算法的比较
为进一步验证本文算法的性能,与其他7个深度图像修复算法进行比较,包括各向异性扩散(anisotropic diffusion,AD)(Liu和Gong,2013)、快速行进方法(fast marching method, FMM)(Telea,2004)、低秩矩阵补全(low-rank matrix completion,LRC)(Wang等,2016)、马尔可夫随机场(Markov random field,MRF)(Harrison和Newman,2010)、加权模式滤波器(weighted mode filter,WMF)(Min等,2012)、基于区域的深度修复(region-based depth recovery,RDR)(Pertuz和Kamarainen,2017)和深度补全(deep depth completion,DDC)(Zhang和Funkhouser,2018)。
图7显示了本文算法和本领域7个代表性算法在MB+和MB-上的PSNR得分。相对应地,图8显示了8种算法在MB+和MB-数据集上的SSIM得分。结果显示,与其他竞争算法相比,本文算法具有明显优势。
图7 不同算法在MB+和MB-数据集上的PSNR分数Fig.7 PSNR scores of different algorithms on the MB+ and MB- datasets((a)MB+ dataset;(b)MB- dataset)
为了更加直观地展示本文算法在修复效果上的优势,图9显示了MB+中大多数图像在不同方法下的修复结果,从下至上依次为baby1、baby2、bowling、cloth、flowerpots、lampshade、midd、rocks1和rocks2图像,共9幅。图10则具体显示了MB+中最典型的“芦荟(aloe)”图像的修复结果。
图8 不同算法在MB+和MB-数据集上的SSIM分数Fig.8 SSIM scores of different algorithms on the MB+ and MB- datasets((a)MB+ dataset;(b)MB- dataset)
图9 MB+数据集中9幅图像的深度图像修复结果Fig.9 Depth image recovery results of nine images on the MB+ dataset((a) input; (b) ground truth; (c) ours; (d) AD; (e) FMM; (f) LRC; (g) MRF; (h) WMF; (i) RDR; (j) DDC)
图10 “芦荟”图像的修复结果比对Fig.10 The comparison of recovery results of “aloe” ((a) RGB image; (b) depth image; (c) ground truth; (d) ours; (e) AD; (f) FMM; (g) LRC; (h) MRF; (i) WMF; (j) RDR; (k) DDC)
为了更好地展示各算法的修复效果,本文给出了“芦荟”图像修复细节放大图,如图11所示。通过仔细观察,可以清楚地发现AD、MRF和WMF算法容易在边缘周围产生毛刺和模糊。FMM和LRC算法则经常会出现超出真实边界的伪边缘。RDR算法整体表现良好,但是也会在一些物体边缘产生模糊现象,导致细节缺失。而本文算法可以更清晰、更完整地保留真实边界,并且几乎不会产生毛刺。
图11 8种算法修复细节图和真值细节图Fig.11 Eight kinds of algorithms repair details images and ground truth map details((a) ground truth; (b) ours; (c) AD; (d)FMM; (e) LRC; (f) MRF; (g) WMF; (h) RDR; (i) DDC)
在修复速度方面,本文算法与其他7种深度图像修复算法进行了比较,结果如表2所示。
表2 不同算法时间效率对比Table 2 The time efficiency comparison of different algorithms /s
本文算法与其他对比算法相比,主要优势来自基于条件熵的填充优先级评估方法,该方法会优先修复深度平坦区域的无效点,之后再修复不确定性较大的边缘区域,显著地提高了填充深度的鲁棒性。
3 结 论
深度图像修复任务对精度要求很高,颜色和深度特征之间的空间分布差异、噪声和模糊的干扰以及大面积孔洞导致的信息丢失等问题都对图像的精准修复提出了巨大挑战。本文在双尺度顺序填充的框架下,提出了基于条件熵快速逼近的填充优先级估计方法和基于最大似然估计的深度值优化填充算法,为深度图像修复任务提供了一种具有更加清晰的数学模型背景的解决方案,在MB+和MB-数据集上,PSNR分别达到34.697 dB和47.SSIM分别达到0.978 5和0.998 2,明显超过其他7种对比算法。此外,通过实验验证了本文方法可以更清晰、更完整地保留真实边界,并且几乎不会产生毛刺。实验表明,在总体效果和边缘保存方面,与其他对比方法相比,本文算法在准确性、鲁棒性和效率上均具有明显优势。在大孔洞修复方面,虽然本文方法对比其他算法有着更好的效果,但仍有改进空间。在未来工作中,将重点研究如何通过引入特征的全局分布作为深度预测的参考来进一步提高算法的鲁棒性。