论文阅读:“Model-based teeth reconstruction”
文章目录
- Abstract
- Introduction
- Teeth Prior Model
- Data Preparation
- Parametric Teeth Model
- Teeth Fitting
- Teeth Boundary Extraction
- Reference
Abstract
近年来,基于图像的人脸重建方法日趋成熟。这些方法可以捕捉整个面部或面部特定区域(如头发、眼睛或眼睑)的高精细静态和动态几何模型。遗憾的是,基于图像的口腔捕捉方法,尤其是牙齿捕捉方法,却很少受到关注。然而,牙齿的精确渲染对于面部表情的逼真展示至关重要,目前高质量的面部动画都是通过繁琐的手工工作制作牙列模型。在牙科领域,开发了专门的口腔内牙齿扫描仪,但这种扫描仪还难以广泛使用。
在文章中,研究人员提出了第一种仅凭口腔区域的稀疏照片集就能无创重建整个人特定牙列的方法。该方法的基础是从高质量口扫模型中学习到的新参数牙列先验(parametric tooth row prior)。新的基于模型的重建方法将牙齿与照片相匹配,从而准确匹配可见牙齿,并合理生成遮挡牙齿(occluded teeth)。该方法不仅能无缝集成到整个面部的摄影测量多相机重建设置中,还能从普通的未校准照片甚至手机拍摄的短视频中获得高质量的牙齿建模。
Introduction
由于牙齿表面有半透明的牙釉质涂层,牙齿具有极强的镜面反射性,而由于牙齿下面的牙本质,牙齿又具有高度漫反射性,两者都表现出很强的表面下散射。因此,牙齿只有很少的可见特征,最明显的特征是单个牙齿之间的边界,这甚至不是牙齿表面的特征,因此使用摄影测量(photogrammetric)方法重建牙齿非常具有挑战性。
从另一方面看,牙齿是刚性的,不同对象的牙齿形状变化是可控的,因此牙齿可以很好地进行统计建模(statistical modeling)。基于相机的口腔内部重建由于 non-trivial occlusions 而变得更加复杂。如果不使用专用的嘴唇扩张装置,人们通常很难将嘴张得足够大,即使这样,通常也无法通过单一位姿看到整个口腔。
因此,这篇文章首次提出了一种方法,可从口腔区域的稀疏正常照片集重建牙齿。在这些图像中,人可以做出自然的嘴部表情,而无需在机械支撑下不舒服地张开嘴巴。
Contributions:
- 提供了一个新的整排牙齿参数先验模型,该模型是从高质量石膏模型的数字化数据库中学习的。该牙齿模型对每颗牙齿的局部形状变化、整排牙齿中每颗牙齿的姿态变化以及整排牙齿的位置和比例进行了编码。它还对模型参数的先验分布进行了编码。
- 提出了一种基于图像的新方法,该方法可重建特定个人的牙列,与输入图像中的可见牙齿相匹配,并在先验模型的基础上为部分遮挡和完全隐藏的牙齿生成合理的几何形状。
Teeth Prior Model
人类通常有 32 颗牙齿(去掉智齿后为 28 颗),分为上下两排,基本对称。牙齿分为四类:门牙(incisors)、犬牙(canines)、前臼齿(premolars)和臼齿(molars),如下图所示。
Data Preparation
为了建立牙齿数据库,我们从医学牙科领域获得了 86 排不同牙齿的高分辨率石膏三维扫描图像,其中包括上排牙齿和下排牙齿。其中一部分扫描结果如下图所示。
Teeth Templates. 为了建立和训练模型,需要一个牙齿数据库,每个牙齿都有独立的几何图形,并在不同的研究对象之间保持一致。研究人员首先手动(artistically create)创建了一个牙齿模板网格。由于四类牙齿的形状迥异,因而创建了四个独立的模板网格。为了完整起见,研究人员将牙齿一直建模到牙根。
Template Fitting. 现在,我们希望将牙齿模板网格实例与石膏扫描模型中的单个牙齿相匹配。研究人员设计了一种半自动模板拟合方法。首先,用户通过点击牙齿间边界以及牙齿和牙龈边界的几个点,为每颗牙齿定义一个分割轮廓。如下图(a),左门牙的轮廓用紫色标出,其他轮廓用绿色标出。根据所选点之间的高曲率路径自动计算分割轮廓。此外,用户还可以为每颗牙齿选择几个预定义的 landmarks(门牙和犬齿为三个,前臼齿和臼齿为五个),这些 landmarks 将指导配准及分割。下图(a) 用红色显示了其中一颗门牙的 landmarks。
对于每颗牙齿,首先根据选定的 landmarks 将适当的模板网格与牙齿进行刚性对齐,然后使用迭代拉普拉斯形变进行非刚性变形,以紧密贴合分割后的牙齿区域(上图(c,d))。
所有扫描模型拟合后的结果是一个包含 per-tooth 网格对应关系的齿列数据库。虽然上述方法中有几步需要人为操作,但建立数据库是一次性的(one-time investment)。
Parametric Teeth Model
从数学上讲,参数化牙齿模型是对典型牙列的形状和姿态偏差进行编码,计算结果为数据库的平均值(如下图所示)。
Teeth Fitting
Teeth Boundary Extraction
可以通过手动标注输入图像来获得牙齿轮廓。虽然这种方法是可行的,而且算法也可以在这种数据上运行,但随着图像数量的增加,这种方法很快就会变得极为繁琐。特别是对于基于视频的牙齿重建使用案例,手动标注是不切实际的。因此研究人员希望自动检测输入图像中的牙齿轮廓。
如上图所示,研究人员定义了三种类型的牙齿边界:牙齿、牙龈及嘴唇。明确区分牙龈和嘴唇对于防止牙齿模型牙龈线与嘴唇边界错误对齐至关重要。为了识别边界,文章采用了增强边缘学习(BEL) 算法。BEL 是一种用于边缘和物体边界检测的通用监督学习算法,它根据小块图像上的大量通用快速特征(包括梯度、滤波器响应直方图和不同尺度的哈尔小波)将图像像素分类为边界。研究人员在一组手工标注的输入图像上分别训练三个检测器,每个检测器对应上述特定的牙齿边界。下图显示了训练数据的几个示例。
Reference
[1] Wu, C. , Bradley, D. , Garrido, P. , Zollhfer, M. , Theobalt, C. , & Gross, M. , et al. (2016). Model-based teeth reconstruction. International Conference on Computer Graphics and Interactive Techniques. ACM.
相关文章:

论文阅读:“Model-based teeth reconstruction”
文章目录 AbstractIntroductionTeeth Prior ModelData PreparationParametric Teeth Model Teeth FittingTeeth Boundary Extraction Reference Abstract 近年来,基于图像的人脸重建方法日趋成熟。这些方法可以捕捉整个面部或面部特定区域(如头发、眼睛…...
Web 安全之证书透明(Certificate Transparency)详解
目录 证书透明性的概念 数字证书和颁发机构 证书透明的起源 证书透明的工作原理 证书透明的实现方法 证书透明的优点 浏览器和客户端对证书透明的支持情况 小结 证书透明(Certificate Transparency, CT)是网络安全领域中的一个重要概念ÿ…...

智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蜻蜓算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…...

【古诗生成AI实战】之二——项目架构设计
[1] 项目架构 在我们深入古诗生成AI项目的具体实践之前,让我们首先理解整个项目的架构。本项目的代码流程主要分为三个关键阶段: 1、数据处理阶段; 2、模型训练阶段; 3、文本生成阶段。 第一步:在数据处理阶段…...

动态网页从数据库取信息,然后展示。
把数据库的驱动放在bin目录下。 通过servlet 读取数据库的内容,生成session,然后跨页面传给展示页。 package src;import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSe…...

单片机学习3——数码管
数码管,根据内部结构,可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点,共计8段。因此,我们对它编程的时候,刚好是用一个字节。 数码管的显示方式: 1)静态显示; 2&…...

数据库表结构导出成Excel或Word格式
前言 该工具主要用于导出excel、word,方便快速编写《数据库设计文档》,同时可以快速查看表的结构和相关信息。 本博客仅作记录,最新源码已经支持多种数据库多种格式导出,有兴趣的可移步源码作者地址:https://gitee.co…...

School training competition ( Second )
A. Medium Number 链接 : Problem - 1760A - Codeforces 就是求三个数的中位数 : #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std; typedef long long LL; const int N 2e510;inline void …...

深度解析 Docker Registry:构建安全高效的私有镜像仓库
文章目录 什么是Docker Registry?Docker Hub vs. 私有RegistryDocker Hub:私有Registry: 如何构建私有Docker Registry?步骤一:安装Docker Registry步骤二:配置TLS(可选)步骤三&…...
leetcode 不同的二叉搜索树
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5 示例 2: 输入:n 1 输出:…...

通俗易懂的spring Cloud;业务场景介绍 二、Spring Cloud核心组件:Eureka 、Feign、Ribbon、Hystrix、zuul
文章目录 通俗易懂的spring Cloud一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七…...

大数据预处理技术
文章目录 前言 大数据技术成为前沿专业 也是现在甚至未来的朝阳产业,大数据有分别是 数据预处理 数据存储 大数据处理和分析 数据可视化 部分组成 ,大数据行业有数据则称王,大数据的核心是数据本身 怎么获取有价值的数据呢?本章讲…...
跳表的学习记录
跳表(Skip List)是一种数据结构,它通过在多个层次上添加额外的前向指针来提高有序数据的搜索效率。跳表与其他常见的有序数据结构(如二叉搜索树、平衡树如AVL树和红黑树、B树等)相比,具有其独特的优缺点&am…...

电子学会C/C++编程等级考试2022年09月(二级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:统计误差范围内的数 统计一个整数序列中与指定数字m误差范围小于等于X的数的个数。 时间限制:5000 内存限制:65536输入 输入包含三行: 第一行为N,表示整数序列的长度(N <= 100); 第二行为N个整数,整数之间以一个空格分…...

如何使用nginx部署静态资源
Nginx可以作为静态web服务器来部署静态资源,这个静态资源是指在服务端真实存在,并且能够直接展示的一些文件数据,比如常见的静态资源有html页面、css文件、js文件、图片、视频、音频等资源相对于Tomcat服务器来说,Nginx处理静态资…...

lua的gc原理
lua垃圾回收(Garbage Collect)是lua中一个比较重要的部分。由于lua源码版本变迁,目前大多数有关这个方面的文章都还是基于lua5.1版本,有一定的滞后性。因此本文通过参考当前的5.3.4版本的Lua源码,希望对Lua的GC算法有一个较为详尽的探讨。 L…...
redis作为缓存详解
目录 前言: 为什么说关系型数据库性能不高 如何提高MySQL并发量 缓存更新策略 定期更新 实时更新 内存淘汰策略 Redis内置的淘汰策略 缓存常见问题 缓存预热 缓存穿透 缓存雪崩 缓存击穿 前言: 对于缓存的理解,缓存目的就是为了…...

231127 刷题日报
这周值班。。多少写道题吧,保持每天的手感。老婆给买了lubuladong纸质书,加油卷。 1. 131. 分割回文串 写个这个吧,钉在耻辱柱上的题。 为啥没写出来: 1. 递归树没画对 把树枝只看做是1个字母,而且不清楚树枝和节点…...

【Linux】vim-多模式的文本编辑器
本篇文章内容和干货较多,希望对大家有所帮助👍 目录 一、vim的介绍 1.1 vi 与 vim的概念1.2 Vim 和 Vi 的一些对比 二、vim 模式之间的切换 2.1 进入vim2.2 [正常模式]切换到[插入模式]2.3 [插入模式]切换至[正常模式]2.4 [正常模式]切换至[底行模式…...
Ubuntu 启用 root 用户
在启用 root 用户之前,我们先来了解一下, ubuntu 命令的组成。 打开 ubuntu 的终端,现在的命令行是由 topeetubuntu:~$ 这几个字母组成,那么这几个字母都代表 什么意思呢? topeet …...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门  B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...