PaddleHub能夠便捷地獲取PaddlePaddle生態下的預訓練模型,完成模型的管理和一鍵預測。配合使用Fine-tune API,能夠基於大規模預訓練模型快速完成遷移學習,讓預訓練模型能更好地服務於用戶特定場景的應用。網絡
模型概述:學習
模型概述 DeepLabv3+ 是Google DeepLab語義分割系列網絡的最新做,其前做有 DeepLabv1,DeepLabv2, DeepLabv3。在最新做中,做者經過encoder-decoder進行多尺度信息的融合,同時保留了原來的空洞卷積和ASSP層, 其骨幹網絡使用了Xception模型,提升了語義分割的健壯性和運行速率,在 PASCAL VOC 2012 dataset取得新的state-of-art performance。該PaddleHub Module使用百度自建數據集進行訓練,可用於人像分割,支持任意大小的圖片輸入。code
代碼及效果示例:orm
import paddlehub as hubblog
import matplotlib.pyplot as plt圖片
import matplotlib.image as mpimginput
#deeplabv3p_xception65_humansegio
module = hub.Module(name="deeplabv3p_xception65_humanseg")form
test_img_path = "./body2.jpg"test
# 預測結果展現
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 = "./humanseg_output/body2.png"
img = mpimg.imread(test_img_path)
plt.imshow(img)
plt.axis('off')
plt.show()
[2020-01-07 06:03:45,652] [ INFO] - Installing deeplabv3p_xception65_humanseg module
2020-01-07 06:03:45,652-INFO: Installing deeplabv3p_xception65_humanseg module
[2020-01-07 06:03:45,692] [ INFO] - Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg
2020-01-07 06:03:45,692-INFO: Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg
[2020-01-07 06:03:46,479] [ INFO] - 0 pretrained paramaters loaded by PaddleHub
2020-01-07 06:03:46,479-INFO: 0 pretrained paramaters loaded by PaddleHub
{'origin': './body2.jpg', 'processed': 'humanseg_output/body2.png'}
In[5]
#deeplabv3p_xception65_humanseg
module = hub.Module(name="deeplabv3p_xception65_humanseg")
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 = "./humanseg_output/body1.png"
img = mpimg.imread(test_img_path)
plt.imshow(img)
plt.axis('off')
plt.show()
[2020-01-07 06:04:10,459] [ INFO] - Installing deeplabv3p_xception65_humanseg module
2020-01-07 06:04:10,459-INFO: Installing deeplabv3p_xception65_humanseg module
[2020-01-07 06:04:10,476] [ INFO] - Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg
2020-01-07 06:04:10,476-INFO: Module deeplabv3p_xception65_humanseg already installed in /home/aistudio/.paddlehub/modules/deeplabv3p_xception65_humanseg
[2020-01-07 06:04:11,422] [ INFO] - 0 pretrained paramaters loaded by PaddleHub
2020-01-07 06:04:11,422-INFO: 0 pretrained paramaters loaded by PaddleHub
{'origin': './body1.jpg', 'processed': 'humanseg_output/body1.png'}