基于PyTorch的图像修复技术研究

2022-05-10 05:25贺丹
电脑知识与技术 2022年9期
关键词:深度学习神经网络人工智能

贺丹

摘要:图像修复技术是利用计算机技术将图像中的多余部分去除或者填补图像中的缺失部分,该技术广泛应用于医学图像处理、文物修复、人脸识别等领域。早期的图像修复技术在小区域缺失图像处理中取得了良好的效果,但面对大区域缺失图像,修复效果往往不够理想。随着深度学习、人工智能技术的发展,深度学习技术为图像修复提供了新的解决方案。文中重点介绍了基于深度学习的图像修复模型,以PyTorch深度学习框架为基础,以PASCAL VOC2012数据集为实验对象。实验表明,基于深度学习的图像修复模型在图像修复问题上取得了良好效果。

关键词: PyTorch; 图像修复; 深度学习; 人工智能; 神经网络

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2022)09-0075-03

1 引 言

随着多媒体技术和信息技术的发展,图像作为最重要的信息载体之一,在医学图像处理、遥感影像处理、人脸识别等领域发挥着越来越重要的作用。与此同时,人们对图像质量提出了更高的要求,在图像内容和图像完整度上都有较高的要求,从而促使如何提高图像质量问题成为当前计算机视觉领域重点研究问题之一。图像修复[1]的概念最早由Bertalmio等人于2000年提出,图像修复就是利用图像处理算法将原始图像中多余的部分去除,得到修复后的图像,或者是在原始图像中的缺损区域填充合理信息,让图像信息更完整的过程[2-5]。但在图像修复过程中往往面临着如下问题:首先,原始图像中能利用的有价值信息十分有限,不能单纯地利用已有信息填補缺损区域;其次,图像修复算法的性能直接决定了修复后图像在视觉上的真实合理性,尤其是涉及人脸图像的修复,细微的差距就将影响图像整体的视觉效果;最后,原始图像中缺失区域的大小、形状、位置等都将影响图像修复的难度。因此,图像修复是计算机视觉和图像处理领域一个经典且具有挑战性的研究课题。

2  图像修复技术

2.1 图像修复问题描述

图像修复问题主要包括两种类型:第一种是去除原始图像中多余的部分,让图像中的核心内容更清晰,这种类型主要应用在图像遮挡物去除、无关物去除等场景,如图1所示。第二种是填充原始图像中的缺失部分,让图像更完整,这种类型主要应用在图像缺失填补的场景,如图2所示。

2.2 图像修复技术国内外研究现状

根据研究内容的侧重点不同,可以将传统的图像修复技术分成两类:基于结构的图像修复技术、基于纹理的图像修复技术。其中基于结构的图像修复技术以基于偏微分方程的修复算法[1,6]为代表,这种算法主要面向小尺寸的图像缺失问题,以单个像素作为图像修复的基本单元,利用像素扩散的方式完成缺失图像的填充,但这种方式的鲁棒性较差,容易造成图像模糊。基于纹理的图像修复技术以基于样本块纹理合成算法[7-8]为代表,这种算法是从原始图像的已知区域中寻找目标块,并将目标块的信息复制到缺失区域中,达到图像修复的目的。在处理场景图像的修复问题上,虽然基于结构的图像修复技术和基于纹理的图像修复技术取得了良好的修复效果,但是这两种算法只能对简单的、纹理特征明显的图像进行修复,在实际应用中具有较大的局限性。

近年来,人工智能技术取得飞速发展,深度学习算法日新月异,深度学习算法在计算机视觉、图像处理等领域的应用越来越广泛的同时,也取得了巨大的研究进展和良好的研究成果。基于深度学习的图像修复技术在生产实践中广泛应用的同时,也得到越来越多学者的关注,并提出了基于深度学习的图像修复模型,深度学习的修复方法通过从大规模的数据集中学习图像中的语义信息,大幅度提升图像修复效果。纵观国内外现有研究成果,基于深度学习的图像修复模型可以总结为下述三种[9]:基于自编码的图像修复方法[10]、基于生成模型的图像修复方法[11]和基于网络结构的图像修复方法[12]。

基于自编码的图像修复方法主要用到了自编码器结构(Autoencoder, AE),自编码器由编码器和解码器两部分组成,其结构如图3所示。从图3中可知编码器由卷积神经网络构成,从而实现对原始图像的降维编码操作,解码器由反卷积神经网络组成,利用编码阶段提取的原始图像特征实现图像的解码重构。在编码阶段,利用编码器将原始图像压缩并映射到特征空间,随着卷积层级的不断加深,通道数逐渐增加,特征图尺寸逐渐减小。在解码阶段,通过从多个通道的深层特征实现图像重构,随着通道数逐渐减小,图像尺寸逐渐增大,直至恢复至原始图像的尺寸。

基于生成模型的图像修复方法主要用到了生成对抗网络(Generative Adversarial Networks, GAN),GAN网络中包括了两套独立的网络,分别是生成器网络G网络、判别器网络D网络,这两套网络用来作为相互对抗的目标。生成器网络用来生成类似于真实样本的随机样本,并作为假样本数据,判别器网络是需要训练的网络,用来分辨是真实数据还是假样本数据。当生成器网络生成的图像内容不合理,或者图像内容与真实图像不符时,判别器网络会将图像判别为假,从而计算出生成图像与真实图像之间的差距,并将差距作为反馈传回生成器网络,指导生成网络不断提高生成图像的质量,直到判别器网络无法分辨生成图像的真假为止。

基于网络结构的图像修复方法是以一个未被训练的生成网络为基础,对该生成网络进行随机初始化处理,一方面利用初始化的网络拟合待修复图像,另一方面对单张缺失图像的已知部分进行训练,以生成网络结构作为先验信息,执行迭代操作反向推导出图像缺失区域的图像内容,迭代操作需要根据推导出缺失区域的图像内容来确定。基于网络结构的图像修复方法较好地利用了深度生成网络的捕获大量低级图像统计信息的能力,在学习之前就能从深度生成网络的结构中捕获,从而避免从大量数据集中获取统计信息。这种方式在难以获得大量的图像训练集时十分有效,但是图像修复的计算量较大,迭代次数较多,影响算法执行效率。

3  PyTorch框架

PyTorch是由Facebook公司开发的深度学习框架,是基于Torch深度学习框架开发,它是一个基于Python语言的计算包,不仅提供强大的GPU加速的张量计算,同时也包含自动求导系统的深度神经网络。深度学习技术的快速发展也为PyTorch框架的发展带来了新的动力,日益丰富的张量运算操作加入PyTorch框架中,越来越成熟的深度学习模块也被PyTorch框架所吸收,同时也支持更多的损失函数和优化器,在计算性能上显著提高,应用日益广泛。

PyTorch中主要包括了16个常用子模块,现重点介绍其中常用的几个子模块。torch模块提供了PyTorch中常用的激活函数(包括Sigmoid函数、RELU函数、Tanh函数等),同时提供了PyTorch张量的常用参考,主要有矩阵的乘法操作、张量元素选择操作等。torch.Tensor模块定义了torch中的张量类型和数值类型。torch.nn模块则是PyTorch神经网络模块化的核心,在这个模块中定义了卷积层nn.ConvNd(N=1,2,3)和线性层(全连接层)nn.Linear等。torch.optim模块定义了一系列的优化器,包括torch.optim.SGD(随机梯度下降算法)、torch.optim.Adagrad(AdaGrad算法)、torch.optim.Adam(Adam算法)等。

正由于PyTorch框架提供了良好的张量计算模型,同时其中的子模块功能十分丰富,能帮助高效地解决图像修复问题,因此本文依托PyTorch框架实现图像修复实验。

4  实验

为了研究基于PyTorch的图像修复技术,通过实验对自编码的图像修复方法(AE)、基于生成模型的图像修复方法(GAN)、基于网络结构的图像修复方法进行性能对比。在展示图像修复效果时,以生成模型(GAN)为代表进行展示。

4.1 实验环境

本次实验采用Windows10操作系统,实验设备的CPU为Inter i5-7200U,以Python 3.8为开发语言、PyCharm 2021.2为集成开发平台,借助PyTorch深度学习框架,搭建完整的实验环境。

4.2 实验数据

本实验采用的数据为PASCAL VOC2012数据集,该数据集的下载地址为http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html#data。该数据集在2012年视觉对象类挑战赛VOC2012中推出,该数据集中一共包含了17125张图片,包括了20个对象类,如人、鸟、猫、飞机、自行车、瓶子、椅子等常见对象。

为了实现图像修复的研究,从PASCAL VOC2012数据集中选取出500张图像组成实验数据集Dataset500,同时确保Dataset500中的图像尺寸均大于等于500×375像素。在选取数据集之后,对数据进行预处理,将Dataset500数据集中的所有图像尺寸截取为500×375像素。

为了实现图像修复,需要对Dataset500数据集增加掩膜,结合数据集中图像的尺寸信息,设置掩膜的尺寸大小为100×100像素。以数据集中的4个图像为例,将加掩膜前的图像如图4所示,加掩膜后的图像如图5所示。

4.3 实验结果

通过对Dataset500数据集执行数据预处理、加掩膜等操作后,利用PyTorch模型构建GAN网络,分别实现GAN网络的生成器网络和鉴别器网络。在模型训练时,将batch size设置为64,epoch设置为1000,学习率设置为0.0001。將加掩膜之后的图像依次输入GAN网络,得到修复后的图像,从500个处理结果中选取4个进行图像修复效果展示,如图6所示。

从图6中图像修复结果可知,运用GAN网络实施图像修复,能得到较好的修复效果,在内容上与真实图像接近,同时视觉效果上与真实图像几乎一致。

5  结论

本文重点研究了图像修复技术,以深度学习框架PyTorch为实验框架,实现了GAN网络,进行了生成器网络generator和鉴别器网络discriminator的搭建,同时以PASCAL VOC2012数据集为实验对象,通过实验验证了GAN网络在图像修复中能体现出良好的效果。通过对图像修复技术的研究,为数字图像修复、文物修复等领域带来了新的解决方案,在后续的研究中,将研究修复效率更高的图像修复算法,并进一步提高图像修复的视觉效果。

参考文献:

[1] Bertalmio M,Sapiro G,Caselles V,et al.Image inpainting[C]//Proceedings of the 27th annual conference on Computer graphics and interactive techniques - SIGGRAPH '00.Not Known.New York:ACM Press,2000:417-424.

[2] 王琛.基于生成对抗网络的图像修复算法研究[D].北京:北京工业大学,2020.

[3] 范春奇,任坤,孟丽莎,等.基于深度学习的数字图像修复算法最新进展[J].信号处理,2020,36(1):102-109.

[4] 刘昱.基于深度生成模型的图像修复研究[D].徐州:中国矿业大学,2019.

[5] 陈杰,李旭姣.图像修复技术综述[J].电信快报,2021(2):44-46.

[6] 阮秋琦,仵冀颖.数字图像处理中的偏微分方程方法[J].信号处理,2012,28(3):301-314.

[7] Soheil Darabi,Eli Shechtman,Connelly Barnes,Dan B Goldman,Pradeep Sen.Image Melding: Combining Inconsistent Images using Patch-based Synthesis[J].ACM Transactions on Graphics,2012,31(4CD):82.1-82.10

[8] Wilczkowiak M M,Brostow G J,Tordoff B,et al.Hole filling through photomontage[C]//Proceedings of the British Machine Vision Conference 2005.Oxford.British Machine Vision Association,2005.

[9] 沈玲.基于语义感知深度模型的图像修复方法研究[D].合肥:合肥工业大学,2020.

[10] Liu G L,Reda F A,Shih K J,et al.Image inpainting for irregular holes using partial convolutions[M]//Computer Vision – ECCV 2018.Cham:Springer International Publishing,2018:89-105.

[11] Dolhansky B,Ferrer C C.Eye in-painting with exemplar generative adversarial networks[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.June 18-23,2018,Salt Lake City,UT,USA.IEEE,2018:7902-7911.

[12] Gao R H,Grauman K.On-demand learning for deep image restoration[C]//2017 IEEE International Conference on Computer Vision.October 22-29,2017,Venice,Italy.IEEE,2017:1095-1104.

【通聯编辑:唐一东】

猜你喜欢
深度学习神经网络人工智能
神经网络抑制无线通信干扰探究
2019:人工智能
人工智能与就业
数读人工智能
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定