AI攻略:Paddlehub實現人體解析
PaddleHub可以便捷地獲取PaddlePaddle生態下的預訓練模型,完成模型的管理和一鍵預測。配合使用Fine-tune API,可以基於大規模預訓練模型快速完成遷移學習,讓預訓練模型能更好地服務於使用者特定場景的應用。
模型概述
人體解析(Human Parsing)是細粒度的語義分割任務,其旨在識別畫素級別的人類影像的組成部分(例如,身體部位和服裝)。ACE2P透過融合底層特徵,全域性上下文資訊和邊緣細節,端到端地訓練學習人體解析任務。該結構針對Intersection over Union指標進行針對性的最佳化學習,提升準確率。以ACE2P單人人體解析網路為基礎的解決方案在CVPR2019第三屆LIP挑戰賽中贏得了全部三個人體解析任務的第一名。該PaddleHub Module採用ResNet101作為骨幹網路,接受輸入圖片大小為473x473x3。
API
def segmentation(data)
用於人像分割
引數
data:dict型別,key為 image,str型別;value為待分割的圖片路徑,list型別。
output_dir:生成圖片的儲存路徑,預設為ace2p_output
返回
result:list型別,每個元素為對應輸入圖片的預測結果。預測結果為dict型別,有以下欄位:
origin原輸入圖片路徑
processed分割圖片的路徑。
調色盤
程式碼與案例
import paddlehub as hub
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
#ace2p
module = hub.Module(name="ace2p")
test_img_path = "./body2.jpg"
# 預測結果展示
img = mpimg.imread(test_img_path)
plt.imshow(img)
plt.axis('off')
plt.show()
# set input dict
input_dict = {"image": [test_img_path]}
# execute predict and print the result
results = module.segmentation(data=input_dict)
for result in results:
print(result)
test_img_path = "./ace2p_output/body2_processed.png"
img = mpimg.imread(test_img_path)
plt.imshow(img)
plt.axis('off')
plt.show()
[2020-01-09 07:10:08,251] [ INFO] - Installing ace2p module
2020-01-09 07:10:08,251-INFO: Installing ace2p module
[2020-01-09 07:10:08,270] [ INFO] - Module ace2p already installed in /home/aistudio/.paddlehub/modules/ace2p
2020-01-09 07:10:08,270-INFO: Module ace2p already installed in /home/aistudio/.paddlehub/modules/ace2p
[2020-01-09 07:10:09,154] [ INFO] - 0 pretrained paramaters loaded by PaddleHub
2020-01-09 07:10:09,154-INFO: 0 pretrained paramaters loaded by PaddleHub
{'origin': './body2.jpg', 'processed': 'ace2p_output/body2_processed.png'}
In[4]
import paddlehub as hub
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
#ace2p
module = hub.Module(name="ace2p")
test_img_path = "./body1.jpg"
# 預測結果展示
img = mpimg.imread(test_img_path)
plt.imshow(img)
plt.axis('off')
plt.show()
# set input dict
input_dict = {"image": [test_img_path]}
# execute predict and print the result
results = module.segmentation(data=input_dict)
for result in results:
print(result)
test_img_path = "./ace2p_output/body1_processed.png"
img = mpimg.imread(test_img_path)
plt.imshow(img)
plt.axis('off')
plt.show()
[2020-01-09 07:12:05,461] [ INFO] - Installing ace2p module
2020-01-09 07:12:05,461-INFO: Installing ace2p module
[2020-01-09 07:12:05,499] [ INFO] - Module ace2p already installed in /home/aistudio/.paddlehub/modules/ace2p
2020-01-09 07:12:05,499-INFO: Module ace2p already installed in /home/aistudio/.paddlehub/modules/ace2p
[2020-01-09 07:12:06,441] [ INFO] - 0 pretrained paramaters loaded by PaddleHub
2020-01-09 07:12:06,441-INFO: 0 pretrained paramaters loaded by PaddleHub
{'origin': './body1.jpg', 'processed': 'ace2p_output/body1_processed.png'}
In[7]
import paddlehub as hub
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
#ace2p
module = hub.Module(name="ace2p")
test_img_path = "./body3.jpg"
# 預測結果展示
img = mpimg.imread(test_img_path)
plt.imshow(img)
plt.axis('off')
plt.show()
# set input dict
input_dict = {"image": [test_img_path]}
# execute predict and print the result
results = module.segmentation(data=input_dict)
for result in results:
print(result)
test_img_path = "./ace2p_output/body3_processed.png"
img = mpimg.imread(test_img_path)
plt.imshow(img)
plt.axis('off')
plt.show()
[2020-01-09 07:13:10,483] [ INFO] - Installing ace2p module
2020-01-09 07:13:10,483-INFO: Installing ace2p module
[2020-01-09 07:13:10,502] [ INFO] - Module ace2p already installed in /home/aistudio/.paddlehub/modules/ace2p
2020-01-09 07:13:10,502-INFO: Module ace2p already installed in /home/aistudio/.paddlehub/modules/ace2p
[2020-01-09 07:13:11,395] [ INFO] - 0 pretrained paramaters loaded by PaddleHub
2020-01-09 07:13:11,395-INFO: 0 pretrained paramaters loaded by PaddleHub
{'origin': './body3.jpg', 'processed': 'ace2p_output/body3_processed.png'}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69922494/viewspace-2673935/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 百度AI攻略:Paddlehub實現影像分割AI
- 百度AI攻略:Paddlehub實現目標檢測AI
- Flutter JSON 解析懶人攻略FlutterJSON
- AI歌姬,C位出道,基於PaddleHub/Diffsinger實現音訊歌聲合成操作(Python3.10)AI音訊Python
- AI窺人(三):你想靠AI實現永生嗎?AI
- redux, koa, express 中介軟體實現對比解析ReduxExpress
- 雲解析DNS如何實現智慧解析?DNS
- MobPush推送實現解析
- 利用AI智慧體實現自動化公開課AI智慧體
- weex 原始碼解析(一) — 整體實現思路(Android視角)原始碼Android
- weex 原始碼解析(一) -- 整體實現思路(Android視角)原始碼Android
- 實現 AI 換臉的第一步:人臉搜尋AI
- AI 和 DevOps:實現高效軟體交付的完美組合AIdev
- AI+智慧交通實現整體升級和協同AI
- 解析HetuEngine實現On Yarn原理Yarn
- Kubernetes如何實現DNS解析DNS
- 解析jwt實現邏輯JWT
- SpringMVC實現原理及解析SpringMVC
- Promise的實現及解析Promise
- 十餘行程式碼完成遷移學習,PaddleHub實戰篇行程遷移學習
- Nodejs 進階:Express 常用中介軟體 body-parser 實現解析NodeJSExpress
- AI皮影戲、3D作畫,谷歌AI體驗展嗨翻魔都,這有份參展攻略AI3D谷歌
- AI創企推出雙足機器人Cassie,可實現奔跑和行走AI機器人
- 自媒體人漲粉攻略:3個免費的有效渠道,快收好
- ai繪畫商業化來了,ai繪畫軟體“數畫”實現全民創作變現模式!AI模式
- shell指令碼攻略--DNS正向解析一鍵部署指令碼DNS
- 深入解析 ResNet:實現與原理
- .NET實現解析字串表示式字串
- dotnet 委託的實現解析
- .OBJ解析器的實現OBJ
- Android SharedPreferences 實現原理解析Android
- vuex實現及簡略解析Vue
- MongoDB 4.0 事務實現解析MongoDB
- 資料分析:AI智慧科技影響下,電話機器人實現落地AI機器人
- AI實戰篇:Spring AI + 混元 手把手帶你實現企業級穩定可部署的AI業務智慧體AISpring智慧體
- AI介面實現:簡單實現Viper配置管理AI
- 人體解析端到端框架——CE2P框架
- NO純社交媒體!Facebook如何利用AI實現產品規模化?AI