论文阅读:“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.

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

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

相关文章

原生js和jQuery的区别

1. 原生JavaScript是一种基于ECMAScript规范的编程语言,而jQuery是基于JavaScript的一个库,它提供了一种更简洁、易用的语法来操作HTML文档、处理事件、执行动画等。 2. 原生JavaScript没有依赖任何外部库,而jQuery依赖于jQuery库。这意味着…

【RTP】4: 实例解析:一个SRTP的wireshark抓包:带padding、带扩展

抓取的是视频包。固定的pt是127从头部找到序号,快速找到这个包包大小因为是包括了SRTP的,所以318 个字节,实际RTP包是286个字节。SRTP 包 UDP总共 294个字节,payload部分286 RTP协议 RTP部分: B0 代表有padding、有扩展 从B0开始

Kylin操作系统安装mysql8,Neginx相关问题记录

文章目录 一、Linux常见命令记录1. 为普通用户赋sudo权限2. Kylin系统yum配置以及使用2.1 Kylin操作系统yum源配置(本地yum源)2.1.1 .repo类型文件存在2.1.2 .repo类型文件不存在2.1.3 挂载OS镜像文件2.1.4 编辑local.repo文件,创建yum源地址2.1.5使yum源生效 2.2 y…

Android 如何让路由器或者其他AP设备获取到主机名

问题原因: 连接到AP设备后,发现主机名在路由器或者其他AP设备都无法正常显示 抓取tcpdump log发现DHCP request option中没有携带host name(Option 12)字段 如下图所示 修改方法: 将config_dhcp_client_hostname配置true后,可以看到host name了 具体代码逻辑如下 pack…

Linux网络——数据链路层

目录 一.认识以太网 二.以太网帧格式 三.认识MAC地址 四.认识MTU 五.以太局域网的通信原理 六.其他重要协议 1.DNS协议 2.域名简介 3.ICMP协议 4.NAT技术 5.NAT技术的缺陷 6.NAT和代理服务器 一.认识以太网 "以太网" 不是一种具体的网络, 而是一种技术标…

浅谈基于EIoT能源物联网的工厂智能照明系统应用改造

【摘要】:随着物联网技术的发展,许多场所针对照明合理应用物联网照明系统,照明作为工厂的重要能耗之一,工厂的照明智能化控制,如何优化控制、提高能源的利用率,达到节约能源的目的。将互联网的技术应用到工…

【C语言】Debian10使用zlib库crc32()函数

crc32函数原型 uint32_t crc32(uint32_t crc, const Bytef *buf, uInt len); 参数说明 crc:初始的CRC值或者之前计算得到的CRC值。在初次调用时,通常使用0xFFFFFFFF作为初始值。buf:指向数据缓冲区的指针,包含需要计算CRC的数据…

Python字典合并

合并两个有部分key相同的字典,相同key保留两个字典中对应key的较大值。 (笔记模板由python脚本于2023年11月27日 18:12:15创建,本篇笔记适合熟悉Python字典的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Fr…

笔记十九*、选中高亮和嵌套路由使用

19.1 选中高亮 NavLink App.jsx import React from "react"; import {NavLink, useRoutes} from "react-router-dom"; import routes from "./routes/index.jsx"; import "./app.css"const App () > {const element useRoutes(…

Kotlin(十二) 定义静态方法

静态方法在某些编程语言里面又叫作类方法,指的就是那种不需要创建实例就能调用的方法,所有主流的编程语言都会支持静态方法这个特性。 在Java中定义一个静态方法非常简单,只需要在方法上声明一个static关键字就可以了,如下所示&a…

SQL注入-HTTP头注入

目录 HTTP Header概述 HTTP Header注入 HTTP Header注入概述 HTTP Header注入实例 HTTP Header概述 HTTP工作原理 HTTP请求方法 HTTP报文类型 请求报文(HTTP Request):由客户端发给服务器的消息,其组成包括请求行(R…

系统与软件安全研究(九)

A Taxonomy of C Decompiler Fidelity Issues Usenix security 2024 Carnegie Mellon University Intro 反编译是分析编译程序并恢复表现相同行为的源代码程序的过程,是计算机安全领域中的关键工具。它使安全从业者能够更快速地深入了解编译程序的行为,尤其在分析恶意软件和…

我用C语言实现的文字跑马灯,简直是程序员的表白神器!

系列文章 Python百宝箱 C语言百宝箱 目录 系列文章 写在前面 C语言简介 EasyX简介 EasyX下载安装 文字跑马灯 写在后面 写在前面 教你用C语言实现文字跑马灯效果,简直是C语言表白神器! 环境:C语言/C 软件:Visual Studi…

中科大蒋彬课题组开发 FIREANN,分析原子对外界场的响应

内容一览: 使用传统方法分析化学系统与外场的相互作用,具有效率低、成本高等劣势。中国科学技术大学的蒋彬课题组,在原子环境的描述中引入了场相关特征,开发了 FIREANN,借助机器学习对系统的场相关性进行了很好的描述。…

js执行异常处理 箭头函数 正则表达式

JS代码执行过程中,可能会出现异常 try-catch-finally try块包含可能抛出异常的代码,catch块包含处理异常的代码。finally 块始终执行,无论是否抛出异常。 try代码块出现异常 执行catch代码块 finally不管try代码有无异常 都会执行fina…

NX二次开发UF_CURVE_convert_conic_to_gen 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_convert_conic_to_gen Defined in: uf_curve.h int UF_CURVE_convert_conic_to_gen(UF_CURVE_conic_p_t conic_data, UF_CURVE_genconic_t * gen_conic_data ) overview 概…

给定序列a,选k个数排成一排,从左往右扫,如果当前数小于上一个数,那么当前数变成上一个数,然后形成最后的序列,问形成的序列有多少种

题目 #include<bits/stdc.h> using namespace std; #define int long long const int maxn 3005, mod 1e9 7; int a[maxn], b[maxn], cnt_low[maxn];//cnt_low[i]表示小于i的数字个数 int sum[maxn][maxn];//前缀和 int f[maxn][maxn];//f[i][j]表示选了i个数&#x…

第二十章——多线程

Windows操作系统是多任务操作系统&#xff0c;它以进程为单位。一个进程是一个包含有自身地址的程序&#xff0c;每个独立执行的程序都称为进程。也就是说每个正在执行的程序都是一个进程。系统可以分配给每一个进程有一段有限的使用CPU的时间&#xff08;也可以称为CPU时间片&…

中非市场开发攻略,走进非洲唯一废除死刑的国家

中非共和国是位于非洲中部的一个国家&#xff0c;是世界最不发达国家之一&#xff0c;经济以农业为主&#xff0c;工业基础薄弱&#xff0c;80%以上的工业品靠进口&#xff0c;中国是其重要的贸易伙伴之一。今天就来跟大家聊聊中非市场的开发攻略。文章略长&#xff0c;大家点赞…

2311d,d运行时勾挂

原文 上周,我开始转换_d_arrayliteralTX为模板.勾挂有点类似_d_newarrayT,因为用它来分配数组字面,如[1,2,3]. 注意,与也会初化新创建数组的_d_newarrayT不同,_d_arrayliteralTX只是为它分配内存.来限制传递给勾挂的参数数. 如果它也要初化数组,它必须按额外变参接收内容.我坚持…