Python 人工智能老照片修復(fù)算法學(xué)習(xí)
老舊或者破損的照片如何修復(fù)呢?本文主要分享一個博主使用后非常不錯的照片恢復(fù)開源項目:Bringing-Old-Photos-Back-to-Life。
項目的Github地址:項目地址
我們先看看官方給出的效果圖:

就算現(xiàn)在看到這張圖,我仍然覺著非常驚艷。下面我會把項目環(huán)境安裝部署,到最后使用的效果做一個展示。
項目環(huán)境搭建
該項目的環(huán)境搭建有點復(fù)雜,我一點點說。
conda虛擬環(huán)境創(chuàng)建
在項目README.md文件中要求python版本在3.6以上。

我們用anaconda創(chuàng)建一個虛擬環(huán)境bobl
conda create -n bobl python=3.6
激活環(huán)境
conda activate bobl
在Pycharm項目中配置interpreter,設(shè)置到conda目錄envs下bobl環(huán)境的python。

Pytorch安裝
雖然項目官方給出的requirements.txt包含pytorch,為了保險起見,還是去Pytorch官方網(wǎng)站上安裝一下。Pytorch官方地址:PyTorch

因為我本機沒插顯卡,安裝的cpu版本。
選擇對應(yīng)的命令安裝Pytorch庫。
Synchronized-BatchNorm-PyTorch repository安裝
官方給出的安裝說明里面需要部署Synchronized-BatchNorm-PyTorch項目進來。

這里注意一點,需要把Synchronized-BatchNorm-PyTorch項目中的sync_batchnorm拷貝到上級目錄。完整的目錄接口參考下圖:

Global目錄Synchronized-BatchNorm-PyTorch項目部署
官方說明里面也需要把Synchronized-BatchNorm-PyTorch項目部署到Global里面。

也是一樣要把sync_batchnorm拷貝到上級目錄。結(jié)構(gòu)如下:

檢測預(yù)處理模型下載
需要用到一個檢測預(yù)處理模型,主要是用來識別照片中的人臉部分的。

注意解壓后的位置,結(jié)構(gòu)如下:

下載臉部增強模型文件
官方說明:

下載兩個模型zip解壓到對應(yīng)目錄下,結(jié)構(gòu)如下:

下載依賴
注意,我這里去掉了pytorch的依賴安裝,已經(jīng)已經(jīng)裝過了。
dlib scikit-image easydict PyYAML dominate>=2.3.1 dill tensorboardX scipy opencv-python einops PySimpleGUI
安裝命令:
pip install -r requirements.txt -i https://pypi.douban.com/simple
完整部署后項目結(jié)構(gòu)
完整的結(jié)構(gòu)如下圖:

項目使用
官方給到的圖,我就不用了,不能說明問題。我自己準(zhǔn)備了兩種圖,一張是一張人臉的,一張是多張人臉的。


先按照官方給出的命令跑跑看

我們直接使用最下面這個命令,包含劃痕去除與高度還原??匆幌聢?zhí)行情況。
(bobl) D:\spyder\Bringing-Old-Photos-Back-to-Life>python run.py --input_folder E:\csdn\老照片 --output_folder result1/ --GPU -1 --with_scratch --HR Running Stage 1: Overall restoration initializing the dataloader model weights loaded directory of testing image: E:\csdn\老照片 processing 1.jpg processing 2.jpg Mapping: You are using multi-scale patch attention, conv combine + mask input Now you are processing 1.png C:\ProgramData\Anaconda3\envs\bobl\lib\site-packages\torch\nn\functional.py:3635: UserWarning: Default upsampling behavior when mode=bilinear is changed to align_corners=False since 0.4 .0. Please specify align_corners=True if the old behavior is desired. See the documentation of nn.Upsample for details. "See the documentation of nn.Upsample for details.".format(mode) Now you are processing 2.png Finish Stage 1 ... Running Stage 2: Face Detection 12 1 Finish Stage 2 ... Running Stage 3: Face Enhancement dataset [FaceTestDataset] of size 13 was created The size of the latent vector size is [16,16] Network [SPADEGenerator] was created. Total number of parameters: 92.1 million. To see the architecture, do print(network). hi :) Finish Stage 3 ... Running Stage 4: Blending Finish Stage 4 ... All the processing is done. Please check the results. (bobl) D:\spyder\Bringing-Old-Photos-Back-to-Life>
輸出的文件不但有最終的結(jié)果,也有檢測出來的每個臉的處理前后效果。結(jié)果結(jié)構(gòu)如下:

驗證一下
1、多人照片最終的效果驗證,下面上圖是輸出結(jié)果圖,下圖是原始圖??梢钥闯鲇行﹦澓垡呀?jīng)消失,但是還是有一些,不過整體的任務(wù)更立體鮮明了。


2、單人照片最終效果驗證,下面上圖為結(jié)果圖,下圖為原始圖。單人就很明顯了,不但劃痕都消除了,人也更清晰立體,效果是真不錯。


3、模型也會把多人圖中的每張臉都識別出來,并且跑出結(jié)果,可以對比一下看看,細(xì)節(jié)還是修復(fù)的很好的。




總結(jié)
官方還給出了其他的命令,就不一一驗證了。整體的效果是非常好的,只是在多人圖的時候還有些瑕疵,瑕不掩瑜。
到此這篇關(guān)于Python 人工智能老照片修復(fù)算法學(xué)習(xí)的文章就介紹到這了,更多相關(guān)Python人工智能內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信