前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Matlab】表情合成尝试(6)——整合与改进

【Matlab】表情合成尝试(6)——整合与改进

作者头像
ZifengHuang
发布2020-07-29 15:51:56
7760
发布2020-07-29 15:51:56
举报
文章被收录于专栏:未竟东方白未竟东方白

上篇的结尾也说到了这个小结,反正我对这个系列的印象老实说也已经淡忘,所以简单把过程重新理一下,然后就结束这个系列了吧。

总的来说这篇更接近于一个大纲,不过我会截图所有的代码,由于有之前的文章所以很多细节原理就不再细述。

由于时间过了很久,在这里重新把变形前的小姐姐图像放出来。

一.特征点标定及锚点

特征点标定是表情合成的第一步,首先将由于示例图中人脸已经对其到图片中央且大小近似,所以简单将图片大小对齐然后使用上一篇文章【Matlab】表情合成尝试(5)——68个特征点(landmarks)的方法得到特征点即可。

得到特征点之后,由于之后需要使用fitgeotrans函数来进行图像变形,而所使用的landmarks函数得到的特征点只包含五官和头的下半部分,为了防止图像的比例严重失真,我选择在图片的四边各增加4个点,其中四个角的点有重合增加了四个角的变形权重。

二.表情变形映射

由于做的是表情映射,接下来进行的是传统的表情映射,也就是利用前面得到的特征点和制造出来的锚点来对图像变形,使无表情图对齐到有表情图中。这部分是【Matlab】表情合成尝试(2)——传统的表情映射的内容。

首先是计算出两张参照图的表情特征点的偏移,然后将这个偏移叠加到原表情中,由于提前进行了图像对齐,所以移动的像素值不会有很大失真。

接下来就是激动人心的使用fitgeotrans配合imwarp进行图像变形,在这里lwm的参数我和之前一样选择了12,因为这个参数效果比较好。变形完后将变形后的图片重新调整为原来的大小,效果图如下:

三.皱纹提取与处理

上面的图看起来效果还不错,但是人脸做表情怎么说多少也会产生些皱纹,接下来就是【Matlab】表情合成尝试(3)——ERI伪皱纹映射的内容来映射皱纹。不过首先需要提取皱纹大略。

皱纹实际上是应用在图片上的一个明暗变化度,原理在第三篇中有讲,这里就是要计算出比率R。先是使用类似传统表情映射的方法将有表情与无表情的两张图对齐使得五官尽量重叠,为了使五官尽量重叠这里lwm参数选择了84(最大值)。然后转为ycbcr图提取出表示明暗度的y值,相除得到比率图。

这里要道个歉,之前第三篇中是使用了自己写的函数将其转为yuv图,但是可能是由于数据格式转换时的误差导致了最终图片颜色出现问题,使用内置函数rgb2ycbcr等替代可解决这个问题。

比率图去除了图像的颜色只留下了明暗的比率,接下来需要的是提取出图像的皱纹部分。原理和函数内容在第三篇中。在选择了这些参数后成功将图像的估计非皱纹部分模糊了许多。

模糊了那些非皱纹部分后,还需要对比率图进行裁剪,这里由于所选的landmark探测器得到的特征点只有下半部分的脸,所以我大致计算了脸的位置进行裁剪,这个问题可以通过寻找更好的图像处理学习库解决。

经过这般操作后得到的比率图如下,可以看到虽然由于裁剪的缺陷有些瑕疵但是效果还行,大多数不属于皱纹的部分都被模糊或裁去了。

四.皱纹映射

来到这里就是过程的结局了,得到了皱纹比率图,有了变形后的人脸,只差映射上去。

类似之前对齐表情将皱纹图与目标人脸表情对齐,以使得五官位置尽量重叠,这里lwm的参数选择了40。然后将变形得到的深度不正常的部分和深度过浅的部分设为1使得比率图尽可能光滑。

最后将比率图对齐,点乘映射到目标人脸的y上,再拉伸图片为原始尺寸,途中可能需要多次的格式转换,因为要注意需要使用小数来进行相乘。最终得到了结果。

五.后记

尽管还有很多瑕疵,例如变形不完美,皱纹提取不完整,有很多杂质存在。杂质部分再进行一次图像磨皮可能会有改进,皱纹提取部分找一个更好的landmark探测器应该会更好,可以提前将已知的非皱纹部分去除,变形不完美应该也可以通过特征点选取的改进来解决,想想也有很多改进空间。

不过不管怎么说,个人认为结果已经比之前好很多了,差不多算是达到了想要的效果。这个系列也是耗时很久,虽然实际上不难但是查找各种资源花费了一些时间,那大概这样吧。

项目已经上传到了

https://github.com/ZFhuang/Facial_Expression

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未竟东方白 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档