ECCV 2022

2023-11-19

作者丨人脸人体重建

来源丨人脸人体重建

编辑丨极市平台

极市导读

 

本文围绕3D人脸重建的评估方式进行了重新的思考和探索。作者团队通过构建新数据集RELAY,囊括了更丰富以及更高质量的脸部区域信息,并借助新的流程对先前的数十个重建算法、3DMM进行了评价。 

5b9c54bfdfc0a94746fbf43a5194ee65.png

本文分享ECCV 2022论文《REALY: Rethinking the Evaluation of 3D Face Reconstruction》,对3D人脸重建的评估方法进行重新思考。该论文提出一个新的3D人脸重建的benchmark数据集,名为REALY benchmark,和相应的评估方法,能对于重建的3D人脸模型在不同脸部区域进行细粒度评价,并对于主流的单张照片3D人脸重建算法进行了详细的评测。

另外,该论文同时公开了一个由近2000个人脸扫描模型构建的高质量全头模型3DMM基底:HIFI3D++,该基底相对于BFM、FWH、FaceScape、FLAME、LSFM、LYHM等3DMM基底有更强的表达能力和更高的Mesh模型质量。

相关代码和3DMM已开源。此项工作由清华大学与腾讯AI Lab合作完成。

论文链接:https://arxiv.org/abs/2203.09729

代码链接:https://github.com/czh-98/REALY

项目网站:https://www.realy3dface.com/

一、简介

3D人脸重建历经多年发展,不同的重建方案层出不穷,然而对于不同方法重建结果的定量评价却存在明显的问题和缺陷,即客观指标与人的主观感受难以相符。

回顾先前的3D人脸重建评价方案,基于3D顶点的评价流程通常借助关键点进行scale和pose的预对齐,并通过Iterative Closest Point (ICP)算法进行微调使得predicted mesh和ground-truth scan对齐,再通过两者的最近邻点建立顶点的对应关系,并计算这组对应关系的NMSE/RMSE作为指标。

本文首先分析这样的评价流程存在的问题,揭示了先前的评价方案无法与主观评价相吻合的重要原因:_即全局的刚性对齐会受到脸部局部区域重建质量的影响,并且根据单方向距离(最近邻点)建立的对应关系无法保证顶点之间语义信息的一致性。_所以我们构建了REALY benchmark,设计了新的3D人脸重建评价方案,并对先前的模型和3DMM进行了重新的评价,验证了我们的评价流程的合理性。

此外,在构建新的benchmark的过程中,我们通过整合约2000个高质量的人脸scan数据,进行拓扑结构的统一,从而构建了一个新的具有高表达能力的3DMM,其拓扑结构、基的维度都要优于先前的3DMM,并在RGB-(D) Fitting的比较中证明其表达能力和重建效果。

二、论文动机

先前的评价方案存在以下两个主要问题。

1. ICP对齐过程对局部区域的变化比较敏感

直观而言,对于两个完全重合的3D mesh,如果我们只对predicted mesh的鼻子区域进行修改,理想状况下,两个mesh对齐结果应该如中间所示,因为其他区域在改变前后与ground-truth是完全重合的,两者的误差应该主要集中在鼻子区域;而根据以往的评价流程,全局对齐操作则会由于鼻子区域的变化,导致对齐后mesh整体的位置发生偏移而带来误差的放大。对此,本文将人脸的评估分为四个区域,分别对每一个区域进行对齐、评估,而不考虑其他区域的影响。

aad74abab17e49da70077f285663f0b8.png

2. 单向的最近邻点建立的对应关系容易导致语义信息的不一致

如图所示,对于predicted mesh上的某一点x,在计算误差时需要找到ground-truth scan上的对应点,若通过点到平面的最近距离建立对应关系,则可能为y1。这时,虽然y1是x距离最近的点,然而他们在语义信息上没有关联性,与嘴角的点x相关联的应该是y2,然而y2不会是x所对应的最近点。在这样的情况下,虽然计算得到的误差较小,但由于对应点之间的语义信息并不一致,因此计算得到的误差并不靠谱,较小的误差并不能表明较大的相似度。对此我们提出使用一步额外反方向非刚性对齐,并且其中增加了包含有语义信息的关键点损失,从而得到语义上更加一致的对应关系。

6dadfa2b90bd3ccd1b67877b736fa877.png

三、REALY

为了解决上述两个问题,我们首先构建了一个新的benchmark,包含100个2D图片-3D scan对,其中每个scan渲染了5个不同视角下(包含1个正脸和4个侧脸)的RGB图片及深度图片;对于每个3D scan,我们都得到了语义信息一致的68个关键点以及不同脸部区域的mask,并在此基础上首次实现了3D人脸在不同区域上的细粒度评价。我们的benchmark的部分数据如下图所示。

0e9c6cfe858c54c3f671d2c476fae151.pngf1d3c4ef72b968c3d7edee523c758e45.png

数据集的构建过程借助256个关键点进行对齐和转拓扑,确保了统一拓扑的mesh的质量,进而保证了不同id的人脸区域的mask以及关键点的一致性。

53b42db9dacd5fdb392a9e8d819b45e2.png

四、新的评价流程

在REALY的基础上,我们提出一个新的评价流程避免先前评价流程的问题,具体而言,我们的评价流程包含如下两个步骤:

  1. 局部区域的对齐:考虑到不同区域的重建质量会影响全局的对齐结果,由于我们的benchmark得到了不同脸部区域的mask,因此我们可以借助这个信息将predicted mesh对齐到ground-truth scan的特定区域,在error计算时只计算ground-truth scan上的特定区域与predicted mesh之间的误差,而不考虑脸部其他区域对于对齐结果以及误差计算的影响。

e933a8d36457f1cc5da547ef95a0d84d.png

  1. 对应关系的建立:在局部对齐的基础上,我们需要建立ground-truth scan某一区域上的每一个点与predicted mesh之间的对应点并计算两者的误差。考虑到先前基于最近点的方式存在的问题,我们提出一个新的对应关系的建立方法,提高了关键点语义信息的一致性。

具体而言,我们首先通过最近点建立初步的对应关系;随后借助non-rigid ICP将ground-truth scan某一区域变形到predicted mesh上,由于变形后的区域与predicted mesh已经贴合,因为在变形过程中考虑了具备语义信息的关键点损失,所以这时的对应关系相比于原始的最近点的对应关系具有更好的语义关系的一致性(如,图3中脸部关键点的一致性),从而我们对初始的对应关系进行更新;最后,由于变形前后的拓扑形状的一致性,我们能够借助更新后的对应关系计算原始的ground-truth scan区域与局部对齐的mesh之间的最终误差。

7ce8ed3c2750755fd59eed621bc7fae5.png

通过本文提出的评价流程,我们能够建立语义信息更一致的对应关系,从而提升最终评价结果的可靠性。直观而言,如图所示,对于ground-truth scan嘴部区域的关键点,我们分别比较了predicted mesh使用先前的对齐方法(gICP),以及本文提出的基于区域的对齐方法(rICP)以及基于形变的关键点更新策略(bICP)在ground-truth scan上找到的对应点与真实的嘴部关键点的差异,可以发现,我们的方法建立的关键点与真实的关键点更加接近,因此这时的误差最能体现真实的相似性。

a186dd9648c8c6e0cddf77839cd91a15.png

五、新的人脸3DMM:HIFI3D++

在构建benchmark的过程中,我们对于一些高质量的人脸数据(Headspace, FaceScape, HIFI3D)进行了拓扑结构的统一,得到了约2000个不同性别、年龄、种族的人脸mesh,在此基础上,我们构建了一个全头人脸3DMM并命名为HIFI3D++,不仅包含脸部区域,还包含脖子、眼球、口腔,不同拓扑结构的比较如图1所示。

5a9a0fd744496f0eece6c11913e8a83b.png

表1统计了开源的3DMM与HIFI3D++的基本信息,图9则显示了不同3DMM的variation,我们的RGB(-D) Fitting实验也证明了HIFI3D++在表达能力上优于先前的3DMM。

02a6174c74ba48903a6f0f5812c5a8b6.pngcbbca2700cffc89794ed1fa16c5f876f.png

六、实验

1. 评价方案有效性的证明

我们首先在toy数据上证明我们的评价流程相较于先前的方法的优越性。通过替换一组统一拓扑人脸的不同区域,采用不同的评价流程进行对齐和对应关系的建立,比较了不同评价流程 i) 由于对齐导致的误差以及 ii) 建立的对应点与ground-truth真实对应点之间的误差,结果如图4和表2、3所示。

ccdc9b5c4a8c932c2280137c85f2f59b.png7287a76f5fa6b0cb9f8f272d6f8952b2.png

从图4来看,全局的对齐策略(右图)由于局部区域的改变容易导致全局误差的变化,而我们的对齐策略则只聚焦于特定区域(右图),其中对角线的error map表明误差较大的区域,而非对角线的error map的误差较小,对应没有发生变化的区域。

从表2来看,我们的对齐结果通过ground-truth的对应点计算得到的误差与真实的误差更为接近,而全局的对齐策略则导致误差与真实误差不匹配。

从表3来看,我们的对应点计算策略带来的误差要显著小于全局对齐后最近点获得的对应点。实验结果表明,我们的评价流程不仅能够聚焦到脸部区域有差异的部分(图4和表2的对角线),并且我们的对应关系建立更加准确(表3)。

2. 不同方法在REALY benchmark上的表现

我们对比了先前的评价流程与我们提出的评价流程在REALY benchmark上的表现。对于先前的评价方法,我们从两个方向(即ground-truth scan的每个点与predicted mesh建立对应关系,以及predicted mesh每个点与ground-truth scan建立对应关系)作为对比,定量与定性的比较如表4和图5所示。

dce80b51aa43bbc4c65d192f55c86619.pngb23a473e5a61653875aa08cc1cf3a5d3.png

我们通过user study投票选出各组最好(*)/次好(†)的人脸,通过比较不同评价流程选出的最好的人脸(橙、蓝、紫框)可以发现,我们的评价流程(橙框)选出的最好的人脸与user study的投票结果匹配程度更高。并且,我们的评价流程给出了细粒度的评测结果,即:对不同的人脸区域都能进行定量的评价和比较。

3. 不同3DMM在REALY上的表现

借助REALY benchmark,本文采用RGB(-D) Fitting的方式对不同3DMM的表达能力进行了评价,定量与定性的比较如表5和图8所示。

d0590bf8dfbc560713f291653c5c1b5d.pngda689bebb366135ccd8ce71d9de2c78a.png

定量和定性的结果表明,我们的3DMM在REALY上取得了更优的重建效果,并且,通过不同方法的比较表明,RGB-D Fitting的结果要显著优于目前最好的重建算法,3D人脸重建任务仍有很大的提升空间。

为了进一步证明HIFI3D++的表达能力,我们只用顶点损失,根据最小二乘的方式拟合一组mesh,对HIFI3D/HIFI3D(A)/HIFI3D++进行比较,如图9所示。

6a9c6558a6388ed8a29f64be05b957d1.png

七、总结

本文是我们对3D人脸重建评价的重新思考和探索。针对先前的评价指标无法准确衡量重建mesh与ground-truth相似性的问题,我们构建了一个新的数据集——REALY,包含更加丰富以及高质量的脸部区域信息,并借助新的评价流程对先前的数十个重建算法、3DMM进行了评价。

本文仅做学术分享,如有侵权,请联系删文。

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

计算机视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

16.基于Open3D的点云处理入门与实战教程

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

604e9cd29b8f154a1ef230ae6f917097.jpeg

▲长按加微信群或投稿

2d7fc3efbdd7e3406548e60d0eecd876.jpeg

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

298d0b0fc7fa67cfc8e689eed8314969.jpeg

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ECCV 2022 的相关文章

随机推荐

  • Unity 用脚本操作常用UI控件(上)

    控件介绍 在界面系统的术语中 将一个具有独立状态 外观和操作的对象称为控件 例如 常用的交互控件有按钮 输入框 滑动条等 常见的非交互式控件有文本标签 图片等 Unity采用了父子物体和组件的设计思想 其每个界面控件 往往也是由游戏物体挂载
  • 虚拟内存的最大容量与实际容量区别

    虚拟内存的最大容量与实际容量区别 1 概念介绍 虚拟内存的最大容量是计算机的地址结构 CPU寻址范围决定的 虚拟内存的实际容量是内存与外存之和 CPU寻址范围 两者的最小值 2 例题介绍 某计算机的地址结构是64位 按字节编址 内存大小51
  • 找准边界,吃定安全

    潜在的网络威胁 网络安全挑战层出不穷 如何确保网络安全 山石云 景赋能中小企业安全运营 让安全更有效 找准边界 吃定安全 往期文章 从访问控制谈起 再看零信任模型 威胁情报加持 泛边界下的全局主动防御体系如何着手 流量剧增 看山石网科如何打
  • UWB与蓝牙AOA定位技术简要对比

    1 UWB基本原理 UWB 超宽带技术 是基于IEEE802 15 4a z标准的利用纳秒级窄脉冲进行数据传输的无线通信技术 主要服务于微位置 micro location a person s placement to within a
  • java中如何将Long类型转为Integer类型

    注意不能直接在前面加个 int 而是 将Long型转换为int型 这里的Long型是包装类型 Long a 10 int b a intValue 即long intValue
  • Hx711调试过程

    1 体重板子最开始出现的问题 无法下载程序 指示灯不亮 解决办法 检查电源复位晶振 发现晶振还有 boot键坏了 2 问题 下载进程序以后 板子通过串口发到电脑上的数据不变 解决办法 先是查了关于HX711的各种资料 了解到 HX711芯片
  • pycharm内存不足时如何修改设置?

    Help gt Find Action gt type VM Options gt Click Edit Custom VM Options Pycharm 2016 2 will open the appropriate vmoption
  • MFC中操作Word文档

    首先我们需要导入word类库 电脑上需要安装了word 左击项目 点击类向导 添加类 C 选择类型库中的MFC类 本文章案例可点击下载 然后选择文件 位置选择从office安装目录中找到MSWORD OLB文件 然后点击 gt gt 添加所
  • 源码探索-ArrayList

    ArrayList 继承与实现关系 数组的相关属性 ArrayList底层是一个Object 数组 既然是数组 那么底层的工具类大多是会用到Arrays工具类去实现 函数探索 来看看构造函数 有三个构造函数 分别对应不同的生成内容 来看看添
  • linux 2.6.30 内核编译 提示 ‘make[1]: *** [arch/x86/vdso/vdso.so.dbg] Error 1’ 错误

    linux 2 6 30 编译出现如下错误 解决方案 打开 linux 2 6 30 arch x86 vdso Makefile 文件 1 修改28行 将 m elf x86 64 修改为 m64 2 修改72行 将 m elf i386
  • 语音识别学习记录 [再谈频率混叠(定量分析、离散采样后频谱的周期延拓)]

    前几天在语音识别学习记录 传说中的频率混叠和Nyquist定理 定性理解 中简单理解了一下频率混叠的原因 但是也发现了很多不明白的问题 1 为什么信号经过傅里叶变换后在频域是关于y轴对称的 这个问题的回答已经写在语音识别学习记录 信号经傅里
  • vue的指令

    Vue 的指令 一 Vue 的指令 1 指令的概念 指令 Directives 是 vue 为开发者提供的模板语法 用于辅助开发者渲染页面的基本结构 vue 中的指令按照不同的用途可以分为如下 6 大类 内容渲染指令 属性绑定指令 事件绑定
  • SQL 查询指定行数的数据。

    今天遇到一个关于 查询指定行数的数据 的sql查询语句问题 突然发现以前没怎么接触过 刚才想起来了 赶紧看了下文档 又上网搜了下 有了下面的东西 不知道有没有什么地方不对 oracle 先看一下文档中关于any和all的例子 很不错噢 An
  • Pytorch 深度强化学习模型训练速度慢

    最近一直在用Pytorch来训练深度强化学习模型 但是速度一直很慢 Gpu利用率也很低 一 起初开始在训练参数 batch size 200 graph size 40 epoch size 100000 训练速度一个epoch要4h 人麻
  • node学习openai库入门及使用(一)

    第一章 node学习openai库入门及使用 一 文章目录 第一章 node学习openai库入门及使用 一 前言 一 node js的openai库是什么 二 使用步骤 1 引入库 2 发送请求 总结 前言 众所周知 目前chatgpt已
  • cuda8.0使用nvcc编译程序出现warning:The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated的解决办法

    初学CUDA 使用的NVIDIA显卡是Tesla K80 安装的是cuda8 0 写了一个简单的测试程序 使用nvcc编译 指令如下 nvcc cudaPrintDeviceInfo cu o cudaPrintDeviceInfo 本以为
  • docker快速学习--docker compose服务编排--06

    一 服务编排 1 1 概念 按照一定的业务规则批量管理容器 1 3 问题 微服务架构的应用系统中一般包含若干个微服务 每个微服务一般都会部署多个实例 如果每个微服务都要手动启停 维护的工作量会很大 1 要从Dockerfile build
  • go踩坑——no required module provides package go.mod file not found in current directory or any parent

    背景 准备运行下面代码 package main import github com gin gonic gin func main 创建一个默认的路由引擎 r gin Default GET 请求方式 hello 请求的路径 当客户端以G
  • C++实现复数类

    主要还是练习封装 做一个demo 下一步会实现string类 include
  • ECCV 2022

    作者丨人脸人体重建 来源丨人脸人体重建 编辑丨极市平台 极市导读 本文围绕3D人脸重建的评估方式进行了重新的思考和探索 作者团队通过构建新数据集RELAY 囊括了更丰富以及更高质量的脸部区域信息 并借助新的流程对先前的数十个重建算法 3DM