【技术追踪】TeethDreamer:从 5 张口腔照片实现三维牙齿重建(MICCAI-2024)

news2024/9/23 7:23:28

  三维重建搞起来~

  TeethDreamer:一种3D牙齿重建新框架,旨在恢复上下牙齿的形状和位置,引入大型扩散模型的先验知识和3D感知特征注意力机制,重建性能表现SOTA!


论文:TeethDreamer: 3D Teeth Reconstruction from Five Intra-oral Photographs
代码:https://github.com/ShanghaiTech-IMPACT/TeethDreamer(即将开源)


0、摘要

  正畸治疗通常需要定期进行面对面的检查,以监测病人的牙齿状况。当面对面诊断不可行时,另一种方法是利用5张口腔内照片进行远程牙齿监测。然而,它缺乏三维信息,如何从这种稀疏视图的照片中重建三维牙科模型是一个具有挑战性的问题。

  本文提出了一个名为 TeethDreamer 的三维牙齿重建框架,旨在恢复上颌牙齿和下颌牙齿的形状和位置。

  给定5张口腔内照片,该方法首先利用一个大扩散模型的先验知识,生成具有已知姿态的新的多视图图像,以解决稀疏输入,然后通过神经表面重建建立高质量的三维牙齿模型。
  为了确保生成视图之间的 3D 一致性,本文在反向扩散过程中集成了 3D 感知特征注意机制;此外,在牙齿重建过程中加入了几何感知法向损失,以提高几何精度。

  大量的实验证明,该方法优于目前最先进的技术,具有远程监控正畸治疗的潜力。


1、引言

1.1、临床背景:正畸治疗

  (1)正畸治疗重点纠正牙齿错位,需要长时间持续检测;
  (2)口腔内扫描(intra-oral scanning)提供了一种获得高质量 3D 牙齿模型的方法,但通常既耗时又昂贵;
  (3)使用智能手机拍照,方便又快捷,那么如何从 2D 照片重建 3D 牙齿模型呢;

1.2、传统方法的不足

  (1)使用参数化牙齿模型重建:没有捕捉到牙齿的个性化细节,且预定义牙齿模板的质量也对重建结果有很大的影响;
  (2)多视图立体声法(Multi-View Stereo, MVS):需要校准的相机姿态来进行精确的重建,由于口腔照片的稀疏性和重叠小,目前的 structure-from-motion (SfM) 方法很难恢复准确的相机姿态;
  (3)使用预训练扩散模型对自然物体进行三维重建:通常以单视图输入为条件来生成图像,这导致了看不见区域的重建不准确,提供的几何信息较差;

1.3、本文贡献

  (1)采用预先训练的扩散模型,分割口腔内照片的牙齿图像,生成特定视点的彩色图像和相应的法线图;
  (2)为确保不同视图之间的一致性,进一步从噪声彩色图像和法线图中构建 3D 感知特征,并在去噪过程中通过注意机制将其引入扩散模型;
  (3)利用生成的彩色图像和法线图进行神经表面重建,重建三维牙齿模型。在重建过程中引入几何感知法向损失,提高了几何精度;

3D重建模型流程图:
在这里插入图片描述


2、方法

2.1、多视图跨域扩散模型

  首先利用预先训练的 SAM 模型来分割前景牙齿区域;
  如图2所示,使用包含上齿的四个分割图像作为模型输入,记为 x 1 : 4 {x^{1:4}} x1:4,且 x ∈ R 3 × H × W {x \in \mathbb{R}^{3×H×W}} xR3×H×W

  由于输入图像的稀疏性,难以重建高质量的三维牙齿模型,因此,选择借助生成扩散模型来增强观察视角。除了 RGB 图像,法线图(normal map)是恢复 3D 模型的另一个重要信息。
  将分割的牙齿图像 x 1 : 4 {x^{1:4}} x1:4 作为 Zero123 中预训练的扩散模型 f {f} f 的输入条件,生成 N {N} N 个预定义视点 v 1 : N {v^{1:N}} v1:N 的彩色图像 c 1 : N {c^{1:N}} c1:N 和法线图 n 1 : N {n^{1:N}} n1:N ,记为:
在这里插入图片描述
TeethDreamer总览:
在这里插入图片描述

   c {c} c n {n} n x {x} x 具有相同的维度,真实彩色图像和法线图是由配对的口腔内扫描模型预合成的,如图1所示。这样可以利用扩散先验较强的 zero-shot 泛化能力,此外,还可以利用法线图中丰富的几何信息来提高牙齿重建的精度;

  目的是学习所有这些视图的联合分布 p θ ( c 1 : N , n 1 : N ∣ x 1 : 4 ) {p_θ(c^{1:N},n^{1:N}|x^{1:4})} pθ(c1:N,n1:Nx1:4),它可以用数学形式表示成一个多视图扩散模型:
在这里插入图片描述
  如图 2(a) 所示,将输入视图 x 1 : 4 {x^{1:4}} x1:4 与带噪目标视图 { c t i , n t i } {\{c_t^i, n_t^i\}} {cti,nti} i = 1 , . . . , N {i=1,...,N} i=1,...,N 拼接在一起,作为 UNet 的输入,此外,与 Zero123 相同,本文还使用 stable diffusion 的注意层(图2(a)中的文本注意分支)处理目标视点 v i {v^i} vi 与输入视图 x 1 : 4 {x^{1:4}} x1:4 的 CLIP 图像特征的拼接。

  由于输出通道数量的差异,训练扩散模型同时生成彩色图像和法线图会影响预训练模型的性能,为解决此问题,采用一个域切换器 s ∈ R 1 {s \in \mathbb{R}^{1}} sR1,它决定了输出类型是彩色图像还是法线图,训练了一个多视图跨域扩散模型,将公式 (1) 修改如下:
在这里插入图片描述

2.2、3D 感知特征注意

  保持从不同视图生成的图像和法线图的一致性,对于高质量的几何重建至关重要,本文引入了一种采用 3D 感知特征提取和深度注意机制相结合的方法。

  该策略集成了当前目标视图 { c t i , n t i } {\{c_t^i, n_t^i\}} {cti,nti} 去噪过程中的中间状态 { c t 1 : N , n t 1 : N } {\{c_t^{1:N}, n_t^{1:N}\}} {ct1:N,nt1:N},首先将潜空间中生成的 2D 图像 c t 1 : N {c_t^{1:N}} ct1:N 和法线图 n t 1 : N {n_t^{1:N}} nt1:N 反向投影到预定义的尺寸为 6 4 3 64^3 643 的 3D 体素网格上,利用 3D CNN 分别对颜色和正常特征体进行编码,随后,3D U-Net 将这些特征体合并,确保输出在几何形状和外观上保持一致。

  为了提取目标视点 v i {v^i} vi 的特征,创建了一个视锥体,并在得到的 3D 特征体内执行插值。通过深度注意层将这些特定于视图的特征集成到去噪过程中。该方法有效地捕获了不同视图之间的空间关系,整合了目标视点的基本信息,显著提高了生成视图之间的一致性。(感觉没有描述的很详细~

2.3、几何感知牙齿重建

  首先从生成的彩色图像 c 1 : N {c^{1:N}} c1:N 或法线图 n 1 : N {n^{1:N}} n1:N 中分割牙齿掩模 m 1 : N {m^{1:N}} m1:N,然后从训练集 { n 1 : N , c 1 : N , m 1 : N } {\{n^{1:N},c^{1:N}, m^{1:N}\}} {n1:N,c1:N,m1:N} 中随机抽取一批具有相关光线的训练像素 R k = { n k , c k , m k , d k } ∈ R {\mathcal{R}_k = \{n_k, c_k, m_k, d_k\}∈R} Rk={nk,ck,mk,dk}R,用于神经表面渲染。其中, n k ∈ R 3 {n_k∈\mathbb{R}^3} nkR3 c k ∈ R 3 {c_k∈\mathbb{R}^3} ckR3 m k ∈ { 0 , 1 } {m_k∈\{0,1\}} mk{0,1} d k ∈ R 3 {d_k∈\mathbb{R}^3} dkR3 分别表示第 k {k} k 条光线的法线值、颜色值、掩码值和光线方向,整个目标函数定义如下:
在这里插入图片描述
  其中 L n o r m a l {\mathcal{L}_{normal}} Lnormal 表示发现损失项;
   L r g b {\mathcal{L}_{rgb}} Lrgb 测量渲染颜色 c ^ k {\hat{c}_k} c^k 和生成颜色 c k {c_k} ck 之间的差异;
   L m a s k {\mathcal{L}_{mask}} Lmask 计算渲染掩码 m ^ k {\hat{m}_k} m^k 和分割的掩码 m k {m_k} mk 之间的二进制交叉熵;
   R e i k {\mathcal{R}_{eik}} Reik 是为了保证重建表面的平滑性而进行的正交正则化,而 R s p a r s e {\mathcal{R}_{sparse}} Rsparse 是为了减少浮点数而进行的稀疏正则化, λ {λ} λ 是每个损失项对应的权重项;

  下面深入探讨 L n o r m a l {\mathcal{L}_{normal}} Lnormal,利用 Neus 中 SDF 表示的可微特性,可以通过计算 SDF 的二阶梯度得到固有重构曲面的正态值,采用几何感知的法向损失来最小化所呈现的法向 n ^ k {\hat{n}_k} n^k 与参考 n k {{n}_k} nk 之间的差异:
在这里插入图片描述
   w k {w_k} wk 是一个几何感知权值,定义为:
在这里插入图片描述
   ϵ {ϵ} ϵ 是一个接近于零的负阈值。这种设计背后的基本原理是,视图方向 d k {d_k} dk 总是与表面法向 n k {{n}_k} nk 相反,即它们之间的夹角应该始终落在 [ 9 0 ◦ , 18 0 ◦ ] {[90^◦,180^◦]} [90,180] 的范围内。任何偏离此条件的情况都表明生成的法向 n k {{n}_k} nk 不准确,从而减少了对表面重建过程的指导作用,即 w k = 0 w_k = 0 wk=0


3、实验与结果

3.1、数据集

  (1)3200例,每例5张图像,3000训练,100验证,100测试,调整为256×256大小;
  (2)Blenderproc方法在八个特定视点合成口腔内扫描的目标彩色图像和法线图,合成图像256×256大小;
  (3)对于仰角,下牙的视点一半设置在45度,另一半设置在67.5度,上牙则相反,方位角分为四组:30度,60度,120度和150度;

3.2、实施细节

  (1)扩散模型微调阶段:3D CNN、3D UNet和注意层是可训练的,而扩散 UNet 和 CLIP 被冻结;30000步,batch size=64;学习率 1 e − 5 1e^{-5} 1e5,前10000步,线性增加到 5 e − 4 5e^{-4} 5e4
  (2)3D 牙齿重建阶段:Neus模型训练20000步,光线批处理为4096,学习率 1 e − 5 1e^{-5} 1e5,前500步,线性增加到 5 e − 4 5e^{-4} 5e4,然后指数衰减到 5 e − 5 5e^{-5} 5e5
  (3)显卡:一个 A100 GPU;

3.3、基线与指标

  (1)基线:Neus、Zero123、和 SyncDreamer;
  (2)指标:重建牙齿网格的准确性:Hausdorff距离(HD)、倒角距离(CD)和 IoU;生成彩色图像质量评价:PSNR、SSIM 和LPIPS;

3.4、实验结果

将重建的三维牙齿与其他基线进行定性比较:
在这里插入图片描述

与其他基线和消融方案在彩色图像生成和牙齿重建方面的定量比较:

在这里插入图片描述

将生成的图像与其他基线进行定性比较:

在这里插入图片描述


  感觉应该还有一个期刊~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1934121.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

elasticsearch 聚合 : 指标聚合、桶聚合、管道聚合解析使用总结

❃博主首页 &#xff1a; <码到三十五> ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a; <搬的每块砖&#xff0c;皆为峰峦之基&#xff1b;公众号搜索(码到…

FedAvg的简单实现(详解)

对于联邦学习正在学习中&#xff0c;下文中若有错误出现&#xff0c;望指正 介绍 本文在简单实现联邦平均算法时&#xff0c;使用客户-服务器架构&#xff0c;其基本流程是&#xff1a; 1、server初始化模型参数&#xff0c;所有clients将这个初始模型下载到本地 2、clien…

RK3568笔记三十六:LED驱动开发(设备树)

若该文为原创文章&#xff0c;转载请注明原文出处。 记录使用设备树编写一个简单的 LED 灯驱动程序 一、编程思路 程序编写的主要内容为添加 LED 灯的设备树节点、在驱动程序中使用 of 函数获取设备节点中的 属性&#xff0c;编写测试应用程序。 • 首先向设备树添加 LED 设备…

Python基础语法篇(下)+ 数据可视化

Python基础语法&#xff08;下&#xff09; 数据可视化 一、函数&#xff08;一&#xff09;函数的定义&#xff08;二&#xff09;函数的调用和传参 二、文件操作&#xff08;一&#xff09;文件读取和写入&#xff08;二&#xff09;文件对象及方法&#xff08;三&#xff09…

探寻大模型回答9.9和9.11犯错的根本原因

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

WinOS下获取dll中的方法列表

开发的Windows应用程序的安装环境从Win11 23H2切换到24H2时&#xff0c;出现获取电源模式不正确的问题&#xff0c;通过debug代码发现获取电源模式的方法是走的方法编号。由于Win11 24H2中增加了对外提供的方法&#xff0c;而增加的方法放在方法列表中间&#xff0c;导致其后面…

生成式AI的未来:对话的艺术与代理的实践

生成式 AI 的发展方向&#xff0c;是 Chat 还是 Agent&#xff1f; 随着生成式AI技术的不断进步&#xff0c;关于其未来发展方向的讨论也愈发激烈。究竟生成式AI的未来是在对话系统&#xff08;Chat&#xff09;中展现智慧&#xff0c;还是在自主代理&#xff08;Agent&#x…

图片太大怎么压缩变小?交给这4个方法就能行

在钱塘江畔&#xff0c;一场罕见的“蝴蝶潮”翩然而至&#xff0c;不仅带来了自然奇观&#xff0c;也预示着好运的降临。然而&#xff0c;当我们将这份美好瞬间分享给更多人时&#xff0c;却遇到了一个小小难题——高分辨率的照片占据了大量的存储空间&#xff0c;上传至社交平…

访问控制系列

目录 一、基本概念 1.客体与主体 2.引用监控器与引用验证机制 3.安全策略与安全模型 4.安全内核 5.可信计算基 二、访问矩阵 三、访问控制策略 1.主体属性 2.客体属性 3.授权者组成 4.访问控制粒度 5.主体、客体状态 6.历史记录和上下文环境 7.数据内容 8.决策…

推荐3款堪称神器的工具软件,实用强大颜值高,你不能错过

Flameshot Flameshot是一款功能强大且易于使用的开源屏幕截图软件&#xff0c;广泛应用于Linux、Windows和macOS等平台。它不仅支持图形界面&#xff08;GUI&#xff09;操作&#xff0c;还提供命令行接口&#xff08;CLI&#xff09;&#xff0c;使得用户可以根据自己的需求选…

SPINDILOMETER:用于多导睡眠图的睡眠纺锤波模型

摘要 通过对近年来睡眠脑电(EEG)信号分析方法的研究&#xff0c;本文提出了一种可集成到多导睡眠图(PSG)设备中的SPINDILOMETER模型&#xff0c;以供PSG电生理信号研究人员、临床睡眠医生和技术人员使用。为此&#xff0c;通过分析PSG中的脑电信号&#xff0c;开发了一个测量睡…

Qt界面假死原因

创建一个播放器类&#xff0c;继承QLabel&#xff0c;在播放器类中起一个线程用ffmpeg取流解码&#xff0c;将解码后的图像保存到队列&#xff0c;在gui线程中调用update()刷新显示。 当ffmpeg打开视频流失败后调用update()将qlabel刷新为黑色&#xff0c;有一定概率会使得qla…

【踩坑日记】【教程】嵌入式 Linux 通过 nfs 下载出现 T T T T [Retry count exceeded: starting again]

文章目录 1 本篇文章解决的问题2 问题解决原理3 问题环境4 开启 ubuntu-20.04 的 nfs24.1 确认 nfs2 是否已经开启4.2 开启 nfs2 5 卸载 iptables5.1 卸载 iptables5.2 禁用 ufw5.3 尝试重新下载 6 原理分析6.1 nfs2 开启部分6.2 卸载 iptables 部分 7 后记7.1 拓扑结构一7.2 拓…

2024辽宁省数学建模B题【钢铁产品质量优化】原创论文分享

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2024 年辽宁省大学数学建模竞赛B题钢铁产品质量优化完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 B题论文…

C++ 几何计算库

代码 #include <iostream> #include <list> #include <CGAL/Simple_cartesian.h> #include <CGAL/AABB_tree.h> #include <CGAL/AABB_traits.h> #include <CGAL/AABB_segment_primitive.h> #include <CGAL/Polygon_2.h>typedef CGAL…

数学建模(1)

论文&#xff1a;做流程图 论文查重不能高于30% 论文 分模块备战 摘要不能超过一页的四分之三 数学建模的六个步骤: 【写作】---学术语言 团队练题

【hadoop大数据集群 2】

【hadoop大数据集群 2】 文章目录 【hadoop大数据集群 2】1. 虚拟机克隆2. 时间同步3. 环境变量配置、启动集群、关闭集群 1. 虚拟机克隆 克隆之后一定要重新生成新虚拟机唯一的MAC地址和UUID等&#xff0c;确保新虚拟机与源虚拟机在网络拓扑中不发生冲突。 注意1.生成新的MA…

新华三H3CNE网络工程师认证—VLAN使用场景与原理

通过华三的技术原理与VLAN配置来学习&#xff0c;首先介绍VLAN&#xff0c;然后介绍VLAN的基本原理&#xff0c;最后介绍VLAN的基本配置。 一、传统以太网问题 在传统网络中&#xff0c;交换机的数量足够多就会出现问题&#xff0c;广播域变得很大&#xff0c;分割广播域需要…

借力Jersey,铸就卓越RESTful API体验

目录 maven 创建 jersey 项目 运行 支持返回 json 数据对象 1. 引言 在当今数字化时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为连接不同软件系统和服务的桥梁。RESTful API以其简洁、轻量级和易于理解的特点&#xff0c;成为了API设计的首选标准。本…

甲骨文面试题【动态规划】力扣377.组合总和IV

给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3], target 4 输出&#xff1a;7 解释&#x…