手把手教你用Python去除馬賽克!
有人說,馬賽克是阻礙人類進步的絆腳石,雖然最近幾年也頻繁傳出有在研發去除馬賽克的軟體,但是一直沒有成品問世。
於是人類和馬賽克的鬥爭就從未消停過。各種有亮點的圖片部位,經常被無情地打上馬賽克。在此之前,想完美清除馬賽克幾乎是不可能的,人類的進步一直停留在怎麼打馬賽克和去馬賽克之間。
最近一位程式設計師及經過不斷努力終於完成了這款軟體。據悉,這位程式設計師“deeppomf”用深度神經網路開發出了一個能抹去馬賽克讓原圖重現的神奇程式:DeepCreamPy 。
該專案使用深度完全卷積神經網路(deep fully convolutional neural network),參照了英偉達在今年4月前釋出的一篇論文。當然,英偉達原文的目的可不是用來做羞羞的事情,而是為了復原畫面被單色條帶遮擋的問題。
不過目前該軟體的侷限性還很大,只能完成一些簡單的修復。
例如本文中將原圖在任意位置畫上綠色線條進行打碼後,在通過DeepCreamPy軟體即可進行復原。並且在跟帖中還有不少使用者跟帖晒出了圖片處理的前後效果圖。
為了使這款軟體達到更好的效果,作者在短短几個月內收集了超過10萬張未打碼的原圖,但其中95%的圖片他都沒有仔細看過,只因為太過於浪費時間了。還說自己並不是第一個做這種軟體件的人,卻是第一個堅持下來的人。
從實際效果來看,復原後的圖片塗抹痕跡仍然比較明顯,不過處理線條比較簡單的漫畫可以說是綽綽有餘。
接下來,就是讓你實現心中無碼,眼中自然無碼的教程了。
適用範圍
DeepCreamPy僅適用於薄碼,如果馬賽克太大太厚,去碼可能會失效。另外,它對真人圖片無效。如果你非要嘗試,可以看一下強行使用的效果:
而且DeepCreamPy目前的版本還不能完全自動處理圖片,需要用Photoshop首先對馬賽克部分進行手動預處理。
使用方法
安裝軟體
64位Windows使用者可以直接下載exe程式,資源地址請見附錄。
如果你使用的不是Windows系統,需要自己編譯,程式中已經包含訓練模型,請從壓縮包中提取。
編譯程式碼需要一下元件:
- Python 3.6
- TensorFlow 1.10
- Keras 2.2.4
- Pillow
- h5py
Tensorflow、Keras、Pillow、和h5py可以使用pip安裝:
$ pip install -r requirements.txt
請注意軟體版本,Windows上的TensorFlow不相容Python 2,也不相容Python 3.7。
手動處理黑條遮擋和馬賽克遮擋
對於你想修復的每個影象,使用影象編輯軟體(如 Photoshop 或 GIMP)將你想修復的區域的顏色塗成綠色 (0,255,0)。強烈推薦使用鉛筆工具,不要用刷子。如果你沒用鉛筆,那麼確保你所使用的工具關閉了抗鋸齒(ANTI-ALIASING)功能。
使用 wand selection 工具(關閉了抗鋸齒功能)來選擇空缺區域。然後稍微擴充套件選中區域,並在選中區域上使用綠色 (0,255,0) 的油漆桶工具。
要在 Photoshop 中擴充套件選中區域,可以執行該操作:Selection > Modify > Expand 或 Contract。要在 GIMP 中擴充套件選中區域,可執行該操作:Select > Grow。將這些影象儲存為 PNG 格式,並儲存到 decensor_input 資料夾中。
- A. 使用二進位制編譯檔案(Windows)
- 雙擊 decensor 檔案來修復影象。
- B. 從頭開始執行
- 執行以下行進行影象修復:
- $ python decensor.py
- 修復後圖像將儲存至 decensor_output 資料夾。每張影象的修復需要幾分鐘。
如果敏感部位不是黑條,而是馬賽克,還需要將未上色的原始圖片放入”decensor_input_original” 資料夾中,並確保其檔名和放在”decensor_input”中的預處理圖片檔名相同。
執行去馬賽克軟體
- A. 使用exe直接處理
雙擊軟體即可
- B. 命令列處理
對於黑條遮擋的圖片,輸入以下命令:
$python decensor.py
對於馬賽克遮擋的圖片,輸入以下命令:
$python decensor.py —is_mosaic=True
注意事項
如果你圖片處理後成了這樣:
一定是你處理的姿勢不對,請注意不要犯以下兩種錯誤:
第一幅圖中,圖片馬賽克區域沒有完全塗滿;第二幅圖中,由於開啟了抗鋸齒功能,導致馬賽克邊緣區域不是純綠色填充,請關閉抗鋸齒功能!!
最後附上軟體地址下載地址,請享受吧。
資源地址
文章到此就高一段落了,喜歡本文的小夥伴可以轉發,或點波關注喔!
本文來自網路,如有侵權,請聯絡小編刪除!