首页 PaddleHub 帖子详情
Paddlehub体验(创意赛)
收藏
快速回复
PaddleHub 文章预训练模型 1311 1
Paddlehub体验(创意赛)
收藏
快速回复
PaddleHub 文章预训练模型 1311 1

五一劳动节,今天好好劳动了一波,体验了一下padllehub提供一些模型,这里对项目进行一个总结。

项目地址:https://aistudio.baidu.com/aistudio/projectdetail/444942

首先声明我的项目都是在AI Studio上完成的,所以没有进行本地测试。我的代码全是参考官方文档进行实现的。官方文档地址:https://www.paddlepaddle.org.cn/hublist

不得不承认,paddlehub提供的模型使用起来都很简单,直接复制官方文档提供的代码,修改一下资源地址就可以运行,加上AI Studio的加成,体验不要太爽。

我主要在这个项目中使用了图像生成模型、图像分割模型、目标检测模型和关键点检测模型,详细介绍如下:

图像生成模型

我使用模型stylepro_artistic(https://www.paddlepaddle.org.cn/hubdetail?name=stylepro_artistic&en_category=GANs)实现图片的风格迁移

上面左图是原始图片,中间是迁移的目标风格图片,右图为进行风格迁移后的图片

这里需要注意模型输入的images参数。images是一个列表,每一个元素都为一个字典,字典有三个关键字 :content, styles, weights(可选)。content是一个存储待转换的图片数组,注意其格式为BGR,所以一般使用opencv进行图片读取;styles 是一个存储风格图片的列表,BGR格式;weights存储各个 style 对应的权重。当不设置 weights 时,默认各个 style 有着相同的权重;我的项目里只是用了一张风格图片。

图像分割模型

我使用deeplabv3p_xception65_humanseg模型(https://www.paddlepaddle.org.cn/hubdetail?name=deeplabv3p_xception65_humanseg&en_category=ImageSegmentation)进行图片分割。

上面左图为原图,右图为分割出的图片。

结合图片分割和风格迁移,我们可以将图片的背景进行风格转换效果图下:

其实现流程是:将图片分别进行风格迁移和图像分割,在把两个操作得到的结果进行合成。

在项目里面。结合上面的技术,实现了将gif动态图的背景风格迁移。由于图片大小限制,请感兴趣的朋友到项目内查看。

对于gif动态图的读取,我是用Pillow的ImageSequence;对于gif动态图的制作我是用imageio。这里存在一个问题是对于gif动态图的帧间延迟duration的设置,由于使用ImageSequence读取gif动态图好像不能获取duration,所以对于duration的设置就不能和原图一模一样,为了获得好的对比效果,我是用原图读取出来的图片,生成了新的动态图作为对比参考。

目标检测模型

我是用ultra_light_fast_generic_face_detector_1mb_320模型(https://www.paddlepaddle.org.cn/hubdetail?name=ultra_light_fast_generic_face_detector_1mb_320&en_category=ObjectDetection)实现人脸遮挡。

上图可以看到,为坤坤美丽的脸蛋上加了面具(龟龟,我本来的图片由于太过于性感上传失败了。。。)

实现流程是:首先通过人脸检测出图片中人脸的位置,然后使用Image.paste在对应位置上添加面具。

这里需要注意的是对于输出人脸坐标的转换和面具大小的更改,需要使面具和人脸大小一致。另外模型输出的坐标使浮点数,这里需要将坐标转化为整数。

关键点检测模型

我使用模型pose_resnet50_mpii(https://www.paddlepaddle.org.cn/hubdetail?name=pose_resnet50_mpii&en_category=KeyPointDetection)实现对人体的关键点标注。

上图实在人脸遮挡的基础上加了人体关键点标注。(我的实例图还是太过性感,上传失败。绅士们请移步项目内观看)

人体关键点标注就比较简单了,直接调用官方提供的代码就行了。项目里结合前面所有模型进行了动态图的转换。

总结

总的来说,paddlehub的使用非常简单,模型效果也十分不错,推荐大家使用。

对于paddlehub的模型,我有一个建议:因为有的模型输入要求是输入图片路径,这样在处理使用的时候,就需要想把视频帧保存为图片,在进行处理,这显得有点麻烦,这也是在这个项目中,我没有对视频进行处理的原因。希望可以对输入进行一个兼容,既可以直接输入图片数组也可以输入图片路径。

接下来我会继续体验更多的模型,项目也会持续更新。

0
收藏
回复
全部评论(1)
时间顺序
micahvista
#2 回复于2020-05

神经网络风格迁移效果好好,支持了

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户