不會用Photoshop摳圖?Mask R-CNN助你一鍵“除”人

AI科技大本營發表於2018-04-06

640?wx_fmt=png&wxfrom=5&wx_lazy=1


翻譯 | 林椿眄

編輯 | 費棋

出品 | AI科技大本營


【AI科技大本營導讀看過英劇《黑鏡》嗎?聖誕特別版《白色聖誕節》中有這樣一個場景:其中一個未來科技有自由遮蔽人像的功能,可以讓你遮蔽任何一個不想看見或不喜歡的人,然後留下的是一片灰白影像,就像是 Photoshop 軟體中的摳圖功能應用在了動態場景中。


與此不同的是,本文作者則通過在 MS COCO 資料集上使用預先訓練好的 Mask R-CNN 模型來自動生成影像中行人的掩碼指令碼,實現人像遮蔽,並且不需要 GPU 就可以執行這個程式。所以,如果你發現相簿裡有以前開心合過影但現在討厭的人,可以讓他/她一鍵變成白底了。此外,你還可以用這個指令碼生成多達 80 種不同型別目標的掩碼,包括長頸鹿和公交車等事物。


640?wx_fmt=gif&wxfrom=5&wx_lazy=1


使用方法


可以通過以下命令執行行人掩碼指令碼:


python3 person_blocker.py -i images / img3.jpg -c'(128,128,128)'-o'bus''truck'


-i / - image:指定的影像檔案。

-m / - model:載入預訓練好的 COCO 模型權重的路徑(預設是當前目錄):如果沒有或不存在指定路徑,模型將自動下載到當前目錄(注意:權重檔案的大小為 258 MB)。

-c / - color:掩碼的顏色,採用引號包裝的十六進位制或 RGB 3 元組格式(預設是白色)。

-o / - object:要掩碼的目標型別列表(或特定物件的 ID)。你可以在 classes.py  中或通過使用 -names 來檢視掩碼的物件選擇(預設值是行人)。

-l / - labeled:儲存檢測到的物件及其物件 ID 註釋的標記影像。

-n / - names:列印目標的類別選項,然後退出。


該指令碼輸出兩張影像:靜態影像(雙關意圖) person_blocked.png 和動畫影像 person_blocked.gif。


示例


python3 person_blocker.py -i images/img1.jpg


640?wx_fmt=png


python3 person_blocker.py -i images/img2.jpg -c '#c0392b' -o 'giraffe'


640?wx_fmt=png



python3 person_blocker.py -i images/img3.jpg -c '(128, 128, 128)' -o 'bus' 'truck'


640?wx_fmt=png



特定目標的掩碼需要兩個步驟:在推理模式下執行以獲取每個目標 ID,然後掩碼這些目標 ID。


python3 person_blocker.py -i images/img4.jpg -l


640?wx_fmt=png



python3 person_blocker.py -i images/img4.jpg -o 1


640?wx_fmt=png



安裝環境


這個指令碼所需的環境配置和 Mask R-CNN 一樣:


Python 3.4+

TensorFlow 1.3+

Keras 2.0.8+

Numpy, skimage, scipy, Pillow, cython, h5py


此外,還需要新增 matplotlib 和 imageio 依賴庫。


作者:minimaxir

原文連結:https://github.com/minimaxir/person-blocker

招聘

AI科技大本營現招聘AI記者和資深編譯,有意者請將簡歷投至:gulei@csdn.net,期待你的加入!


如果你暫時不能加入營長的隊伍,也歡迎與營長分享你的精彩文章,投稿郵箱:suiling@csdn.net


AI科技大本營讀者群(計算機視覺、機器學習、深度學習、NLP、Python、AI硬體、AI+金融、AI+PM方向)正在招募中,關注AI科技大本營微信公眾號,後臺回覆:讀者群,聯絡營長,新增營長請備註姓名,研究方向。

640?wx_fmt=gif

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

☟☟☟點選 | 閱讀原文 | 檢視更多精彩內容

相關文章