最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

5行Python代碼實現(xiàn)一鍵批量扣圖

 更新時間:2021年06月29日 10:13:27   作者:狂師vs  
在日常生活或者工作中,經(jīng)常會遇到想將某張照片中的人物摳出來,本文就介紹了Python代碼實現(xiàn)一鍵批量扣圖,感興趣的可以了解一下

今天給大家分享一款Python裝逼實用神器。

在日常生活或者工作中,經(jīng)常會遇到想將某張照片中的人物摳出來,然后拼接到其他圖片上去。專業(yè)點的人可以使用 PhotoShop 的“魔棒”工具進行摳圖,非專業(yè)人士則使用各種美圖 APP 來實現(xiàn),但是這兩類方式畢竟處理能力有限,一次只能處理一張圖片,而且比較復雜的圖像可能耗時較久。那今天就來向大家展示第三種扣圖方式——用 Python代碼來實現(xiàn) 一鍵批量摳圖。

1. 準備工作- 安裝paddlepaddle

既然要裝逼,準備工作是少不了的。所謂“站在巨人的肩膀上,干起活來事半功倍”,我們這里的“巨人”就是 paddlepaddle 了,中文名稱叫“飛槳”,那么這個 paddlepaddle 是什么呢?

它是“源于產(chǎn)業(yè)實踐的開源深度學習平臺,致力于讓深度學習技術的創(chuàng)新與應用更簡單”,直白點就是我?guī)湍銓崿F(xiàn)了深度學習底層框架,你只要有創(chuàng)意就可以在我平臺上運用少量簡單代碼輕松實現(xiàn)。它的官網(wǎng)是:https://www.paddlepaddle.org.cn/

它的安裝比較簡單,官網(wǎng)首頁就有安裝指引,可以通過「安裝」菜單,查找到各個系統(tǒng)安裝詳細及注意事項,如下圖所示,我們這里根據(jù)官網(wǎng)的安裝指引,使用 pip 方式來安裝 CPU 版本。

本文以MacOS系統(tǒng)為例:

我們首先執(zhí)行以下命令安裝(推薦使用百度源)::

python3 -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

或者:

python3 -m pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple

從安裝過程中,可以看到在安裝paddlepaddle庫時,需要安裝如下依賴庫:

Installing collected packages: pathlib, click, joblib, regex, tqdm, nltk, gast, rarfile, pyyaml, funcsigs, paddlepaddle
  Running setup.py install for pathlib ... done
  Running setup.py install for regex ... done
  Running setup.py install for nltk ... done
  Running setup.py install for rarfile ... done
  Running setup.py install for pyyaml ... done
Successfully installed click-7.1.2 funcsigs-1.0.2 gast-0.3.3 joblib-0.14.1 nltk-3.5 paddlepaddle-1.8.0 pathlib-1.0.1 pyyaml-5.3.1 rarfile-3.1 regex-2020.5.7 tqdm-4.46.0

安裝成功后,我們在 python 環(huán)境中測試一下是否安裝成功(這個也是按照官網(wǎng)指引來做),我們切換到 python 環(huán)境,運行如下代碼:

➜  ~ python3
Python 3.7.4 (default, Jul  9 2019, 18:15:00)
[Clang 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import paddle.fluid
>>> paddle.fluid.install_check.run_check()
Running Verify Fluid Program ...
Your Paddle Fluid works well on SINGLE GPU or CPU.
W0512 17:41:31.037240 2844976000 build_strategy.cc:170] fusion_group is not enabled for Windows/MacOS now, and only effective when running with CUDA GPU.
W0512 17:41:31.043959 2844976000 fuse_all_reduce_op_pass.cc:74] Find all_reduce operators: 2. To make the speed faster, some all_reduce ops are fused during training, after fusion, the number of all_reduce ops is 1.
Your Paddle Fluid works well on MUTIPLE GPU or CPU.
Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now

如果能看到 Your Paddle Fluid is installed successfully 就表示安裝成功了。

2. 準備工作- 安裝paddlehub

要實現(xiàn)本文的一鍵批量扣圖需求,需要借助PaddleHub人像分割模型來實現(xiàn)。

PaddleHub 是基于 PaddlePaddle 開發(fā)的預訓練模型管理工具,可以借助預訓練模型更便捷地開展遷移學習工作,目前的預訓練模型涵蓋了圖像分類、目標檢測、詞法分析、語義模型、情感分析、視頻分類、圖像生成、圖像分割、文本審核、關鍵點檢測等主流模型。

PaddleHub官網(wǎng):https://www.paddlepaddle.org.cn/hub

PaddleHub項目地址:https://github.com/PaddlePaddle/PaddleHub

更多PaddleHub預訓練模型教程合集課程可見:https://aistudio.baidu.com/aistudio/course/introduce/1070

介紹完了項目,接下來我們開始在線安裝 paddlehub :

pip install -i https://mirror.baidu.com/pypi/simple paddlehub

或者按指定版本安裝:

pip install paddlehub==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

安裝完成后,我們就可以開始運用了。

3. 一鍵扣圖代碼實現(xiàn)

我們的實現(xiàn)步驟很簡單:

  • 導入模塊
  • 加載模型
  • 獲取圖片文件
  • 調(diào)用模塊摳圖

其中扣圖功能主要采用PaddleHub DeepLabv3+模型deeplabv3p_xception65_humanseg。

下面我們看具體扣圖代碼實現(xiàn)(demo.py):

import os
import paddlehub as hub
 
# 加載模型
humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')  
base_dir = os.path.abspath(os.path.dirname(__file__))
 
# 獲取當前文件目錄
path = os.path.join(base_dir, 'images/')
# 獲取文件列表
files = [path + i for i in os.listdir(path)]  
print(files)
# 摳圖
results = humanseg.segmentation(data={'image': files})  
for result in results:
    print(result)

示例中,我將圖片放在代碼文件夾的同級目錄 images文件夾下,運行代碼后,輸出的摳圖圖片會自動放在代碼同級目錄的 humanseg_output 目錄下,文件名稱跟原圖片的名稱相同,但是文件格式是 png 。

其中示例 images 目錄下放了9張圖片,為了兼顧不同讀者喜好的口味,示例圖片中既包括了帥哥,也有美女哦,并且將他們縮略圖放大了,如下:

運行程序后,上述示例代碼運行結果如下所示。

運行成功后,在 humanseg_output 目錄下生成了9張圖片,同樣的,扣圖的結果如下所示:

我們可以看到程序將每張圖片中的人物(可以是一個人,也可以是多個人)識別出來,并且摳出來成圖,背景是白色。雖然有些細節(jié)處還有些許瑕疵,但是看起來還算不錯。

4. 需要注意的坑

在運行示例代碼時,如果沒有單獨安裝模型deeplabv3p_xception65_humanseg,默認會自動在執(zhí)行前進行安裝。但安裝完成后,執(zhí)行結果并沒有生成扣圖結果及humanseg_output目錄,輸出結果類似如下所示:

正常情況下,在生成扣圖數(shù)據(jù),打印results時,應該是類似如下結構才對:

可以通過單獨安裝模型并指定安裝版本來解決。

hub install deeplabv3p_xception65_humanseg==1.0.0

具體原因沒有細究,默認自動安裝模型時,版本為1.2.0,猜測由于還是模型版本不兼容問題導致。

5. 總結

本文基于 paddlepaddle 平臺,利用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg),使用簡單的五行代碼就實現(xiàn)了批量摳圖。有些讀者可能會想,上述示例中提供的代碼行數(shù)不止五行代碼吧,在上述示例中,真正實現(xiàn)扣圖的主代碼其實只需要下面五行:

humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')  
base_dir = os.path.abspath(os.path.dirname(__file__))
path = os.path.join(base_dir, 'images/')
files = [path + i for i in os.listdir(path)]  
results = humanseg.segmentation(data={'image': files})  

利用PaddleHub DeepLabv3+模型 不僅可以實現(xiàn)一鍵扣圖,還可以進行圖片合成,視頻合成等。利用好它不僅解放了人的雙手和雙眼,而且為某些程序猿/程序媛的裝逼工具箱提供了一件寶器。下次如果碰到某個女生或者閨蜜在為摳圖發(fā)愁,別忘了掏出神器,贏得芳心哦!

paddlepaddle作為一款開源的深度學習平臺,本文介紹的扣圖訓練模型只是其中的冰山一角,實戰(zhàn)訓練預測模型種類還遠遠不止,更多的場景結合,讀者們可自行挖掘。

到此這篇關于5行Python代碼實現(xiàn)一鍵批量扣圖的文章就介紹到這了,更多相關Python 批量扣圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python學習筆記之多進程

    python學習筆記之多進程

    這篇文章主要介紹了python多進程的的相關資料,文中講解非常細致,幫助大家更好的理解和學習Python,感興趣的朋友可以了解下
    2020-08-08
  • Python讀寫文件方法總結

    Python讀寫文件方法總結

    這篇文章主要介紹了Python讀寫文件方法,實例分析了Python讀寫文件常用的方法與使用技巧,需要的朋友可以參考下
    2015-06-06
  • Python?selenium?八種定位元素的方式

    Python?selenium?八種定位元素的方式

    這篇文章主要介紹了Python?selenium八種定位元素的方式,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 使用Python設置、更改及移除Word文檔密碼

    使用Python設置、更改及移除Word文檔密碼

    給Word文檔設置打開密碼是常見的Word文檔加密方式,如果我們需要對大量的Word文檔進行加密、解密處理,Python是一個不錯的選擇,本文將介紹如何使用Python設置、更改或移除Word文檔的加密,需要的朋友可以參考下
    2024-03-03
  • 在Python的Django框架中生成CSV文件的方法

    在Python的Django框架中生成CSV文件的方法

    這篇文章主要介紹了在Python的Django框架中生成CSV文件的方法,利用到了Python下的csv模塊,需要的朋友可以參考下
    2015-07-07
  • Python?字符替換的四方法

    Python?字符替換的四方法

    本文主要介紹了Python?字符替換的四方法,主要包括replace、translate、maketrans?和正則這是四種方法,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 深入解析Python中的線程同步方法

    深入解析Python中的線程同步方法

    Python盡管可以創(chuàng)建多條線程,但是由于GIL的存在,Python的多條線程并不能同時運行,因而線程間的同步便顯得更為重要,這里我們就來深入解析Python中的線程同步方法,需要的朋友可以參考下
    2016-06-06
  • python中format的用法實例詳解

    python中format的用法實例詳解

    fotmat作為Python的的格式字符串函數(shù),主要通過字符串中的花括號{},來識別替換字段,從而完成字符串的格式化,下面這篇文章主要給大家介紹了關于python中format用法的相關資料,需要的朋友可以參考下
    2022-05-05
  • 如何理解Python中的變量

    如何理解Python中的變量

    在本篇文章里小編給大家分享的是關于Python中變量是什么意思的相關基礎知識點,需要的朋友們可以學習下。
    2020-06-06
  • 關于Python參數(shù)解析器argparse的應用場景

    關于Python參數(shù)解析器argparse的應用場景

    這篇文章主要介紹了關于Python參數(shù)解析器argparse的應用場景,argparse 模塊使編寫用戶友好的命令行界面變得容易,程序定義了所需的參數(shù),而 argparse 將找出如何從 sys.argv 中解析這些參數(shù),需要的朋友可以參考下
    2023-08-08

最新評論

乐安县| 南昌县| 广宁县| 尼木县| 读书| 报价| 青州市| 宝兴县| 普兰县| 鄱阳县| 迭部县| 阿克陶县| 宣威市| 苗栗市| 徐州市| 常德市| 新昌县| 隆安县| 怀化市| 上思县| 达拉特旗| 西乌珠穆沁旗| 会同县| 谷城县| 班玛县| 旺苍县| 广丰县| 永安市| 翼城县| 屯昌县| 宣恩县| 斗六市| 化州市| 湛江市| 鄂尔多斯市| 上林县| 河西区| 河南省| 子洲县| 无为县| 海南省|