一种基于深度引导的实时水下图像超分辨率算法

2022-11-15 14:05
关键词:深度图低分辨率轮廓线

吴 献

(福建师范大学计算机与网络空间安全学院,福建 福州 350117)

随着国家海洋战略的稳步发展,水下成像在海洋勘探中起着越来越重要的作用[1].水下图像的质量与水下机器人搭载的成像系统密切相关,由于水下环境能见度低、照明不均匀,在水对光的选择性吸收和悬浮颗粒散射的作用下,成像设备所获取的水下降质图像往往偏灰暗,对比度较低.悬浮颗粒散射中的后向散射导致图像模糊,物体表面的原有颜色被遮盖,物体局部区域辨认不清.此外,深水处由于光照缺失,往往需要添加人工光源,人工光源的出现常常导致水下环境拍摄的图像存在亮斑,且水下降质图像还存在噪声等问题[2].

影响水下图像质量的一系列因素中,图像的低分辨率是其中一个亟待解决的问题.普通相机因为水下光衰减特性,影响了水下摄像的视野范围.不少学者开发了许多方法以应对水下图像分辨率低的挑战[3-5].然而,因为一些固有的局限性,例如伪影、模糊和噪声等,单纯的图像增强或超分辨率算法应用于水下图像时,效果往往不能令人满意.近年来,消费级别的深度相机设备取得了快速发展,推动了不同领域的许多新的应用,包括计算机视觉、人机交互和虚拟现实[6]等等.深度相机与普通RGB相机相比,存在光照不敏感、轮廓提取准确性高等优点.因此,在水下图像拍摄中结合深度图像,利用同一空间中深度图像的图像配准与边缘引导,可以在提高水下图像分辨率的同时,增强水下图像的边缘特性,获得更好的图像处理效果.

一般而言,图像的超分辨率算法需要从较低分辨率图像预测大量未知像素值,与一般彩色图像不同,水下图像因为光照衰减等因素,往往包含模糊的纹理,且通常由于不精确的扫描硬件或人工光照视差而产生大量噪声.同时,依赖于水下图像的计算机视觉任务通常对图像中的误差非常敏感.因此,传统的彩色图像超分辨率算法往往不能直接应用在水下图像上.为解决这一系列的问题,现有的水下图像超分辨率算法主要可分为以下3类.

(1)基于图像序列的融合算法

这类算法旨在融合同个对象的多个低分辨率图以获得高分辨率图像[7-8].然而,此类算法对采样频率要求较高,对相机姿态估计误差敏感,且严重依赖于图像序列中的物体运动范围较小的假设,难以实现较高分辨率的超分辨率增强.并且,同个对象的多个低分辨率图配准,也是制约该算法效率的难点之一.

(2)基于机器学习的算法[9-10]

这类算法利用一系列对应的高-低分辨率水下图像作为样本,学习训练低分辨率与高分辨率之间存在的映射关系,并通过训练得到的参数模型实现水下图像的超分辨率[11].这类算法同一般的基于样本的学习算法一样,需要事先获得大量的高-低分辨率图像对,学习训练的时间复杂度较高,且对不同倍率的超分辨率均要分别学习,当训练样本与实际图像差异较大或相同对象在不同水下环境时,超分辨率效果较差.

(3)基于纹理引导的超分辨率算法

这类算法认为水下物体的信息与对应的彩色图像在结构上具有相似性,彩色图像中的高频分量或边缘信息等可以用于辅助高分辨率像素的填充预测,因此可用来引导提高图像分辨率.例如,文[12]利用彩色图像的边缘信息提出了联合颜色信息的水下图像上采样方法.而文[13]则把水下图像的超分辨率问题转化为离散标注的问题,通过图模型的转导估计超分辨率的边缘像素.

基于纹理引导的方法充分利用了彩色图像的边缘信息,是水下图像超分辨率的研究热点.然而,其存在的主要问题是当彩色图像结构与实际水下三维结构不完全一致时,特别是复杂的水下光照环境,会带来边缘的错误或模糊痕迹.这主要体现在以下两个方面:一是当平滑的深度表面具有鲜明的纹理边界时,所带来的错误深度边缘,称作纹理拷贝损伤;二是当不同的深度边界具有相同的纹理时,所带来的深度边缘模糊,即深度渗透.文[14]利用非局部平均值滤波器对水下图像进行规则化,以保持图像较为详细的内部结构,并提出了基于区域分割的方法来处理纹理拷贝损伤和深度渗透的问题.以上同类算法都可一定程度上减轻纹理与深度不一致的问题,但是对原始图像的规则化和分割提出了一定的要求,处理的结果直接影响了超分辨率图的上采样质量.

因此,为解决深度信息与彩色图像结构不一致的问题,本文提出一种直接基于深度图像轮廓引导的水下图像超分辨率算法.与以往的区域分割算法不同,由于保持边界信息在图像的上采样过程中尤为重要,本文将超分辨率问题从纹理引导转换为基于深度图的边缘检测,同时对水下图像与边缘轮廓对齐后修正部分边缘形成配对;之后,由平滑后的轮廓作为引导,应用修改的联合双边滤波器来重建高分辨率水下纹理.轮廓引导不仅有助于避免由直接纹理预测引入的纹理拷贝错误,还可以减少锯齿状边界并保留边缘的特性.最后通过实验证明了本文的方法可有效提高超分辨率水下图像的质量.

1 算法流程概述

本算法利用深度图像轮廓作为引导,对水下图像上采样过程中的边缘信息进行修正与增强,实现水下图像的超分辨率算法,主要可分为以下3个步骤:(1)对深度图像应用改进的Canny算法提取深度图像的轮廓线;(2)利用水下图像的颜色信息对轮廓线进行修正并完成配对;(3)以修正的轮廓线作为导引,应用联合双边滤波器上采样,完成图像的超分辨率重建.算法的整体流程如图1所示.

图1 超分辨率算法流程图

2 深度图轮廓提取

在图像处理中,常常通过图像的边缘检测获得关注对象的轮廓,目前已产生了许多经典的边缘检测算法,通过像素邻域的量化信息进行检测,如Sobel算子、Roberts算子、LOG变换等等.一般图像边缘检测通过卷积计算获取梯度图,并且通过梯度变化设定相应的阈值获取边缘,然而由于不同局部区域梯度变化不均,统一设定阈值的方法会造成一定的边缘信息遗漏或错误.本文采用改进的Canny算法[15]检测深度图像边缘并提取轮廓.

首先,定义I(i,j)表示深度图像中像素(i,j)的值,梯度变化率可通过灰度沿二维方向的一阶导数求得:

(1)

本文通过Canny算法中的Isotropic Sobel模板,对式(1)进行离散计算:

fx(i,j)=2*L(i+1,j)-2*L(i-1,j)+L(i+1,j+1)-

L(i-1,j+1)+L(i+1,j-1)-L(i-1,j-1),

fx(i,j)=2*L(i,j+1)-2*L(i,j-1)+L(i+1,j+1)-

L(i+1,j-1)+L(i-1,j+1)-L(i-1,j-1),

(2)

其中,L(i,j)=▽G(i,j)*I(i,j),G(i,j)是高斯平滑核.通过式(2)的计算,可以继续求得边缘的幅值方向:

(3)

最后,利用非极大值抑制获取边缘判断的阈值,根据点(i,j)上、下、左、右4个像素作相同的幅值计算,分别为r1、r2、r3、r4.则计算2个方向上的阈值如下:

(4)

若同时满足r(i,j)>A1,r(i,j)>A2,则得到一个极大值r(i,j),对图像遍历后得到边缘轮廓,如图2所示.从图2可以看出,引导轮廓线较好地还原了原始彩色图像(左)在三维空间中的边界信息,因此,对于传统超分辨率算法带来的拷贝损伤和深度渗透等问题,可以起到很好的抑制作用.

图2 深度图片轮廓提取

3 基于联合双边滤波的深度上采样

对于原始的低分辨率图像,若直接采用上一小节的纹理轮廓进行上采样,则可能会产生大量纹理拷贝所带来的伪影,这些伪影会在上采样过程中被同步放大;由于深度图同样存在分辨率低等问题,本小节首先利用原始图像对引导轮廓线进行修正,去除那些在深度图像内变化较小的轮廓,并与之配对,然后应用联合双边滤波,对原始图像进行上采样.

一般深度图的分辨率要小于颜色图像,而颜色图像产生的纹理轮廓,又必然包含大量相同深度的虚假物体轮廓,因此可以利用纹理轮廓对深度图像产生的轮廓线进行修正.首先,定义低分辨率深度图为D,对应的高分辨率纹理轮廓为C,则必须对D进行上采样,使其达到相同的分辨率.令c=[ci],d=[dj],d′=[di],其中,c、d、d′分别为纹理轮廓图、低分辨率深度图和拓展分辨率后的深度图,且为一维列向量的形式;由于上采样的关系,d′中包含大量的空数据,用0表示,并将c、d、d′中的所有元素数据规范化到[0,1]区间内.之后,针对向量c、d′,引入如下公式:

c′=argmin{e(c′)=Ef+αEs},

(5)

其中,c′为修正后的纹理轮廓,Ef、Es分别表示修正后的轮廓与原始轮廓差异,以及深度图像边缘的约束属性.常数值α为平衡二者的影响,一般认为深度图约束对物体边缘影响较大,通过实验验证,当α≥8时,可在保持边缘轮廓细节的情况下,极大减少虚假轮廓.最后利用IRLS算法[16]对式(5)求解,处理结果如图3所示,从中可以看出,添加了纹理图修正后的轮廓线,避免了相同深度不同纹理所带来的虚假轮廓(如背景图案、阴影等等),并且保留了高分辨率轮廓细节(如圆锥体的顶尖).

左上:纹理轮廓;左下:深度图像;右:修正后的轮廓线

实现基于联合双边滤波的深度上采样,由于深度摄像机与RGB摄像机存在一定视差,在真实水下实验中,可利用光学相机和深度相机,获得同一目标同一时刻的水下RGB图像与深度图像,即修正后的轮廓线需要与水下RGB图像进行配对.先通过相机标定(camera calibration,CC)方式确定相机的内参矩阵,根据内参矩阵确定深度图片中三维点在世界坐标系和图像坐标系间的对应关系,将二维深度图像坐标转换至三维空间,结合彩色图像对应点处的RGB值,完成配准图像.

最后,深度上采样,由配对的平滑轮廓作为引导,代入如下公式:

(6)

(7)

其中,σ1和σ2为各项标准差,β和λ取2~4,最后得到图4.

图4 轮廓线引导下的超分辨率

4 实验与应用

本文算法应用于数据集CIFAR-100、Set5[17]、Set14[18]下进行相关实验,这3个测试集均被广泛地作为图像超分辨率算法中的测试数据集.目前已知的水下图像数据集均不含深度图像,因此实验采用了开源项目REALSENSE-ROS[19]获取RGB图像所对应的低分辨率深度图.与目前主流水下单幅图像超分辨率算法MSIDN[4]、 SRDRM-GAN[5]进行比较,当4倍超分辨率时,选择了6幅相同的照片进行比较.从图5可以看出,MSIDN得到的超分辨率图像局部块放大后,存在较明显的错误纹理填充;而SRDRM-GAN与本算法的视觉效果较好,但在一些色彩变化较大的图像上,局部块放大显示.SRDRM-GAN产生了一定的边缘不齐与不准确的像素值,在边缘颜色填充上,本算法优于SRDRM-GAN.

图5 4倍超分辨率重构结果

在客观评价分析上,使用PSNR及SSIM两个指标,对以上3个算法进行比较.表1列出了3种算法进行4倍超分辨率重构的PSNR及SSIM值.从表1可以看出,本研究提出的算法与MSIDN算法、 SRDRM-GAN算法相比,重构出的图像在PSNR与SSIM值上,均有所提升,特别是在SSIM值上,表现较优异.

表1 4倍超分辨率重构结果客观评价指标

5 结论与展望

为了提高水下图像的分辨率与清晰度,本文提出了一种基于深度引导的实时水下图像超分辨率算法.在研究中,先对深度图提取轮廓线,利用原始图像对轮廓线进行修正,然后对修正后的轮廓线与水下图像配对,最终,在轮廓线的引导下,对水下图像进行上采样,得到超分辨率图片.深度轮廓线划分了不同水下光线传播距离的影响,避免了水下虚影与噪声的干扰,最终实验结果显示本文算法优于目前最好的基于单幅彩色图片的水下超分辨率算法.由于深度图只比彩色图片多一个通道,且轮廓线提取与引导的计算复杂度较低,在图片分辨率不高的情况下,能够实现实时计算.

在未来的工作中,计划利用图形硬件编程框架,进一步优化算法,提高算法效率,并尝试水下超分辨率视频应用.

猜你喜欢
深度图低分辨率轮廓线
红外热成像中低分辨率行人小目标检测方法
立体图像任意剖面轮廓线提取方法仿真研究
一种基于WMF-ACA的深度图像修复算法
基于边缘学习的低分辨率图像识别算法
基于HTML5的凸轮廓线图解法App教学软件研究
基于深度图的3D-HEVC鲁棒视频水印算法
树木的低分辨率三维模型资源创建实践
一种有效的秦俑碎块匹配算法①
一种基于局部直方图匹配的深度编码滤波算法
叠加速度谱在钻孔稀少地区资料解释中的应用