论文阅读:“iOrthoPredictor: Model-guided Deep Prediction of Teeth Alignment“

文章目录

  • Introduction
  • Methodology
    • Problem Formulation
    • Conditional Geometry Generation
    • TSynNet
    • Aligned Teeth Silhouette Maps Generation
  • Results
  • References

Github 项目地址:https://github.com/Lingchen-chen/iOrthopredictor

在这里插入图片描述

Introduction

这篇文章提出了一种新颖的牙齿正畸治疗系统,叫作 iOrthoPredictor,它可以直接在人脸图片上预测牙齿排列整齐后的结果,只需给定一张前向的人脸图片(嘴巴需像上图一样张开,露出原始的不齐的牙齿)即可。

需要克服的问题:

  1. 需要准确的估计出牙龈及每颗牙齿的几何变换;
  2. 需要解决由牙齿位移、牙龈牙齿材质及光照条件造成的 in-mouth appearance changes;
  3. 需解决空洞及被遮挡部分的问题。

为了准确的估计出对齐牙齿的形状信息,iOrthoPredictor 还需要患者的 3D 牙模作为额外输入,并引入牙齿的 silhouette maps 来表示图片中的牙齿几何信息。这种表示方法可以借助 3D 牙模(通过口扫设备得到)准确的计算出 2D 的变换牙齿形状。而 in-mouth appearance 则被建模为一个隐向量(latent code),可以从输入图像中有效地提取出来。

整体的流程总结如下:

  1. 用卷积神经网络 TGeoNet 从人脸图片中提取 silhouette maps 以及口腔 mask;
  2. 根据提取出的 silhouette maps 对 3D 牙模的整体位姿进行优化;
  3. 用 MLP-based TAligNet 来学习对齐后的目标牙齿排列;
  4. 借助优化的整体位姿来将对齐牙齿的 silhouette 投影回到 2D 口腔区域,以生成目标牙齿的 geometry maps;
  5. 目标牙齿的 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

栈和队列

目录 1.栈 1.1栈的概念及结构 1.2栈的实现 2.队列 2.1队列的概念及结构 2.2队列的实现 1.栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈…

重视日常消防巡检有必要,智能巡检系统来帮忙

近日,山西吕梁市永聚煤矿一办公楼发生火灾,造成重大人员伤亡,事故造成26人死亡、38人受伤。 是的,你没看错,煤矿公司、办公楼火灾、重大伤亡。第一反应,煤矿即使出事故也多为作业事故,居然还能在日常消防安…

“Python+”集成技术高光谱遥感数据处理

高光谱遥感数据处理的基础、python开发基础、机器学习和应用实践。重点解释高光谱数据处理所涉及的基本概念和理论,旨在帮助学员深入理解科学原理。结合Python编程工具,专注于解决高光谱数据读取、数据预处理、高光谱数据机器学习等技术难题,…

Chrome中设置安全来源域名

目的: 使得本地映射的域名能被浏览器安全访问,允许调用设备资源 步骤: 在Chrome中导航栏打开 chrome://flags/#unsafely-treat-insecure-origin-as-secure 填入hosts域名:如 http://h5-twzc003.local.com 参考: h…

AutoSAR CANIF层配置代码分析

CAN物理控制单元 配置: 生成的代码: CanIf_CtrlStates 解析 类型: typedef union CanIf_CtrlStatesUTag {CanIf_CtrlStatesType raw[3];CanIf_CtrlStatesStructSType str; }CanIf_CtrlStatesUType;typedef struct sCanIf_CtrlStatesType {C…

自定义歌曲试听SeekBar

看到这个效果,可能会想到完全自定义一个控件,其实我们在系统Seekbar的基础上,将progressDrawable中progress背景设为透明后,叠加绘制试听状态下的进度区域即可 class PlayerSeekBar JvmOverloads constructor(context: Context,a…

客服中心的客户关系管理核心功能

根据国外的调查,拥有客服中心的运营机构,可以保持85%左右的客户忠诚度,而接受过专业培训的客户中心可以将客户忠诚度提高到99%。客服中心作为客户关系管理的前沿,通过提供服务、实时沟通、搜集与分析客户信息、预测客户需求来提升…

SQL常见函数整理 —— lead()向下偏移

1. 用法 是在窗口函数中使用的函数,它用于获取当前行的下一行(后一行)的某个列的值。具体来说,LEAD() 函数可用于查找任何给定行的下一行(后一行)的值,同时也可控制行数偏移量(offse…

每日汇评:澳元多头着眼于50%的斐波那契水平

澳元兑美元跳涨至三个月高点上方,并从多种因素中获得支撑; 对美联储已经结束加息的预期继续严重打压美元; 对中国出台更多刺激措施的乐观情绪和积极的风险基调也有利于澳元; 澳元兑美元周一连续获得强劲的后续积极牵引力&#xff…

在列表控件上显示提示信息

当我们在实现列表控件上的提示信息的时候,我们需要处理的一个难点是处理列表条目的折叠和展开这两种情况。 所谓列表条目的折叠,即在大图标模式(Large Icon Mode)下,列表条目的文字过长而被截断的情况。当用户选择这个条目后,条目…

损失函数总结(十五):MSLELoss、RMSLELoss

损失函数总结(十五):MSLELoss、RMSLELoss 1 引言2 损失函数2.1 MSLELoss2.2 RMSLELoss 3 总结 1 引言 在前面的文章中已经介绍了介绍了一系列损失函数 (L1Loss、MSELoss、BCELoss、CrossEntropyLoss、NLLLoss、CTCLoss、PoissonNLLLoss、Gau…

城市生命线丨市政综合管廊监测系统的效果

市政综合管廊,又被称为城市生命线,是我们在地下建造的一个智慧而高效的空间。它把市政、电力、通讯、燃气、给排水等各种管线集于一体,解决了城市中反复开挖路面、架空线网密集、管线事故频发等问题,为城市运行提供了重要的基础设…

C#,怎么修改(VS)Visual Studio 2022支持的C#版本

一些文字来自于 Microsoft . (只需要读下面的红色文字即可!) 1 C# 语言版本控制 最新的 C# 编译器根据项目的一个或多个目标框架确定默认语言版本。 Visual Studio 不提供用于更改值的 UI,但可以通过编辑 .csproj 文件来更改值。…

浅谈餐饮业油烟污染现状及在线监测系统的设计与应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 摘要:城市餐饮业油烟污染成了困扰城区环境保护部门和人民群众日常生活的主要问题。油烟污染已经成为我国一个重大的污染源,是形成PM2.5的重要污染源之一,为了解决餐饮业油烟管理方面存在的问…

linux镜像的下载,系统下载(个人使用)

文章目录 一、系统之家二、国内镜像源三、Centos官网四、安装成功截图五、镜像类型的区别参考文档 一、系统之家 系统之家官网 二、国内镜像源 下载镜像地址: 1、官网地址:https://www.centos.org/ 2、阿里镜像站:https://mirrors.aliyu…

人工智能基础_机器学习041_Sigmoid函数详解_Sigmoid损失函数推导_最大似然函数推导---人工智能工作笔记0081

然后我们再来看一下sigmoid函数的推导过程,可以看到首先我们把 sigmoid的函数写成两种情况 可以看到P(y|x;theta) = htheta(x), y=1 这个时候y=1 也就是是一种分类,然后另一种,就是相减, 是1-htheta(x) 可以看到,把两个公式河道一起就得到了下面的概率公式. 这里是有关概率…

被OpenAI开除后,创始人奥特曼在微软找到了新工作

微软首席执行官纳德拉宣布,OpenAI创始人Sam Altman和Brockman及其同事将加入微软。随后,Altman转发了他的推特。 此前,外媒消息称,OpenAI首席科学家伊尔亚苏茨克维(Ilya Sutskever)周日晚告知公司员工&…

Dubbo快速实践

文章目录 架构相关概念集群和分布式架构演进 Dubbo概述Dubbo快速入门前置准备配置服务接口配置Provider配置Consumer Dubbo基本使用总结 本文参考https://www.bilibili.com/video/BV1VE411q7dX 架构相关概念 集群和分布式 集群:很多“人”一起 ,干一样…

有哪些相见恨晚的stm32学习的方法?

有哪些相见恨晚的stm32学习的方法? 单片机用处这么广,尤其是STM32生态这么火!如何快速上手学习呢? 你要考虑的是,要用STM32实现什么?为什么使用STM32而不是用8051?是因为51的频率太低&#xff…

requests库出现AttributeError问题的修复与替代方法

在使用App Engine时,开发者们通常会面临需要发送爬虫ip请求的情况,而Python中的requests库是一个常用的工具,用于处理爬虫ip请求。然而,在某些情况下,开发者可能会遇到一个名为AttributeError的问题,特别是…