上一篇:怎么给照片加眼镜(一):UV空间融合法
一、背景
上节我们使用UV空间融合法给人脸图像戴上了各类眼镜。但是也指明了该方法存在明显的缺陷,即:人脸yaw角度稍大时眼镜像是涂在皮肤上一样,缺乏立体感。现实中眼镜在侧脸时会伸出去一部分。
本节我们着重介绍第二种眼镜合成的方法:3D模型生成法。

二、3D模型生成法
该方法有几类实现方式,我们主要参考[1]中实现方法。
其示意图如下:

如上,
首先需要对2维人脸进行3维重建,比如基于3DMM fitting[2,3,4],我们采用PRnet[5,6]的方法完成三维重建。

然后我们从free3D等网站上下载免费的3D眼镜模型。该类模型通常为.obj或者3dmax等形式,我们选择含.obj文件格式的眼镜模型,obj文件格式可自行查阅资料解析。

接下来我们需要估计每一个3D眼镜模型相对3D重建人脸的位置关系。该估计的方法是在3D眼睛模型和3D人脸上选取一些anchor点,然后计算一个三维映射关系,包括:缩放、旋转、平移,该估计过程可描述为:

其中Pr为正交投影矩阵,pg为3D眼镜上的anchor点,pf为3D重构人脸的anchor点,R为3x3旋转矩阵,旋转角度由pitch、yaw、roll决定,t3d为平移向量。
笔者理解的话Pr应该是不需要的,因为这是两个三维点集的映射,不存在投影变换的问题,可以简化为三维相似变换。可参见我的另一篇博文3D点集之间计算转移矩阵,旋转R,转移T,新增缩放s (总结全面) 中的求解方式。
该问题总共包含1(缩放)+3(旋转)+3(平移)共7个自由度,每个点对的x,y,z坐标可构成3个方程,故最少需要3对点进行求解。我们选取3d眼镜上的4个anchor点,即左右耳朵,鼻梁处上下两点。

然后将合成后的3D眼镜人脸模型render到2维平面。

最后将render后的戴眼镜人脸与原图背景混合,得到最终的效果。

细心的读者也许注意到了上图中我们将戴眼镜的3D人脸在yaw方向上做了一定角度的旋转,再render出不同视角的戴眼镜人脸。

对于正脸人脸,UV空间合成法和3D眼镜模型合成法差别不大。左图为UV空间合成法,右图为3D眼镜合成法。

对于侧脸人脸,3D眼镜模型合成图像更立体感,更真实。

我们选取了7副眼镜,合成效果如下:

UV空间合成法效果

3D模型合成法效果(眼镜颜色数据增强)

三、总结
3D模型生成法效果基本可以接近真实图片效果,但是仍然存在以下待改进方向:
(1) 眼镜玻璃片的效果,反光效果,材质相关等方面的渲染暂未实现,因此显得不够逼真,尤其眼镜反光在现实中非常常见。
(2)本文中所使用的render效果还欠佳,尤其是侧脸时,内侧眼镜框看着比外侧眼镜框还大,比例上有点不协调。
(3) 该方法眼镜多样性受限于3D眼镜模型素材,虽然采用颜色数据增强的方式生成了均匀各色眼镜,但是与真实眼镜色彩还是存在较大差距。

参考文献:
[1] Guo J , Zhu X , Lei Z , et al. Face Synthesis for Eyeglass-Robust Face Recognition[J]. 2018.
[2] Zhu X, Lei Z, Yan J, Yi D, Li SZ: High-fidelity pose and expression normalization for face recognition in the wild. CVPR (2016)
[3] Guo J, Zhu X, Lei Z: 3DDFA. https://github.com/cleardusk/3DDFA (2018)
[4] Guo J, Zhu X, Yang Y, Yang F, Lei Z, Li SZ: Towards Fast, Accurate and Stable 3D Dense Face Alignment. ECCV (2020)
[5]https://github.com/YadiraF/PRNet
[6] Feng Y , Wu F , Shao X , et al. Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network[J]. arXiv, 2018.
[7]https://github.com/YadiraF/face3d

声明:本文中图片素材来源于公开人脸数据集celebA 和 ms1m,若有侵权,请告知删除。

获取更多该方法技术细节,可以
欢迎关注微信公众号 opencv520,获取CV前沿动态

opencv520专注于机器视觉领域知识,包括但不限于:相机成像、双摄全景深度相机、图像处理、相机标定、双目视觉、3D视觉、3维重建、机器学习、深度学习、人脸检测识别、GAN、自动驾驶、智能驾舱、机器人等领域。分享基础知识,传递前沿动态。

上一篇:怎么给照片加眼镜(一):UV空间融合法

怎么给照片加眼镜(二):3D眼镜模型合成法相关推荐

  1. 用红蓝3D眼镜在PC上观看3D影片效果并不好

    如题,最近试了一下买了副红蓝分色3D眼镜.结果戴上以后放3D蓝光盘只有在画面的静态部分才能正确融像,画面上的物体一动起来马上两个像就不能正确融合,而是红色部分和蓝色部分直接混在一起闪来闪去.网上找了一 ...

  2. 最齐全的电子数码3d打印模型素材,速来收藏

    前方干货满满,建议先收藏再看哦!为大家整理电子数码3d打印模型素材,总有满足你需求的一款,除此之外,免费,资源质量好,一键打包下载,你还不心动吗? 因为小编的工作原因,经常会使用到电子数码3d打印模型 ...

  3. 良心安利动物植物3d打印模型素材网站

    前方干货满满,建议先收藏再看哦!为大家整理动物植物3d打印模型素材,总有满足你需求的一款,除此之外,免费,资源质量好,一键打包下载,你还不心动吗? 在找寻资源的时候,无意中发现了爱给网这个网站,资源多 ...

  4. 良心安利服装类3d打印模型素材网站

    家人们,最近我找到了一个很好用的服装类3d打印模型免费素材网站 资源贼多,重点是免费!!!白嫖一时爽,一直白嫖一直爽,嘿嘿嘿!!!感兴趣的可以进去看看 在找寻资源的时候,无意中发现了爱给网这个网站,资 ...

  5. 最齐全的手镯3d打印模型素材,速来收藏

    手镯3d打印模型素材,我常用的爱给网这个网站就挺好的,免费下载,资源多,品质优,而且资源类型都很齐全,要是大家需要可以看一下,真的不骗人!一键打包下载,快捷方便! 接下来就给大家介绍一下我珍藏已久的网 ...

  6. 怎么给照片加眼镜(一):UV空间融合法

    一.背景 给人脸图像加眼镜在很多领域都有应用.比如修图换造型.眼镜店眼镜试戴.戴眼镜人脸识别等. 给人脸加眼镜的难点在于难以做到自然逼真,且人脸多种多样,角度多变,还存在饰物.头发等遮挡等. 目前主流 ...

  7. 注入游戏没有焦点_不戴眼镜看3D电影、玩3D游戏,这项技术能焕发端游市场第二春吗?...

    在今年5月的华为2020全球分析师大会,提到"裸眼3D,如果这项技术能够实现,将会给人们带来革命性体验的提升,被应用在生活.娱乐以及医疗.教育等领域.届时,裸眼3D也有望开创出难以想象的新的 ...

  8. 影院要求自费购买3D眼镜是“霸王条款” 官方都开始吐槽了!

    针对电影院不提供3D眼睛一事,中消协官微昨天发布消息称,3D眼镜是观看3D影片不可或缺的基本条件,提供3D眼镜是观影服务不可分割的组成部分. 中消协称,一段时间以来,有消费者投诉称:去影院观看3D电影 ...

  9. 爱普生发布特殊3D眼镜:内建Google专门开发的安卓系统

    在过去的几个月,我们一直听到有关Google正在开发某个神秘新项目的消息.它将是一种Android系统设备,却不是我们之前所熟悉的.根据推测,它很有可能是一种可穿戴的3D眼镜,内建了一种Android ...

  10. 3D电视与3D眼镜的工作原理

    1.先说3D成像原理 在"3D"里面的"D",是英文单词Dimension(线度.维)的首字母,3D指的就是三维空间.与普通2D画面显示相比,3D技术可以使画面 ...

最新文章

  1. Django进阶-auth集成认证模块
  2. 【linux】SELinux工具:semanage的安装和使用
  3. android 查看多个图片,一分钟实现Android多张图片选择
  4. 小姐姐为你解析马爸爸是怎么用大数据“宰你”的
  5. 海洋主题绘画_深圳举办风帆时代海洋绘画作品展,展出作品600余件
  6. 破五唯后,高校从“唯论文”变成了“唯纵向”?​
  7. iOS中 陀螺仪/加速器 韩俊强的博客
  8. 团队作业2——需求分析原型设计
  9. 开课吧:什么是包?如何定义包?
  10. 华盛顿大学研发PaperID技术,可在纸上印刷RFID电子标签
  11. 点云能量预测:KPConv点云输入方式
  12. 第一二三章 PMP第六版读书笔记
  13. python邮件发送 STMP
  14. Office 2007 Foxit PDF预览器/处理程序
  15. 使用Supermemo背单词6周年了
  16. 【云原生】Helm 常用命令(chart 安装、升级、回滚、卸载等操作)
  17. 听我给你普及师父、师傅和讲师、教师的区别
  18. 上传智能车竞赛比赛成绩
  19. 方波的产生——运算放大器LM324产生方波
  20. MANIFEST.MF是个什么?

热门文章

  1. windows自动更新下载的目录
  2. python中的df是什么意思_python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]...
  3. 串联型与并联型电压基准的区别
  4. FASTDB中文手册
  5. 好用免费的web报表工具
  6. 免费谷歌学术、知网、维普、scihub镜像
  7. 宏碁VN7-592G声卡问题解决方案
  8. 造梦西游4手游服务器维护,造梦西游4手机版常见问题解答 新手看过来
  9. 苹果文件管理器服务器,8最佳免费iPhone文件管理器,用于管理iOS设备上的文件...
  10. Python练习(一)