一种基于曲面参数化的牙齿三维模型自动分割方法
技术领域
本发明涉及三维牙齿模型自动分割领域,具体涉及一种包含三维模型曲面参数化,图像分割,三维模型分割边缘细化的牙齿三维模型自动分割方法。
背景技术
口腔正畸是研究牙齿咬合不正的治疗方法和学问,传统上,首先制作患者的齿颌石膏模型,临床医师手工分析石膏模型并设计正畸手术方案。随着计算机技术的发展和三维扫描设备的改进,计算机辅助设计(CAD)系统出现在越来越多的领域。它利用计算机及其图形设备,帮助设计人员高效地完成高强度和重复性工作,例如复杂计算、信息存储、图形绘制等。目前正畸CAD系统在现代牙科医学领域占有重要地位,它首先利用三维扫描设备采集三维齿颌模型数据作为输入,然后协助牙医处理三维齿颌模型,包括提取、移动、删除和重新排列牙齿等操作,以模拟治疗的结果,能够大大减轻牙科医生的工作负担。
牙齿分割是正畸CAD系统中最基本、最关键的部分。目前很多牙齿分割方法被提出,但是都没有达到完全自动化分割的效果。虽然人的牙齿有着一些基本的几何特征,但是不同人的牙齿之间都存在或大或小的差异,尤其是患者的牙齿,往往有着严重的畸形,甚至还有蛀牙、牙齿缺失等情况,因此导致传统的基于几何特征的分割方法(以下简称几何方法)往往缺乏鲁棒性。另外在制作石膏模型过程中可能出现气泡,扫描三维模型数据时可能精度不够,这些情况额外增加了牙齿分割任务的难度。由于这些挑战的存在,某些分割方法提供了人机交互的界面,加入人工干预效果,以提高分割的鲁棒性,但这样会增加牙科医生的工作负担。
目前几何方法分割牙齿三维模型,通常计算模型表面平均曲率,不同牙齿之间以及牙齿和牙龈之间的边界有着较为明显的负曲率特征。通过阈值分割,即可保留这些目标边缘的曲率特征,去除噪声曲率。然后利用形态学、最优化等原理,获取所有牙齿的完整的分割路径,从而实现牙齿分割。整个过程中,由于上文中提到的复杂情况,阈值分割往往无法达到保留目标部分,去除噪声部分的效果。首先牙龈以及磨牙表面的褶皱沟壑也有着负曲率值,都会保留下来;其次在某些目标部分负曲率不明显,容易被当作噪声去除。以上因素都会对后续的处理造成影响,使通过几何方法分割牙齿三维模型精度低、分割效果不理想。
发明内容
为了解决现有技术中采用几何方法分割牙齿三维模型而导致的精度低、分割效果不理想的问题,本发明提供一种基于曲面参数化的牙齿三维模型自动分割方法。本发明首先基于曲面参数化算法,将三角网格映射为图像,在图像层面实现自动分割,然后映射回三角网格进行边缘细化处理,最终达到高精度、高鲁棒性的自动化分割效果。
本发明解决上述技术问题所采取的技术手段是:一种基于曲面参数化的牙齿三维模型自动分割方法,其技术方案在于:获取牙齿三维模型后,利用曲面参数化算法即将三维曲面映射到二维平面,得到牙齿二维图像;然后,通过基于U-net神经网络结构对牙齿二维图像进行自动分割,得到每颗牙齿的分割掩码;最后,通过基于网络流算法,将分割后的牙齿图像进行分割边缘细化,最终实现自动化分割牙齿三维模型。
其中,基于U-net神经网络结构对牙齿二维图像进行自动分割的过程是:
a:构建模型:基于TensorFlow建立U-net神经网络结构,分别建立两个分割模型,一个是牙齿和牙龈的牙齿-牙龈模型,一个是牙齿轮廓的牙齿轮廓模型;
b:准备牙齿图像数据集:其中,牙齿-牙龈模型的训练标签将牙齿图像中所有的牙齿标注为0,牙龈和剩余的其他部分标注为1;牙齿轮廓模型将所有的牙齿轮廓标注为0,其余部分标注为1,得到标注图像;
c:数据增强:将牙齿图像和标注图像同步进行旋转、平移、放缩、剪切以及反转变换得到数据增强后的数据集;
d:交叉熵作为训练的损失函数分别训练牙齿-牙龈模型和牙齿轮廓模型;
其中,i表示每个像素位置;标注图像作为实际概率分布
p,网络输出作为预测概率分布q,交叉熵H(p,q):
e:训练好b步骤中所述的两个模型之后,分别输入牙齿二维图像,即可输出预测分割掩码;
f:将e步骤得到的两幅分割掩码作差分,即得到每一颗牙齿的分割掩码。
进行分割边缘细化的过程是:
S1.首先获取b步骤所述的每颗牙齿标签区域,并取得当前标签区域的边缘顶点集合Vs;
S2.利用形态学操作扩展S1步骤中的牙齿标签区域,并获取扩大之后的标签区域边缘的顶点集合Vt;
S3.将Vs与Vt之间扩大出来的区域作为模糊区域,然后对模糊区域构建无向图G<V,E>;V表示模糊区域中的顶点集合,E表示模糊区域中的边集合;
S4.在集合V中增加虚拟节点:源点s和汇点t;集合E中增加源点s连接到集合Vs中各顶点的边,以及增加汇点t连接到集合Vt中各顶点的边;
S5.利用曲率以及S4步骤中所述的每条边的实际长度作为初始信息,设置每条边的容量,设置方法如下:
其中lij表示边eij的实际长度,H表示顶点曲率。
本发明的有益效果是:本发明将几何方法与神经网络相结合,首先基于曲面参数化算法,将三维模型映射为图像;然后利用神经网络,学习出牙齿图像分割的概率模型,实现了牙齿图像自动分割;最后从图像映射回三维模型,并进行分割边缘细化处理。最终达到高精度、高鲁棒性的自动化分割牙齿三维模型的效果。
附图说明
图1为基于曲面参数化算法,将牙齿三维模参数化到二维平面,然后映射到图像的流程图。
图2为U-net网络结构示意图。
图3为利用U-net网络训练牙齿-牙龈模型得到所有牙齿-牙龈分割掩码,训练牙齿轮廓模型得到每颗牙齿的轮廓分割掩码,两者差分即可得到每颗牙齿的分割掩码的流程图。
图4为由图像分割掩码映射回三维模型,并对分割边缘进行细化的流程图。
图5为单颗牙齿的俯视图。
图6为图5的后视图。
图7为图5的前视图。
图中的符号含义:101.牙齿三维模型;102.参数化牙齿模型;103.牙齿二维图像;201.牙齿-牙龈分割掩码;202.牙齿轮廓分割掩码;203.每颗牙齿分割掩码;301.映射回延迟三维模型结果;302.边缘细化结果。
具体实施方式
下面结合附图对本发明进行进一步的说明。
如图1,一种基于曲面参数化的牙齿三维模型自动分割方法,首先基于曲面参数化算法,将三角网格映射为图像,在图像层面实现自动分割,然后映射回三角网格进行边缘细化处理,最终达到高精度、高鲁棒性的自动化分割效果。
具体方案如下所述:
1.曲面参数化:
首先获取牙齿三维模型,三维模型可以看作三维空间中的曲面,利用曲面参数化算法即可将三维曲面映射到二维平面。曲面参数化在数学上等价于求解从曲面到平面区域的一个光滑双射。将三维映射到二维,这个过程必然会造成一定程度的形变。为了最大程度保持原来曲面的特征,使用基于保角映射的曲面参数化算法。对于曲面M上的任意一点p,通过p点的两条不重合的曲线c0、c1,那么保角映射前后两条曲线在p点的夹角α在大小和方向上保持不变;同时通过p点的任意一条曲线映射后的伸缩率均相同,与曲线的形状和方向无关。
Bruno Lévy在2002年发表的论文《Least Squares Conformal Maps forAutomatic Texture Atlas Generation》提出里基于最小二乘保角映射(LSCM)方法,利用LSCM算法,可以将三维曲面映射到二维平面,并且最大程度保持原来曲面特征。然后经过简单的线性映射,将平面三角网格转化为图像。另外采用Mark Meyer在2002年发表的《Discrete Differential-Geometry Operators for Triangulated 2-Manifolds》中的方法计算原始三维模型的曲率,然后将曲率值经过编码作为图像的像素值,从而得到牙齿二维图像。
2.图像自动分割:
图像分割一直是计算机视觉领域重要的研究方向,近年来随着深度学习神经网络的火热,图像分割有了巨大的发展。Olaf Ronneberger等人在2015年发表了论文《U-Net:Convolutional Networks for Biomedical Image Segmentation》,首次提出了U-net神经网络结构。U-net是一种比较成熟的卷积神经网络结构,对医学图像分割任务有着良好的效果。如图2所示,U-net网络结构输入原始图像,通过多层卷积层,池化层,反卷积层和上采样层,最终输出原始图像的分割掩码。简单来说就是对原始图像中的每个像素进行分类,判定其属于前景还是背景。
如图3,分别训练两个分割模型,一个是牙齿和牙龈的分割模型(以下用牙齿-牙龈模型代称),一个是牙齿轮廓的分割模型(以下用牙齿轮廓模型代称),具体步骤如下:
步骤一:按照图2所示,基于TensorFlow实现U-net神经网络结构。TensorFlow是由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护的专门用于处理机器学习任务的开源软件库。
步骤二:准备牙齿图像数据集,手工制作牙齿图像标签。其中牙齿-牙龈模型的训练标签将图像中所有的牙齿标注为0,牙龈和剩余的其他部分标注为1;牙齿轮廓模型将所有的牙齿轮廓标注为0,其余部分标注为1。
步骤三:进行数据增强,由于牙齿模型数据较少,达不到训练网络的要求,所以对牙齿图像进行扭曲、翻转等操作,扩大数据集。
Keras是一个用Python编写的高级神经网络API,它能够以TensorFlow,CNTK,或者Theano作为后端运行。我们的数据增强使用了集成在Keras内部的“ImageDataGenerator”函数,将牙齿图像和标注图像同步进行旋转、平移、放缩、剪切以及反转变换,其中旋转、平移、放缩和剪切变换的变换率在0.05到0.2之间。数据增强后的数据集由16张图像增加到1000张图像。
步骤四:分别训练牙齿-牙龈模型和牙齿轮廓模型,使用交叉熵作为训练的损失函数。交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。在本发明所述的模型中,标注图像作为实际概率分布p,网络输出作为预测概率分布q,那么两个分布的交叉熵H(p,q)就可以按照公式(1)计算得到:
其中i表示每个像素位置。
步骤五:训练好两个模型之后,分别输入牙齿二维图像,即可输出预测分割掩码。通过牙齿-牙龈模型可以得到牙齿-牙龈分割掩码,通过牙齿轮廓模型可以得到牙齿轮廓分割掩码。
步骤六:已经得到的两幅分割掩码作差分,即可得到每一颗牙齿的分割掩码。为了确保每颗牙齿都能够清晰的分割开,尤其是保证相邻牙齿之间有着清晰的边界,在差分操作之前对牙齿轮廓图像进行形态学处理,使得黑色的轮廓更粗更清晰,这样在差分之后得到的每颗牙齿的分割掩码之间有着更加清晰的边界,然后对每颗牙齿的分割掩码分别标注,完成所有的牙齿图像自动分割任务。
通过上述步骤,即可得到每颗牙齿的分割掩码。其中步骤一到步骤四只需要完成一次,训练好两个模型之后即可直接使用两个模型预测分割掩码,无需重复一至四的步骤。
3.三角网格分割边缘细化:
如图4,通过上述图像分割过程,可以得到每颗牙齿的分割掩码。经过形态学处理之后,得到的每颗牙齿的分割掩码比实际的牙齿小,目的是为了能够更加清晰的分割出相邻的牙齿。同时由图像映射回三维模型的过程中,必然会有一定的精度损失,分割边缘会出现非常明显的锯齿形状。
所以,基于网络流算法,设计了分割边缘细化方案,具体为:
给定一个无向图G=<V,E>,其中V表示图中的节点集合,E表示边集合。每条边eij都有一个容量Cap(i,j),从图中的一点s出发,经过图中的各个节点和各条边运送货物到另一点t,保证每条边eij的运货量flow(i,j)不超过其容量Cap(i,j),且除去s和t的每个顶点的进货量和出货量相等。当总运货量达到最大时,会得到一条容量加权和最小的路径,将s和t分割到两个不同的子图中,这就是网络流算法中的最大流-最小割定理。
S.Katz等人在2003年发表的论文《Hierarchical mesh decomposition usingfuzzy clustering and cuts》中提出了利用网络流算法分割三角网格。论文中首先获取得网格中的一部分区域作为模糊区域,然后将模糊区域中的顶点作为无向图顶点,边作为无向图的边,构建出无向图G<V,E>;其中每条边eij的容量Cap(i,j),按照公式(2)设置,
Ang_Dist(αij)=η(1-cosαij) (3)
其中s,t分别表示无向图中的原点和汇点,αij表示边eij的二面角,η表示0~1之间的一个系数。
在本发明中,已经得到了由图像映射回三角网格后的牙齿标签,首先获取每颗牙齿标签区域,并取得当前标签区域的边缘顶点集合Vs,在此基础上利用形态学操作扩展标签区域,保证包含实际牙齿边缘,并获取扩大之后的标签区域边缘的顶点集合Vt,同时将Vs与Vt之间(含Vs和Vt)扩大出来的区域作为模糊区域(如图5~7所示灰色区域)。然后对模糊区域构建无向图G<V,E>,V表示模糊区域中的顶点集合,E表示模糊区域中的边集合。另外集合V中增加两个虚拟节点s和t,分别表示源点和汇点;集合E中增加s连接到集合Vs中各顶点的边,以及增加t连接到集合Vt中各顶点的边。利用公式(2)设置每条边的容量效果并不理想,原因是牙齿实际边缘处的顶点和边非常密集,远比其他平缓的部分密集,这会导致虽然每条边的权值较小,但是经过这部分区域的路径加权和可能会比较大,因此加权和最小的路径可能会偏离实际的牙齿边缘。因此我们提出了新的方案,考虑利用曲率以及每条边的实际长度作为初始信息,按照公式(4)设置每条边的容量,
其中lij表示边eij的实际长度,H表示顶点曲率。经过上述改进,我们得到了更加精确、平滑的分割边界。
本发明中的方法与传统的几何方法不同,几何方法在分割过程中,容易受到三维模型复杂情况的影响,难以用确定性参数获得不同模型的完整分割路径,因此无法达到高精度、高鲁棒性的自动分割效果。而本发明的方法是将几何方法与神经网络相结合,首先基于曲面参数化算法,将三维模型映射为图像;然后利用神经网络,学习出牙齿图像分割的概率模型,实现了牙齿图像自动分割;最后从图像映射回三维模型,并进行分割边缘细化处理。
本发明所实现的方法能够自动分割牙齿三维模型,并且具有高精度高鲁棒性效果。在口腔正畸CAD系统中应用效果良好。
以上仅为发明的较佳实施例而己,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。