(已开源)微软出品:老照片自动修复技术
1-模型修复效果2-代码配置cdFace_Enhancement/models/networks/gitclonehttps://github.com/vacancy/Synchronized-BatchNorm-PyTorchcp-rfSynchronized-BatchNorm-PyTorch/sync_batchnorm.cd../../../cdGlobal/detection_modelsgitclonehttps://github.com/vacancy/Synchronized-BatchNorm-PyTorchcp-rfSynchronized-BatchNorm-PyTorch/sync_batchnorm.cd../../cdFace_Detection/wgethttp://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2bzip2-dshape_predictor_68_face_landmarks.dat.bz2cd../3-网络权重配置下载模型权重(文末提供下载方式),将文件Face_Enhancement/checkpoints.zip放在./Face_Enhancement文件夹下,将文件Global/checkpoints.zip放在./Global下.然后分别进行解压,具体命令如下:
cdFace_Enhancement/unzipcheckpoints.zipcd../cdGlobal/unzipcheckpoints.zipcd../安装python依赖包:
pipinstall -r requirements.txt4-使用方法处理划痕图片
命令如下:
pythonrun.py--input_folder[test_image_folder_path] --output_folder[output_path] --GPU0 --with_scratch处理无划痕图片
pythonrun.py--input_folder[test_image_folder_path] --output_folder[output_path] --GPU0注意使用绝对路径,最后的结果会保存在./output_path/final_output/文件夹中.
5-模型效果该模型还能用于图片全局修复以及人脸图像增强,如下图:
具体可参考链接
6-权重下载代码作者把权重文件托管在国外网站上,总大小接近2GB,目前已将代码和权重打包放入百度网盘和和备用地址和彩云中国移动网盘,方便大家高速下载。关注并进入公众号后台,回复"666"即可获取下载链接。
END
扫码关注获取最新AI资讯与实战案例
实用AI客栈
小编微信号:langu86
Python 人工智能老照片修复算法学习
Python人工智能老照片修复算法学习前言
老旧或者破损的照片如何修复呢?本文主要分享一个博主使用后非常不错的照片恢复开源项目:Bringing-Old-Photos-Back-to-Life。
项目的Github地址:项目地址
我们先看看官方给出的效果图:
就算现在看到这张图,我仍然觉着非常惊艳。下面我会把项目环境安装部署,到最后使用的效果做一个展示。
项目环境搭建
该项目的环境搭建有点复杂,我一点点说。
conda虚拟环境创建在项目README.md文件中要求python版本在3.6以上。
我们用anaconda创建一个虚拟环境bobl
condacreate-nboblpython=3.6激活环境condaactivatebobl在Pycharm项目中配置interpreter,设置到conda目录envs下bobl环境的python。
Pytorch安装虽然项目官方给出的requirements.txt包含pytorch,为了保险起见,还是去Pytorch官方网站上安装一下。Pytorch官方地址:PyTorch
因为我本机没插显卡,安装的cpu版本。
选择对应的命令安装Pytorch库。
Synchronized-BatchNorm-PyTorchrepository安装官方给出的安装说明里面需要部署Synchronized-BatchNorm-PyTorch项目进来。
这里注意一点,需要把Synchronized-BatchNorm-PyTorch项目中的sync_batchnorm拷贝到上级目录。完整的目录接口参考下图:
Global目录Synchronized-BatchNorm-PyTorch项目部署官方说明里面也需要把Synchronized-BatchNorm-PyTorch项目部署到Global里面。
也是一样要把sync_batchnorm拷贝到上级目录。结构如下:
检测预处理模型下载需要用到一个检测预处理模型,主要是用来识别照片中的人脸部分的。
注意解压后的位置,结构如下:
下载脸部增强模型文件官方说明:
下载两个模型zip解压到对应目录下,结构如下:
下载依赖注意,我这里去掉了pytorch的依赖安装,已经已经装过了。
dlibscikit-imageeasydictPyYAMLdominate>=2.3.1dilltensorboardXscipyopencv-pythoneinopsPySimpleGUI安装命令:
pipinstall-rrequirements.txt-ihttps://pypi.douban.com/simple完整部署后项目结构完整的结构如下图:
项目使用
官方给到的图,我就不用了,不能说明问题。我自己准备了两种图,一张是一张人脸的,一张是多张人脸的。
先按照官方给出的命令跑跑看
我们直接使用最下面这个命令,包含划痕去除与高度还原。看一下执行情况。
(bobl)D:spyderBringing-Old-Photos-Back-to-Life>pythonrun.py--input_folderE:csdn老照片--output_folderresult1/--GPU-1--with_scratch--HRRunningStage1:Overallrestorationinitializingthedataloadermodelweightsloadeddirectoryoftestingimage:E:csdn老照片processing1.jpgprocessing2.jpgMapping:Youareusingmulti-scalepatchattention,convcombine+maskinputNowyouareprocessing1.pngC:ProgramDataAnaconda3envsobllibsite-packages orch nfunctional.py:3635:UserWarning:Defaultupsamplingbehaviorwhenmode=bilinearischangedtoalign_corners=Falsesince0.4.0.Pleasespecifyalign_corners=Trueiftheoldbehaviorisdesired.Seethedocumentationofnn.Upsamplefordetails."Seethedocumentationofnn.Upsamplefordetails.".format(mode)Nowyouareprocessing2.pngFinishStage1...RunningStage2:FaceDetection121FinishStage2...RunningStage3:FaceEnhancementdataset[FaceTestDataset]ofsize13wascreatedThesizeofthelatentvectorsizeis[16,16]Network[SPADEGenerator]wascreated.Totalnumberofparameters:92.1million.Toseethearchitecture,doprint(network).hi:)FinishStage3...RunningStage4:BlendingFinishStage4...Alltheprocessingisdone.Pleasechecktheresults.(bobl)D:spyderBringing-Old-Photos-Back-to-Life>输出的文件不但有最终的结果,也有检测出来的每个脸的处理前后效果。结果结构如下:
验证一下
1、多人照片最终的效果验证,下面上图是输出结果图,下图是原始图。可以看出有些划痕已经消失,但是还是有一些,不过整体的任务更立体鲜明了。
2、单人照片最终效果验证,下面上图为结果图,下图为原始图。单人就很明显了,不但划痕都消除了,人也更清晰立体,效果是真不错。
3、模型也会把多人图中的每张脸都识别出来,并且跑出结果,可以对比一下看看,细节还是修复的很好的。
总结
官方还给出了其他的命令,就不一一验证了。整体的效果是非常好的,只是在多人图的时候还有些瑕疵,瑕不掩瑜。
关于Python人工智能老照片修复算法学习的文章就介绍至此,更多相关Python人工智能内容请搜索编程宝库以前的文章,希望大家多多支持编程宝库!
下一节:五个Python迷你版小程序附代码Python编程技术一、石头剪刀布游戏目标:创建一个命令行游戏,游戏者可以在石头、剪刀和布之间进行选择,与计算机PK。如果游戏者赢了,得分就会添加,直到结束游戏时,最终的分数会展示给游戏者。提示:接收游戏者的选择...
老照片修复
老照片修复-上色-生成动图的操作方法目前对老照片的处理主要可以通过深度学习方式、第三方APP、PS等方式进行处理。本文主要讲述这三种方式的处理方法,暂时不涉及具体技术原理。
一、用深度学习进行老照片处理。**(一)老照片修复。**深度学习技术已经在图像修复、无损放大、上色等计算机视觉领域的迅速发展,采用深度学习技术的修复方法能够捕获图像的高层语义信息,与传统的修复方法相比,具有良好的修复效果。我使用Python实现BringingOldPhotoBacktoLife进行图像和视频的修复。进入Github项目https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life,然后进入项目中的colab链接,https://colab.research.google.com/drive/1NEm6AsybIiC5TwTU_4DqDkQO0nFRB-uA?usp=sharing#scrollTo=0pJxB6p1R1jE在colab中直接运行代码,可以使用免费GPU在线进行修复。
**(二)老照片上色。**使用DeOldify给黑白照片上色,该项目是基于深度学习技术开发的,地址如下:https://github.com/jantic/DeOldify。
同样这个项目可以进入colab在线进行老照片的上色。https://colab.research.google.com/github/jantic/DeOldify/blob/master/ImageColorizerColab.ipynb#scrollTo=-T-svuHytJ-8
**(三)老照片动态图。**Yanderify这个项目目前在Github上属于开源项目,是基于深度学习,并使用Python来实现的开源项目,https://github.com/dunnousername/yanderifier
进入官网下载最新发布的运行压缩包,解压后,双击“StartYanderify”就可以上传图像,并制成动图。
二、用第三方APP进行老照片处理。目前市面上处理老照片的第三方app有很多,但是其后台也是用深度学习方法处理,我在这里只是随便找了几个软件。**(一)老照片修复。**我使用美图秀秀软件就行修复,进入美图秀秀微信小程序,注册并登录后在工具箱中就可以进行修复。
**(二)老照片上色。**这种上色的第三方软件比较多,我用得是猎豹老照片修复微信小程序,进入主页后点击黑白照片上色。
**(三)老照片生成动图。**我用的是myheritage这个软件,现在好像要收费,也可以网上查找一些不收费得软件进行使用。https://www.myheritage.com/deep-nostalgia
三、用PS进行老照片处理。在AdobePhotoshop中可以手动进行图像去噪,图像增强,图片放大,图像修复,也可以进行手动上色或者自动上色,还可以通过时间轴制作动图。此外Topaz全家桶也可以实现以上功能。
5 款 AI 老照片修复工具的横向比较
在大语言模型和各类AI应用日新月异的今天,我终于下定决心,趁着老照片们还没有完全发黄褪色、受潮粘连抑或损坏遗失,将上一代人实体相册里的纸质胶卷照片全部数字化,并进行一次彻底的AI修复,好让这些珍贵的记忆能更长久地保存下去。
数字化的方式是使用Google相册提供的「照片扫描仪」(Photoscan)应用,它能自动调整角度、裁剪边缘,消除眩光、阴影,并将原件和自动编辑过的图片同时保存在iCloud相册中。(条件允许的话,更建议使用扫描仪以得到最大的分辨率。)
接下来遇到的问题是如何挑选一款合适的AI修复工具。根据以往经验和近期热门,我挑选了5款候选。为了使修复效果达到最好,我把待修复的小几百张老照片,几乎每张都用全部工具试了一遍,也算是对这些工具进行了一次深度使用,因此下面就把体验分享给大家。
工具列表工具平台价格模型CodeFormer网页免费(开源)CodebookLookupTransFormer(CodeFormer),2022年RestorePhotos.io网页免费(开源)GFP-GAN,2021年jpgHD.com网页/iOS/Android/Mac/Windows收费,可免费试用5张未公开的AI超分模型,2021年你我当年iOS/Android收费,观看20秒广告可以处理1张未公开老照片修复iOS/Android收费未公开这里额外介绍一下两款开源工具:
CodeFormer(官方网站|GitHub项目地址):南洋理工大学周尚辰等人的作品,基于CodebookLookupTransFormer模型实现。可以使用作者通过在线模型运行服务Replicate搭建的demo直接体验(受限于Replicate的免费额度,超出需要付费)。附我使用的参数供参考:fidelity=0.8,background_enhance=true,face_upsample=true,upscale=2RestorePhotos.io(官方网站|GitHub项目地址):基于腾讯ARC实验室GFP-GAN模型实现的老照片修复工具。官网每天可以免费使用5次,但也可以通过Vercel等方式一键部署,并填入自己的ReplicateAPIkey,从而不受限制地使用。注:由于可以理解的隐私原因,以下就不放我实际用来修复的照片了,我从公开渠道搜集了一些图片用于测试,以供大家辨别参考。
第一组测试图片:单人及双人(大头照)测试1-1邓丽君这是一张电视节目截图中的邓丽君。几乎所有工具都对这张图片进行了不错的还原,包括头发以及耳环(「CodeFormer」在牙齿的细节处理上存在一些瑕疵)。你觉得哪张图更像真实的邓丽君呢?
测试1-2周杰伦这张周杰伦童年照的原始图片比较模糊,且有很多噪点。从还原表现上来看「CodeFormer」、「你我当年」、「老照片修复」在背景降噪、衣服质感的还原上更加出色,但只有「jpgHD.com」准确还原出了周董的单眼皮以及内眼角细节,在我看来它是最像图片最初模样的。其他工具均适当发挥了「想象力」。
测试1-3张国荣与张柏芝合影一张模糊不清的合影,5个工具的修复效果可谓齐轨连辔。
测试1-4张学友与王祖贤合影除「jpgHD.com」对王祖贤的皮肤处理比较粗糙以外,各家工具在这种单人及双人大头照的处理上几乎难分伯仲。注意所有工具均对耳坠进行了还原修复。
测试1-5爱因斯坦这里尝试对1927年第五次索尔维会议上的阿尔伯特·爱因斯坦、亨德里克·洛伦兹、居里夫人三位大神进行修复。原图为黑白,已经过人工上色处理,但并未对细节进行放大修复。可见「CodeFormer」对人脸、西装的修复效果都更好,且成功识别了后方只有半张脸的阿瑟·康普顿。
测试1-6洛伦兹注意「老照片修复」错误地生成了一个模糊不清的眼镜轮廓。
测试1-7居里夫人从皮肤质感上看「CodeFormer」的清晰程度领先于其他工具。
第二组测试图片:多人(大合影)测试2-1:轻微模糊的多人合影图片作者无考,原标题为「镜头下:80年代的中国儿童」。(来源链接)
原图CodeFormerRestorePhotos.iojpgHD.com你我当年老照片修复测试2-2:中度模糊的四人合影图片来源:南京理工大学经济管理学院国贸双学位班学生校园随拍(1990年夏,左起:韩梦玲、周详文、石英、吕虹)。(来源链接)
对这张图片的处理产生了比较明显的差异,「CodeFormer」面部较为自然,成功还原了左三女生的眼镜(但产生了毛刺),并对头发、衣物和建筑物修复得更为精确;「你我当年」的面部修复效果非常自然,「老照片修复」在建筑物修复上也表现得很不错。而「RestorePhotos.io」则在面部还原上出现了较大程度的扭曲,左三女生的眼镜并没有被成功修复。
原图CodeFormerRestorePhotos.iojpgHD.com你我当年老照片修复测试2-3:高度模糊的多人合影图片来源:中国科学院上海光学精密机械研究所80年代西楼小会堂前合影(左起,前排:王慧敏、张莲英、杨姮彩、于阿滨、顾德英、李爱莲,后排:林岳明、方祖捷、张位在、金志良、刘枝伍、胡衍芝)。(来源链接)
这张图的人脸出现了较大程度的模糊,各个工具均充分发挥了想象进行脑补。
从五官的自然和谐程度上来看,我会对修复效果这么排序:CodeFormer>老照片修复>jpgHD.com>你我当年>RestorePhotos.io。
从背景、衣物的修复效果上来看,我会对修复效果这么排序:CodeFormer=老照片修复>你我当年>RestorePhotos.io=jpgHD.com。
原图CodeFormerRestorePhotos.iojpgHD.com你我当年老照片修复测试结论工具画质提升清晰程度准确程度修复速度CodeFormer支持可选提高画质(自定义倍率)很高较高对比原图准确性较高,但有可能出现少量不自然的细节一般从6s至60s不等RestorePhotos.io不支持较低生成出来的图片最大分辨率为1200px较低对比原图「脑补想象」程度更大,在小头像上表现比较差,很容易出现扭曲变形很快通常都可以在10s内完成jpgHD.com支持可选提高画质(2x、4x)中等很高能还原出原始照片的真实细节很慢即便是小图片也可能耗时3至5分钟你我当年支持默认2x较高中等对于小头像可能出现失真很快通常在10s左右老照片修复支持默认2x较高较高很快通常在10s左右综合来看,我更推荐免费且开源的「CodeFormer」,如果大家与我一样有同时修复几百张照片的需求,可以将「CodeFormer」搭建在本地,处理起来就省心多了。「你我当年」、「老照片修复」表现都还算稳定,但在小头像的表现上不如「CodeFormer」,且是收费软件。
除「RestorePhotos.io」以外的工具都支持老照片上色,本文未对该功能进行测试。「RestorePhotos.io」对于大头照,以及磨砂颗粒或干涉条纹较多的疑难图片处理有一定的优势,其他情况都不甚理想。
结语因精力有限,本文仅对一些常见情况做了测试比较,希望能帮大家做出一个初步的选择判断。实际上在老照片修复过程中还会面临诸多疑难杂症,例如因磨砂处理产生的颗粒、因翻拍屏幕产生的干涉条纹,以及一些涂抹、折痕、撕裂、霉斑等问题。面对这些问题的时候,可以尝试不同的工具进行综合对比,甚至也需要更多的耐心人工介入,将不同修复工具的效果进行叠加处理。
对老照片进行初步修缮后,还可以尝试使用这些工具进行进一步无损放大,以及智能上色处理。也推荐动手能力强的朋友们对那些非常重要的珍贵照片进行人工调色、贴图等进一步的后期加工,毕竟尽管AI已经能帮我们很大程度上还原照片本来的模样,却不能100%准确再现历史。对于修复照片有极致要求的朋友们,建议你们联系一个叫「TR美术」的团队,我会把他们手工修复曾国藩、左宗棠的对比图附在下面,供你们参考。