|
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)!
上一篇體驗(yàn)了一把公號(hào)付費(fèi)閱讀功能,文章發(fā)出后,引起了不少的讀者驚慌,難道以后在公號(hào)閱讀技術(shù)干貨文章要付費(fèi)了嗎?這里需要向各位公號(hào)讀者澄清一下,公號(hào)文章內(nèi)容閱讀還是以免費(fèi)為主,上一篇僅是好奇為了體驗(yàn)一把而已。為了給大家壓壓驚,今天給大家分享一款Python裝逼實(shí)用神器。 在日常生活或者工作中,經(jīng)常會(huì)遇到想將某張照片中的人物摳出來(lái),然后拼接到其他圖片上去。專業(yè)點(diǎn)的人可以使用 PhotoShop 的“魔棒”工具進(jìn)行摳圖,非專業(yè)人士則使用各種美圖 APP 來(lái)實(shí)現(xiàn),但是這兩類方式畢竟處理能力有限,一次只能處理一張圖片,而且比較復(fù)雜的圖像可能耗時(shí)較久。那今天就來(lái)向大家展示第三種扣圖方式——用 Python代碼來(lái)實(shí)現(xiàn) 一鍵批量摳圖。 1. 準(zhǔn)備工作- 安裝paddlepaddle既然要裝逼,準(zhǔn)備工作是少不了的。所謂“站在巨人的肩膀上,干起活來(lái)事半功倍”,我們這里的“巨人”就是 paddlepaddle 了,中文名稱叫“飛槳”,那么這個(gè) paddlepaddle 是什么呢? 它是“源于產(chǎn)業(yè)實(shí)踐的開源深度學(xué)習(xí)平臺(tái),致力于讓深度學(xué)習(xí)技術(shù)的創(chuàng)新與應(yīng)用更簡(jiǎn)單”,直白點(diǎn)就是我?guī)湍銓?shí)現(xiàn)了深度學(xué)習(xí)底層框架,你只要有創(chuàng)意就可以在我平臺(tái)上運(yùn)用少量簡(jiǎn)單代碼輕松實(shí)現(xiàn)。它的官網(wǎng)是:https://www./ 。 它的安裝比較簡(jiǎn)單,官網(wǎng)首頁(yè)就有安裝指引,可以通過(guò)「安裝」菜單,查找到各個(gè)系統(tǒng)安裝詳細(xì)及注意事項(xiàng),如下圖所示,我們這里根據(jù)官網(wǎng)的安裝指引,使用 pip 方式來(lái)安裝 CPU 版本。
本文以MacOS系統(tǒng)為例: 我們首先執(zhí)行以下命令安裝(推薦使用百度源):: 或者: 從安裝過(guò)程中,可以看到在安裝paddlepaddle庫(kù)時(shí),需要安裝如下依賴庫(kù): 安裝成功后,我們?cè)?python 環(huán)境中測(cè)試一下是否安裝成功(這個(gè)也是按照官網(wǎng)指引來(lái)做),我們切換到 python 環(huán)境,運(yùn)行如下代碼: 如果能看到 Your Paddle Fluid is installed successfully 就表示安裝成功了。 2. 準(zhǔn)備工作- 安裝paddlehub要實(shí)現(xiàn)本文的一鍵批量扣圖需求,需要借助PaddleHub人像分割模型來(lái)實(shí)現(xiàn)。 PaddleHub 是基于 PaddlePaddle 開發(fā)的預(yù)訓(xùn)練模型管理工具,可以借助預(yù)訓(xùn)練模型更便捷地開展遷移學(xué)習(xí)工作,目前的預(yù)訓(xùn)練模型涵蓋了圖像分類、目標(biāo)檢測(cè)、詞法分析、語(yǔ)義模型、情感分析、視頻分類、圖像生成、圖像分割、文本審核、關(guān)鍵點(diǎn)檢測(cè)等主流模型。 PaddleHub官網(wǎng): PaddleHub項(xiàng)目地址: 更多PaddleHub預(yù)訓(xùn)練模型教程合集課程可見: 介紹完了項(xiàng)目,接下來(lái)我們開始在線安裝 paddlehub : 或者按指定版本安裝: pip install paddlehub==1.6.0 -i https://pypi.tuna./simple 安裝完成后,我們就可以開始運(yùn)用了。 3. 一鍵扣圖代碼實(shí)現(xiàn)我們的實(shí)現(xiàn)步驟很簡(jiǎn)單:
其中扣圖功能主要采用PaddleHub DeepLabv3+模型deeplabv3p_xception65_humanseg。 下面我們看具體扣圖代碼實(shí)現(xiàn)(demo.py): 示例中,我將圖片放在代碼文件夾的同級(jí)目錄 images文件夾下,運(yùn)行代碼后,輸出的摳圖圖片會(huì)自動(dòng)放在代碼同級(jí)目錄的 humanseg_output 目錄下,文件名稱跟原圖片的名稱相同,但是文件格式是 png 。 其中示例 images 目錄下放了9張圖片,為了兼顧不同讀者喜好的口味,示例圖片中既包括了帥哥,也有美女哦,并且將他們縮略圖放大了,如下:
原圖片 運(yùn)行程序后,上述示例代碼運(yùn)行結(jié)果如下所示。
運(yùn)行成功后,在 humanseg_output 目錄下生成了9張圖片,同樣的,扣圖的結(jié)果如下所示:
摳圖圖片 我們可以看到程序?qū)⒚繌垐D片中的人物(可以是一個(gè)人,也可以是多個(gè)人)識(shí)別出來(lái),并且摳出來(lái)成圖,背景是白色。雖然有些細(xì)節(jié)處還有些許瑕疵,但是看起來(lái)還算不錯(cuò)。 4. 需要注意的坑在運(yùn)行示例代碼時(shí),如果沒(méi)有單獨(dú)安裝模型deeplabv3p_xception65_humanseg,默認(rèn)會(huì)自動(dòng)在執(zhí)行前進(jìn)行安裝。但安裝完成后,執(zhí)行結(jié)果并沒(méi)有生成扣圖結(jié)果及humanseg_output目錄,輸出結(jié)果類似如下所示:
正常情況下,在生成扣圖數(shù)據(jù),打印results時(shí),應(yīng)該是類似如下結(jié)構(gòu)才對(duì):
可以通過(guò)單獨(dú)安裝模型并指定安裝版本來(lái)解決。 具體原因沒(méi)有細(xì)究,默認(rèn)自動(dòng)安裝模型時(shí),版本為1.2.0,猜測(cè)由于還是模型版本不兼容問(wèn)題導(dǎo)致。 5. 總結(jié)本文基于 paddlepaddle 平臺(tái),利用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg),使用簡(jiǎn)單的五行代碼就實(shí)現(xiàn)了批量摳圖。有些讀者可能會(huì)想,上述示例中提供的代碼行數(shù)不止五行代碼吧,在上述示例中,真正實(shí)現(xiàn)扣圖的主代碼其實(shí)只需要下面五行: 利用PaddleHub DeepLabv3+模型 不僅可以實(shí)現(xiàn)一鍵扣圖,還可以進(jìn)行圖片合成,視頻合成等。利用好它不僅解放了人的雙手和雙眼,而且為某些程序猿/程序媛的裝逼工具箱提供了一件寶器。下次如果碰到某個(gè)女生或者閨蜜在為摳圖發(fā)愁,別忘了掏出神器,贏得芳心哦! paddlepaddle作為一款開源的深度學(xué)習(xí)平臺(tái),本文介紹的扣圖訓(xùn)練模型只是其中的冰山一角,實(shí)戰(zhàn)訓(xùn)練預(yù)測(cè)模型種類還遠(yuǎn)遠(yuǎn)不止,更多的場(chǎng)景結(jié)合,讀者們可自行挖掘。 |
|
|
來(lái)自: 測(cè)試開發(fā)技術(shù) > 《待分類》