基于检测辐条分割牙齿
0 获取数据
与二维(2-D)相比,在三维领域工作也有固有的额外复杂性。因此,我们没有直接处理VRML数据,而是设计了应用于从3-D数据生成的距离图像(也称为深度图)的算法。这里的范围图像是一个像素数组,其中每个像素值(灰度级)表示从参考表面到物体上的采样点的高度。由于距离图像是一个二维矩阵(尽管它在强度值中编码了三维信息),复杂的三维牙齿分割问题大大简化了。我们采用平面视图和全景范围图像提供牙齿分割所需的三维信息。还需要注意的是,图像大小约为100 KB,而原始网格数据为10 MB。
1 对齐
手动识别四个参考点,确定咬合平面。第一磨牙的分布颊尖(标记为1和4)和第一前磨牙的颊尖(标记为2和3)。参考点不需要精确定位,因为程序会在手动选择的点附近搜索最高点。
使咬合平面平行于x-y平面,且两个分布颊尖具有相同的y坐标
2 得到平面视距图像
将三维数据的顶点映射到一个规则间隔的二维数组。
每个像素对应的空间间距为毫米。最高的15毫米的三维数据被量化为256个灰度级,每个灰度级的高度分辨率为0.059毫米。
3 检测牙脊
梯度方向分析(GOA):梯度方向上的不连续将表明局部峰的存在
4 两步拟合牙弓
第一步:三阶多项式曲线拟合,通过加权最小二乘拟合得到最佳拟合曲线,使误差项最小
为了减少牙弓尖端附近的拟合误差,我们引入了一个权重函数,以更强调前牙的特征
接下来,我们继续设置一个像素宽的检测辐条,垂直于检测的弧度,并沿着每个辐条搜索强度最大的像素[图3(b)]。辐条间距目前设置为1.5像素(相当于0.5 mm),足够小,不会错过正畸特征。图3©中的点显示了检测到的局部峰,包括确定最终牙弓所需的正畸特征。
第二步:我们通过使用四阶多项式的加权最小二乘拟合,找到适合这些局部峰值的曲线。
5 全景深度图像
我们通过计算牙齿的颊(外)面和参考面之间的距离生成一个全景范围图像,参考面是通过将检测到的牙弓(描述为一个四阶多项式)沿垂直于平面的方向延伸来定义的。因此,参考面被写为
其中a,b,c,d是多项式的系数。在拱门上的任何一点(x0,y0)上,垂直于参考面的平面是
这个平面与牙齿的颊面相交的点是通过取那些位于距离平面较短距离内的顶点(样本点)得到的。这是必要的,因为顶点可能不完全在平面上
从选定的点到参考表面的距离随后被计算和量化到256灰度级,以产生距离图像。图8(a)为像素大小的全景范围图像。像素大小垂直为0.3 mm,水平为0.5 mm,其中一个灰度级约为0.06 mm。很明显,产生距离图像的过程不会造成任何重大的信息损失。
对于全景图自己的理解:
1.颜色:越远离参考面越白
2.横坐标:相当于把牙弓拉成水平
3.纵坐标:在三维模型中垂直于参考面牙弓、对齐面的平面,沿该平面从牙弓到最外侧(颊侧)的距离
牙齿分割首先在平面视图和全景范围图像中检测牙齿之间的间隙。然后将这两种结果结合起来得到间隙的位置和方向。一个完整的分割还需要牙齿与牙龈分离
6 平面视距图像中的齿间隙检测
牙齿间隙,在平面视图范围图像中以直线沟槽或山谷的形式出现,以大约90度的角度与牙弓相交。在早期的研究[1],[2]中,假定的牙弓是牙蜡印的曲线轴,这与牙齿的排列没有直接关系。这与牙齿是否排列整齐无关。然而,由于我们的目标是处理带有各种错牙合的牙模,所以使用基于牙齿的牙弓是合适的(上节)。我们沿着被检测的拱门设置检查辐条并垂直于它,并围绕它们与拱门的交点旋转它们[图5(a)]。图5(b)所示为沿辐条旋转前后的两个高度廓线。当检查辐条正确地定位和导向与齿间隙,辐条的最大高度值将小于其他位置和导向的高度值。因此,齿间隙的检测被简化为在这些高度值与位置(深度图)的图中寻找显著的山谷。
步骤如下:
(1)设置垂直于牙弓的检查辐条,辐条间隔等于扫描仪的平均空间分辨率。
(2)求出该检测辐的最高像素的深度值
(3)绕交点旋转-30°、-20°、-10°、10°、20°、30°
(4)同时求出每个方向的最高像素的深度值
(5)从7个值中选择最小的深度值,找到该辐条的最佳方向,并将深度值和所选方向存储
(6)对所有检查辐条重复步骤2)-5)
(7)在存储的最小高度值g1(i)上应用有限脉冲响应(FIR)带通滤波器(BPF)
数值(深度图)显示沿牙弓的深度轮廓[图6(a)]。我们想要检测深度图中的山谷,因为它们对应于间隙。为了消除由铸件残余倾斜和齿列固有形式引起的低频偏置,以及噪声引起的高频波动,我们在g1(i)上应用FIR BPF
*表示卷积,k(i)是有31个系数的BPF的点扩散函数
采用汉明窗窗法设计滤波器。在0.10和0.25处的截止频率(归一化为奈奎斯特频率)分别对应10和4 mm,大致相当于恒齿的近中远距离范围(即前后长度)
带通滤波后的深度图缩放到范围[0,1],用g’BPF(i)表示[图6(b)]。为方便起见,我们将1-g’BPF(i)表示为f1(i),并用f1(i)表示牙间间隙的位置。我们可以通过参考g2(i)来获得第i个空隙的方向。
指标f1(i)对距离图像中出现的谷响应强烈;因此,它可以有效地检测后牙之间的间隙和错位牙之间的间隙,两者都是相对较深的。一个可能的缺点是很难识别门牙之间的浅间隙。为了解决这一问题,我们引入了从全景距离图像中获得的另一指标。
这里的知识点主要是:
1.FIR BFP是啥?
2.怎么应用在这篇论文?
带通滤波就是只让中间频率过,不让高低频率过。海明窗是构造fir的方法
6.1 卷积
来源:郑君里《信号与系统》
6.2 点扩散函数
使图像扩散出去一点?
https://blog.csdn.net/qq254612999/article/details/50509793
6.3 带通滤波器BPF
6.4 有限脉冲响应FIR
时域波形and对数幅频特性
6.5 如何应用?
这个应用的目的是:用FIR-BPF(有限脉冲响应带通滤波器)去除了高频和低频的噪音
如何设置这个滤波器?
汉明窗
7 全景距离图像中的齿间隙检测
我们首先使用表面法线分析(SNA)[22] 通过寻找 表面法线突然改变方向的点来检测山谷和山脊(或屋顶边缘)。我们在水平方向上应用SNA来检测由间隙形成的垂直山谷。让全景范围图像为d(i,j)。单位曲面法线为
其中p(i,j)和q(i,j)分别表示偏d(i,j)/i和偏d(i,j)/j。索贝尔算子再次用于估计偏导数。
矩阵卷积:http://blog.sina.com.cn/s/blog_5562b0440101a2pr.html
我们取表面法线的d分量为正,因为只有面对观察者的表面是可见的。图中的不连续将表示图像中山谷和山脊的存在。由于我们只对检测垂直山谷感兴趣,我们在==水平方向(i方向)==搜索这些不连续[一维(1-D) SNA],它们是通过
索贝尔掩模用于估计梯度的水平分量。为了把山谷和山脊分开,我们用符号
拉普拉斯算子
∇^2>0:三维图像里代表相对于z轴,图像是凹的(山脊是凸的,山谷是凹的)
Nvalley如上图
在第二阶段,我们得到的垂直投影
第二个间隙指示器f2(i)是p(i)缩放到范围[0,1]【这里用到了归一化吗?】。f2(i)的峰值可以用来识别齿间隙。
指标f2(i)特别有效时,牙齿排列良好,因此间隙几乎垂直。它特别适合于检测门牙之间的间隙,因为它们看起来像又长又突出的山峰。相反,如果牙齿排列严重失调,f2(i)可能就没有那么有效了。然而,在这种情况下,指示器f1(i)工作得很好(如上所述)。应当强调,这两个指标是相辅相成的
在这里使用GOA代替SNA是可能的,但后者被认为在这种情况下更可靠,因为它检测山谷独立于视点。图9显示了全景范围图像的轮廓,其中每个弧线表示一个牙齿。斜率向中心弧的左侧单调增大,向右侧单调减小;因此,由于梯度方向没有变化,GOA将无法检测到两个圆上的齿间隙。如牙弓与牙齿的排列不协调,就会出现这种情况。
这里的知识点主要是:
1.表面法线分析SNA[22]
2.Sobel operator、Sobel mask
---------------以下内容暂时无用--------
7.1 表面法线分析(SNA)[22]
图像分割是距离数据分析中最重要的问题之一。这种对应描述了解决这个问题的混合方法,其中混合是指基于区域和基于边缘的考虑的结合。
将三维物体的距离图像划分为表面基元,这些基元在其固有的微分几何性质上是均匀的,在深度和表面方向上都不存在不连续。该方法基于局部hi二次曲面拟合得到的偏导数的计算。然后通过计算高斯曲率和平均曲率,以曲率符号图的形式得到基于区域的初始分割。
另外两个基于边缘的初始分割也从偏导数和深度值计算:跳跃和屋顶边缘地图。
然后将这三幅图像地图结合起来生成最终的分割。对多面体和曲面物体的合成距离和真实距离数据进行了实验,得到了实验结果。
(显然本文利用的是后者)
1)跳跃边缘的大小,用Mjump表示,是计算一个点与它的八个相邻点之间的最大深度差。对于点(x, y),公式如下:
其中z为由(4)计算的拟合多项式的值。最后对边缘图像进行阈值分割。目前,阈值是根据边缘幅值的均值和标准差自动确定的。
2)检测表面方向不连续:顶板边缘图:通过表面法线分析可以定位顶板边缘。屋顶边缘的大小,用Mroof表示,计算为相邻单位表面法线之间的最大角差。其正式形式为:
其中n表示由一阶偏导数估计得到的单位曲面法线。在最后的分割阶段,这也必须与kh符号和跳跃边缘图相结合
回想上一节,距离图像中的不连续是通过使用表面拟合误差在每个点上选择最佳窗口来粗略估计的。表面拟合误差突出了不连续面,但不能区分跳跃面和顶板不连续面。这些边缘类型的辨别被认为对以后的对象分析很重要。由于这个原因,我们使用不同的算子来定位这些不连续点
8 综合指标
值得注意的是,这两个牙间隙指标来自于相同的牙弓和共享相同的横坐标。深度图中的第i个值和全景范围图像的第i列提供了牙弓上第i个样本点的深度信息。因此,可以直接将这两个指标结合起来,给出一个单一的测量方法,作为牙齿间隙的可靠指标。我们需要一个能产生积极结果的综合指标,这两个指标中的任何一个都表明存在间隙。一个简单而有效的测量方法是f1(i)和f2(i)的平均值。
如果两个指示器中至少有一个成功地检测到齿间隙,就会给出一个峰值。图10为图2(a)口腔模型的综合指标。
我们确定牙齿间隙的位置和方向如下。
假设我们知道牙齿的数量N(通常是14,除了智齿)。
为了找到N-1齿间隙,我们首先在复合指标fc(i)中选择N-1的最高峰,并在f1(i)中检查它们对应的高度。
如果峰值较大(>0.5),我们分别从深度图g1(i)和g2(i)确定齿间隙的位置和方向。
在深度图g1(i)中,在复合指标fc(i)中相应的峰值附近寻找局部极小值。
当峰值较低(<0.5)且f1(i)不可靠时,我们使用第二个指标f2(i)确定牙齿间隙的位置,并认为其方向垂直于牙弓。
当前牙排列良好时,这一步骤是必需的,因为它们的间隙往往太小,无法在平面视图中发现。
有了第一磨牙的两个分布颊尖的位置(Section II.B),我们可以将沿着两牙尖之间的牙弓所能检测到的牙间隙的数量限制在N-3。在两个尖的附近,在外面可以发现另外两个间隙。这样,我们的方法就不依赖于智齿是否存在。当复合指标中只有m(<N-1)个突出峰时,我们将尝试确定牙齿间隙,并告知用户缺失间隙的数量,N-M-1。
虽然我们假设这是已知的,但考虑到牙齿的缺失,这是一件微不足道的事情。在深度图或全景范围图像中,一个又深又宽的山谷将清楚地表明一个或多个牙齿缺失,利用牙齿大小的统计知识来确定实际数量
9 牙齿与牙龈分离
在需要建模或设计牙冠[4]-[7]的应用中,牙齿需要从牙龈中分离出来,而提取的牙龈部分将用于需要测量牙龈的应用中。牙齿和牙龈之间的边界(牙龈边缘)出现在全景范围图像的每一列的山谷。山谷可以通过在图像的每一列中寻找表面法线上的不连续最大的像素来定位。自山谷的清晰度不同前牙(浅)后牙齿(深),我们使用一个家庭等微分算子T[1, 0, 1],[1, 0, 0, 0, 1]罐内[1,0,0,0,0,0,1]T计算不连续表面法线(使用一维系统网络体系结构(SNA))。在图像的每一列中,我们将获得三个候选谷像素。根据它们的可靠性,也就是导数的大小,对它们进行排名。将最可靠的候选材料连接起来,初步绘制出胶边界,并用
其中i为图像某一列的索引,tj(I)为第i列第j个候选项(j=1,2,3)的行。如果s(i)超过一个预设值,则认为这个谷像素与它的相邻像素隔离太过,并将其替换为列的第二个候选像素(如果需要,则是第三个)。在不太可能发生的情况下,一列的所有三个候选点都不能满足平滑标准,我们插值边界像素。13(b)和(d)显示了检测到的牙龈边界的两个例子。
二阶导数算子:https://blog.csdn.net/zaishuiyifangxym/article/details/89840396