Python+OpenCV影像風格遷移的實作方法講解
本篇文章帶給大家的內容是關於Python OpenCV圖像風格遷移的實作方法講解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
現在很多人都喜歡拍照(自拍)。有限的濾鏡和裝飾玩多了也會膩,所以就有APP 提供了模仿名畫風格 的功能,比如prisma、versa 等,可以把你的照片變成梵高、畢卡索、蒙克 等大師的風格。
這種功能叫做“ 圖像風格遷移 ”,幾乎都是基於CVPR 2015 的論文《 A Neural Algorithm of Artistic Style 》和ECCV 2016 的論文《 Perceptual Losses for Real-Time Style Transfer and Super-Resolution 》中提出的演算法,以及後續相關研究的基礎上開發出來的。
通俗來講,就是藉助於 神經網路 ,預先將名畫中的風格訓練成出模型,在將其應用在不同的照片上,產生新的風格化圖像。
來自《A Neural Algorithm of Artistic Style》
而因為神經網路在電腦視覺上的應用越來越廣,著名的視覺開發庫OpenCV 在3.3 版本中正式引入DNN(深度神經網路) ,支援Caffe、TensorFlow、Torch/PyTorch 等主流框架的模型,可用以實現圖像的識別、檢測、分類、分割、著色等功能。
我最近才發現在 OpenCV 的 Sample 程式碼中就有圖像風格遷移的 Python 範例(原諒我的後知後覺),是基於 ECCV 2016 論文中的網路模型實作。所以,即使身為人工智慧的菜鳥,也可以拿別人訓練好的模型來玩一玩,體會下神經網路的奇妙。
(相關程式碼與模型的取得請見文末)
OpenCV 官方程式碼位址:https://github.com/opencv/opencv/blob/3.4.0/samples/dnn/fast_neural_style .py
目錄下透過執行指令執行程式碼:
python fast_neural_style.py --model starry_night.t7
model
參數是提供預先訓練好的模型檔案路徑,OpenCV 沒有提供下載,但給予的參考項目https://github.com/jcjohnson/fast-neural-style 中可以找到
#其他可設定參數有:
##input
可以指定原始圖片/視頻,如果不提供就預設使用攝像頭即時採集。
width
、
height,調整處理影像的大小,設定小一點可以提高運算速度。在我自己的電腦上,300x200 的轉換影片可以達到 15 幀/秒。
median_filter
中值濾波的視窗大小,用來對結果影像進行平滑處理,這個對結果影響不大。
原始圖片
##instance_norm models
核心程式碼其實很短,就是
載入模型- > 讀取圖片-> 進行計算-> 輸出圖片,我在官方範例基礎上進一步簡化了一下:import cv2
# 加载模型
net = cv2.dnn.readNetFromTorch('the_scream.t7')
net.setPreferableBackend(cv2.dnn.DNN_BACKEND_OPENCV);
# 读取图片
image = cv2.imread('test.jpg')
(h, w) = image.shape[:2]
blob = cv2.dnn.blobFromImage(image, 1.0, (w, h), (103.939, 116.779, 123.680), swapRB=False, crop=False)
# 进行计算
net.setInput(blob)
out = net.forward()
out = out.reshape(3, out.shape[2], out.shape[3])
out[0] += 103.939
out[1] += 116.779
out[2] += 123.68
out /= 255
out = out.transpose(1, 2, 0)
# 输出图片
cv2.imshow('Styled image', out)
cv2.waitKey(0)
PS:前兩天看趙雷演唱會的時候我還說:他演唱會的背景MV 大量使用了影像二值化、邊緣偵測等操作,讓我想到以前數位影像處理課的大作業…現在影像風格遷移的效率達到了即時,想必以後也會經常被使用吧。
#以上是Python+OpenCV影像風格遷移的實作方法講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

VS Code 擴展存在惡意風險,例如隱藏惡意代碼、利用漏洞、偽裝成合法擴展。識別惡意擴展的方法包括:檢查發布者、閱讀評論、檢查代碼、謹慎安裝。安全措施還包括:安全意識、良好習慣、定期更新和殺毒軟件。
