自动摘要: 背景 1、可自动分割牙齿,测量接触点间距离进行拥挤度计算,并以正负数值标记,模拟拔牙或IPR(邻面去釉)完成自动虚拟排牙。 一、产品概述 1.版本信息 版本号:V1. ……..
背景
1、可自动分割牙齿,测量接触点间距离进行拥挤度计算,并以正负数值标记,模拟拔牙或IPR (邻面去釉)完成自动虚拟排牙。
一、产品概述
1.版本信息
- 版本号:V1.0.0
- 创建日期:2021-10-19
- 审核人:杨新
2.修订历史
时间 | 版本号 | 修订人 | 主要修订内容 |
---|---|---|---|
2021-10-19 | v1.0.0 | 杨新 | 初始版本 |
2023-03-17 | V1.0.1 | 杨新 | 重构并梳理需求 |
2023-03-20 | V1.1.1 | 杨新 | 添加深度学习细节 |
3.开发周期
目标 | 预计时间 | 结束日期 | 是否完成 |
---|---|---|---|
开发 | - [ ] |
|
| 测试 | | | - [ ]
|
| 上线 | | | - [ ]
|
4.产品介绍
4.1 产品名称
正畸CAD-自动排牙(智能排牙)
4.2产品简介
根据特定的约束完成虚拟排牙
4.3产品构想图
4.4使用场景
服务于正畸
4.5产品定位
1、定位于医患沟通,用于展示2、用于技师生产,对生物力学,结构,美学有较高要求
二、文档说明
1、名词解释
术语 / 缩略词 | 说明 |
---|---|
生物力学 | 保证咬合后受力恰当 |
结构 | 对排列方式的约束 |
美学 | 指排列后符合牙齿美学缺陷 |
四、需求背景
1. 商业背景
- 不规则的牙齿排列不仅会导致美学问题,还会损害咀嚼的功能,畸治疗涉及繁琐的手工操作,并且培训专业的正畸医生也是一个漫长而且昂贵的过程,而且治疗质量很大取决于正畸医生的能力与经验
- 牙齿排列时正畸治疗中不可少的一步,即给定一组位置不良的牙齿,希望获得理想的牙齿布局。
- 希望通过基于学习的方式调整每颗牙在空间中的姿态,即6D位置(3*3平移旋转矩阵)
2. 学术背景
1.模板匹配法
- 根据特征或表面法向量进行模板匹配。
- 根据点的距离和法向量信息进行点云配准
- 基于统计学习和霍夫投票(机器学习)
- 基于2D的深度学习
2. 坐标回归法
- 假设对应3D模型对于训练时已知的,通过点预测估计映射点
3. 相关工作背景
- 数据库挑选:现有的排牙根据启发式规则进行牙齿排列,牙齿从牙齿数据库中选择最合适的牙列。
- 家具布局:解决3D物体相对于其他3D对象放置的问题,通过边界框粗略的估计对象,通过启发式规则定义能量函数,预测添加新3D模型的相对平移量。
- 3D生成:通过残缺3D模型或者图像生成3D模型。—>时代天使排牙方案(加入2D脸部信息)
- 通过标准牙齿模板训练,生成完美牙列,然后配准达到预期目标
总结:缺陷:它们没有保留输入对象的几何形状,可能造成位置问题。
4. 风险与应对
- 数据风险
- 数据获取难度大
- 从分牙数据中,进行仿造
- 数据处理难度大
- 去除医学牙齿特征,只获取旋转平移矩阵
- 数据获取难度大
- 硬件风险
- 显存不够
- 减少batchsize,如果为1还不够,利用CPU
- 显卡不够
- 将模型进行分割,使用工作电脑,服务器联合训练
- 显存不够
- 网络设计风险
- 无法拟合
- 使用当前SOTA配准网络或只使用pointnet
- 无法拟合
- 损失设计风险
- 无法拟合
- 去除医学特征损失,只要求还原
- 无法拟合
- 方案失败
- 使用多智能体强化学习
5. 数据调研
1、数据可以从隐适美获取–吴总
最理想
- 正畸真实病例,有治疗前已分割模型和治疗后已分割模型。
- 牙齿数量统一,至少400对。
- 网格不含有非流形。
- 没有缺失面片。
6.竞品分析
列出竞品对比的主要信息和关键结论,可点击插入链接,在此附上详细的竞品分析报告并添加在【附录】中
主要信息 | 关键结论 | 截图或视频 | |
---|---|---|---|
隐适美 | 里面有模拟器(用于医患沟通),评估器(用于技师调式) | 测量接触点间距离进行拥挤度计算,整体排列的并不是多好,但确实有改善 | |
五、需求范围
可条理性地罗列需求范围或信息架
PC 端
需求 | 简要说明 | 优先级 |
---|---|---|
实现排牙功能 | 在不考虑复杂约束情况下,实现牙齿简单排列 | P0 |
实现牙龈生成功能 | 对排好的牙齿进行牙龈生成 | P1 |
实现按约束进行排牙 | 考虑约束 特征进行排牙 | P2 |
六、功能详细说明
1.产品流程图
鼠标点击左上角
,点击画板选择流程图,即可进入流程图创作你的产品流程图
3.功能说明
序号 | 模块 | 功能 | 功能详细说明 | 交互图 |
---|---|---|---|---|
1 | 数据处理 | - 获取分牙后的数据 | 1、对分牙后的数据进行提取3、对目标模型进行分牙约束条件进行提取 | |
2 | 模型处理 | 1、才用传统计算方式2、采用深度学习进行预测 | 对分牙后的排列的位置进行预测或者计算 | |
3 | 优化模型结果 | 对结果进行排列 | 将结果进行排列,验证与目标位置的损失 | |
七、非功能需求
1、排牙是否有绝对确定目标,还是相对确定的目标
2、排牙后牙龈生成是否需要我们完成
3、排牙是否可以自由选择传统算法或者深度学习算法,传统算法遇到什么问题?
4、我们数据有多少
5、我们有多少时间来攻克这个问题
1. 算法简介
- 开发了一个基于深度学习的自动排牙框架。
- 解决由牙齿排列任务引出的结构化姿态预测问题。
- 设计个新的损失函数,函数基于排列错乱的牙齿布局的分布构成,它能够通过这个分布的内在差异、空间关系和不确定性,为牙齿对齐提供有效的监督。
2. 算法流程
八、参考资料
传统算法:
**参考论文: **自动排牙系统的研究及实现@郭策
- Spee曲线
- 该曲线与其咬合平面之间的最大距离作为下颚齐整度的一个指标,通常情况下下颚的咬合点并不是在一个完全的平面上,而是在一个曲面上,
- 可以将其看做磨牙与尖牙牙齿尖点所连成的一条曲线,在过咬合的咬合不正病例中,该曲线的曲率十分明显,因此将其变得平坦是解决过咬合的一种可行方法。一个理想的咬合应该具有一条较平滑或变化比较缓慢的Spee曲线。
- 在该曲线逐渐平滑的过程中,牙弓拥挤度会变大,造成前牙突出问题。通常情况下可以近似认为,Spee曲线深度每减少1mm,牙弓线拥挤度的增加量也为1mm。
相应的顶点集合S与咬合平面的距离D’,咬合平面由于可以手工指定,可能会有误差使得其不一定完全与实际相吻合,取min(D),则可以得到spee曲线深度为:
全牙比,前牙比
- 前牙比=下颌6个前牙牙冠宽度总和/下颌6个前牙牙冠宽度总和
- 全牙比=下颌12个前牙牙冠宽度总和/下颌12个前牙牙冠宽度总和
- 中国人建议,前牙比的正常范围为78.8%±1.72%,全牙比为91.5%±1.519%
牙齿轴倾度与转矩
理想的咬合中,每颗牙齿的轴倾度都保持在一定范围以内,一方面可以保证充分的咀嚼食物,另一方面可以使得上下牙颌之间建立正常的咬合关系通常情况下,
中国汉族人的牙齿轴倾度在一定范围以内
理想牙弓线
理想牙弓形态为:
原始牙弓线计算
初始牙弓线形态使用一条4次二维曲线
提取出的特征点投影到相应咬合面,设投影到平面后相应的点集为
该牙弓线的解析方程F(x)则可通过求解下式的最小值求得F(x)的相应参数来求得当前牙弓线
其中F(x)的解析式形式为
F(x)所在坐标系的坐标轴原点为牙齿两前尖牙特征点中点,y方向为牙弓深度方向
当前牙弓拥挤度:
- 设每颗牙齿对应的牙齿宽度为W
其中
目标是
取值尽量最小
牙弓线拟合
- 设理想牙弓曲线拟合度函数为K,
- 设相应牙颌的咬合平面方程为,P(x,y,z)
则可得到相应牙列两前牙连线中点A在该平面的投影点
以及过点A与其最后两宽牙点连线的垂足B,得到其在该平面的投影点Bp’
同时得到原始三维坐标系在该投影平面的二维坐标系,则可以得到从初始坐标系转换到该坐标系的矩阵M,
对于牙齿中心的每个投影点Cp,则经过变换后的点Cp’为M*Cp,之后计算点Cp’与理想牙弓线Y(x)之间的最短距离
最短距离
- 红色为原始,绿色为理想
对称性评判
对于牙颌中相对应于左右两侧的牙齿来说,首先做出一侧牙齿中心Cl关于对称面的对称点**Cl’**,
连接另一侧牙齿中心Cr与**Cl’**,
设Cl、Cr与对称面的距离分别为Dl、Dr,
设Cl’、Cr连线的长度为D
则非对称度可表示为:
值越小,对称度越高
碰撞检测
- 将模型A的中心点作为视点
- A、B模型中心的连线方向作为视线方向渲染模型A、B,
- 之后利用其深度缓存区来判断是否发生了相交来判断物体是否发生了碰撞。
旋转平移约束条件
算法参考
- 粒群算法
- 帕累托求解
- MOPSO算法
深度学习:
参考论文: TANet: Towards Fully Automatic Tooth Arrangement
深度学习,正畸学,牙齿排列,6D位姿预测,结构,图神经网络
论文基于以下论文进行合成https://github.com/jchibane/if-net
6D位姿预测:指预测每颗牙齿在三个维度平移旋转因此产生的六个自由度间信息.
网络架构: 基于if-nat网络,进行二次改造
分牙处理:FDI标记法 只保留牙冠
牙齿中心:采用每颗牙的几何中心为原点
特征编码:分别对单科牙和整个牙列进行编码
特征增强:牙和相邻牙,和相对称的牙,和一个预先定义的super node(上下颌各一个 位置如图所示)的关系,还有两个supernode之间的关系,共同被输入到FPM模块。
损失:主要有重建损失,空间损失
这是个预测问题
其他借鉴思想论文:
- 家具排列–https://github.com/brownvc/planit
- 重建-SDM-NET-中科院-源码向官网索取
注-QA:
0、数据预处理在三维牙齿网格上,精确的自动语义分割和标记存在许多现成的方法[^20],[^41],[^43]。我们使用[^41]中的方法,牙齿的标签是根据FDI两位数表示法来标记恒牙。
1、特征增强如何增强的,超级结点(super node)具体是什么,上颌与下颌如何联系的?
- 特征增强:颌骨级特征提供全局特征,牙齿级特征提供局部特征,基于图的特征传播模块实现几何信息的传递。
- 特征传播:特征传播模块
基于[^19]中的传播模型。牙齿图
,其中
是结点的集合,每个结点对应一个牙齿
,
是图的无方向边的集合,
是结点嵌入。 - 超级结点:两个超级结点分别代表上颌与下颌。
- 牙齿图中边集合:
的构成有四种类型的边:
,即
,- 同一颌中相邻牙齿的关系:
, - 同一颌中左右对称牙齿关系:
; - 每个牙齿结点与其对应颌的超节点之间的关系:
;
- 两个超级结点之间的关系:
是两个超级结点之间包含单条边的集合,即连接了不同颌中上下对称牙齿。
- 同一颌中相邻牙齿的关系:
2、特征编码,单颗牙与牙列是否有什么不同?牙齿编码与牙颌编码的区别?颌骨级特征提供全局特征,牙齿级特征提供局部特征,
3、牙齿中心,为何选用几何中心,是否可以用向量表示牙齿中心?使用牙齿的几何中心(Sec3.3.1)使编码器能够采用与平移无关的方式专注于提取几何特征
4、他的损失是否足够预测排列位置(你认为是否合适)?
5、本文方法与其他方法之间的区别?****5.1 本文方法与6-自由度姿态估计问题的区别?
- 6-自由度姿态估计问题解决的是已知的3D形状的姿态与其图像观察之间的关系;
- 牙齿排列问题是预测排列整齐后的牙齿的姿态,是通过学习正畸治疗的临床数据来解决这个问题;
5.2. 本文方法与家具排列是否有不同点及其相同点?
- 人造家具形状具有明显的尖锐特征,而牙齿模型中的牙齿不具备这种明显的特征,无法精确地定义方向;
- 家具布置问题为给定的室内场景生成不同的布置,而牙齿排列问题是给出每个特定患者的最佳牙齿排列;
5.3 本文方法与3D形状生成问题的区别?
- 3D形状生成问题旨在根据用户条件从图像或者部分模型中推断来生成逼真的三维形状,但是不会保留输入对象的几何形状;
- 牙齿排列问题中保留输入对象的几何形状是一个硬约束;
6、用你的方式解释下具体网络架构流程,请标注你认为重要的信息
7、他的数据是怎么样的,需要注意哪些关键点?结合下图描述其数据生成方式与数据流动方式?
数据预处理
- 牙齿的标签是根据FDI两位数表示法来标记恒牙。
- 只保留所有牙齿的牙冠用于牙齿排列中的计算。
- 用这些冠组成的模型定义一个局部坐标系,通过将其与世界坐标系粗略对齐来标准化位置和方向。得到牙冠标签的集合,及其对应的牙冠的点云。(记得正态归一化)
- 提取每颗牙的中心,每个牙齿中心之间的距离以及到达”自定义点”的距离,上下颌两个自定义点直接的距离,如图所示
- 可通过自定义变换扩充数据。
网络设计
- 利用pointnet处理点云的空间不变性。
- 在pointnet嵌入空间变换网络提取变换矩阵。
- 不允许对输入点云缩放,扭曲,必须保证点云形态一致性。
损失设计
- 几何重建损失,参考正交Procrustes。
- 几何空间关系损失,参考牙齿之间距离取0.5,到自定义点等距等等
- 条件加权损失,通过用户要求条件,动态改变
评价指标
- 通过逐点计算距离,度量与真实治疗后的误差百分比。