文章目录
- Introduction
- Methodology
- Problem Formulation
- Conditional Geometry Generation
- TSynNet
- Aligned Teeth Silhouette Maps Generation
- Results
- References
Github 项目地址:https://github.com/Lingchen-chen/iOrthopredictor
Introduction
这篇文章提出了一种新颖的牙齿正畸治疗系统,叫作 iOrthoPredictor,它可以直接在人脸图片上预测牙齿排列整齐后的结果,只需给定一张前向的人脸图片(嘴巴需像上图一样张开,露出原始的不齐的牙齿)即可。
需要克服的问题:
- 需要准确的估计出牙龈及每颗牙齿的几何变换;
- 需要解决由牙齿位移、牙龈牙齿材质及光照条件造成的 in-mouth appearance changes;
- 需解决空洞及被遮挡部分的问题。
为了准确的估计出对齐牙齿的形状信息,iOrthoPredictor 还需要患者的 3D 牙模作为额外输入,并引入牙齿的 silhouette maps 来表示图片中的牙齿几何信息。这种表示方法可以借助 3D 牙模(通过口扫设备得到)准确的计算出 2D 的变换牙齿形状。而 in-mouth appearance 则被建模为一个隐向量(latent code),可以从输入图像中有效地提取出来。
整体的流程总结如下:
- 用卷积神经网络 TGeoNet 从人脸图片中提取 silhouette maps 以及口腔 mask;
- 根据提取出的 silhouette maps 对 3D 牙模的整体位姿进行优化;
- 用 MLP-based TAligNet 来学习对齐后的目标牙齿排列;
- 借助优化的整体位姿来将对齐牙齿的 silhouette 投影回到 2D 口腔区域,以生成目标牙齿的 geometry maps;
- 目标牙齿的 silhouette maps 以及嘴部区域的图片(用上面的口腔 mask 生成)作为一个生成式神经网络 TSynNet 的输入,来生成最终的图像。TSynNet 包含两个编码器,分别将输入的 geometry maps 和原始嘴部区域图片编码为 geometry code 以及 appearance code。
可参考下图进行理解:
Methodology
Problem Formulation
teeth geometry g g g:表明了牙齿 T \mathcal{T} T 的 2D 几何信息且反映了 T \mathcal{T} T 的牙齿排布;
in-mouth appearance z z z:可描述随表面属性和光照条件变化而变化的 in-mouth appearance。
在实际中,牙齿的几何信息可以被显示的表示(例如通过一个牙齿的轮廓图),但外观信息更加抽象一些。所以这篇文章直接从数据中学习出一个隐编码来表示外观。
Conditional Geometry Generation
2D Geometry Maps. g g g 用和输入图像 x x x 相同分辨率的图像来表示。2D 牙齿的 silhouettes g y g_y gy 包含上颌牙齿的 silhouette map g u g_u gu、下颌牙齿的 silhouette map g l g_l gl 以及口腔 mask g m g_m gm。
TGeoNet. 输入:嘴部照片 x x x (上图 a);输出:三个 binary maps { g ˉ u , g ˉ l , g ˉ m } \{\bar{g}_u,\bar{g}_l,\bar{g}_m\} {gˉu,gˉl,gˉm}。TGeoNet 基于 U-Net 结构,包括一个编码器、一个解码器以及 skip connections,如下图所示。
TSynNet
TSynNet 包括一个 appearance 编码器 M \mathcal{M} M 以及生成网络 N \mathcal{N} N。生成网络 N \mathcal{N} N 进一步包括用来提取 geometry code 的编码器 N e n c \mathcal{N}_{enc} Nenc 以及解码器 N d e c \mathcal{N}_{dec} Ndec, N d e c \mathcal{N}_{dec} Ndec 的输入为 geometry code 和从 M \mathcal{M} M 中提取出的 appearance code。
TSynNet 仅生成口腔区域,其他部分直接使用原始人脸图片的对应部分。
为了使得 teeth geometry 和 appearance 这两个特征充分的解缠绕,这篇文章借鉴了 style transfer 的思想:将 in-mouth appearance 看作 style code,输入到每个解码块中。
TSynNet 的结构如下图所示:
Aligned Teeth Silhouette Maps Generation
为了生成最终牙齿对齐的嘴部图片 x ^ \hat{x} x^,我们需要有目标牙齿的 silhouette maps { g ^ u , g ^ l } \{\hat{g}_u,\hat{g}_l\} {g^u,g^l}。
首先对 3D 牙模 T \mathcal{T} T 的整体位姿进行优化,来匹配 TGeoNet 的输出 silhouette maps { g ˉ u , g ˉ l } \{\bar{g}_u,\bar{g}_l\} {gˉu,gˉl},之后就需要通过 TAligNet 来自动计算单独牙齿的对齐位姿。
然后,对齐后的牙齿模型 T ^ \hat{\mathcal{T}} T^ 会被投影到嘴部区域来生成我们想要的目标牙齿的 silhouette maps { g ^ u , g ^ l } \{\hat{g}_u,\hat{g}_l\} {g^u,g^l}。
整个过程中有两个关键步骤:global teeth pose fitting 和 3D teeth alignment.
global teeth pose fitting. 3D 牙模 T \mathcal{T} T 可以被分为上牙颌 T u \mathcal{T}_u Tu 和下牙颌 T l \mathcal{T}_l Tl,这里使用 { g ˉ u , g ˉ l , g ˉ m } \{\bar{g}_u,\bar{g}_l,\bar{g}_m\} {gˉu,gˉl,gˉm} 和 T \mathcal{T} T 来分别 fit 上下牙颌的变换矩阵。
3D teeth alignment. 通过 TAligNet 来对输入 3D 牙模中的每个牙齿进行对齐。每颗牙齿的位姿用一个 7 维向量 v = ( v p , v q ) v=(v^p,v_q) v=(vp,vq) 来表示,其中 v p v^p vp 代表 3D 位置而 v q v^q vq 则是一个四元数,代表 orientation。
TAligNet 用 PointNet 自编码器来独立的编码每颗牙齿的几何信息,具体来说,编码器是 PointNet,而解码器则是一个简单的 MLP。编码器的输入是从每颗牙齿采样出的 1024 个采样点,输出则是一个 100 维的代表牙齿几何信息的 latent code。TAligNet 结构如下图所示。
Results
References
Lingchen Yang, Zefeng Shi, Yiqian Wu, Xiang Li, Kun Zhou, Hongbo Fu, and Youyi Zheng. 2020. iOrthoPredictor: Model-guided Deep Prediction of Teeth Alignment. ACM Trans. Graph. 39, 6, Article 216 (December 2020), 15 pages. https://doi.org/10.1145/3414685.3417771