2. 上海交通大学 图像通信与网络工程研究所, 上海 200240
2. Institute of Image Communication & Networking Engineering, Shanghai Jiao Tong University, Shanghai 200240, China
开放科学(资源服务)标志码(OSID):
照片具有直观、鲜明、形象生动、信息量丰富的特点,是社会记忆中的重要组成部分[1]。老照片一般都以纸等介质存在,随着时间、存储环境等因素的影响,会造成照片的划痕损伤。虽然造成划痕损伤的原因不同,但都有类似的视觉效果和一些共同的特征。传统修复方法通过专业人员手工修复,修复过程复杂且成本高。随着数字化技术的成熟,基于数字图像处理技术为老照片修复提供了便利[2-3],如美图秀秀、Remini Photo Enhancer等图像编辑软件具有老照片修复功能,但好的修复效果仍需依靠专业人员手工修复,费时且价格昂贵[4]。
老照片往往同时含有多种损伤,文献[5]指出老照片包括结构性损伤和非结构性损伤,结构性损伤主要是指划痕、破损等,而非结构性损伤主要是指颜色泛黄、低分辨率等。尽管老照片包含多种损伤,但是多数的老照片都存在划痕/折痕样损伤,和老电影胶片划痕类似,也有研究人员进行老电影胶片划痕的自动修复[6]。尽管老电影可以利用相邻帧的时序信息[7],但是老照片是静态图像,不能利用时序信息,且老电影划痕都是直线,而老照片的划痕不一定是直线,所以修复老照片划痕更加困难。
数字图像修复的方法可以分为传统方法和基于深度学习的方法。传统的修复方法一般都是先检测图像划痕[8],再利用划痕周边特征进行修复[9]。随着深度学习技术的发展,深度学习方法能够在纹理修复的基础上获取图像的语义信息并预测语义内容,使修复的整体效果更加符合客观事实[10]。文献[11]利用叠加部分卷积运算和掩模更新步骤进行图像修复,恢复干净的图像。文献[12]则提出一种全新的注意力模块,该模块不仅有效利用了上下文信息,同时能够捕捉到生成补丁之间的相关性去修复那些不规则的划痕和孔洞。文献[13]则将不规则划痕和孔洞修复任务分为结构重建和纹理生成两部分。上述方法都需要在网络训练中同时加入掩码,才能得到较好的修复效果。
深度学习是一种数据驱动的学习方法,文献[5]为研究老照片深度学习修复方法,从网络上搜集真实的老照片,并且模拟老照片的退化过程制作了合成数据集,但由于版权原因,搜集到的真实老照片和合成数据集都没有公开。因此,搜集老照片进行数据增强以形成划痕老照片数据集,对于深度学习的划痕自动修复方法研究具有重要意义。
本文针对老照片划痕修复缺少划痕数据集的问题,参考去雨痕的全监督MSFA方法,提出一种基于半监督学习的Semi-MSFA老照片修复方法。通过搜集划痕分布图像,制作了700张图像的SynOld老照片划痕合成数据集,同时搜集含有划痕的537张真实老照片用于训练和测试。在此基础上,对合成数据集与真实老照片同时加入网络进行学习,以提升在合成数据集与真实老照片上的修复效果。
1 老照片划痕数据集目前,针对图像划痕的数据集主要有Quick Draw Irregular Mask Dataset(QD-IMD)、NVIDIA Irregular Mask Dataset(NVIDIA-IMD)[11]、II-CGAN[14]等数据集,如表 1所示。QD-IMD和NVIDIA-IMD分别生成了不同数量的不规则掩码,如图 1所示,QD-IMD在CelebA-HQ[15]人脸数据集上加上这些图像掩码得到最终的划痕数据集,NVIDIA-IMD则是在ImageNet[16]、Places2[17]和CelebA-HQ 3个数据集上添加图像掩模制作出最终的数据集,如图 2所示。II-CGAN重点关注绘画的破损修复,数据集搜集了800张绘画,制作了50个掩码,其中30个来自互联网,其他20个由计算机生成,背景像素为0,划痕像素为255。这些划痕数据集都是人工合成的数据集,掩码也是人工随机生成的,白色划痕像素值为255,而老照片白色划痕值范围为0~255,并且人工生成的随机划痕掩码宽度大,与老照片的细长划痕相差较远。文献[5]搜集了62种划痕图像来模拟老照片的结构性划痕,制作了模拟老照片退化的数据集,如图 3所示,但因图像版权问题,所建划痕图像集未公开。
![]() |
下载CSV 表 1 划痕数据集 Table 1 Scratch datasets |
![]() |
Download:
|
图 1 QD-IMD与NVIDIA-IMD划痕数据集的掩模示例 Fig. 1 Mask examples of QD-IMD and NVIDIA-IMD scratch datasets |
![]() |
Download:
|
图 2 NVIDIA-IMD数据集中掩码叠加后的图像与原图 Fig. 2 Images after mask overlay and original images in NVIDIA-IMD dataset |
![]() |
Download:
|
图 3 模拟的老照片划痕图像 Fig. 3 Simulated old photos scratch image |
要完全模拟出老照片的退化过程是十分困难和不切实际的,因为老照片退化可能会出现以下类型的缺陷:不准确的处理或原始图像存储不当;由化学因素引起退化;由底层支架的分解造成的退化。但是,不同的缺陷可能在文档数字化后看起来是相似的[18],并且划痕沿着所有图像以任何方向和颜色延伸,宽度和方向的变化可能很小,有可能存在中断,且没有分支[19],但也有的划痕呈现弯曲状,和镜子破碎时的裂纹类似。除未公开的文献[5]制作的数据集外,表 1中的数据集也无法达到模拟出受损的老照片的效果。
针对老照片划痕自动修复学习任务要求,本文尽可能地去逼近老照片退化的过程,减少和真实老照片之间的差异。考虑到老照片的损伤多数是划痕类型的结构性损伤,所以本文重点关注划痕的修复过程。通过对老照片白色划痕位置处像素值分析,划痕像素值并不是255,从网络上搜集了133张符合老照片划痕分布的图像,如图 4所示,背景像素为0,白色划痕像素值为[1, 255],这些划痕均是细条纹,同时还存在小块白色区域,可类比老照片中部分缺失区域。在此基础上,从Pascal VOC 2012[20]中选取图像作为背景图像,随机选取数据增加后的白色划痕图像进行图层叠加,制作生成了SynOld老照片划痕数据集,如图 5所示,该数据集共有700张图像。
![]() |
Download:
|
图 4 划痕掩模图像 Fig. 4 Scratch mask images |
![]() |
Download:
|
图 5 SynOld数据集中老照片合成示例 Fig. 5 Example of old photo synthesis in the SynOld dataset |
考虑到生成的老照片划痕数据集不能完全模拟真实老照片划痕中存在的各类情况,直接应用所生成的SynOld数据集进行学习实现划痕修复效果并不理想。为此,本文参考多尺度特征注意力(MSFA)网络[21]的监督学习模型方法,提出一种综合利用合成数据集与真实老照片的半监督学习的Semi-MSFA划痕修复方法,以更好地适用于老照片修复任务。
Semi-MSFA的网络结构如图 6所示。本文方法将合成图像和真实老照片图像同时加入到网络中进行训练,合成图像为有真值的数据对
![]() |
Download:
|
图 6 Semi-MSFA划痕修复网络 Fig. 6 Semi-MSFA scratch repairing network |
为减少网络参数,有监督与无监督修复两条分支共享参数,在训练过程中迭代更新参数,即随机从有真值的数据样本中选取批次大小为2的图像块计算对应的损失函数。同时,从无标签的老照片样本中选取批次为2的图像块,计算相应的损失函数。综合两条分支得到总的损失函数,根据反向传播来更新参数。
判别器D参数如下:
[layer1]:Conv(3,64),kernel=4,stride=2,LReLU。
[layer2]:Conv(64,128),kernel=4,stride=2,InstanceNorm2d,LReLU。
[layer3]:Conv(128,256),kernel=4,stride=2,InstanceNorm2d,LReLU。
[layer4]:Conv(256,512),kernel=4,stride=1,InstanceNorm2d,LReLU。
[layer5]:Conv(512,1),kernel=4,stride=1,LReLU。
[layer6]:全连接层,Sigmoid。
对于有监督分析,损失函数有以下3种:
1)为了让合成图像经过网络之后的复原图像尽可能地靠近真值,因此本文采用了均方差损失,均方差损失
$ {L}_{\mathrm{m}\mathrm{s}\mathrm{e}}=\frac{1}{l}\sum\limits _{i=1}^{l}{‖{I}_{\mathrm{g}\mathrm{t}}^{i}-{M}_{\mathrm{M}\mathrm{S}\mathrm{F}\mathrm{A}}\left({I}_{\mathrm{s}\mathrm{y}\mathrm{n}}^{i}\right)‖}_{2} $ | (1) |
2)感知损失
$ {L}_{\mathrm{p}\mathrm{e}\mathrm{r}}=\frac{1}{l}\sum\limits _{i=1}^{l}{‖\phi \left({I}_{\mathrm{g}\mathrm{t}}^{i}\right)-\phi \left({M}_{\mathrm{M}\mathrm{S}\mathrm{F}\mathrm{A}}\left({I}_{\mathrm{s}\mathrm{y}\mathrm{n}}^{i}\right)\right)‖}_{2} $ | (2) |
其中:
3)对抗损失Lgan为:
$ {L}_{\mathrm{g}\mathrm{a}\mathrm{n}}=E\left[\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}D\left({I}_{\mathrm{g}\mathrm{t}}^{i}\right)\right]+E\left[\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}D\left(1-{I}_{\mathrm{s}\mathrm{y}\mathrm{n}}^{i}\right)\right] $ | (3) |
其中:D代表判别器。加入判别器引入了额外的对抗损失,为网络增加了新的正则化,帮助网络恢复出更好的结果,用于判别是网络生成的图像还是真值图像。
对于无监督分支,采用总变差损失(Total Variation Loss)
$ {L}_{\mathrm{t}\mathrm{v}}=\frac{1}{u}\sum\limits _{i=1}^{u}\left({‖{\nabla }_{h}{M}_{\mathrm{M}\mathrm{S}\mathrm{F}\mathrm{A}}\left({I}_{\mathrm{r}\mathrm{e}\mathrm{a}\mathrm{l}}^{i}\right)‖}_{1}+{‖{\nabla }_{v}{M}_{\mathrm{M}\mathrm{S}\mathrm{F}\mathrm{A}}\left({I}_{\mathrm{r}\mathrm{e}\mathrm{a}\mathrm{l}}^{i}\right)‖}_{1}\right) $ | (4) |
其中:
总的损失函数为:
$ L={L}_{\mathrm{m}\mathrm{s}\mathrm{e}}+\alpha {L}_{\mathrm{p}\mathrm{e}\mathrm{r}}+\beta {L}_{\mathrm{g}\mathrm{a}\mathrm{n}}+\gamma {L}_{\mathrm{t}\mathrm{v}} $ | (5) |
其中:
算法1 Semi-MSFA迭代训练过程
输入 初始化生成器MMSFA网络参数
输出 更新生成器MMSFA网络参数
1.while i < 迭代次数do
2.随机选取裁剪合成图像
3.随机选取裁剪真实老照片图像块
4.得到图像块MMSFA(
5.得到图像块MMSFA(
6.根据式(1)计算均方差损失
7.根据式(2)计算感知损失
8.根据式(3)计算对抗损失
9.根据式(4)计算总变差损失
10.根据式(5)计算总的损失L
11.根据L,应用Adam进行MSFA-Net网络参数更新
12.i ← i + 1
13.end while
3 实验结果与分析为了评估所提出的方法,本文使用SynOld中700张合成图片及网上搜集的537张划痕老照片进行半监督去划痕学习,其中500张SynOld图片与355张老照片用于训练,200张SynOld图片及182张老照片用于测试。损失函数L中参数设定为:α= 0.1,β= 0.01,γ = 0.01。
在训练过程当中,网络总共训练90个epoch,每个epoch迭代5次,学习率为10-4,在后45个epoch中学习率线性递减,学习率为10-4–(10-4-10-6)(E-45)/45,其中,E代表训练轮数。采用Adam优化算法,β1=0.9,β2=0.99。在训练过程中,将图像裁剪为256×256像素大小,随机旋转90º或者翻转180º进行数据增强。
为更清晰地了解各个损失函数的作用,本文做了以下消融实验:即无监督分支的损失函数不发生变化,有监督分支仅使用均方差损失、感知损失、均方差损失和感知损失、均方差损失和对抗损失、感知损失和对抗损失、均方差损失和感知损失及对抗损失进行实验,表 2为在合成数据集的测试集上得到的PSNR与SSIM值。从表 2可以看出,在同时使用均方差损失、感知损失和对抗损失条件下,PSNR与SSIM值最高。
![]() |
下载CSV 表 2 不同损失函数条件下的PSNR与SSIM结果 Table 2 PSNR and SSIM results under different loss functions |
为了对比本文方法的去划痕效果,对于SynOld中的划痕合成图片,图 7给出了与文献[5, 21]方法去划痕效果的对比,图 8给出了其中手臂、人脸细节部分的划痕修复结果对比。在合成数据集上,文献[5]的方法有一定的划痕修复效果,但也存在细小噪声点不能修复的问题。可以看出,在修复第1张合成图像划痕图像的同时,人脸修复失败,但MSFA与Semi-MSFA方法并未出现这种情况,在修复划痕的同时也能保存完整人脸细节。观察第2张合成图像划痕修复情况,在图 8中人手臂的细节图像部分,可以发现文献[5]方法修复噪点失败,造成手臂和真值图像相差甚远。对于第4张合成图像划痕修复情况,通过对比截取放大部分人脸的细节,发现虽然人脸处没有受到划痕的影响,但是文献[5]方法模糊了人脸处的细节,文献[21]方法虽然没有模糊细节,但是修复划痕的效果却不如本文Semi-MSFA网络方法。
![]() |
Download:
|
图 7 合成图像修复结果对比 Fig. 7 Comparison of synthetic image repairing results |
![]() |
Download:
|
图 8 图 7中第2张手臂与第4张人脸局部细节对比 Fig. 8 Comparison of the details of the human hand in the second image and the face in the fourth image on figure 7 |
对于在加入网络学习的真实老照片修复结果中,文献[5]方法在对比度方面有增强效果,在人脸方面也比其他的方法更清晰,主要是在训练网络时加入了人脸增强的网络,但是有时恢复人脸的过程中会出现差错,比如图 9第1张老照片中鼻子附近区域的恢复过程中出现白色区域的缺失(见图 10)。对于嘴唇上方有需要修复的细小划痕,文献[21]也未能修复,而Semi-MSFA方法更能保护细节。对于未加入网络训练的真实老照片,图 11给出了这3种方法修复结果:第1张老照片中耳朵附近区域存在白色斑点需要修复(见图 12),可以观察到,文献[5, 21]方法没有修复完全,Semi-MSFA方法能很好地修复斑点及划痕。第5张人脸部位也有划痕需要修复,对比局部细节可以看出,除Semi-MSFA方法外,文献[5, 21]方法结果中划痕均存在不同程度未被修复的情况。
![]() |
Download:
|
图 9 训练过程老照片修复结果 Fig. 9 Repairing results of old photos from the training process |
![]() |
Download:
|
图 10 图 9中方框标示区域局部细节对比 Fig. 10 Comparison of local details in the area marked by the box in figure 9 |
![]() |
Download:
|
图 11 未训练老照片的修复结果对比 Fig. 11 Comparison of repairing results of untrained old photos |
![]() |
Download:
|
图 12 图 11中方框标示区域局部细节对比 Fig. 12 Comparison of local details in the area marked by the box in figure 11 |
划痕是老照片最常见的损伤,基于生成对抗网络,通过有监督学习方法进行老照片划痕修复是当前老照片划痕修复的主要方法。针对真实划痕老照片缺少原始图片用于监督学习的问题,本文建立人工划痕合成数据集,同时搜集建立含有划痕的真实老照片数据集。对于老照片划痕修复,在有监督MSFA方法基础上,提出一种Semi-MSFA老照片划痕修复方法。实验结果表明,与MSFA方法相比,本文提出的Semi-MSFA方法实现了对老照片划痕修复的半监督学习,在合成数据测试集及真实老照片上具有较好的修复效果。本文方法修复后的老照片在色彩方面不够鲜明,下一步将在颜色恢复方面进行研究。此外,老照片多数都存在人脸图像,因此在修复老照片划痕的同时,将考虑对人脸进行增强,提升人脸部分的修复质量。
[1] |
齐文台, 荆涛, 李嵋, 等. 破损照片档案数字修复的应用研究[J]. 档案学研究, 2019(5): 120-126. QI W T, JING T, LI M, et al. Research on the application of digital restoration for damaged photographic archives[J]. Archives Science Study, 2019(5): 120-126. (in Chinese) |
[2] |
BRUNI V, VITULANO D. A generalized model for scratch detection[J]. IEEE Transactions on Image Processing, 2004, 13(1): 44-50. DOI:10.1109/TIP.2003.817231 |
[3] |
高飞, 王佳君, 喻强, 等. 区别结构和纹理的稀疏表示图像修复算法[J]. 计算机工程, 2016, 42(3): 242-248. GAO F, WANG J U, YU Q, et al. Image inpainting algorithm based on sparse representation distinguishing structure and texture[J]. Computer Engineering, 2016, 42(3): 242-248. (in Chinese) DOI:10.3969/j.issn.1000-3428.2016.03.044 |
[4] |
Memory cherish[EB/OL]. [2021-08-10]. https://memorycherish.com/upload/.
|
[5] |
WAN Z Y, ZHANG B, CHEN D D, et al. Bringing old photos back to life[C]//Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2020: 2744-2754.
|
[6] |
龙振兴. 电影胶片斑块损伤修复技术的研究[D]. 上海交通大学, 2008. LONG Z X. Research on blotch removal in old films[D]. Shanghai: Shanghai Jiao Tong University, 2008. (in Chinese) |
[7] |
IIZUKA S, SIMO-SERRA E. DeepRemaster: temporal source-reference attention networks for comprehensive video enhancement[EB/OL]. [2021-08-10]. https://arxiv.org/abs/2009.08692.
|
[8] |
HUANG L J, LIU Q H, TANG J, et al. Scratch line detection and restoration based on Sobel operator[J]. International Journal of Grid and Utility Computing, 2015, 6(2): 67. DOI:10.1504/IJGUC.2015.068820 |
[9] |
范春奇, 任坤, 孟丽莎, 等. 基于深度学习的数字图像修复算法最新进展[J]. 信号处理, 2020, 36(1): 102-109. FAN C Q, REN K, MENG L S, et al. Advances in digital image inpainting algorithms based on deep learning[J]. Journal of Signal Processing, 2020, 36(1): 102-109. (in Chinese) |
[10] |
强振平, 何丽波, 陈旭, 等. 深度学习图像修复方法综述[J]. 中国图象图形学报, 2019, 24(3): 447-463. QIANG Z P, HE L B, CHEN X, et al. Survey on deep learning image inpainting methods[J]. Journal of Image and Graphics, 2019, 24(3): 447-463. (in Chinese) |
[11] |
LIU G, REDA F A, SHIH K J, et al. Image inpainting for irregular holes using partial convolutions[C]//Proceedings of ECCVʼ18. Berlin, Germany: Springer, 2018: 89-105.
|
[12] |
LIU H Y, JIANG B, XIAO Y, et al. Coherent semantic attention for image inpainting[C]//Proceedings of 2019 IEEE/CVF International Conference on Computer Vision. Washington D. C., USA: IEEE Press, 2019: 4169-4178.
|
[13] |
REN Y R, YU X M, ZHANG R N, et al. StructureFlow: image inpainting via structure-aware appearance flow[C]//Proceedings of 2019 IEEE/CVF International Conference on Computer Vision. Washington D. C., USA: IEEE Press, 2019: 181-190.
|
[14] |
XIANG P, WANG L, CHENG J, et al. A deep network architecture for image inpainting[C]//Proceedings of the 3rd IEEE International Conference on Computer and Communications. Washington D. C., USA: IEEE Press, 2017: 1851-1856.
|
[15] |
LIU Z W, LUO P, WANG X G, et al. Deep learning face attributes in the wild[C]//Proceedings of 2015 IEEE International Conference on Computer Vision. Washington D. C., USA: IEEE Press, 2015: 3730-3738.
|
[16] |
RUSSAKOVSKY O, DENG J, SU H, et al. ImageNet large scale visual recognition challenge[J]. International Journal of Computer Vision, 2015, 115(3): 211-252. DOI:10.1007/s11263-015-0816-y |
[17] |
ZHOU B L, LAPEDRIZA A, KHOSLA A, et al. Places: a 10 million image database for scene recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018, 40(6): 1452-1464. DOI:10.1109/TPAMI.2017.2723009 |
[18] |
ARDIZZONE E, DE POLO A, DINDO H, et al. A dual taxonomy for defects in digitized historical photos[C]//Proceedings of the 10th International Conference on Document Analysis and Recognition. Washington D. C., USA: IEEE Press, 2009: 1166-1170.
|
[19] |
ARDIZZONE E, DINDO H, MAZZOLA G. Multidirectional scratch detection and restoration in digitized old images[J]. EURASIP Journal on Image and Video Processing, 2010, 10: 1-11. |
[20] |
EVERINGHAM M, ESLAMI S M A, GOOL L, et al. The pascal visual object classes challenge: a retrospective[J]. International Journal of Computer Vision, 2015, 111(1): 98-136. DOI:10.1007/s11263-014-0733-5 |
[21] |
WU S, ZHOU J. MSFA-Net: a network for single image deraining[C]//Proceedings of the 4th International Conference on Data Mining, Communications and Information Technology. Washington D. C., USA: IEEE Press, 2020: 337-345.
|
[22] |
LI L, DONG Y L, REN W Q, et al. Semi-supervised image dehazing[J]. IEEE Transactions on Image Processing, 2020, 29(3): 2766-2779. |