当前位置: 首页 > news >正文

论文阅读:“Appearance Capture and Modeling of Human Teeth”

文章目录

  • Abstract
  • Introduction
  • Method Overview
  • Teeth Appearance Model
    • Enamel
    • Dentin
    • Gingiva and oral cavity
  • Data Acquisition
    • Image capture
    • Geometry capture
  • Results
  • References

Abstract

如果要为电影,游戏或其他类型的项目创建在虚拟环境中显示的人类角色,我们通常需要获取人体的几何表示及其散射参数(用于表达人体几何表示与场景光线之间的交互)。牙齿不仅需要通过光与表面的交互来定义,同时需要通过其内部几何形状和口内环境来定义,所以这提出了一个独特的挑战。

因此,迪士尼提出了一种专门用于捕捉真人牙齿光学特性的系统,用以支持在计算机图形中重新渲染它们。研究人员在传统的多相机与光源设置中获取的口腔内环境数据,并且利用了口腔扫描的精确几何形状。为了模拟反向渲染期间口腔中光线的复杂相互作用,他们采用了基于衍生路径追踪的新型管道来参照牙齿表面的光学性质和几何形状。

迪士尼指出,最终的外观能够忠实地还原真人牙齿,并且可直接用于传统的路径追踪框架以渲染虚拟人类

Introduction

尽管相关领域已存在大量的研究,特别是在医疗牙科领域,但捕捉牙齿形状及其在口腔内的位置,并且获取它们的光学性质一直是个挑战。

每个人的牙齿都会因为个人习惯、年龄、社会经济背景等呈现出独特的特征。尽管现在绝大多数的口扫设备可以捕捉颜色信息,但它们不能表达出牙齿的一些复杂光学特性,因此展现的结果很不自然,如下图所示。

在这里插入图片描述

牙齿的散射特性由其最外层的两种光学特性迥异的材料决定,如下图所示:

在这里插入图片描述
内核由牙本质(dentin)构成,牙本质对色度的影响最大,也是牙齿发亮的原因。牙本质上覆盖着一层厚度不等的牙釉质(enamel)。牙龈处的牙釉质通常较薄,而牙尖处的牙釉质较厚,这就造成了色度的渐变。牙釉质是一种结构致密的材料,但比牙本质薄。它具有高度的半透明性。

在微观层面上,牙釉质是由从牙本质向表面延伸的棒状物(enamel rods)形成的,会造成强烈的各向异性光传播。半透明的牙釉质显示出乳白色的特征,使牙齿在蓝色光谱中产生反向散射,因此从另一面看会呈现红黄色。牙齿表面的变化、裂纹、污渍和其他瑕疵也为牙齿外观增添了一层丰富的视觉效果。

迪士尼团队补充了现有的形状重建方法,如口腔内扫描或口腔外适配。他们利用了通过口腔内扫描和片段获取的几何参数,并根据 Wu 等人的说法(Model-Based Teeth Reconstruction,牙齿重建方面开创性的一篇文章,值得阅读)等方法从多个视角和多种照明条件对嘴部区域进行成像,通过这种方法获取了外观数据。

为了模拟口腔内光线的复杂交互和牙齿体积,迪士尼团队利用了一个修改过的路径追踪框架来估算导数与优化参数的关系,并同时执行常规渲染。基本上,他们的方法迭代解决了整个可见场景下的辐射传递整数。此外,文章不仅只是优化了散射参数(反照率,密度,表面纹理),同时还优化了几何参数(牙本质表面形状)。研究人员根据基本的牙釉质形状建模了牙本质形状,并将其作为一组变形,从而能够在优化循环中以参数进行控制。

迪士尼利用了从口腔科获取的一颗坏死牙齿来验证他们的解决方案,并进一步应用于实际的被试身上(如下图)。他们指出:“在这两种情况下,我们的方法都能够逼真地创建了牙齿的整体外观。由于应用于优化循环的主要框架是基于路径追踪,由此得到的参数只需小幅度的修改即可用于重新渲染牙齿。”

在这里插入图片描述
[Various comparisons of our recovered teeth appearance parameters rendered next to corresponding reference images, from different viewpoints and lighting conditions. Reference images are on the left for individual teeth comparisons, and above for full teeth rows.]

Method Overview

光线在与牙齿相互作用时会经过许多路径。首先,光线与表面相互作用,表面的特点是有一个粗糙的电介质层(dielectric layer),然后被反射或折射到内部。内部的相互作用主要由牙齿的两层决定:牙釉质和牙本质。因此,研究人员确定了定义牙齿外观的三组参数:表面反射率和透射率次表面散射参数内部牙本质形状。该方法旨在得出一组合理的模型参数,以便在牙齿相对于口腔被外部照射的情况下进行高质量的渲染。

Teeth Appearance Model

Enamel

牙釉质边界是牙齿的外部边界,以三角形网格建模。为了模拟光与空气-牙釉质边界的相互作用,文章中使用了改进版的光滑介质 BSDF,它采用了用 "薄 "电介质层分隔空气和牙釉质的概念。

BSDF(双向散射分布函数)是一个在计算机图形学和物理光学中使用的术语,用于描述一个表面如何散射和吸收光线。BSDF可以看作是一个函数,它接受入射光的方向和表面材料的特性,然后返回一个值,这个值表示了从该方向入射的光线在被表面散射后,在特定方向上离开表面的强度。

更具体地说,BSDF 定义了从入射方向( ω i \omega_i ωi)到出射方向( ω o \omega_o ωo)的光线散射概率密度。

Dentin

牙釉质层的厚度在很大程度上影响着到达牙齿牙本质的光量,因此对整体外观有重大影响。文章使用一组变形定义的混合形状模型来模拟牙釉质-牙本质界面,从而改变厚度:
V = B 0 + c ⋅ ( B − B 0 ) T V=B_0+c\cdot (B-B_0)^T V=B0+c(BB0)T其中, B B B 代表混合形状模型, B 0 B_0 B0 为初始模型, c c c 则为向量权重。通过实验,研究人员得出结论:三种模式就足以捕捉到牙釉质厚度差异引起的散射的大部分可见变化。这些模式代表了典型牙齿空间中沿三个主要轴线的变形;如下图所示。

在这里插入图片描述

Gingiva and oral cavity

牙龈以及整个口腔确实对牙齿的外观有间接影响,因为它们会将皮肤色光散射到牙齿上。为了解释这种散射光,防止优化预测出有色牙齿,必须对其进行建模。

牙龈的模型是一个三角形网格,包裹着牙根的外部边界。由于可以直接观察牙龈,因此这里使用与牙釉质相同的参数集,通过数值优化提取牙龈的外观,折射率固定不变( η = 1.33 \eta=1.33 η=1.33)。

口腔高度闭塞,难以捕捉,但由于光线从口腔壁反弹并照亮阴影区域,因此对外观影响很大。文章使用了一个替代网格(substitute mesh),将漫反射设置为自由参数。其起点是通过相似性理论和之前优化牙龈散射参数得出的平均值。

Data Acquisition

Image capture

在这里插入图片描述

为了获得准确的外观参数,研究人员需要对入射光和出射光的方向进行密集采样。为此,在一个由 155 盏灯(每盏灯都是 RGB LED 三连灯)组成的光罩中拍摄每名志愿者,每盏灯距离牙齿约一米。由于头部的 occlusions,研究人员记录了 54 盏灯的图像,涵盖了所有可见的入射方向。

研究人员用三台彩色摄像机(Ximea CB200CG)捕捉多视角图像,摄像机安装在灯罩边缘,配有长镜头,以最大限度地提高牙齿的分辨率,记录 2000 万像素的图像,并与各个灯的激活同步。

Geometry capture

仅凭捕捉到的图像不足以进行外观优化,因为还需要了解牙齿的几何形状。虽然存在轻量级的牙齿重建方法,但它们无法恢复牙齿背面的准确形状,只能在图像覆盖率较低的地方假设牙齿的形状。由于需要评估 volumetric light paths,因此研究人员需要精确的牙齿四面边界。

在这里插入图片描述

研究人员使用口内扫描仪对志愿者的牙齿进行专业扫描。为了分割扫描中的牙齿并将它们从牙龈中分离出来,文章使用了 Wu 等人 [3] 描述的半自动模板拟合方法将模板牙齿网格与扫描几何图形对齐。由于牙齿的外观与牙龈紧密相连,研究人员还根据扫描结果对牙龈的几何形状进行了艺术建模。最后,通过手动选择一组稀疏的 corresponding landmarks 并求解刚性变换,将得到的牙齿几何形状和牙龈模型与相机坐标框架对齐。

Results

在这里插入图片描述


在这里插入图片描述

References

[1] Velinov, Z., Papas, M., Bradley, D., Gotardo, P., Mirdehghan, P., Marschner, S., … & Beeler, T. (2018). Appearance capture and modeling of human teeth. ACM Transactions on Graphics (ToG), 37(6), 1-13.
[2] “迪士尼提出了一种专门用于逼真捕捉真人牙齿光学特性的系统”,映维网,https://www.sohu.com/a/285369063_213766
[3] 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.

相关文章:

论文阅读:“Appearance Capture and Modeling of Human Teeth”

文章目录 AbstractIntroductionMethod OverviewTeeth Appearance ModelEnamelDentinGingiva and oral cavity Data AcquisitionImage captureGeometry capture ResultsReferences Abstract 如果要为电影,游戏或其他类型的项目创建在虚拟环境中显示的人类角色&#…...

初学vue3与ts:路由跳转带参数

index-router <!-- 路由跳转 --> <template><div><div class"title-sub flex"><div>1、用router-link跳转带参数id1&#xff1a;</div><router-link to"./link?id1"><button>点我跳转</button>&…...

JAVAEE---多线程

线程安全 这段代码执行结果就就是一个不确定的数&#xff0c;就存在线程安全问题。 为了解决这样的问题我们可以对count进行打包&#xff0c;我们知道count本质上应该是由三个指令完成&#xff0c;我们可以对其打包。 这样的代码结果就是正确的。我们对对象就进行了加锁&#…...

提示工程-Prompt Engineering

提示工程 提示工程 1、概述 Prompt Engineering&#xff1a; 提示工程 通过自然语言&#xff08;英语、汉语等&#xff09;来给AI下达指示&#xff0c;从而让AI完成你指定给他的工作的过程都可以称之为提示工程。&#xff08;面向自然语言编程&#xff09; 提示词要素 指令&…...

JetLinks设备接入的认识与理解【woodwhales.cn】

为了更好的阅读体验&#xff0c;建议移步至笔者的博客阅读&#xff1a;JetLinks设备接入的认识与理解 1、认识 JetLinks 1.1、官网文档 官网&#xff1a;https://www.jetlinks.cn/ JetLinks 有两个产品&#xff1a;JetLinks-lot和JetLinks-view 官方文档&#xff1a; JetLi…...

机器人开发的选择

喷涂机器人 码垛机器人 纸箱码垛机器人 焊接机器人 跳舞机器人 管道清理机器人 工地巡检机器人 点餐机器人 化工巡检机器人 装箱机器人 安防巡检机器人 迎宾机器人好像有点像软银那个 污水管道检测机器人 大酒店用扫地机器人 家用扫地机器人 工厂用&#xff08;…...

LeetCode Hot100 102.二叉树的层序遍历

题目&#xff1a; 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 方法&#xff1a;迭代 class Solution {public List<List<Integer>> levelOrder(TreeNode root) {if …...

【Kotlin】类与接口

文章目录 类的定义创建类的实例构造函数主构造函数次构造函数init语句块 数据类的定义数据类定义了componentN方法 继承AnyAny&#xff1a;非空类型的根类型Any?&#xff1a;所有类型的根类型 覆盖方法覆盖属性覆盖 抽象类接口:使用interface关键字函数&#xff1a;funUnit:让…...

Wagtail-基于Python Django的内容管理系统CMS如何实现公网访问

Wagtail-基于Python Django的内容管理系统CMS实现公网访问 文章目录 Wagtail-基于Python Django的内容管理系统CMS实现公网访问前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 前言 Wagtail是一个…...

什么是LASSO回归,怎么看懂LASSO回归的结果

随着机器学习的发展&#xff0c;越来越多SCI文章都使用了更多有趣、高效的统计方法来进行分析&#xff0c;LASSO回归就是其中之一。很多小伙伴听说过LASSO&#xff0c;但是对于LASSO是什么&#xff0c;有什么用&#xff0c;怎么才能实现&#xff0c;大家可能一头雾水。今天的文…...

python树长子兄弟链存储结构(孩子兄弟链存储结构)

长子兄弟链存储结构&#xff08;孩子兄弟链存储结构&#xff09;解释&#xff1a; 长子兄弟链存储结构是一种树的存储结构&#xff0c;它使用孩子兄弟表示法&#xff08;也称作左孩子右兄弟表示法&#xff09;来表示树的结构。这种表示方法主要用于存储一般的树&#xff0c;而不…...

开源和闭源软件对开发的影响

开源软件的优势&#xff1a; 开源性&#xff1a;开源软件允许任何人查看、修改和发布源代码&#xff0c;这促进了代码的共享和集体学习。透明性&#xff1a;开源软件提高了软件的透明度&#xff0c;使用户可以更好地理解软件的工作原理&#xff0c;增加对软件的信任。社区支持…...

centos无法进入系统之原因解决办法集合

前言 可爱的小伙伴们&#xff0c;由于精力有限&#xff0c;暂时整理了两类。如果没有你遇到的问题也没有关系&#xff0c;欢迎底下留言评论或私信&#xff0c;小编看到后第一时间帮助解决 一. Centos 7 LVM xfs文件系统修复 情况1&#xff1a; [sda] Assuming drive cache:…...

【Linux】系统初始化配置

CentOS 7 的虚拟机安装后必须要做的几个操作&#xff0c;记录以下&#xff0c;网络配置修改、yum源安装、基础工具安装&#xff1a; 1、先修改权限&#xff0c;新建普通用户&#xff0c;并授权普通用户apps 的sudo权限&#xff1b; useradd apps password apps visudo apps A…...

使用VC++设计程序对一幅256级灰度图像进行全局固定阈值分割、自适应阈值分割

图像分割–全局固定阈值分割、自适应阈值分割 获取源工程可访问gitee可在此工程的基础上进行学习。 该工程的其他文章&#xff1a; 01- 一元熵值、二维熵值 02- 图像平移变换&#xff0c;图像缩放、图像裁剪、图像对角线镜像以及图像的旋转 03-邻域平均平滑算法、中值滤波算法、…...

【ArcGIS Pro微课1000例】0035:栅格影像拼接(dem高程数据)

本实验讲解在ArcGIS Pro中,栅格数据的两种拼接(镶嵌)方法,适用于遥感影像、DOM、DEM、DSM等常见栅格数据。 文章目录 一、加载实验数据二、栅格拼接工具1. 镶嵌2. 镶嵌至新栅格三、注意事项四、拓展阅读一、加载实验数据 加载配套实验数据中的0035.rar中的两个dem数据,如…...

Zynq-7000系列FPGA使用 Video Processing Subsystem 实现图像缩放,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA图像缩放方案自己写的HLS图像缩放方案 3、设计思路详解Video Processing Subsystem 介绍 4、工程代码详解PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程移植说明vivado版本不一致处理FPGA型号不一致处理其他注意事项…...

【C】内存函数

目录 1. memcpy 使用和模拟实现 2. memmove 使⽤和模拟实现 3. memset 函数的使用 4. memcmp 函数的使用 1. memcpy 使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); • 函数memcpy从source的位置开始向后复制num个字节的数据到d…...

windows系统玩游戏找不到d3dx9_35.dll缺失的解决方法

分享一个我们在打开游戏或许软件过程中遇到的问题——“由于找不到d3dx9_35.dll,无法继续执行代码”的五个修复方案。这个问题可能会影响到我们的工作和娱乐效率&#xff0c;甚至可能导致工作的延期。因此&#xff0c;我希望通过今天的文章&#xff0c;能够帮助大家更好地解决这…...

webshell之内置函数免杀

原始webshell 查杀的点在于Runtime.getRuntime().exec非常明显的特征 利用ProcessBuilder替换Runtime.getRuntime().exec(cmd) Runtime.getRuntime().exec(cmd)其实最终调用的是ProcessBuilder这个函数&#xff0c;因此我们可以直接利用ProcessBuilder来替换Runtime.getRunti…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...