使用目标检测技术进行质量评估

二、使用目标检测技术进行质量评估

随着目标检测技术逐渐成熟,Faster-RCNN、YOLO-v5等模型已经被证明了能在各种识别任务中得到高效率、高精度的结果。在眼底多病种诊断中,由于某些病种如青光眼、黄斑病变等只依赖眼底图像的局部区域,因此在后期多病种诊断环节将整体图像分类结合局部区域分类能得到更准确、更具可解释性的结果。因此进一步升级系统的时候需要在多病种诊断前增加目标检测模块,用于提取眼底彩照的视盘区与黄斑区。与此同时,该检测模块也可起到第一步的质量评估作用,若图像中无法识别视盘区与黄斑区,该图像的病种诊断也将没有意义,因此可以进行筛除。在本节中,将使用YOLO-v5模型对图像进行质量评估。

(一)数据集处理

原始数据集没有视盘区的标签,因此只能依赖手动标注。为了提高效率,在标注的时候采用半监督的方式,即先标注小部分的样本,训练出一个模型后用其预测其余的未标注样本以生成更多的样本标签,再手动对这些标签进行修正。每次的训练样本与待预测样本均包含每个病种的图像,以提高模型鲁棒性。同时在训练时还需加入部分自然图像,并不给予标签,让模型避免将自然图像中相似的形状识别为视盘。

由于该流程在后续可能还需要用识别的视盘辨别其余病种,因此在标注时需要将视盘周围的萎缩弧或其余病变情况一起标注,部分标注样本见图7-19。

首先手动标注300张样本,其中30张作为验证集、270张作为训练集。模型训练到收敛后,用其预测300张测试集样本,并对结果进行人工修正。再用得到的600张图像训练,并预测新的600张测试集样本,以此类推,最终得到4 000余张有标签的样本,以及一个视盘识别效果较佳的识别网络。由于YOLO-v5自带了很强的数据增强功能,因此初步的数据集除了缩放尺寸外不需要其余的预处理手段。

(二)模型搭建

2020年6月,Ultralytics发布了YOLO-v5,其性能与YOLO-v4不相伯仲,且目前在推理速度上最强。YOLO系列的目标识别模型属于单阶段(one stage)算法,与Faster-RCNN等双阶段算法不同,单阶段算法不需要先找出感兴趣区域(ROI),而是直接对框的坐标和类别进行预测,因此会有很高的运算效率。早期该方法虽然快,但在精度上与双阶段算法有一定的差距。然而随着模型的不断改善,如今YOLO已能达到较高的识别准确率。如图7-20所示,在COCO数据集中YOLO-v5模型的各参数效果远超谷歌开源的EfficientDet模型。

在输入端,YOLO-v5采用了和YOLO-v4一样的Mosaic数据增强方式,对图像进行随机裁剪、缩放、排布。这种数据增强方式对小目标的检测效果有很高的提升,在本任务中对边缘不完整的视盘检测,以及不含视盘的目标检测也有不小的效果提升。图7-21是使用Mosaic数据增强后的部分训练样本。

YOLO-v5使用CSPDarknet作为Backbone,从输入图像中提取丰富的信息特征。跨阶段局部网络(cross stage partial networks,CSPNet)在保证推理速度和准确率的前提下减少了模型参数量和FLOP值,从而得到了很小的模型尺寸。实现这个效果的方式实际上借鉴了DenseNet的思想,复制浅层的特征映射图并通过Dense block发送至下一个阶段,从而将基础层的特征映射图分离出来。这种方法可以将梯度的变化完全地集成到特征图中,解决了其他卷积神经网络框架Backbone中梯度信息重复的问题,从而减少网络参数量。将跨阶段局部网络的思想与Darknet53进行结合及改造,每个Stage穿插CSP的结构即成了YOLO-v5的Backbone网络。

图7-19 视盘标注示例

图7-20 YOLO-v5在COCO数据集表现

(图自:https://github.com/ultralytics/yolo V5)

图7-21 使用Mosaic数据增强后的眼底图像

YOLO-v5使用路径聚合网络(path aggregation network,PANet)作为Neck来聚合特征,生成特征金字塔。特征金字塔会增强模型对不同缩放尺度对象的检测,从而能够识别不同大小和尺度的同一个物体。在YOLO-v4的研究中,PANet被认为是最适合YOLO的特征融合网络。该网络的特征提取器采用了一种新的增强自下向上路径的FPN结构,改善了低层特征的传播;同时使用自适应特征池化恢复每个候选区域和所有特征层次之间被破坏的信息路径,聚合每个特征层次上的每个候选区域,避免被任意分配。特征聚合后输入模型的Head进行定位与分类,在特征图上应用锚定框,并生成带有类概率、对象得分和包围框的最终输出向量,便完成了整个模型的流程。

在类别概率得分以及目标分数中,YOLO-v5均使用交叉熵损失函数进行计算,而bounding box采用了GIo U Loss作为损失函数进行计算,公式如下。

其中A、B分别代表标签框与预测框,我们根据这两个框找到一个最小的封闭形状C,让C可以把A、B包含在内,接着计算C中没有覆盖A和B的交集面积占C总面积的比值,并用A与B的Io U减去这个比值,即A与B的GIo U值。可直接将其作为距离相减,从而得到最终的损失值。

(三)训练结果

在目标检测的过程中,有几个比较重要的指标,分别为精确率(precision)、召回率(recall)以及m AP值。

根据精确率和召回率可画出P-R曲线,曲线下面积越大表示图像在不同分布的情况下得到的结果更优。该面积值称为mAP值,是当今目标检测中使用最广泛的评价指标之一。

由于任务只有一个类别,且特征较明显,属于相对简单的任务,因此使用参数量最小的YOLO-v5作为检测模型。完整的过程经过了3次的数据扩增,每次结果都达到了很好的效果,此处仅展示最终一次训练的过程以及结果。

损失值越低表示预测的结果与标签结果越接近。图7-22为50次迭代中训练集与验证集的损失值变化曲线。其中Box为预测框损失值,Objectness为目标分数的交叉熵损失值。

图7-22 YOLO-v5损失值变化曲线

从损失值变化曲线中可以发现训练集和验证集的收敛情况良好,没有发生过拟合的情况。为了更详细地得到最终验证集的各项指标,在图7-23中绘制了验证集每次迭代的精确率、召回率、IoU阈值为0.5时以及IoU阈值在0.5到0.95(步长为0.05)时平均的m AP值,分别用Precision、Recall、mAP@0.5以及mAP@0.5:0.95表示。

图7-23 YOLO-v5验证集指标变化曲线

从上图可看出,除m AP@0.5:0.95外,其余各项指标均收敛至1左右,也就是说假阴性率与假阳性率十分低,模型预测效果极佳。图7-24展示部分验证集的视盘识别结果。

图7-24 YOLO-v5验证集的视盘识别结果

(四)检测模型的质量评估效果

在训练时模型使用的均为质量较高的样本,因此当遇到低质量图像时会无法检测出视盘,或者对视盘评分较低。图7-25是最终模型对某些低质量图像的检测结果,可以发现图像无法检测出视盘或有很低的分数,只要设定一定的阈值即可进行筛除。

图7-25 YOLO-v5对低质量图像的检测结果

在后期如果要进一步提高对低质量图像的筛除准确度,除了调整阈值外可以将低质量图像一并加入训练集中并不给予标签,让模型主动忽略对该类图像的视盘检测。