日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DeOldify实现老照片上色(附直接使用的工具代码) | 机器学习

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DeOldify实现老照片上色(附直接使用的工具代码) | 机器学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

前言

安裝

代碼改造使用

總結


前言

老照片上色其實很早之前就想寫了,也有不少人問了我這個項目。

最近把DeOldify項目好好弄了弄。

項目地址:DeOldify項目地址

先看看項目給出的圖片對比效果。

從給出的效果可以看出,上色后的圖片對人物、景色、物品、環境等等都變得很生動。

下面來安裝一下項目執行環境,測試一下自己的圖片。

安裝

看一下項目的README中關于安裝的部分。

使用anaconda安裝環境。安裝完成后看一下模型文件需要下載哪些。

仔細看看,文章給出了不同模型的區別。

從作者的描述中,可以看出前面2個主要是針對圖像的模型,一個藝術一個穩定,等下使用的時候看看區別。

三個模型如果比較難下載,可以從我的網盤下載,地址如下。

鏈接:https://pan.baidu.com/s/11VJoC3na9wzOuiwsb7gw9Q?
提取碼:TUAN?

下載的3個模型文件放到項目根目錄下models文件夾內,沒有就創建models。

代碼改造使用

作者在README中給出了docker快速啟動以及api啟動方式。有點麻煩,還是自己改一下。

先看一下app.py代碼內容。

@app.route("/process", methods=["POST"]) def process_image():input_path = generate_random_filename(upload_directory,"jpeg")output_path = os.path.join(results_img_directory, os.path.basename(input_path))try:if 'file' in request.files:file = request.files['file']if allowed_file(file.filename):file.save(input_path)try:render_factor = request.form.getlist('render_factor')[0]except:render_factor = 30else:url = request.json["url"]download(url, input_path)try:render_factor = request.json["render_factor"]except:render_factor = 30result = Nonetry:result = image_colorizer.get_transformed_image(input_path, render_factor=render_factor, post_process=True, watermarked=True)except:convertToJPG(input_path)result = image_colorizer.get_transformed_image(input_path, render_factor=render_factor, post_process=True, watermarked=True)finally:if result is not None:result.save(output_path, quality=95)result.close()callback = send_file(output_path, mimetype='image/jpeg')return callback, 200except:traceback.print_exc()return {'message': 'input error'}, 400finally:passclean_all([input_path,output_path])

可以看出該POST接口主要操作分為:獲取文件流、根據參數調整渲染因子(默認為30)、通過image_colorizer對象進行染色操作、最終將文件流返回。按照這個方法我改造了一個直接使用的工具方法。

代碼如下:

#!/user/bin/env python # coding=utf-8 """ @project : DeOldify @author : 劍客阿良_ALiang @file : test1.py @ide : PyCharm @time : 2022-06-17 16:37:13 """ import os from pathlib import Pathfrom app_utils import convertToJPG from deoldify.visualize import ModelImageVisualizer, get_image_colorizerdef colorizer(input_path, output_dir):_output_path = os.path.join(output_dir, os.path.basename(input_path))_image_colorizer = get_image_colorizer(artistic=True)try:result = _image_colorizer.get_transformed_image(input_path, render_factor=30, post_process=True,watermarked=True)except:convertToJPG(input_path)result = _image_colorizer.get_transformed_image(input_path, render_factor=30, post_process=True,watermarked=True)finally:if result is not None:result.save(_output_path, quality=95)result.close()if __name__ == '__main__':colorizer("./data/image/xxx1.jpg", "./data/result1")

一些異常情況我就不處理,如果需要的話,使用的時候加一些補充代碼即可。

artistic參數作為是否使用藝術模型的bool參數。

看一下我準備的需要上色的照片。

選擇Artistic模型的效果如下:

選擇Stable模型的效果如下:

還是可以看出一些區別的,只是本人沒啥藝術細菌,看不大出來怎么個藝術法。

注意

1、 上面的工具代碼由于引入了項目中的幾個方法,可能存在引入包缺失問題。補充安裝如下:

pip install opencv-python -i https://pypi.douban.com/simple

pip install scikit-image -i https://pypi.douban.com/simple

pip install ffmpeg -i https://pypi.douban.com/simple

2、安裝scikit-image的時候會安裝Pillow最新版本,可能會導致執行錯誤,補充卸載安裝Pillow如下:

pip uninstall Pillow

pip install Pillow==6.2.2?

總結

最近有次中午散步的時候,聽到前面兩個程序員在聊天,他們說了幾句話讓我思考了許久。

“現在很多產品經理只會畫皮不會造骨,能畫的不缺鼻子少眼就不錯了?!?/p>

旁邊的哥們說:“不然呢?會畫皮還能造骨,為什么不自己創業呢?”

“也是”

分享:

????????孤獨是生命里必有的黑暗,它無法穿越,也不可戰勝。如果我們明白了這一點,我們會覺得,其實人不需要那么多東西:名聲、金錢、奢侈品、朋友或者愛情 、婚姻。至少,可以隨遇而安,因為我們用這些東西對抗孤獨,卻沒法獲勝。我們唯一能做的,就是與它平靜地共處。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 《十一種孤獨》

總結

以上是生活随笔為你收集整理的DeOldify实现老照片上色(附直接使用的工具代码) | 机器学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。