从源代码理解3DDFA_V2的推理过程

默认crop_policy = 'box'bbox宽和高的平均值记为old_size,找到bbox的中心(center_x, center_x),从中心向四周扩展尺寸为int(old_size * 1.58),从而截取出一个正方形

resize截取的正方形,使得尺寸为120x120,输入网络,输出为一个62维向量,做denorm

解析62维向量,前12维还原为3x4变换矩阵(Row-major表示,前3列为R,最后1列为offset),然后40维shape系数,最后10维exp系数

pts3d = R @ (self.bfm.u + self.bfm.w_shp @ alpha_shp + self.bfm.w_exp @ alpha_exp). \reshape(3, -1, order='F') + offset    # (3, 38365), np.float32型
pts3d = similar_transform(pts3d, roi_box, size)

【重点理解similar_transform】

  1. 可视化平均脸self.bfm.u,包含38365个顶点(下巴和左眼一侧涂粉色,便于观察)
c=0, [-78194.804688, 76469.000000], span=154663.812500
c=1, [-90549.601562, 88859.593750], span=179409.187500
c=2, [12451.929688, 132685.437500], span=120233.507812


2. Rotation + translation

R =
[[ 0.00041103, -0.00001579, -0.00027028],[-0.00003433,  0.00048299, -0.00007941],[ 0.00026137,  0.00007537,  0.00040724]]
R不是一个正交矩阵,包含了scale成分
Q:如何从R中分解出xyz3个维度的scale成分,并检查它们是否相等?
或者说R除以scale,能够变成一个正交矩阵?

3D vertices被缩小了,并且向右进行了旋转(yaw为负值)

c=0, [-46.478928, 26.152172], span=72.631104
c=1, [-48.969337, 35.275150], span=84.244492
c=2, [-12.467479, 54.472210], span=66.939690

offset =
[[ 73.81529 ],[ 74.7374  ],[-66.671585]]
Q:在正交投影下,offset的z轴有什么意义?(按照论文的说法,这个值应该是0才对)
或者说只需要11维来表示3x4矩阵就足够了啊
c=0, [27.336365, 99.967468], span=72.631104
c=1, [25.768059, 110.012543], span=84.244484
c=2, [-79.139061, -12.199375], span=66.939682

此时3D vertices xy坐标的范围落在[0, 120]内,z坐标未知

3. 进入similar_transform函数
x、z坐标减1(理由 for Python compatibility,暂时无法理解),y坐标做flip

放大至与bbox图像吻合(bbox一定是正方形,scale_x等于scale_y),然后加上bbox左上角,最终与图像吻合

对于z轴,放大同样的倍数,然后将最小值移动到0,z轴取值越大,离相机越近

c=0, [306.172302, 843.037231], span=536.864929
c=1, [433.077942, 1055.785156], span=622.707214
c=2, [0.000000, 494.795898], span=494.795898


渲染的时候,x轴向右,y轴向下,光源放在(0, 0, 5)处,与归一化到standard cube(-1到1区间)的3D vertices进行shading
只有z轴的相对差异影响渲染效果,平移无所谓

Towards Fast, Accurate and Stable 3D Dense Face Alignment(ECCV20)相关推荐

  1. [ECCV2020](3DDFA-V2)Towards Fast, Accurate and Stable 3D Dense Face Alignment

    标题:Towards Fast, Accurate and Stable 3D Dense Face Alignment 链接:https://arxiv.org/pdf/2009.09960 亮点: ...

  2. Towards Fast, Accurate and Stable 3D Dense Face Alignment(3DDFA_V2)论文与项目学习

    论文部分: 一:创新点: 背景:大部分论文在进行人脸对齐重建的时候,大多数关注模型的精确性(模型的好坏,用NME来衡量),很大程度上忽略了模型的运行速度 : 所以该论文针对这一问题,在提高模型精确性的 ...

  3. 从零实现一个3D目标检测算法(3):PointPillars主干网实现(持续更新中)

    在上一篇文章<从零实现一个3D目标检测算法(2):点云数据预处理>我们完成了对点云数据的预处理. 从本篇文章,我们开始正式实现PointPillars网络,我们将按照本系列第一篇文章介绍的 ...

  4. AI绘图设计师Stable Diffusion成为生产力工具(四):制作食品安全PPT所用的相关图片png、图标icon

    S:你安装stable diffusion就是为了看小姐姐么? I :当然不是,当然是为了公司的发展谋出路~~ 预先学习: 安装webui<Windows安装Stable Diffusion W ...

  5. 用函数式编程,从0开发3D引擎和编辑器(三):初步需求分析

    大家好,本文介绍了Wonder的高层需求和本系列对应的具体功能点. 确定Wonder高层需求 业务目标 Wonder是web端3D开发的解决方案,包括引擎.编辑器,致力于打造开放.分享.互助的生态. ...

  6. 从零实现一个3D目标检测算法(2):点云数据预处理

    在上一篇文章<从零实现一个3D目标检测算法(1):3D目标检测概述>对3D目标检测研究现状和PointPillars模型进行了介绍,在本文中我们开始写代码一步步实现PointPillars ...

  7. Unity 3D 动画系统(Mecanim)|| Unity 3D 人形角色动画(Avatar)

    Unity 3D 动画系统(Mecanim) Mecanim 动画系统是 Unity 公司推出的全新动画系统,具有重定向.可融合等诸多新特性,可以帮助程序设计人员通过和美工人员的配合快速设计出角色动画 ...

  8. Mutual Supervision for Dense Object Detection(ICCV2021)阅读笔记

    同上一篇一样,这边摸鱼笔记也是关于分类和回归分支的权重设计. 论文来源于2021ICCV,论文链接:https://openaccess.thecvf.com/content/ICCV2021/pap ...

  9. Python Matplotlib 3D绘图详解(汇总)

    Python Matplotlib 3D绘图详解(汇总) 最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的基础上,构建了一部分较为 ...

最新文章

  1. mysql 5.7 xbackup_CentOS 7 下 MySQL 5.7 配置 Percona Xtrabackup
  2. windows查看Python安装目录
  3. 有趣|“手工耿”史诗级大作:可以横着走的概念车!罗永浩点赞,网友喊话雷军投资...
  4. FPGA之道(55)状态机的HDL模板
  5. Android布局之weight属性解析
  6. iextensionunit类_Java ICompilationUnit.reconcile方法代码示例
  7. java读取excel数据_Java读取Excel内容(转)
  8. html一边自动宽度,有2列,希望右侧固定宽度,左侧自动宽度。_html/css_WEB-ITnose...
  9. 2015暑假多校联合---Friends(dfs枚举)
  10. Ubuntu中vim编辑器的常用操作
  11. 统信操作系统UOS上手操作与初体验、功能测试
  12. HSQL调优的一些个人见解
  13. 软考软件设计师下午真题-面向对象的程序设计与实现-组合设计模式(2021年上半年试题六))Java代码讲解
  14. 欧美古风格html网站模板
  15. Openstack1 云计算与虚拟化概念
  16. LightOJ1197 Help Hanzo(欧拉筛+区间素数)
  17. Android如何自定义服务器DynamicMockServer的使用
  18. 王者荣耀账号转服务器,王者荣耀安卓IOS怎么转换-帐号转区方法介绍
  19. IE6/7常用的hack
  20. ESP8266 NodeMcu机智云SOC方案开发经验分享

热门文章

  1. 三言两语讲讲 sensor 的噪声
  2. html iframe去边框,iframe去掉边框
  3. 批处理--根据文件内容分割文件
  4. 爬取斗图网表情包之后斗图会输?不存在的
  5. (Frp第一篇)Frp内网穿透安装教程#Frps服务端一键安装脚本#
  6. [UE5蓝图基础一] 5.鼠标滚轮前后设置视角远近
  7. 美国软件是如何最终装备在中国攻击直升机上的(一)
  8. 测试TCP,UDP,SSL上行速率C代码(client + tcpserver + ssl )
  9. 对exchange邮箱的一些初步的了解
  10. 失业潮?元宇宙开拓全新的就业机会