装逼神器,5 行 Python 代码 实现一键批量扣图,你get到了吗
在日常生活或者工作中,經常會遇到想將某張照片中的人物摳出來,然后拼接到其他圖片上去。專業點的人可以使用 PhotoShop 的“魔棒”工具進行摳圖,非專業人士則使用各種美圖 APP 來實現,但是這兩類方式畢竟處理能力有限,一次只能處理一張圖片,而且比較復雜的圖像可能耗時較久。那今天就來向大家展示第三種扣圖方式——用 Python代碼來實現 一鍵批量摳圖。
1. 準備工作- 安裝paddlepaddle
既然要裝逼,準備工作是少不了的。所謂“站在巨人的肩膀上,干起活來事半功倍”,我們這里的“巨人”就是 paddlepaddle 了,中文名稱叫 “飛槳” ,那么這個 paddlepaddle 是什么呢?
它是“ 源于產業實踐的開源深度學習平臺 ,致力于讓深度學習技術的創新與應用更簡單”,直白點就是我幫你實現了深度學習底層框架,你只要有創意就可以在我平臺上運用少量簡單代碼輕松實現。它的官網是:https://www.paddlepaddle.org.cn/ 。
它的安裝比較簡單,官網首頁就有安裝指引,可以通過「安裝」菜單,查找到各個系統安裝詳細及注意事項,如下圖所示,我們這里根據官網的安裝指引,使用 pip 方式來安裝 CPU 版本。
?
本文以MacOS系統為例:
我們首先執行以下命令安裝(推薦使用百度源)::
或者:
從安裝過程中,可以看到在安裝paddlepaddle庫時,需要安裝如下依賴庫:
安裝成功后,我們在 python 環境中測試一下是否安裝成功(這個也是按照官網指引來做),我們切換到 python 環境,運行如下代碼:
如果能看到 Your Paddle Fluid is installed successfully 就表示安裝成功了。
2. 準備工作- 安裝paddlehub
要實現本文的一鍵批量扣圖需求,需要借助PaddleHub人像分割模型來實現。
PaddleHub 是基于 PaddlePaddle 開發的預訓練模型管理工具,可以借助預訓練模型更便捷地開展遷移學習工作,目前的預訓練模型涵蓋了圖像分類、目標檢測、詞法分析、語義模型、情感分析、視頻分類、圖像生成、圖像分割、文本審核、關鍵點檢測等主流模型。
PaddleHub官網:
PaddleHub項目地址:
更多PaddleHub預訓練模型教程合集課程可見:
介紹完了項目,接下來我們開始在線安裝 paddlehub :
或者按指定版本安裝:
安裝完成后,我們就可以開始運用了。
3. 一鍵扣圖代碼實現
我們的實現步驟很簡單:
- 導入模塊
- 加載模型
- 獲取圖片文件
- 調用模塊摳圖
其中扣圖功能主要采用PaddleHub DeepLabv3+模型deeplabv3p_xception65_humanseg。
下面我們看具體扣圖代碼實現(demo.py):
示例中,我將圖片放在代碼文件夾的同級目錄 images文件夾下,運行代碼后,輸出的摳圖圖片會自動放在代碼同級目錄的 humanseg_output 目錄下,文件名稱跟原圖片的名稱相同,但是文件格式是 png 。
其中示例 images 目錄下放了9張圖片,為了兼顧不同讀者喜好的口味,示例圖片中既包括了帥哥,也有美女哦,并且將他們縮略圖放大了,如下:
?
原圖片
運行程序后,上述示例代碼運行結果如下所示。
?
運行成功后,在 humanseg_output 目錄下生成了9張圖片,同樣的,扣圖的結果如下所示:
?
摳圖圖片
我們可以看到程序將每張圖片中的人物(可以是一個人,也可以是多個人)識別出來,并且摳出來成圖,背景是白色。雖然有些細節處還有些許瑕疵,但是看起來還算不錯。
4. 需要注意的坑
在運行示例代碼時,如果沒有單獨安裝模型deeplabv3p_xception65_humanseg,默認會自動在執行前進行安裝。但安裝完成后,執行結果并沒有生成扣圖結果及humanseg_output目錄,輸出結果類似如下所示:
?
正常情況下,在生成扣圖數據,打印results時,應該是類似如下結構才對:
?
可以通過單獨安裝模型并指定安裝版本來解決。
具體原因沒有細究,默認自動安裝模型時,版本為1.2.0,猜測由于還是模型版本不兼容問題導致。如果大家對Python感興趣的話,可以加一下我的微信哦:abb436574,免費領取一套學習資料和視頻課程喲~
5. 總結
本文基于 paddlepaddle 平臺,利用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg),使用簡單的五行代碼就實現了批量摳圖。有些讀者可能會想,上述示例中提供的代碼行數不止五行代碼吧,在上述示例中,真正實現扣圖的主代碼其實只需要下面五行:
利用PaddleHub DeepLabv3+模型 不僅可以實現一鍵扣圖,還可以進行圖片合成,視頻合成等。利用好它不僅解放了人的雙手和雙眼,而且為某些程序猿/程序媛的裝逼工具箱提供了一件寶器。下次如果碰到某個女生或者閨蜜在為摳圖發愁,別忘了掏出神器,贏得芳心哦!
總結
以上是生活随笔為你收集整理的装逼神器,5 行 Python 代码 实现一键批量扣图,你get到了吗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GBDT!深入浅出详解梯度提升决策树
- 下一篇: 本期赠书中奖名单公布