当前位置: 首页 > 科技观察

一张图实现3D人脸建模!中科院博士ECCV新研究-开源

时间:2023-03-14 14:37:46 科技观察

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。通过视频重建人脸的3D模型并不稀奇。但是,如果只有测试仪的静态图像怎么办?中国科学院模式识别实验室博士生郭建柱及其团队提出了一种新的密集人脸对齐(3DDenseFaceAlignment)方法。新的3DDFA方法,最关键的核心是3D辅助的短视频合成方法,可以模拟人脸进出平面的运动,将一张静止图像转换成短视频。这样就完成了模型的识别和训练。Guo的论文《TowardsFast,AccurateandStable3DDenseFaceAlignmen》已经被ECCV2020收录。3DDFA-V2:Standstillandmove这其实是作者发布的第二版3DDFA。两年前,该团队发布了第一个版本的3DDFA。新版本具有更好的性能和稳定性。此外,3DDFA_V2集成了快速人脸检测器FaceBoxes,取代了原来的Dlib,还包括用C++和Cython编写的简单3D渲染。3DDFA可以实现“动如兔”(面部特征识别和对齐):还有动态3D人脸建模:3DDFA的另一面,“静如处女”(静态照片3D人脸重建):除了一个一静一动,3DDFA还可以根据照片对人的姿态进行简单的估计:估计深度图像:还可以提取图像的PNCC和PAF特征:3DDFA-V2可以称得上是一个非常强大的面部3D重建工具,同时还集成了许多其他功能。那么,3DDFA-V2最关键的功能是如何把照片转成小视频呢?需要在视频上运行3D辅助的短视频合成3D密集人脸对齐方法,它可以在相邻帧之间提供稳定的3D重建结果。所谓稳定,就是在视频的相邻帧中,重建的3D图像的变化应该与真实物体的细粒度运动保持一致。然而,现有的方法大多无法满足这一要求,且难以避免随机抖动的影响。在二维人脸注册中,时空滤波等后处理是减少抖动的常用策略,但会降低精度并造成帧延迟。此外,由于没有公开的3D密集人脸注册视频数据库,使用视频进行预训练的方法也不可行。那么有没有其他方法可以提高静像转换视频的稳定性呢?3DDFA-V2使用批处理级别的3D辅助短视频合成策略。将一张静态图像扩展到多个相邻帧,从而形成一个mini-batch合成短视频。一般来说,视频的基本模式可以分为:1.噪声。我们将噪声建模为P(X)=x+N(0,2),其中E=a2I2,运动模糊。运动模糊可以表示为M(X)=K*x,其中K为卷积核(算子*表示卷积)。3.面内旋转。给定两个相邻帧xt和xt+1,从xt和xt+1的平面变化可以描述为相似变换T(·),其中Δs是尺度扰动,Δθ是旋转扰动,Δt1和Δt2是平移扰动。由于人脸具有相似的三维结构,因此也可以用相同的方式合成平面外的面部运动。人脸轮廓F(-)最初是为了解决大姿态的人脸对齐问题而提出的,用于逐渐增加人脸的偏航角Δφ和俯仰角Δγ。具体来说,小批量采样多张静止图像,对于每张静止图像x0,将它们稍微平滑地变换,产生具有n个相邻帧的合成视频:3D-assisted短视频synthesis在一帧中,如何合成两个相邻帧:如何开始目前团队已经将3DDFA-V2开源,安装和使用都非常简单。安装说明:gitclonehttps://github.com/cleardusk/3DDFA_V2.gitcd3DDFA_V2安装完成后,需要构建cython版本的NMS和Sim3DR:sh./build.sh运行demo:#runningonstillimage,四个选项:2d_sparse,2d_dense,3d,depthpython3demo.py-fexamples/inputs/emma.jpg#runningonvideospython3demo_video.py-fexamples/inputs/videos/214.avi#runningonvideosmoothlybylookingaheadby`n_next`framespython3demo_video_smooth.py-fexamples/exampleinputs/videos/214.avi,运行python3demo.py-fexamples/inputs/emma.jpg-o3d将给出以下结果:跟踪面部的运动仅通过对齐即可实现。但如果头部姿势的角度大于90°或运动太快,则可能会导致对齐失败。考虑使用阈值来细粒度地检查跟踪状态。加载后,可以使用任意图片作为输入运行算法:python3main.py-fsamples/test1.jpg如果在终端可以看到输出日志,则说明运行成功,等待结果即可:Dumptpsamples/test1_0.plySave683dlandmarkstosamples/test1_0.txtDumpobjwithsampledtexturetosamples/test1_0.objDumptpsamples/test1_1.plySave683dlandmarkstosamples/test1_1.txtDumpobjwithsampledtexturetosamples/test1_1.objDumptosamples/test1_pose.jpgDumptosamples/test1_depth.pngDumptosamples/test1_pncc.pngSavevisualizationresulttosamples/test1_3DDFA.jpg3DDFA-V2对计算机的软硬件都有一些要求:PyTorch0.4.1VersionabovePythonversion3.6orabove(withNumpy,Scipy,Matplotliblibrary)系统:Linux或macOS研究组推荐的硬件条件是NVIDIAGTX1080GPU和i5-8259UCPU。当然,除了老黄的卡,你也可以在GoogleColab上直接体验!如果这个工具对你有帮助,试试吧!3DDFA-V2GoogleCollab:https://colab.research.google.com/drive/1OKciI0ETCpWdRjP-VOGpBulDJojYfgWvGithub项目地址:https://github.com/cleardusk/3DDFA_V2