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