程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python+AI給老照片上色

編輯:Python

哈喽,大家好,今天繼續給大家分享有趣的 AI 項目。

今天我們分享用NoGAN的圖像增強技術給老照片著色。喜歡記得收藏、關注、點贊。

注:資料數據、文末提供技術交流群

效果如下:

原圖

上色後

NoGAN是一種新型GAN,它能花費最少的時間進行GAN訓練。

今天分享的這個項目已在GitHub開源項目,下面我們來運行一下。

1. 准備工作

首先,用git clone命令下載源碼

git clone https://github.com/jantic/DeOldify.git

進入項目根目錄,安裝Python依賴包

pip3 install -r requirements.txt

編寫代碼運行項目之前,需要下載預訓練好的模型。項目提供了三個模型

模型

區別如下:

  • ColorizeArtistic_gen.pth:在有趣的細節和活力方面實現了最高質量的圖像著色效果,該模型在 UNet 上使用 resnet34 為主干,通過 NoGAN 進行了 5 次評論家預訓練/GAN 循環重復訓練

  • ColorizeStable_gen.pth:在風景和肖像方面取得了最佳效果,該模型在 UNet 上使用 resnet101 為主干,通過 NoGAN 進行了 3 次評論家預訓練/GAN 循環重復訓練

  • ColorizeVideo_gen.pth:針對流暢的視頻進行了優化,它僅使用初始生成器/評論家預訓練/GAN NoGAN 訓練。由於追求流暢的速度,它的色彩比前兩者少。

將下載好的模型文件放在項目根目錄的models目錄下即可。

2. 編寫代碼

在項目根目錄同級目錄下創建Python文件,編寫代碼加載剛剛下載好的模型文件。

from DeOldify.deoldify.generators import gen_inference_wide
from DeOldify.deoldify.filters import MasterFilter, ColorizerFilter
# 指定模型文件
learn = gen_inference_wide(root_folder=Path('./DeOldify'), weights_name='ColorizeVideo_gen')
# 加載模型
deoldfly_model = MasterFilter([ColorizerFilter(learn=learn)], render_factor=10)

root_folder指定項目根目錄,weights_name指定接下來使用哪個模型為照片上色。

讀取老照片,進行上色

import cv2
import numpy as np
from PIL import Image
img = cv2.imread('./images/origin.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
pil_img = Image.fromarray(img)
filtered_image = deoldfly_model.filter(
pil_img, pil_img, render_factor=35, post_process=True
)
result_img = np.asarray(filtered_image)
result_img = cv2.cvtColor(result_img, cv2.COLOR_RGB2BGR)
cv2.imwrite('deoldify.jpg', result_img)

cv2讀取老照片,並用PIL.Image模塊將圖片轉換成模型輸入所需要的格式,送入模型進行上色,完成後保存。

上述代碼是我從項目源碼中抽取的,可以看到,運行代碼還是非常簡單的。

感興趣的朋友可以自己運行一下,也可以試試其他模型的效果。

技術交流

目前已開通了技術交流群,群友已超過2000人,添加時最好的備注方式為:來源+興趣方向,方便找到志同道合的朋友

  • 方式①、發送如下圖片至微信,長按識別,後台回復:加群
  • 方式②、微信搜索公眾號:機器學習社區,後台回復:加群
  • 方式③、可以直接加微信號:mlc2060。加的時候備注一下:研究方向 +學校/公司+CSDN,即可。然後就可以拉你進群了。

研究方向包括:機器學習、數據挖掘、目標檢測、圖像分割、目標跟蹤、人臉檢測&識別、OCR、姿態估計、超分辨率、SLAM、醫療影像、Re-ID、GAN、NAS、深度估計、自動駕駛、強化學習、車道線檢測、模型剪枝&壓縮、去噪、去霧、去雨、風格遷移、遙感圖像、行為識別、視頻理解、圖像融合、圖像檢索、論文投稿&交流、PyTorch、TensorFlow和Transformer等。

一定要備注:研究方向+學校/公司+昵稱(如Transformer或者目標檢測+上交+卡卡),根據格式備注,可更快被通過且邀請進群。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved