摳圖前 vs Python自動摳圖後
在平常的工做和生活中,咱們常常會遇到須要摳圖的場景,即使是隻有一張圖片須要摳,也會摳得咱們不耐煩,假若遇到許多張圖片須要摳,這時候你的表情應該會頗有趣。python
Python可以成爲這樣的一種工具:在只有一張圖片,須要細緻地摳出人物的狀況下,能幫你減小摳圖步驟;在有多張圖片須要摳的狀況下,能直接幫你輸出這些人物的基本輪廓,雖然不夠細緻,但也夠用了。算法
DeepLabv3+ 是谷歌 DeepLab語義分割系列網絡的最新做 ,這個模型能夠用於人像分割,支持任意大小的圖片輸入。若是咱們本身來實現這個模型,那可能會很是麻煩,可是幸運的是,百度的paddle hub已經幫咱們實現了,咱們僅須要加載模型對圖像進行分割便可。網絡
爲了實現這個實驗,Python是必不可少的,若是你尚未安裝Python,建議閱讀咱們的這篇文章哦:超詳細Python安裝指南。app
而後,咱們須要安裝百度的paddlepaddle, 進入他們的官方網站就有詳細的指引:
https://www.paddlepaddle.org.cn/install/quick工具
根據你本身的狀況選擇這些選項,最後一個CUDA版本,因爲本實驗不須要訓練數據,也不須要太大的計算量,因此直接選擇CPU版本便可。選擇完畢,下方會出現安裝指引,不得不說,Paddlepaddle這些方面作的仍是比較貼心的(就是名字起的很差)。網站
要注意,若是你的Python3環境變量裏的程序名稱是Python,記得將語句改成Python xxx,以下進行安裝:ui
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
還須要安裝paddlehub:url
pip install -i https://mirror.baidu.com/pypi/simple paddlehub
整個步驟分爲三步:spa
**1.加載模型
2.指定待摳圖的圖片目錄
3.摳圖
**3d
import os import sys import paddlehub as hub # 1.加載模型 humanseg = hub.Module(name="deeplabv3p_xception65_humanseg") # 2.指定待摳圖圖片目錄 path = './source/' files = [] dirs = os.listdir(path) for diretion in dirs: files.append(path + diretion) # 3.摳圖 results = humanseg.segmentation(data={"image": files}) for result in results: print(result['origin']) print(result['processed'])
很少很多一共20行代碼。摳圖完畢後會在本地文件夾下產生一個叫作humanseg_output的文件夾。這裏面存放的是已經摳圖成功的圖片。
本文20行代碼及全部圖片,請在公衆號後臺回覆:Python自動摳圖下載。
不得不認可,谷歌的算法就素厲害啊。只要背景好一點,摳出來的細節都和手動摳的細節不相上下,甚至優於人工手段。
不過在背景和人的顏色不相上下的狀況下,會產生一些問題,好比下面這個結果:
背後那個大叔徹底被忽略掉了(求大叔的心裏陰影面積)。儘管如此,這個模型是我迄今爲止見過的最強摳圖模型,沒有之一。
咱們的文章到此就結束啦,若是你但願咱們今天的Python 教程,請持續關注咱們,若是對你有幫助,麻煩在下面點一個贊/在看哦有任何問題均可以在下方留言區留言,咱們都會耐心解答的!
Python實用寶典(pythondict.com)
不僅是一個寶典
歡迎關注公衆號:Python實用寶典