王亚金,吴丽君,陈志聪,郑 巧,程树英,林培杰
(福州大学 物理与信息工程学院,福建 福州 350108)
建筑结构的位移监测对于建筑的安全性保证是十分重要的,比如斜拉桥和悬索桥这类采用索缆作为主体的建筑结构,在极端天气下发生的振动对整体建筑的安全性影响不可忽视。近年来,基于视觉的非接触式测量方法因为其实用性被广泛应用于位移测量,但目前的方法仍存在一些局限性。首先,当拍摄距离较远,需要提高测量精度时,通常只能缩小视场范围,测量精度与视场大小二者是相互矛盾的,也可以考虑采用多个设备同步测量,但这会大幅度提高成本。其次,桥梁索缆图像的采集是在户外条件下,因此采集到的图像会受到各种噪声干扰,这种低质图像会给后续的位移测量工作带来困难。图像超分辨率重建是一种有效提升图像质量、重建目标细节特征的图像处理方法,为解决上述提出的位移测量问题提供了一个新的思路。
图像的超分辨率重建是指将给定的低分辨率图像(Low Resolution,LR)通过特定的算法变换为对应的高分辨率图像(High Resolution,HR)。图像的超分辨率重建在卫星图像和医学影像等领域都已有广泛的应用。本文主要研究的是基于深度学习的单幅图像超分辨率重建(Single Image Super-Resolution,SISR)。超分辨率卷积神经网络(SRCNN)[1]是首次提出使用卷积神经网络(Convolutional Neural Network,CNN)解决超分辨率问题的算法,网络结构设计简单,仅使用三层卷积网络进行非线性映射,在速度和重建效果上均优于传统算法。在SRCNN的基础上,研究者们后续提出了FSRCNN[2]、VDSR[3]、EDSR[4]和RCAN[5]等一系列网络结构针对不同需求的超分辨率重建问题。随着新的超分辨率网络不断被提出,有研究者提出这些方法存在感知质量不理想的缺点。虽然峰值信噪比(Peak Single-to-noise Ratio,PSNR)和结构相似度(Structural Similarity,SSIM)这些常用的指标在不断被刷新提高,但以提升这两个指标为导向的超分辨率算法通常都是基于像素空间进行优化,能获得较高的PSNR与SSIM,但输出的图像往往过于平滑,并不符合人类的主观感受。当重建倍数较高时,比如4倍或8倍重建时,会丢失大量高频细节。Ledig等人[6]提出了在提升超分辨率重建视觉效果方面里程碑式的网络结构——SRGAN(Super-Resolution Generative Adversarial Network),这是首个将生成对抗网络(Generative Adversarial Network,GAN)应用在超分辨率领域的工作,生成对抗网络输出了更加自然真实的结果。作者还提出了一种不同以往的在像素空间优化的感知损失,这种感知损失在特征空间中进行模型优化,对细节纹理的重建效果显著优于其他深度学习网络。ESRGAN[7]在SRGAN基础上进行改进,在网络结构中引进残差连接密集块(Residual-in-Residual Dense Block,RRDB)提升网络性能,使用相对判别器[8]替换标准判别器,帮助学习更精细的纹理,输出结果的感知质量得到明显提升。但在细节纹理的重建上,存在畸变、模糊和伪影严重的问题。超分辨率应用于视觉测量等领域时,对细节纹理恢复的清晰度、真实性、准确度都显得十分重要。
本文提出一种关注细节特征的图像超分辨率重建算法,关注图像超分辨率中细节信息的重建。一张图像可以分为平坦区域、边缘区域和角点区域,通常用边缘和角点代表图像的细节信息。本文设计了一个角点增强支路辅助超分,单独对角点注意图像进行超分,网络会更加集中关注角点区域。将重建后的角点注意图像整合到超分支路中,突出角点区域。同时,提出角点损失来监督重建图像的角点信息,增加边缘损失对边缘信息的恢复进行监督指导。在约束指导下,可以更好地保持细节信息,获得高感知质量和丰富细节纹理的超分图像。提出方法中的SR网络可以是任何已有的结构,本文使用的是ESRGAN。实验结果表明,该方法一定程度上提升了模型性能,可以得到更加清晰准确的细节纹理。
本文算法的网络结构图如图1所示。
图1 本文算法具体网络结构
角点增强支路分为粗糙超分网络、角点提取模块和精细超分网络三个部分。
(1)粗糙超分网络
首先,本文使用粗糙超分网络对LR图像ILR进行处理得到粗糙HR图像ICH。考虑到LR图像往往高频部分模糊,直接从网络输入的LR图像中提取真实细节信息是很困难的,使用粗糙超分网络进行初步处理可以缓解先验估计的困难。网络结构包含一层3×3的卷积层,用于提取特征,卷积层后的激活层以PReLU函数作为激活函数。之后连接3个残差块[9],残差块的密集连接结构可以缓解梯度弥散问题,保证深层网络训练的稳定性,最后一层3×3卷积层重构出粗糙HR图像ICH。考虑到BN层会带来伪影问题,还会增加训练难度,并不适用于超分任务,本研究中去除了所有BN层。
(2)角点提取模块
基于深度学习的角点检测算法过于复杂,准备工作较多,考虑本研究中已经有较复杂的网络结构,通过OpenCV使用传统算法Harris角点检测[10]从粗糙HR图像ICH中提取角点信息。后续损失函数计算时,同样使用Harris角点检测算法从HR图像中提取角点信息。首先,将ICH转换为灰度图像,灰度转换操作记为G。对灰度图进行Harris角点检测,阈值设为0.01,将角点检测操作记为H,C代表提取出的角点,IC代表粗糙角点注意图像,提取过程可表示为如下公式:
(3)精细超分网络
得到粗糙角点注意图像IC后,送入精细超分网络,得到精细角点注意图像。首先,对粗糙角点注意图像进行一次卷积操作,接着送入残差连接密集块RRDB结构中进行残差学习,堆叠了四个残差连接密集块。一个RRDB由三个残差密集块(Residual Dense Block,RDB)构成,结构如图2所示。RRDB结构融合了每层的输入特征和输出特征,加强了层与层之间的特征复用,可以为重建提供更多的细节信息。本研究主要针对4倍放大因子的超分辨率,所以有两层亚像素卷积层,用亚像素卷积层对RRDB结构输出特征进行上采样,将输出结果进行一次卷积激活操作后,再利用一层卷积层进行最后的重构。将得到的精细角点注意图像与SR主支路的输出融合,最后得到超分辨率图像ISR。
图2 RRDB结构
本研究增加了角点损失函数Lcor和边缘损失函数Ledge。角点损失函数监督角点增强支路的角点恢复,用L1损失计算。将送入SR支路的精细角点注意图像进行一次卷积,得到角点增强支路的输出,表示为ICSR。CH表示从高分辨率图像提取的角点信息,IHR表示高分辨率图像,N为训练集的图像数目,角点损失函数可表示为如下公式:
比较常用的边缘检测算子有Sobel算子、Laplacian算子和Canny算子等,其中Canny算子对边缘的检测效果最优,所以本工作通过Canny算子对重建图像和真实图像检测边缘,通过边缘损失函数指导边缘细节的恢复。利用Canny算子CE检测输出的超分辨率图像ISR和高分辨率图像IHR的边缘,用L1损失计算,可表示为如下公式:
最终生成器的损失函数包含像素损失Lpix,感知损失Lper,对抗损失Ladv,角点损失Lcor与边缘损失Ledge,公式表示如下:
本实验基于Ubuntu18.04 LTS 64位操作系统,使用框架PyTorch以及CUDA10.1和cuDNN7搭建环境,显卡为NVDIA GTX1080Ti。损失函数的权重设置如下:α=0.01,β=0.005,γ=0.05,δ=0.001。
本实验采用的数据集是DIV2K[11]和Flikr2K[12],数据量共有3450张。初始数据集中没有对应的低分辨率图像,通过对高分辨率图像双三次下采样构造低分辨率图像,本研究中的放大因子设为4。DIV2K包含100张具有对应高质图像的测试图像,用它和纹理图案丰富的公开数据集Urban100作为测试集,同样地,对Urban100中的图像通过双三次下采样构造对应的低分辨率图像。将本文方法与经典的图像超分辨率重建方法Bicubic、EDSR、ESRGAN及关注细节重建的NatSR[13]进行比较,评价方法分为量化评价、视觉评价和间接评价。量化评价是指通过几项常用指标量化计算重建图像与参考图像的差异性,视觉评价是放大图像细节通过主观感受进行评价,间接评价是设计了一个视觉测量实验验证图像细节纹理重建的准确性,进而可知对视觉测量精度提升的有效性。
为了量化评估本研究方法与经典算法的对比结果,采用PSNR、SSIM、PI与LPIPS作为衡量指标。PSNR基于像素计算图像之间的差异性,SSIM从图像的亮度、对比度和结构三个方面衡量图像相似性,两种指标的评价标准为指标越高,结果越好。而PI与LPIPS更关注图像的感知质量,两种指标都是数值越低,结果越好。
表1中为Bicubic、EDSR、ESRGAN、NatSR与本文方法在测试集Urban100和DIV2K上的指标测试结果。可以看到,在SSIM、PI和LPIPS指标上,本文方法都优于其他方法。结果表明,本文方法在量化指标上取得了较好的结果。
表1 图像超分辨率重建效果量化比较结果(dB)
从测试图像中挑选了纹理丰富的图像,并比较图像放大后的细节。从图3中可以看出,从主观的视觉角度来看,传统的Bicubic重建出的图像最模糊,几乎看不清图像细节,图像分辨率提升十分有限。EDSR重建出的图像清晰度有较大提升,但图像过于平滑,边缘纹理不清晰,图像缺乏真实性。ESRGAN与NatSR重建出的图像视觉感知效果最好,但在边缘纹理部分存在大量噪声,产生伪影使得边缘角点不清晰。而本文方法得到的超分辨率图像整体视觉效果清晰,噪声伪影更少,细节纹理丰富,更接近真实图像。
图3 不同图像超分辨率算法的视觉对比图
在建筑结构的非接触式视觉测量领域中,决定测量精度的步骤之一就是目标定位,而目标定位的准确主要依赖于对目标特征的提取精度,图像的细节特征得到有效提升即可达到提高定位精度的目的。本文提出的超分辨率算法主要方向就是重建更清晰准确的细节特征。为了验证本文方法在视觉测量中的有效性,本小节提出了一个针对图像超分辨率重建在视觉测量精度提升有效性的评价实验框架。该实验设计思路如下:
首先,采集已经预设格子间距的黑白格图像,双三次下采样处理后,通过超分辨率算法得到超分辨率图像,采用视觉测量算法计算出超分辨率图像的格子间距,与真实间距进行比较可以对比出不同超分辨率算法对视觉测量精度提升的有效性,同时了解不同超分辨率图像边缘角点的重建情况。
通过双目采集系统采集黑白格图像以及棋盘格标定板图像。具体的图像处理步骤为:首先使用MATLAB工具箱对棋盘格图像实现标定得到标定参数,然后通过Shi-Tomasi角点检测算法[14]检测超分辨率图像黑白格区域角点的像素坐标,根据双目视觉成像原理利用前面得到的相机内外参实现从像素坐标到世界坐标的转换。最后使用距离计算公式计算出相邻角点的距离,通过距离的比较判断角点的准确性。
相机采用的是维视公司型号为ALLIED GIGE GT1910C的CCD(Charge Coupled Device)彩色工业相机,其分辨率为1920 px×1080 px。使用的双目镜头焦距为50 mm,拍摄距离为4 m左右,格子间距定为15 mm。实验图像为8张,共有256条边。采集的部分图像及标定所用标定板如图4所示。
图4 采集的部分黑白格图像和标定板图像
低分辨率与高分辨率图像的角点检测结果如图5所示。由于下采样后的低分辨率图像质量不佳,在角点检测上存在困难,难以检测到黑白格所有的角点坐标,故对比结果中未提供低分辨率图像的检测计算结果。而经过超分辨率处理的高分辨率图像角点都可以完整检测,由此说明超分辨率算法在视觉测量领域有一定实用性。
图5 低分辨率(左)与高分辨率(右)图像角点检测结果
为了更直观地比较几种超分辨率算法,以盒型图的形式展示了超分辨率黑白格图像的格子间距计算结果,如图6所示。从盒型图中可以看到,Bicubic得到的计算结果异常值最多,分布区间最大,说明边缘角点的重建准确度最不理想。其中本文方法的计算结果异常值最少,分布区间最小,说明本文方法得到的超分辨率图像边缘角点的重建准确度最高,在一定程度上能够提高图像视觉测量的精度。
图6 不同图像超分辨率重建算法的格子间距测量结果
针对现有超分辨率算法对图像边缘角点重建存在的过于平滑、缺乏真实性、伪影严重等问题,提出了一种关注细节特征的图像超分辨率重建算法。该算法设计了一种角点增强支路,结合提出的角点损失和边缘损失,实现了对边缘角点这些纹理特征较准确的重建。量化指标表明,本文方法取得了较好的超分辨率重建结果。主观评价方面,本文方法得到的图像细节纹理更加清晰真实,最接近参考图像。通过设计的视觉测量实验间接比较了不同算法超分辨率图像的细节纹理准确度。实验结果表明,本文方法对细节纹理的重建更准确,说明了本文方法对视觉测量精度提升的有效性,在建筑结构的非接触式位移测量领域有一定的潜在应用前景。