Python開源項目之人工智能老照片修復算法學習

文章目錄

    • 前言
    • 項目環境搭建
      • conda虛擬環境創建
      • 激活環境
      • Pytorch安裝
      • Synchronized-BatchNorm-PyTorch repository安裝
      • Global目錄Synchronized-BatchNorm-PyTorch項目部署
      • 檢測預處理模型下載
      • 下載臉部增強模型文件
      • 下載依賴
      • 完整部署后項目結構
    • 項目使用
    • 驗證一下
    • 總結
      • 關于Python技術儲備
        • 一、Python所有方向的學習路線
        • 二、Python基礎學習視頻
        • 三、精品Python學習書籍
        • 四、Python工具包+項目源碼合集
        • ①Python工具包
        • ②Python實戰案例
        • ③Python小游戲源碼
        • 五、面試資料
        • 六、Python兼職渠道


前言

老舊或者破損的照片如何修復呢?本文主要分享一個博主使用后非常不錯的照片恢復開源項目:Bringing-Old-Photos-Back-to-Life。

項目的Github地址:項目地址

我們先看看官方給出的效果圖:

在這里插入圖片描述

就算現在看到這張圖,我仍然覺著非常驚艷。下面我會把項目環境安裝部署,到最后使用的效果做一個展示。

項目環境搭建

該項目的環境搭建有點復雜,我一點點說。

conda虛擬環境創建

在項目README.md文件中要求python版本在3.6以上。

在這里插入圖片描述

我們用anaconda創建一個虛擬環境bobl

conda create -n bobl python=3.6

激活環境

conda activate bobl

在Pycharm項目中配置interpreter,設置到conda目錄envs下bobl環境的python。

在這里插入圖片描述

Pytorch安裝

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

在這里插入圖片描述

因為我本機沒插顯卡,安裝的cpu版本。

選擇對應的命令安裝Pytorch庫。

Synchronized-BatchNorm-PyTorch repository安裝

官方給出的安裝說明里面需要部署Synchronized-BatchNorm-PyTorch項目進來。

在這里插入圖片描述

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

在這里插入圖片描述

Global目錄Synchronized-BatchNorm-PyTorch項目部署

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

在這里插入圖片描述

也是一樣要把sync_batchnorm拷貝到上級目錄。結構如下:

在這里插入圖片描述

檢測預處理模型下載

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

在這里插入圖片描述

注意解壓后的位置,結構如下:

在這里插入圖片描述

下載臉部增強模型文件

官方說明:

在這里插入圖片描述

下載兩個模型zip解壓到對應目錄下,結構如下:
在這里插入圖片描述

下載依賴

注意,我這里去掉了pytorch的依賴安裝,已經已經裝過了。

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

完整部署后項目結構

完整的結構如下圖:

在這里插入圖片描述

項目使用

官方給到的圖,我就不用了,不能說明問題。我自己準備了兩種圖,一張是一張人臉的,一張是多張人臉的。

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

在這里插入圖片描述

我們直接使用最下面這個命令,包含劃痕去除與高度還原。看一下執行情況。

(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>

輸出的文件不但有最終的結果,也有檢測出來的每個臉的處理前后效果。結果結構如下:

在這里插入圖片描述

驗證一下

1、多人照片最終的效果驗證,下面上圖是輸出結果圖,下圖是原始圖。可以看出有些劃痕已經消失,但是還是有一些,不過整體的任務更立體鮮明了。

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

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

在這里插入圖片描述

總結

官方還給出了其他的命令,就不一一驗證了。整體的效果是非常好的,只是在多人圖的時候還有些瑕疵,瑕不掩瑜。


關于Python技術儲備

學好 Python 不論是就業還是做副業賺錢都不錯,但要學會 Python 還是要有一個學習規劃。最后大家分享一份全套的 Python 學習資料,給那些想學習 Python 的小伙伴們一點幫助!

微信掃描下方CSDN官方認證二維碼免費領取【保證100%免費

一、Python所有方向的學習路線

Python所有方向的技術點做的整理,形成各個領域的知識點匯總,它的用處就在于,你可以按照上面的知識點去找對應的學習資源,保證自己學得較為全面。
在這里插入圖片描述

二、Python基礎學習視頻

② 路線對應學習視頻

還有很多適合0基礎入門的學習視頻,有了這些視頻,輕輕松松上手Python~在這里插入圖片描述
在這里插入圖片描述

③練習題

每節視頻課后,都有對應的練習題哦,可以檢驗學習成果哈哈!
在這里插入圖片描述
因篇幅有限,僅展示部分資料

三、精品Python學習書籍

當我學到一定基礎,有自己的理解能力的時候,會去閱讀一些前輩整理的書籍或者手寫的筆記資料,這些筆記詳細記載了他們對一些技術點的理解,這些理解是比較獨到,可以學到不一樣的思路。
在這里插入圖片描述

四、Python工具包+項目源碼合集
①Python工具包

學習Python常用的開發軟件都在這里了!每個都有詳細的安裝教程,保證你可以安裝成功哦!
在這里插入圖片描述

②Python實戰案例

光學理論是沒用的,要學會跟著一起敲代碼,動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰案例來學習。100+實戰案例源碼等你來拿!
在這里插入圖片描述

③Python小游戲源碼

如果覺得上面的實戰案例有點枯燥,可以試試自己用Python編寫小游戲,讓你的學習過程中增添一點趣味!
在這里插入圖片描述

五、面試資料

我們學習Python必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有阿里大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
在這里插入圖片描述
在這里插入圖片描述

六、Python兼職渠道

而且學會Python以后,還可以在各大兼職平臺接單賺錢,各種兼職渠道+兼職注意事項+如何和客戶溝通,我都整理成文檔了。
在這里插入圖片描述
在這里插入圖片描述
這份完整版的Python全套學習資料已經上傳CSDN,朋友們如果需要可以微信掃描下方CSDN官方認證二維碼免費領取【保證100%免費

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167179.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167179.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167179.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

比較2個點的3種結構在不規則平面上的占比

2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 x 3 3 2 2 2 1 2 2 2 2 2 1 2 2 在平面上有一個點x,再增加一個點,11的操作把平面分成了3部分2a1,2a2,2a3,3部分的比值是 2a1 2a2 2a3 5 25 …

spark中write算子和format算子詳解

在spark中,想要往數據庫或者某sink路徑里面寫數據,存到外部存儲系統,如文件系統、數據庫或數據倉庫,經常會用到write算子。 具體來說,write算子通常與DataFrame或Dataset API一起使用,用于將數據寫入持久化…

IDC最新報告,增速減緩+AI增勢,阿里云視頻云中國市場第一

國際權威數據公司IDC發布 《中國視頻云市場跟蹤(2023 H1)》報告 自2018年至今,阿里云持續保持 中國視頻云整體市場第一 整體市場占比達24.4% 01 第一之外,低谷之上 近期,國際權威數據公司IDC最新發布了《中國視頻…

做亞馬遜多久可以賺錢?做亞馬遜需要多少資金?——站斧瀏覽器

做亞馬遜需要時間、資金和全面的市場策略。創業者需要有耐心和決心,同時也要靈活應對市場變化。那么做亞馬遜多久可以賺錢,做亞馬遜需要多少資金。 做亞馬遜多久可以賺錢 首先,就像任何其他生意一樣,做亞馬遜需要時間和努力來建立起穩定的客…

怎么給圖片加水印?

怎么給圖片加水印?當代年輕人現在越來越愛在社交平臺中發表自己拍下來的一些趣事和美照,但是同樣的也會有人盜取他人圖片的方式來發布在自己的社交平臺中,而且沒有水印的照片一旦在網上流傳開來以后,很難追溯到它的來源&#xff0…

【MySQL】你知道索引查找起來為什么效率特別高嗎?

索引 前言正式開始磁盤、os、MySQL之間的IOMySQL與存儲扇區結論磁盤隨機訪問(Random Access)與連續訪問(Sequential Access)MySQL 與磁盤交互基本單位小總結簡單介紹一下內存池 談回MySQL簡單理解MySQL中的page為何IO交互基本單位是pagepage結構頁目錄單個page的頁目錄多個page…

井蓋位移傳感器生產廠家推薦,時刻感知井蓋

馬路上的井蓋雖然看似微不足道,但實際上對于行人的“腳下安全”起著至關重要的作用。這些井蓋下連接著供排水、燃氣、電力、供熱、通信等功能的管路和線路,是城市生命線運行的重要保障。因此保持井蓋狀態正常、明確管理責任是確保車輛和行人安全通行的重…

CART算法解密:從原理到Python實現

本文深入探討了CART(分類與回歸樹)算法的核心原理、實現方法以及應用場景。文章首先介紹了決策樹的基礎知識,然后詳細解析了CART算法的工作機制,包括特征選擇和樹的構建。接著,通過Python和PyTorch的實例代碼展示了CAR…

livox 半固體激光雷達 gazebo 仿真 | 更換仿真中mid360雷達外形

livox 半固體激光雷達 gazebo 仿真 | 更換仿真中mid360雷達外形 livox 半固體激光雷達 gazebo 仿真 | 更換仿真中mid360雷達外形livox 介紹更換仿真中mid360雷達外形 livox 半固體激光雷達 gazebo 仿真 | 更換仿真中mid360雷達外形 livox 介紹 覽沃科技有限公司(L…

雙11后觀察:中國電商產業帶的數字新敘事

在電商平臺走過的第十五個雙11后,產業帶的數字化藍圖也更加完整。但在電商平臺與產業帶相互補足的背景下,一個更值得思考的問題是,隨著電商平臺的低價競爭愈演愈烈,產業帶上的供應鏈能力能否跟上? 作者|思杭 編輯|皮…

MEXC將上線UPCX(UPC)并開啟Launchpad活動

據官方公告,MEXC將上線UPCX項目的原生代幣UPC。上幣時間為2023-11-29 20:00 (UTC8),開通UPC/USDT 交易對。 代幣名稱:UPCX (UPC) 總供應量:780,000,000 UPC 分配給 MEXC Launchpad 的代幣:100,000 UPC 代幣銷售形式&a…

【GCC】2:chatgpt:SendSideBandwidthEstimation

webrtc中SendSideBandwidthEstimation類的設計 The SendSideBandwidthEstimation class in WebRTC is a critical component in its video engine. It’s responsible for deciding the video traffic rate that can be sent without overloading the network and thus maintai…

分享5款經過時間驗證的精品軟件

? 今天來給大家推薦5款良心軟件,每款都是經過時間檢驗的精品,用起來讓你的工作效率提升飛快,各個都讓你覺得相見恨晚! 1.文件夾隱藏工具——文件夾隱藏精靈 ? 文件夾隱藏精靈是一款可以隱藏你的文件夾和文件的工具,它可以讓你的隱私和重要…

NetApp ONTAP 數據安全解決方案,增強數據保護和安全性,同時提高數據治理與合規性

NetApp ONTAP 可幫助您創建智能、強大且值得信賴的存儲基礎架構,這種架構有助于降低成本、加快關鍵工作負載的運行速度、保護和保障混合云中的數據安全。 一、為什么選擇 NetApp ONTAP 數據安全解決方案? 全面保護企業最寶貴的資產 眾所周知&#xff…

Android:Google三方庫之Adjust集成詳細步驟

通過 Adjust 安卓 SDK,您可以在自己的安卓應用中跟蹤歸因、事件及更多數據。請按照本指南中說明的步驟操作,在應用內設置 Adjust SDK 1、添加依賴 //adjustimplementation("com.adjust.sdk:adjust-android:4.33.5")implementation("com.…

Aop面向切面實現開發日志收集打印一文輕松搞定,內附詳細圖文示例+源碼自取

目錄 介紹 動態代理 jdk動態代理 cglib動態代理 注解實現Aop 添加必須依賴 添加Atm類 (主業務邏輯代碼塊) 定義打印log方法(提取公共代碼邏輯塊) 啟用代理 切點表達式 Aop通知類型 前置通知(Before) 后置通知(After) 正常結束通知(AfterReturning) 異常結束通知…

樹莓派上使用Nginx通過內網穿透實現無公網IP訪問內網本地站點

前言 安裝 Nginx(發音為“engine-x”)可以將您的樹莓派變成一個強大的 Web 服務器,可以用于托管網站或 Web 應用程序。相比其他 Web 服務器,Nginx 的內存占用率非常低,可以在樹莓派等資源受限的設備上運行。同時結合c…

XTU OJ 1146 矩陣乘法學習筆記

原題 題目描述 給你兩個矩陣A(n*k),B(k*m),請求A*B。 輸入 第一行是一個整數K,表示樣例的個數。 每個樣例包含兩個矩陣A和B。 每個矩陣的第一行是兩個整數n,m,(1≤n,m≤10)表示矩陣的行和列 以后的n行,每行m個整數,每個整數的絕對值不超過…

如何讓大模型更好地完成知識圖譜推理?

? 論文標題: Making Large Language Models Perform Better in Knowledge Graph Completion 論文鏈接: https://arxiv.org/abs/2310.06671 代碼鏈接:GitHub - zjukg/KoPA: [Paper][Preprint 2023] Making Large Language Models Perform Be…

node-red - 節點實戰總結1

node-red - 節點實戰總結1 二、功能2.1 循環(for\while) 三、網絡四、序列五、解析六、存儲七、協議7.1 modbus協議7.2 opcua 八、formats8.1 時間格式化與時區轉換 二、功能 2.1 循環(for\while) 安裝節點node-red-contrib-loop-processing,該節點支持三種方式的循環&#xf…