草庐IT

AI修复照片

思必得_22 2023-03-28 原文

一、前言

最近闲来无事,翻了翻以前的老照片,看着多年前的老照片,感慨万千,仿佛又回到了以前的青春岁月。
只可惜青春易逝,无法重来。意气风发,头角峥嵘的画面只能永远地留存在相片之中了。只叹当时没有多拍几张照片留作纪念,可惜当时设备也不好,照片效果不佳。留下遗憾。
最近学习了Python,发现可以通过Python使用AI来修复老旧照片,而且修复后的效果非常不错。
AI是一种人工智能技术,它可以用来处理图像和视频。在某些情况下,AI可以帮助修复照片中的瑕疵或缺陷,例如曝光不足、颜色失真等。这意味着,通过使用AI,我们可以更好地处理我们的照片,并确保其质量得到最大程度地修复提升。
要实现这一目标,首先需要对照片进行分析和检测,找出问题所在。然后,将相关信息输入到计算机中,利用深度学习技术进行自动化修复。通过本教程,可以快速有效地完成整个流程,从而为我们带来更加精美的照片。希望能帮到那些和笔者一样留有遗憾的读者们。

二、准备

2.1 前期准备

2.1.1 Python版本

必须高于3.7版本,笔者使用的是3.10

2.1.2 下载项目

https://github.com/TencentARC/GFPGAN.git

2.1.3 下载训练模型

https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth
将此训练模型保存在刚才下载的项目的experiments/pretrained_models文件夹中。

2.1.4 准备需要修复的老旧照片

(图片来源于网络,侵删。)

2.2 用到的库

basicsr:
基于PyTorch的开源图像视频复原工具箱, 比如超分辨率、去噪、去模糊等
facexlib:
提供实用的人脸相关功能的集合
realesrgan:
图像分辨率修复工具,可以提升照片分辨率

2.2.1 安装需要的库

pip install basicsr==1.4.2
PS:basicsr库安装可能会报错,如果一直报错,则先不管它,继续下面的操作。
pip install facexlib
pip install realesrgan

2.2.2 安装GFPGAN依赖包

pip install -r requirements.txt
Python setup.py develop

三、实操

3.1 操作步骤

1、将需要修复的老旧照片放到项目中的inputs\my_test_pics
2、打开终端,切换目录到项目根目录下
3、在终端中输入代码:
python inference_gfpgan.py -i inputs/my_test_pics -o results -s 2
说明:
inputs/my_test_pics:待修复照片所在目录
results:修复后的照片目录,会自动创建4个文件夹,其中:
cmp:存放了修复后的照片中所有人物头像的对比照
cropped_faces:存放了照片中所有的人物头像(未修复)
restored_faces:存放了照片中所有的人物头像(已修复)
restored_imgs:存放了已修复的整张照片
4、等待完成,此过程耗费时间取决于电脑配置。一般2-5分钟处理完一张照片。

3.1.1 属性对比

3.1.2 人像对比



3.1.3 修复后的完整图片


3.2 注意

1、待处理照片文件名必须为ASCII字符,不能包含中文或其他国家字符。
2、修复时会自动找寻照片中的人物头像进行修复,但也有可能会修复失败。
3、分辨率会提升至原来的4倍,即长和宽分别翻倍。

有关AI修复照片的更多相关文章

  1. ruby - 如何修复 RVM gem "[ missing bin/ruby ]" - 2

    执行rvmlist后,我得到以下输出:rvmrubiesgems[missingbin/ruby]=*ruby-2.0.0-p645[x86_64]ruby-2.1.6[x86_64]ruby-2.2.1[x86_64]gems[missingbin/ruby]是什么意思?gems是某种系统gemset吗?它不是我创建的,我不知道我是否可以或应该删除它。 最佳答案 在我跑完之后:rvmfix-permissions然后我能够卸载具有[缺少bin/ruby]的版本。 关于ruby-如何修复

  2. ruby - 处理 gem 依赖项中错误修复的最佳方法是什么? - 2

    我有一个依赖于另一个gem的gem(在RubyGems上可用)。那个依赖的gem有一个我最近修复的错误。不幸的是,那个依赖的gem几乎已经死了;它已经很多年没有更新了,而且所有者不再在GitHub上活跃,根本,更不用说提交这个gem了,所以我不希望我的补丁会被接受——肯定不会很快。鉴于此,处理此依赖gem的补丁版本的最佳方法是什么?我是否将它fork并上传一个新的gem(使用新名称)到RubyGems,并依赖它?我是否以某种方式将我的固定版本与我自己的gem打包在一起? 最佳答案 首先,检查有问题的gem的许可证(以及您的代码的许可

  3. ruby-on-rails - Rails - 回形针 - 多张照片上传不保存 - 2

    我正在尝试在Rails中创建一个产品页面。这包括添加多个图像和文本字段。我有一个产品模型和一个照片模型。我正在使用回形针gem上传照片。但是当我查看产品页面时,我看不到图片。照片未保存到数据库。附言我使用HAML。app/views/products/show.html.haml%bName=@product.name%br%bDescription=@product.description%br-@product.photos.eachdo|photo|=image_tagphoto.image.urlapp/controllers/products_controllerclassP

  4. ruby-on-rails - 什么是自动修复英语语法的 Rails 插件或 Ruby gem? - 2

    Facebook刚刚重新推出了具有自动语法修复功能的评论。Whatdoesthegrammarfilterdo?Addspunctuation(e.g.periodsattheendofsentences)TrimsextrawhitespaceAutocaseswords(e.g.capitalizethefirstwordofasentence)Expandsslangwords(e.g.plzbecomesplease)Addsaspaceafterpunctuation(e.g.Hi,CatwouldbecomeHi,Cat)Fixcommongrammarmistakes(e

  5. ruby-on-rails - 在 Windows 7 x64 上安装 Ruby and Rails 和 DevKit 时出现问题 - 需要修复 - 2

    我在尝试安装ruby​​和rails时遇到了很多问题。在清除以前安装的版本之后,我已经尝试过没有和现在。尝试运行“geminstallrdiscount--platform=ruby”时出现以下错误:C:\Windows\system32>geminstallrdiscount--platform=rubyTemporarilyenhancingPATHtoincludeDevKit...Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingrdiscount:ERROR:Failedtobuildgem

  6. ruby - 如何修复此错误 : kernel_require. rb :45:in `require' : cannot load such file? - 2

    我有以下文件结构:执行.rb图书馆我的类(class).rb在execute.rb我有下面的代码:#!/usr/bin/rubyrequire'lib/my_class'my_object=MyClass.newmy_object.some_method这是my_class.rb的代码:classMyClassdefsome_methodputs'OK'endend所以,我尝试运行execute.rb:rubyexecute.rb但是我收到这个错误:/home/vagrant/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/ru

  7. 未来的趋势————以ChatGPT为标杆的AI对生活的影响是巨大的 - 2

    文章目录前言1.AI的发展历程2.我是如何接触到人工智能的概念和产品的3.对于ChatGPT的一点看法4.AI对大学毕业生的职业发展的利与弊5.对于AI的思考和问题前言随着ChatGPT的爆火,生成式AI,大模型的人工智能被越来越多的人注意到,同时他也带来了许多问题。本文将对几方面进行探讨。1.AI的发展历程远古时期在公元前第一个千禧年,中国,印度和希腊哲学家都提出了一些推理的研究理论,比如亚里士多德(Aristotle)进行了演绎推理三段论的完整分析,欧几里得(Euclid)所著Elements是一种形式推理的模型,MuḥammadibnMūsāal-Khwārizmī,发明了代数学,即我们

  8. 焕新古文化传承之路,AI为古彝文识别赋能 - 2

    目录1古彝文与古典保护2古文识别的挑战2.1西文与汉文OCR2.2古彝文识别难点3合合信息:古彝文保护新思路3.1图像矫正3.2图像增强3.3语义理解3.4工程技巧4总结1古彝文与古典保护彝文指的是云南、贵州、四川等地的彝族人使用的文字,区别于现代意义上的彝文,古彝文指的是在民间流通使用的原生态彝文,多达87046字。古彝文的起源距今至少数千年,是世界上最古老的文字之一。对古彝文字集研究有助于理解尚未被翻译成汉文、用字尚未规范化的古籍,更深层、透彻地作用于传统文化保护。古彝文字义对照图(网络资料+邵文苑供图)古籍是不可再生的宝贵资源,应当得到妥善保护。中国的古籍在历史上迭经水火兵燹等自然灾害、

  9. ruby - 如何修复 activesupport 3.0.0 与 2.x 相比的行为差异? - 2

    我在我的Sinatra应用程序中使用Hash#to_xml。在我转向actviesupport3.0.0之前,它一直有效activesupport在3.0.0的使用有区别吗?例如这很好用gem'activesupport','2.3.5'require'active_support'{}.to_xml和gem'activesupport','3.0.0'require'active_support'{}.to_xml生成:NoMethodError:{}的未定义方法“to_xml”:哈希 最佳答案 当您需要时,ActiveSuppo

  10. ruby-on-rails - 如何修复 `new' :String 的未定义方法 "Rack::Cors" - 2

    我是RubyonRails的新手,正在学习如何使用Angular,但是在我运行“geminstallrack-cors”之后,当我尝试启动Rails应用程序时,我保持收到此错误:C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/actionpack-5.1.1/lib/action_dispatch/middleware/stack.rb:35:in`build':undefinedmethod`new'for"Rack::Cors":String(NoMethodError)Didyoumean?nextfromC:/Ruby23-x64/lib/ruby

随机推荐