1. 引言
根据世界卫生组织2022年全球口腔健康状况报告表明,全球受口腔疾病影响的人约为35亿人[1]。而在我国进行的四次口腔卫生流行病学调查报告的数据,我国居民受到口腔以及牙齿方面的困扰也不在少数[2]。在牙科治疗中,X光片是一种常见的诊断工具,在诊断中被医生用于检查牙齿、牙龈、颚骨和口腔骨骼结构的状态。医学图像在协助牙医观察患者口腔状态中起到重要作用,观察医学图像,识别牙科问题,使得他们为患者提供更好的治疗方法[3]。随着深度学习的发展,科技突破技术成熟,就医患者病史和数据信息处理逐渐庞大,因此对于医学图像处理的方法的需求也日渐增多[4]。
注意到这种需求之后,相对牙齿图像分割的研究开始变多变细[5]。其中不乏对传统图像处理在牙齿检测、下颌骨和牙槽骨分割三个方向的研究[6]。在2017年以来,深度学习的算法得到广泛关注,卷积神经网络(Convolution Neural Network, CNN) [7]、Mask r-cnn [8]、SOLOv2 [9]等等,使得医学图像分割处理得到快速发展。研究分析牙齿的形态和解剖特征来改进并优化算法,加强算法获取图像特征的能力提升精准度、掩膜贴合度等等[9]。口腔诊断中分为牙齿检测和编号[10]、牙齿分割[11]、龋齿检测[12]等等。其中牙齿分割和编号是口腔分析诊断的基础起点。牙齿分割识别图像中的牙齿区域,编号识别各个牙齿为其分配不同的号码。
图像分割主要分为语义分割、实例分割和全景分割,实例分割相对语义分割多了区分同一类的不同实例的功能。这样就可以对各个牙齿进行编号区分。早期工作主要是集中在检测[13]或者分割出牙齿[14]的单一任务中。也有结合起来做了一个33多类分割[15],但是只是进行研究并且mAP相对较低。在其中只对牙齿进行了分割但是没有独立编号[16]和独立掩膜[17]。以及相邻牙齿位移并重叠,导致在图像中非常难以准确定位目标并区分。并且深度学习预测牙齿掩膜分割面临着重要挑战,由于X光图像在牙齿边缘部分对比度低,和边缘区域高度相似。但是在医学领域,分割边界对于医生分析诊断和治疗都是尤为重要的。提高分割分割边界的质量是一项极为重要的挑战任务。图像边界的独特性和网络丢失捕获的特征信息都是影响预测掩膜贴合度的重要因素。因此为了解决在模型图像分割边界的质量,我们提出了YDBD。
YDBD基于YOLOv8 [18]但是针对牙齿医学影像特性进行了修改。X光图像包括牙齿和脸部骨骼,牙齿是分割目标,分割结果是预测掩膜。原本YOLOv8的颈部结构是不利于细节特征的提取的,在低像素的特征图来说边缘细节各种特征都会模糊,并且牙齿数据集相对来说目标密集识别不同实例的定位能力相对困难。因此对于原本的YOLOv8的结构,1) 加入对高像素特征图采集并拼接用于检测和预测掩膜,减少信息丢失。2) 对于密集目标实例类别定位,增加了空间可变形注意力机制DAT,动态调整空间采样位置聚焦特征图中目标区域。
2. 模型介绍
YOLO [18]算是较为广泛使用的模型,主要根据UNet [19]改进得到,在分割和检测上准确性和速度方面具有尖端性能,由于其跟新较快,这里就采用性能和精度平衡的YOLOv8了。YOLOv8其系列各个变体对不同的任务进行优化,保证高性能和高精度,便于在部署和开发的不同阶段使用。YOLOv8分割模型是在YOLOv8检测模型的基础上改进而来的,主要是在Head层增加输出了三个预测Box的特征图和三个用来生成Mask系数的特征图。
2.1. YOLOv8网络结构
实例分割主要是结合目标检测和语义分割的一种高级任务,使用目标检测区分出不同类别后用锚框进行目标定位,语义分割是区分出不同类别后用掩膜(mask)进行标记[14],实例分割就是区分不同实例用mask来进行标记。其中YOLOv8就是一种目标检测的模型,YOLOv8团队对Head层进行改动,由此得到YOLOv8-seg的模型。YOLOv8-seg实例分割主要分为Backbone层、Neck层和Head层,主要操作是对输入图片进行特征提取,进行下采样逐步降低图片分辨率和上升通道数。主干网络包括CBS、C2f和SPPF模块,再由UpSample模块扩大特征图再与上一层特征图进行融合。将不同特征池化结果拼接后再卷积融合生成特征表示,起到多尺度信息融合的作用。如图1所示。
2.2. 改进思路
在牙齿实例分割由于现有方法的局限性,口腔组织分割任然是热门话题。建模精度与图像分割质量直接相关[20]。由于X射线牙齿图像中,牙齿边缘模糊、牙齿重叠,相邻牙周组织、牙齿颌骨位置像素强度相似。此外还有牙齿根部轮廓会分裂变化成分支状,种种[21]原因导致牙齿实例分割复杂或者边缘模糊等。还有各种牙齿正畸和嵌体导致图像中经常出现金属伪影。在此之前主要是由有经验的牙医手动区分标记,消除相邻齿间噪点,但是效率低下[22]。
因此在本文中改进YOLOv8实例分割的基本模型,对其进行牙齿分割的特化,解决掩膜边缘不贴合等问题。主要的改进方法,引入可变形注意力卷积(Deformable Attention, DAT) [23]集成到其主干网络中,使得模型聚焦特征区域,提升分割的精度,使得牙齿的位置预测更加精准,减少实例识别错误。对于牙齿边缘分割预测掩膜不够贴合的问题,在Neck网络中插入BiFPN [24]的多尺度融合网络结构,收集浅层信息高像素完整牙齿特征图,形成双向跨尺度连接结构,将深层特征和浅层特征跨尺度融合,使得高像素的完整牙齿特征得以保留。最后在上采样部分,部分样本参数不足,导致一些牙齿没法被很好地分割出来,引入DySample [25]动态采样进行上采样,对低像素的特征图插值更加平衡,减少语义分割的伪影,使得上采样输出特征图更能提取牙齿特征。改进后的网络如图2所示。
Figure 1. YOLOv8 architecture
图1. YOLOv8网络结构
Figure 2. Improved YOLOv8 architecture
图2. 改进后的YOLOv8网络结构
2.3. 可变形注意力机制
YOLOv8原本的主干网络(Backbone)主要是在EfficientNet [26]改进得到,在实例图像分割任务中,越高像素的特征图往往特征更多,识别特征的多少决定了一个模型的性能强弱。于是[23]在原本的Transformer的基础上提出了空间可变形自注意力机制(Deformable Attention Transformer, DAT),形成了DAT。
核心设计是模块中用数据依赖来选择自注意力中键值对应的位置,使得训练过程中模型能够聚焦于牙齿特征区域。空间可变形注意力机制示意图如图3所示,在传统注意力机制中,权重是通过对位置固定的注意力模型进行计算得到的,而在可变形注意力中,可以动态地调整注意力模型的形状和大小,以更好地适应不同任务和输入数据的特点。这样使得DAT可以在原本感受野的基础上,通过偏移网络算出到特征位置的偏移量,改变原始感受野的范围,在叠加偏移量的过程中,模拟出目标移动旋转缩放,是一种适合牙齿定位能力的空间注意力机制。DAT流程图如图3所示。
Figure 3. DAT architecture
图3. DAT网络结构
输入特征图表示为
,生成一个点
的网格作为参考。将特征映射线性投射到query token q然后输入到轻量子网络
后生成需要的偏移量
产生变形点,在变形点的位置采样得到key, k和value, v并与q一起传入多头注意力机制,得到
投影得到输出z。
M头注意力机制(Multi-Head Self-Attention, MHSA)可公式为:
(1)
(2)
(3)
其中的
为softmax函数,
为每个头部维度。
表示来自第m个注意力头部的传入输出,
、
和
分别表示查询、键和值的插入。为了得到每个参考点的偏移量offset,特征映射线性投影到query token,q输入
生成偏移量
。
(4)
(5)
其中
和
表示变形的键和值,
表示偏移量。采样函数
设置成双线性插值,并使其可微:
(6)
其中
,且
可以索引到输出
的所有位置。g将仅在最靠近
的四个积分点上为非零,将公式(6)简化为四个位置上的加权平均,在对q;k;v执行多层注意,并采用相对位置偏移R。注意头的输出公式为:
(7)
其中
对应了先前处理的位置嵌入并调整,最终每个头部的特征被连接在一起并通过
投影到最终输出z公式(3)上。
图4为offset网络。具有两个非线性激活模块,输入特征首先通过一个5 × 5的深度卷积来捕获低像素的局部特征。采用GELU激活和1 × 1卷积得到二维偏移量,在卷积Conv 1 × 1中偏差会被限制,防止特征图提取位置的强迫偏移。
Figure 4. Offset network
图4. Offset网络架构
在本文中,主要采用部分的DAT注意力机制公式缩写如下:
(8)
(9)
其中
表示第m个头的查询投影,
表示偏移量,
为缩放因子,
表示参考点网格,BilinearInterp是双线性插值采样;
和
是Key和Value的投影矩阵。多头注意力输出z与原文的相同可缩写为公式。R表示相对位置编码,
为头维度,
是输出投影矩阵。公式如下。
(10)
(11)
这样模块能够聚焦于特征区域,从而捕获想要的信息特征精确定位牙齿位置。同时减少在需要特征外的区域无关部分的影响,从而减少计算量的同时增加牙齿定位精准度。
2.4. 改进Neck结构
YOLOv8 [18]原本的Neck函数缩略图,如图5所示。YOLOv8的Neck部分是其架构中的关键组件,主要用于多尺度特征融合,在对接收的Backbone部分的进行上采样,整体是PAN-FPN (Path Aggregation Network + Feature Pyramid Network)结合了自顶向下和自低向上的双向特征融合路径,通过主干网络下采样输出p3、p4和p5分辨率逐渐降低。再通过上采样与底层特征且大小相同的特征图拼接融合,利用下采样与之前拼接的融合生成多尺度融合后的特征提供个Head进行预测。YOLOv8原本的Neck结构,如图6。这样的方式会使得丢失一定的特征信息,且原本的Concat模块只进行低像素的拼接融合不同尺度特征,不能很好地将高像素的更多特征融合提取处理。由于原本X光医学图像牙齿边缘本就与背景区别不大,其图像灰度近乎相同,有时候肉眼都难以区分。高像素特征图特征无法很好的提取,导致分割效果精准度不高。
Figure 5. YOLOv8 Neck architecture
图5. YOLOv8原本Neck网络结构
为了解决在原本模型中Neck没有引进高像素特征图,导致预测牙齿掩膜贴合度不高的问题。越大的特征图分辨率越高,所持有的特征越多。因此在改进过程中采用了BiFPN [24] (Bidirectional Feature Pyramid Network, BiFPN)也是采用了双层连接,允许信息在不同分辨率级别之间双向传播,有助于更好地将底层和高层之间的特征,加大了特征的上下文传播,提升了模型的分割准确性。
BiFPN网络结构如图7(a)所示,在图中,蓝色传递低分辨率的语义信息,红色传递高分辨的位置信息。紫色线段则是在同层的输入和输出新加的一条边,这样做使得计算成本不大的同时也可以融合更多特征。BiFPN使得每个双向路径无论是自上而下还是自下而上都作为一个要素网络层,并重复同一层的融合,以实现更高像素的特征图信息被提取出来。在本文中使用的都是原本模型的模块,只是在图像融合的时候加入了同层级的特征信息,且新加入浅层的高像素特征图的线路,保证训练速度的同时效率高。调整不同层级之间的特征更好地匹配分割的任务需求,可以改进特征融合的效果。加入后的结构图如图7(b)所示。先对骨干输出的特征图进行卷积操作后,模拟BiFPN结构对同一层的特征进行融合,最大地保留高像素特征图的信息,使得牙齿边缘信息被保留,从而提高分割精度。
Figure 6. Neck architecture
图6. 原本Neck结构
Figure 7. (a) BiFPN architecture; (b) Improved Neck architecture
图7. (a) BiFPN结构;(b) 改进的Neck结构
2.5. 上采样改进DySample
在yolov8中上采样模块使用的是双线性差值算法,输入是经过主干网络后得到的低分辨率的特征图,使用双线性插值算法,将特征图的宽和高放大两倍,使得尺寸与要融合的上层特征图大小相同。主要原理是对目标位置的四个最近相邻像素进行加权平均,权重和距离相关,公式如下:
(12)
在这里
表示低像素的特征图,在点
上下左右邻近的的像素值,在
表示双线性权重,表示距离填充点的斜度。虽然快速且没有什么其他参数,但是细节模糊。上采样特征的质量对分类、定位和分割精度有很大的影响[18]。这样就会导致分割的时候很多牙齿边缘的细节以及牙冠的细节被模糊掉,于是为了实例分割的时候,特征图的细节可以较大程度的保留,且计算量不明显增加。就选择了DySample [25]最大的保留特征图上的特征。且DySample不仅在性能提升,由于在上采样时候放大特征图更精选,也可以解决参数量少的样本分割不准确的问题。动态上采样中同样使用低分辨率引导的特征作为输入,其主要是通过在采样时候控制初始采样位置,调整偏移的移动范围,将上采样分为独立的几个组。这里给定特征图
大小为
和采样集
大小为
,其中这个2表示x坐标和y坐标,网格采样(grid_sample)函数使用
里面的点位,将特征图
重新采样为大小是
的特征图
,函数如下。
(13)
普通的实现就是使用给定上采样比例因子s和大小为
的特征图
,输入通道C输出为
的线性层来生成大小为
的偏移
,通过像素重排整形为
。偏移
和采样网格
的和为采样集
。
(14)
再利用网格样本设置的采样来生成上采样特征图
,流程如下图8所示。
Figure 8. Sampling based dynamic upsampling
图8. 动态采样流程
图9左边是原本的采样方法,而动态采样的时候规定了初始采样位置如图9中,尽可能与原本YOLOv8的插值采集信息位置不同。并规定了一定的偏移范围,设置静态因子0.25,采样位置的移动范围受到局部约束如图9右。减少预测边缘的伪影,从而使得预测掩膜的牙齿边缘伪影减少,进一步提升预测掩膜贴合度。
Figure 9. Set sampling positions and offset scopes
图9. 设定取样位置和偏移位
3. 模型训练
本文采用了与Roboflow网站的公开数据集Tooth Types。总共数据集图像8329张,训练集7428张,验证集547张,测试集354张。全部为牙齿的x光图像,已经做好了标签。根据牙齿的位置进行了编号与划分为32类,这样对于分割后的结果也能根据位置进行划分。已经对数据集进行过预处理调整到大小为640 × 640。并在Tooth Types数据集上对训练样本。这个数据集对牙齿X光图像进行一定程度的旋转、剪切、模糊和曝光处理,旨在测试模型抗干扰能力。
3.1. 实验环境
为确保实验合理性,所有实验都是在相同的实验环境和配置参数下进行。实验环境包括Ubuntu11.4.0操作系统、NVIDIA RTX 4090显卡、python3.10.12、CUDA 12.4和torch 2.3.0,使用Ultralytics YOLOv8.3.96作为基础网络模型。训练参数初始输入图像分辨率为640 × 640像素,使用上述方法对模型改进,总训练轮数(epoch)设置为200,批次大小(batch)设置为8,其余参数均为默认参数。
3.2. 评估指标
常见的评估指标由TP、FP、TN、FN组成,是机器学习模型预测的基本指标。TP (True Positive)预测为i类,真值也是
;FP (False Positive)预测为i类,真值不是i类;TN (True Negative)预测不是i类,真值也不是i类;FN (False Negative)预测不是i类,真值是i类。其中精准率(Precision)表示正确预测的正例占所有预测为正例的比例,代表模型预测的准确率,公式(15)。召回率(Recall)表示正确预测正例占所有真实正例的比例。正确预测为某一类,占全部真值为某一类的比例。但是由于类别为N需要求其均值。
(15)
(16)
mIoU (mean Intersection over Union)表示预测掩膜和真实掩膜之间的交并比的平均值,由于分类有多个类别N,因此需要先算出每个类别的IoU再取所有类别的平均值。公式如下:
(17)
mAP (mean Average Precision)在分割任务的时候结合了检测框的精度和分割掩码的准确性。用于衡量模型在不同类别下的平均检测精度和分割掩码的准确性。公式如下:
(18)
mAP50表示IoU大于0.5,
指的是IoU阈值从0.5到0.95 (步长0.05)的平均值,是一个更加严格的评估指标。用于衡量掩膜与真值之间的关系。
3.3. 实验结果与分析
在这里对数据集进行了研究,以展示YDBD的每个模块如何对整体模型性能做出的贡献,验证DAT注意力机制、改进BiFPN和DySample这些模块,每次添加一个模块再次训练修改后的网络后,评估指标在测试数据集上计算。在相同配置下逐个添加模块,来评估这些模块对于整体模型性能的影响。得出以下表1不同模型下的评价指标。这里做的是分割任务主要采用的就是mask相关的精准度召回率等。实验结果如表一所示,结果显示模型在该数据集上预测精度为0.923比原模型上涨了1.7%,召回率上涨1.6%,mAP50上涨0.9%,mAP50-95上涨0.6%。结果如图10所示,左图是YDBD的预测结果,右图是YOLOv8s预测结果。
Figure 10. (a) YDBD; (b) YOLOv8
图10. (a) YDBD; (b) YOLOv8
加入DAT模块到主干网络中得到的精准度、召回率和mAP50均有所提升,反应了加入了DAT注意力机制之后,解决了牙齿分割实例归类错误的问题。但是mAP50-95的反而下降了,这里体现了预测掩膜不够贴合真实掩膜。分析以下原因可能是数据集中于小目标或者密集目标占比高的问题,使得模型在低IoU上表现良好,确实牙齿数据集都是相对密集的数据,并且提高置信度阈值会过滤到定位精准但是预测掩膜不够贴合的分割结果,从而导致高IoU下召回率下降的问题。DAT是将注意力分配在特征点位置的方式来提高分割精度,因此在识别位置的时候提升了准确率。
加入改进Neck结构后得到的mAP提升了,表明其先前设想正确,使用改进的BiFPN结构确实提升了边界感知能力,mAP提升表明预测掩膜和真实掩膜更贴合。召回率部分降低可能表明BiFPN在提取高像素特征图后,预测掩膜更贴合了,但是定位能力下降牺牲了对IoU的预测,导致FN增加之后,精度不变FP同步减少,所以召回率下降了。
引入DySample上采样以后精度提升,mAP50-95也有少量提升,表明DySample具有一定的边界分割提升确实与原本分析一致。而将两者同时架构进YOLOv8之后,他们完美地解决对方的问题,且DySample具有一定的少样本精度提升,所以两者同时用在Neck网络就使得边界伪影减少的同时还融合了更多高像素的特征信息,使得准确率,召回率mAP都有提升。在总改进网络上,三者将自身特点结合,使得相对原本模型的预测掩膜来说都有一定的提升。
下面是对比试验的结果如表2所示。主要对比了YOLOv11s和Mask R-CNN模型,v11的分割网络可以看到虽然在原本的精度有提升,但是高IoU下仍然会比YOLOv8低。而Mask R-CNN也同样因为漏检变多使得召回率下降。
Table 1. Model ablation experiment
表1. 模型消融实验
模型算法 |
Precision |
Recall |
mAP50 |
mAP50-95 |
YOLOv8s |
0.906 |
0.909 |
0.909 |
0.525 |
YDBD-DySample |
0.911 |
0.914 |
0.913 |
0.523 |
YDBD-DAT-DySAmple |
0.907 |
0.905 |
0.909 |
0.530 |
YDBD-DAT-BiFPN |
0.910 |
0.909 |
0.909 |
0.527 |
YDBD-DAT |
0.919 |
0.915 |
0.917 |
0.536 |
YDBD |
0.923 |
0.925 |
0.918 |
0.531 |
Table 2. Comparative experimental results
表2. 对比实验结果
模型 |
Precision |
Recall |
mAP50 |
mAP50-95 |
YOLOv8s |
0.906 |
0.909 |
0.909 |
0.525 |
YOLOv11s |
0.913 |
0.912 |
0.912 |
0.518 |
Mask R-CNN |
0.907 |
0.910 |
0.909 |
0.527 |
YDBD |
0.923 |
0.926 |
0.918 |
0.531 |
4. 结论
本文对牙齿图像分割技术进行了探讨,提出了一种基于YOLOv8的模型YDBD,用来对牙齿医学图像分割处理进行了改进,该方法先对牙齿图像进行检测定位同时生成预测掩膜。再对生成的数张预测图像进行评估得到的分割后预测掩膜和定位框。最后通过实验结果及分析来验证,改进后的算法相较于原本算法精确度、召回率和mAP都有提升,可克服牙齿预测掩膜不贴合,定位不精准的问题。该模型在用于检测X光牙齿位置和像素分割提供了一个有效的方法,为实例分割牙齿工作提供一定帮助和参考。
NOTES
*通讯作者。