【原文:http://www.sigvc.org/why/book/3dp/chap5.3.2.htm】

5.3.2 基于多视角照片的3D人脸重建

多视角三维重建的技术原理请详见第6章6.3节“立体视觉重建:将照片转成3D数字模型”,本节主要介绍如何具体地操作和应用。Autodesk(欧特克)公司发布了一个建模软件 Autodesk 123D Catch,有了它,你只需要简单地为物体拍摄多张照片,不需复杂的专业知识。利用云计算的强大能力,123D Catch可以将用户拍摄的照片迅速转换为逼真的3D模型。官方下载地址:http://www.123dapp.com/catch,下载安装注册都很容易。

在实际使用时,用户一般需要拍摄至少20张左右不同角度的照片。比如你可以让朋友对着你的头部拍摄一组照片,然后用123D Catch生成你头部的3D模型。如果可能,最好围绕着物体拍摄两圈,每圈照片错开角度、高度和间隔,如图5.3.2-1所示。

图5.3.2-1  拍摄至少20张左右不同角度的照片 (图片来源:Autodesk)

再举一个例子,如图5.3.2-2所示的这组照片是先以约60度环拍一圈,再以约15度的角度环拍一圈。在拍摄之前,先计划好如何移动,如何从不同角度拍摄。记住一点,先围绕着物体转一圈拍摄,然后再拍些细节。围绕物体拍摄时,多少度角照一张,取决于你想拍的物体。有些物体25度角就可以。有些样子复杂的物体,需要更密集,比如转10度就需要照一张,转一圈下来共需要排36张。

图5.3.2-2  拍摄的路径规划以及所拍摄的多角度照片 (图片来源:3dprintime)

根据Autodesk的官方说明,要想用这个软件做出理想的3D模型,你还必须掌握如何去拍照,需要注意的地方如下。

²  整个拍摄过程,要保持在同样的光照下,有专业的环境最好。光线不能太亮和太暗。拍摄时也不能用闪光灯。拍摄时还要注意相机不能抖动以免照片模糊。

²  要连续拍完,不能今天拍了几张,明天再拍几张。

²  避免拍摄透明、反光、或平坦光滑的物体。

²  拍摄时,也要避免有对称特征的物体。

²  相邻照片之间最好有50%的场景重合。这样软件才能根据相同部分,把其他不同部分加进来。

²  如果拍摄活的动物或人,要确保他们在拍摄过程中不动。此外,不停的乱动也会使快门速度不够高的普通相机拍出模糊的运动图像来。

²  拍物品时,也不能把物品翻过来拍。把想拍的物体放好后,围着它转着拍。拍摄中只能你动,不能移动物体。

123D Catch采用的是多视角立体匹配重建(Multi-View StereoMVS)技术,原理建立在以特征匹配为基础的三角测距。因此,拍照时尽量使物体放置在有特征的背景里,否则软件很难在多张照片之间找到匹配,导致无法生成3D模型。比如,要避免拍摄没有特征的背景墙,软件非常难识别这样的背景照片。你可以添加一些特征到墙上,例如贴一些画是个好办法。又比如,你想拍一只恐龙,不要把它放在光滑的地板上。可以找块有特征的地毯或铺一张报纸(如图5.3.2-3左边所示),把恐龙放在地毯/报纸上面再拍摄。当然,你也可以在背景里粘贴一些特征纸条,如图5.3.2-3右边所示。同理,也不能拍摄那些平行、相似度太高(特征模糊的)物体,例如有很多一模一样窗户的楼房。

图5.3.2-3  将物体放置在有特征的背景里。左:报纸;右:画有特征的纸条

拍完照片之后,你就可以上传了。注意在上传前,你最好不要修改原始照片。因为原始照片带有照相机的参数,软件需要这些参数进行标定。上传照片后,软件会自动找到和匹配照片中物体的共同特征。以这些共同特征为基点,把不同照片中物体的特征整合在一起,以便生成3D模型。如图5.3.2-4所示,这是所生成的3D模型和它的三角网格。你可导出为3D文件,以便输出到3D打印机进行打印。

    

图5.3.2-4  生成的3D模型和它的三角网格

通过阅读前面的拍摄注意事项,可能有的读者心里会犯嘀咕:拍照难道要这么讲究啊?非也!你当然也可以有不那么讲究的套路,但前提是需要加钱购置设备。如图5.3.2-5所示,我们可以绕顾客一圈上下架设多台照相机(比如20台),以毫秒级的精度控制它们同步拍摄。这样,你就不用费时费力地端着相机绕顾客拍了。

图5.3.2-5  架设多台照相机同步拍摄人像 (图片来源:NUS)

然后,使用3D智能数字化算法,比如利用多视角立体视觉、Visual Hull技术(见第6章6.3.2节“基于立体视觉、SFM和Visual Hull的三维重建”)以及几何细节形变技术(见第6章6.2.3节“个性化形状的编辑与合成”),我们就可以获得瞬间的3D形状。如图5.3.2-6所示,因为拍摄在毫秒级的时间内完成,这时顾客就不再需要保持一个姿势几分钟不动了。

图5.3.2-6  使用3D智能数字化算法重建出瞬间的3D形状 (图片来源:MIT)

除了同步拍摄人体,我们当然也可以同步拍摄人脸。如图5.3.2-7所示,我们可利用多台同步拍照的高清单反相机,基于多视角重建技术来获取“毛孔级精度”的精细3D重建。

图5.3.2-7  利用多台同步拍照的高清单反相机来获取“毛孔级精度”的精细3D人脸(图片来源:ETH Zurich)

有的读者会说,上面的技术确实很酷,连毛孔都能拍出来。但这么多三脚架摆在顾客面前确实吓人(有种“大刑伺候”的感觉?),而且多台单反相机成本也不低,此外还有很多顾客脸上痘痘什么的也不少啊,毛孔级精度似乎太精细了(正所谓:架起大炮找蚊子)。没关系!创客们最大的优点就是乐于成为普通大众的“贴心小棉袄”,比如牛津大学就研制出一款手持式3D扫描仪Fuel3D,任何人都能通过它快速获得现实物体的3D模型。像普通相机一样,只需对准目标,按下快门,Fuel3D就能在数秒内帮你抓取3D人脸模型。如图5.3.2-8所示,左右安装有两个摄像头,也是基于计算机视觉立体成像的原理。

图5.3.2-8  Fuel3D的外形图 (图片来源:牛津大学)

与5.4节的Kinect相比,Fuel3D精度更高,如图5.3.2-9所示,这得益于它更高的拍摄分辨率。

图5.3.2-9  Fuel3D与Kinect的扫描结果对比。每个小图的左边为Fuel3D的结果,右边为Kinect的结果。

基于多视角照片的3D人脸重建相关推荐

  1. CVPR 2022 | 腾讯优图实验室30篇论文入选,含场景文本语义识别、3D人脸重建、目标检测、视频场景分割和视频插帧等领域...

    关注公众号,发现CV技术之美 本文转载自腾讯优图 近日,CVPR 2022官方公布了接收论文列表(CVPR 2022 接收论文公布! 总计2067篇!),来自腾讯优图实验室共计30篇论文被CVPR收录 ...

  2. 3D人脸重建之DECA

    论文:Learning an Animatable Detailed 3D Face Model from In-The-Wild Images Github:https://github.com/Y ...

  3. ECCV 2022 | 清华腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法

    原文链接: ECCV 2022 | 清华&腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法 本文分享ECCV 2022论文<REALY: Rethinking the E ...

  4. ​ECCV 2022 | 清华腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 本文分享ECCV 2022论文<REALY: Rethink ...

  5. ECCV 2022 | 清华腾讯AI Lab提出REALY:重新思考3D人脸重建的评估方法

    ©作者 | 人脸人体重建 来源 | 人脸人体重建 本文分享 ECCV 2022 论文<REALY: Rethinking the Evaluation of 3D Face Reconstruc ...

  6. [读论文]弱监督学习的精确 3D 人脸重建:从单个图像到图像集-Accurate 3D Face Reconstruction with Weakly-Supervised Learning:From

    论文地址:Accurate 3D Face Reconstruction with Weakly-Supervised Learning:From Single Image to Image Set ...

  7. 3D人脸重建硕博论文阅读

    基于人脸单视图的3D人脸重建方法研究(华南理工) 摘要 基于人脸正视图来开展 3D 人脸重建.在选择人脸正面图像后,采用主动形状模型(Active Shape Model,ASM)算法进行人脸对齐,从 ...

  8. 3D人脸重建--学习笔记

    本文旨在学习总结2D到3D人脸重建相关问题,个人水平有限,本人也是刚开始调研3D人脸重建,不足之处望大神指点改进. 文章目录 1 什么是3D人脸重建? 2 重建方法分类 3 通用模型3D人脸重建 4 ...

  9. VR来了,3D人脸重建跟上《三维人脸重建-3DMM》

    之前我们写过了<三维人脸重建入门>,接下来,自然就是入门之后的事情.当然了,不管是一个什么项目,方法永远不会是唯一的. 一 引言 To my best of knowledge,如之前所说 ...

最新文章

  1. 【C++】C++命名空间重定向
  2. SAP变式配置的完整指南(中英文双语版)
  3. 实现百度地图导航Demo的语音播报功能
  4. 登录抓包逆向分析学习笔记
  5. 2013校作息时间表暂存
  6. [html] 使用button当按钮和使用div当按钮有什么区别?
  7. 百度-Java中级面试题分享-
  8. docker mysql容器安装vim
  9. java加法运算器界面_Java 接口实现计算器加减乘除(字符交互界面)
  10. Windows命令行netsh winsock reset解决网络连接问题
  11. 车辆路径问题VRPTW之四【节约里程法ClarkWright算法】
  12. 网络流基础、最大流最小割定理以及证明
  13. Catalan Number(卡特兰数/卡塔兰数)
  14. 阿里的 《逆流而上》电子版
  15. 无网络环境安装docker
  16. 【Designing ML Systems】第 6 章 :模型开发和离线评估
  17. 麻雀算法(SSA)优化的BP神经网络预测,SSA-BP回归预测,多输入单输出模型。
  18. 【Ubuntu+ROS安装方法】
  19. 常州工学院Java作业03
  20. 【最全】you-get和youtube-dl的安装和使用

热门文章

  1. C# 什么是Asp.net Core?和 .net core有什么区别?
  2. 全国高校恋爱关系图谱:北大受宠爱,浙大最孤独
  3. PS CS6视频剪辑基本技巧(三)添加声音和字幕
  4. 智慧停车系统是怎么运行的?
  5. calcite mysql_jsqlparser和calcite和druid功能对比
  6. Calcite的RelFieldTrimmer简介
  7. 友豆火山CPG插件开发003-顶级对象
  8. 级联rc滤波_了解无源RC滤波器,看完这篇你就懂了(二)
  9. 实体机安装双系统多系统教程 及引导修复指南
  10. 拼图游戏(搜索算法)