GitHub 項目推薦:用深度學習讓你的照片變得美麗
在挑選手機時,手機攝像頭往往是我們考慮的重要因素之一,但目前很多手機拍出來的照片效果不盡如人意。如何用深度學習的方法美化照片?George Seif發表了一篇文章,是關於如何自動增強低質量相機拍攝的照片,大家快來實戰吧~
照相是一項很棒的技術。它讓我們能夠保存自己的記憶,當看到照片中的景色時,我們可以重新體驗它們。
這項技術在過去的幾年裡取得了長足的進步。隨著4K、HDR 和彩色增強等各種新功能的出現,您可以拍攝出令人驚嘆的照片。
但它確實是有代價的。不是每個人都買得起最好的相機。DSLR 相機的價格從幾百美元到幾千美元不等。不僅如此,也不是每個人都能用這些相機拍出好的照片,畢竟我們並不都是專業攝影師!
我們大多數人拍照用的是智能手機,但與高端DSLR 相比,智能手機拍攝的照片通常非常平淡。
深度學習改變了這一切。
美化你的照片
來自蘇黎世ETH 計算機視覺實驗室的研究展示瞭如何自動增強低質量相機拍攝的照片,使它們看起來像是由專業攝影師用DSLR 拍攝的。他們是這樣做的:
該團隊首先收集了一組低質量(來自手機)和高質量(來自DSLR)照片作為數據集,您可以從項目頁面下載這些照片。這正是我們需要的用於這種增強任務的數據:輸入低質量的圖像(來自手機)並讓深度網絡嘗試預測高質量版本(來自DSLR)的樣子。
一個圖像有幾個我們可能想要增強的屬性:燈光、顏色、紋理、對比度和清晰度。深度網絡經過訓練,可以利用四種不同的損失函數來描述所有這些屬性:
- 顏色損失:預測圖像和目標圖像模糊版本之間的歐幾里得距離。
- 紋理損失:基於生成對抗網絡(GAN)的分類損失。GAN被訓練來預測灰度照片質量的高低。由於使用了灰度圖,網絡將很好地聚焦於圖像的紋理,而不是顏色。
- 內容損失:預測圖像的VGG特徵與地面真像之間的差異。這一損失確保了圖像中的對象(即圖像語義)和整體結構保持不變。
- 總變化損失:圖像中的垂直和水平總梯度。這將增強圖像的平滑度,這樣最終得到的圖像就不會太粗糙或有噪音。
最後將這些損失加起來,生成一個端到端的網絡,通過訓練網絡來做預測!
代碼
感謝AI 社區中開放源碼,我們在這裡找到了一個公開的照片增強器項目!以下是您使用它的方法。
Git 源碼地址:https://github.com/aiff22/DPED
安裝需要的庫文件:
pip install tensorflow-gpu
pip install numpy
pip install scipy
所有經過預先訓練的模型都已經在models_orig 文件夾中都有對應的庫,因此無需下載它們!
將要增強的照片放在以下目錄中:
dped/ iPhone /test_data/full_size_test_images/
這是「iphone」的系統默認目錄,但是如果您想更改代碼,可以更改test_model.py 腳本中的代碼。之所以說「iphone」,是因為作者使用3 款智能手機(iphone、sony 和blackberry)拍攝的照片訓練了3 種不同的模型,因此你有三個選擇。但是這個模型在大多數這三種手機拍攝的照片上都能很好地工作,所以我們選擇其中一個就好。
最後,為了增強照片效果,我們運行一個簡單的腳本:
python test_model.py model=iphone_orig \
test_subset=full \
哇!您的增強型和專業型照片將保存在「視覺效果」文件夾中!
你自己試試代碼,很有趣!看看你的照片如何處理增強。請在下面發布鏈接,與社區共享您的照片。同時,這裡是我自己測試的一些結果。
來源: