基于深度学习的老照片修复系统设计与实现

本文介绍了基于深度学习的图片修复软件,利用深度卷积神经网络和残差网络技术,实现照片划痕修复、黑白照片上色及两者结合的功能。通过PyQt开发工具构建用户友好的界面,同时优化了资源使用,使得在普通家用机上也能获得满意效果。
摘要由CSDN通过智能技术生成

作品简介

老照片通常因为年代久远,颜色开始退化,并且出现划痕,斑点等破损,一些老照片上的内容由于种种原因已经无法再现,因此老照片的修复十分重要。成为如何修复照片上的划痕和破损、以及如何对黑白照片上色,是一个十分具有现实意义的问题。传统的照片修复方式是使用PhotoShop进行人工的修复,但却因为对人工的要求很高而导致了费用很贵,且时间成本高。当下,随着深度学习在计算机视觉方向的进一步发展,一些AI算法已经做到可以自动修复照片的功能。本项目基于深度卷积神经网络,残差神经网络等经典深度学习模型,针对上述需求,开发一款本地的图片修复软件。所开发的应用的主要功能是保证照片分辨率的同时对照片进行划痕、破损的修复和进行照片的自动上色。针对不同用户的需求,上述功能可以细分为三个功能:

1.照片的划痕和破损的修补。

2.黑白照片的自动上色。

3.对于黑白老照片同时进行自动修补和自动上色。

2  作品效果图(代表作品特色的5-10张图)

系统界面子系统
系统界面子系统分为四个子模块。

“首页”界面,该界面大致介绍本应用的关键功能和使用方法,用户在打开应用时,将首先看到该界面内容,并根据该模块内容进行进一步的操作。

“划痕和破损修复”界面,该界面是用户和对应的子系统的接口,在该模块,用户可以选择需要处理的图片,界面上会显示用户选择的图片,用户可以点击修复按钮,即可调用修复子系统进行修复,完成后,对应的图片将会输出到界面上供用户参考,如果用户需要下载该图片,点击保存图片按钮即可选择保存路径。

“图像上色”界面,该模块是用户和对应的子系统的接口,在该模块,用户可以选择需要处理的图片,界面上会显示用户选择的图片,用户可以点击上色按钮,即可调用修复子系统进行修复,完成后,对应的图片将会输出到界面上供用户参考,如果用户需要下载该图片,点击保存图片按钮即可选择保存路径。

“自动修复”界面,该模块是用户和对应的子系统的接口,在该模块,用户可以选择需要处理的图片,界面上会显示用户选择的图片,用户可以点击自动处理按钮,即可调用修复子系统进行修复,完成后,对应的图片将会输出到界面上供用户参考,如果用户需要下载该图片,点击保存图片按钮即可选择保存路径。

3.4 技术运用与特色

关键技术
PyQt开发工具。
PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近。PyQt5特性如下:(1)基于高性能的Qt的GUI控件集;(2)能够跨平台运行在Linux、Window和Mac OS系统上;(3)使用信号槽机制进行通信;(4)对Qt库进行完全封装;(5)可以使用成熟的IDE进行界面设计,并自动生成可执行的Python代码;(6)提供一整套种类齐全的窗口控件。

Unet神经网络
UNet是一个包含4层降采样、4层升采样和类似跳跃连接结构的全卷积网络,其特点是卷积层在降采样和升采样部分完全对称,且降采样端的特征图可以跳过深层采样,被拼接至对应的升采样端。UNet在其提出之初主要被用于医学影像的语义分割,并在之后的应用研究中被扩展至3维视频数据的语义分割77和超分辨率图像生成。UNet是一个泛用性较好的全卷积网络,也衍生出了一些面向特定问题的改进版本,例如在降采样端引入残差块构筑的HDense-UNet79、包含深监督设计和模型剪枝的UNet++等。

残差神经网络
残差网络是为了解决深度神经网络(DNN)隐藏层过多时的网络退化问题而提出。残差神经网络通过使用跳层连接某些层来实现此目的。典型的残差神经网络模型是通过包含非线性和介于线性和非线性之间的批量归一化的双层或三层跳过实现的。可以使用附加的权重矩阵来学习跳过权重;在残差神经网络的背景下,非残差网络可以描述为普通网络。

深度卷积神经网络
当前最流行的神经网络是深度卷积神经网络,虽然卷积网络也存在浅层结构,但是因为准确度和表现力等原因很少使用。目前提到卷积神经网络,学术界和工业界不再进行特意区分,一般都指深层结构的卷积神经网络,层数从几层到几十上百不定。卷积神经网络目前在很多很多研究领域取得了巨大的成功,例如: 语音识别,图像识别,图像分割,自然语言处理等。虽然这些领域中解决的问题并不相同,但是这些应用方法都可以被归纳为: 卷积神经网络可以自动从(通常是大规模)数据中学习特征,并把结果向同类型未知数据泛化。

数值图像修复算法
本文采取的图像修复算法基于2001年的一篇论文论文"Navier-Stokes, Fluid Dynamics, and Image and Video Inpainting"。该算法基于流体动力学和偏微分方程。算法假设任何物体的边缘应该是连续的,并会从已知区域沿着物体边缘到达被选中的待修复区域。然后在修复区域中建立微偏分方程以约束待修复区域的图像强度,然后图像平滑度信息由图像拉普拉斯估计和图像的等渗线。最后基于流体动力学原理填充颜色以减小最小方差。

技术特色
目前得到的图像处理结果可以得到比较好的结果,但并不考虑运行成本,通常程序只能在配置非常高的环境下使用,也有的只能在特定数据上进行使用,扩展性和通用性并不理想。为了实现性能和配置之间的平衡,本应用在设计过程中充分考虑到了机器的配置,力求使用较少的资源达到较高的效果。在搭建神经网络的过程中,本应用将一个完整的图像处理任务分成两个子任务,分别使用两个独立的神经网络,大大降低了网络对配置的要求,在图像修复方面,介于当前基于深度学习的图像修复对配置要求极高,普通家用机基本不可能能够用这些程序修复大型图片,本应用采用“识别-修复”两步骤降低了算法对机器的要求。达到了满意的运行速度和效果。

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值