百度AI攻略:Paddlehub实现图像分割

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'}

相关文章
相关标签/搜索