基于改进的YOLOv5网络的舌象检测算法

2024-02-21 03:47辛国江
计算机技术与发展 2024年2期
关键词:查全率舌象精度

张 杨,辛国江,王 鑫,朱 磊

(湖南中医药大学 信息与工程学院,湖南 长沙 410208)

0 引 言

舌诊对于中医的望诊来说是一项必不可少的步骤,通过观察舌象诊断人体病理变化[1]。传统舌象分析是依靠中医医生的判断分析,但是由于光照、环境、湿度等自然环境因素影响,极易造成诊断人员的视觉疲劳[2],从而导致误诊延误患者病情。正确客观的舌诊可以帮助医生更好地分析病人的身体状况,从而更快确定患者病情。同时智能舌诊分析是舌诊客观化的重要部分,舌诊智能提取是舌诊智能化的关键。

国内众多学者使用传统机器学习的方式,如张新峰等[3]使用粒子群优化算法对SVM模型参数进行优化,对舌象测试样本具有很好的分类效果。颜建军等[4]使用随机森林模型对建立的齿痕舌特征向量进行分类,进而完成齿痕舌的分类。王奕然等[5]使用Adaboost算法对舌象进行初次分类,然后结合级联框架的方式完成舌色的分类任务。以上传统机器学习方法虽然能够较好地分类提取舌象,但还是存在一定不足:算法的稳定性难以达到日常中医望诊的需求,需要人为辅助;算法的时间复杂度较高;检测过程受自然环境影响较大,抗干扰能力较弱。

近年来,随着卷积神经网络的流行,深度学习在图像领域得到快速发展[6]。国内外学者将深度学习方法应用到舌象检测与分割领域。目前主流的目标检测算法主要分为双阶段检测算法和端到端检测算法。双阶段检测算法主要包含:R-CNN(Region-CNN)[7],SPP-Net[8],Fast R-CNN等。基于端到端的检测算法包含YOLO系列算法 和SSD算法。Tang等[9]在一阶段引入级联卷积神经网络检测舌象区域,在二阶段将舌象区域发送到分别以ResNet-50和VGG-16为主干的细粒度分类网络完成舌象识别。刘梦等[10]通过迁移学习对500例舌象进行分类研究,图像识别结果显示,Faster R-CNN算法不受舌象中病例位置的影响,对舌象分类效果具有很强的适应性。刘佳丽等[11]首先在YOLOv3网络上添加密集连接,使网络融合底层特征信息,然后结合通道减枝,缩减模型大小,最后完成裂纹舌的分类。双阶段检测算法精度较高,但对候选框修正分类,需要消耗大量的时间。与其相比,端到端的网络无需产生大量的候选框,可以预测出边界框,无需占用大量的内存空间,同时能保证一定的精度,适合移动端的部署。

针对内存空间和精度问题,该文采用YOLOv5[12-14]检测算法。该算法具有更快的检测速度,更小的参数量,更适合移动端的部署。

1 相关工作

YOLOv5的网络架构包括:输入端、主干网络、颈部模块和输出端。

主干网络包含Focus模块、C3模块和空间金字塔池化模块(SPP)。其中Focus主要是对特征图进行分片的操作,相当于做池化操作,可以降低运算的次数,提高舌象检测的速度。C3模块控制 YOLOv5模型的宽度与深度,形成不同参数量的模型。SPP模块可以提升舌象特征图的感受野。

颈部模块包含特征金字塔(FPN)模块和路径聚合网络(PAN)模块。特征金字塔模块自顶向下将高层的信息与底层的信息进行融合增强对小目标的检测能力。路径聚合网络模块自底向上将底层的信息与高层的信息进行融合,增强多个尺度的定位信息。

输出端包括CIOU损失函数和非极大值抑制(NMS)。CIOU损失函数综合考虑了检测框与真实框的重叠面积,预测框之间长宽比,检测框与真实框中心点之间的欧氏距离。非极大值抑制作用是筛选YOLOv5检测出的众多框,剔除冗余预测框,筛选出符合舌象的高质量检测框。

YOLOv5s网络结构如图1所示。

图1 YOLOv5s网络结构

2 YOLO-RGS算法

2.1 YOLO-RGS算法构建

由于自然环境存在光照弱、有遮挡等复杂场景,针对YOLOv5s模型在自然环境下存在误检、漏检的问题,该文提出ReLu激活函数解决模型在识别舌象过程中存在指数运算和网络过拟合等问题,Ghost轻量化模块减少卷积次数,使模型规模减小,SimAm注意力机制解决模型特征融合能力差的问题,在YOLOv5s舌象检测网络的基础上实现上述改进,提出了适应复杂自然环境的YOLO-RGS舌象检测网络。

YOLO-RGS结构如图2所示。

图2 YOLO-RGS结构

2.2 ReLu激活函数

ReLu激活函数的函数图像与SiLU激活函数的函数图像如图3所示,x表示神经网络的特征输入。ReLu激活函数中当神经网络输入是负值时,神经元将会被灭活,使舌象检测网络具有稀疏性特征。当舌象检测网络具有稀疏性特征时,可以更好挖掘自然状态下的舌象特征,拟合训练模型网络。

图3 ReLu激活函数和SiLU激活函数

由于部分舌象图像是在自然环境中选取的,图像中对于舌象的检测主要区分舌象与背景。ReLu激活函数将神经元输入是负值时,把神经元灭活,降低复杂自然环境对舌象检测的影响,同时去除SiLU激活函数中的指数运算,达到减少运算量的目的。该文将YOLOv5s的CBS结构的SiLU激活函数替换为ReLu激活函数,替换后的CBR结构如图4所示。

图4 CBR结构

ReLu激活函数的公式为:

ReLu(x)=max{0,x}

日本提出装配式结构的理念是在20世纪60年代。在装配式发展的基础上推出部件化、构件化、工业化的生产方式。中高层住宅生产体系可高效率生产,其内部住宅结构可变。在推动产业结构和规模化的调整过程中,建筑结构形式经历了四个过程,分别是多样化、标准化、工业化、信息化。

(1)

SiLU激活函数的公式为:

(2)

2.3 Ghost轻量化模块

Ghost[15]结构如图5所示。图6中GhostConv模块为改进的Ghost模块。Ghost模块步骤:首先,使用标准Conv操作生成众多冗余的特征图;然后,对生成的冗余特征图采用线性变化得到另外部分卷积特征图;最后,将生成的冗余特征图与线性变化的特征图拼接得到Output的输出。Ghost模块通过线性变化生成的部分特征图,减少大量卷积操作。

图6 改进的BottleNeck结构

舌象检测网络进行卷积操作时会产生大量计算,经过卷积操作后得到众多的冗余特征图,同时舌象检测网络应用于移动端的设备,存在内存限制、存储空间和算力限制等问题。针对这一类问题,该文将对YOLOv5s网络进行轻量化处理,利用改进的BottleNeck模块替换原有的BottleNeck。GhostConv模块通过线性变化生成的部分卷积特征图代替原有卷积生成的部分冗余特征图,减小模型的大小,以达到移动端设备对存储空间的要求。改进的BottleNeck结构如图6所示。

2.4 SimAm注意力机制

SimAm注意力机制不同于通道注意力只关注于通道特征,也不同于空间注意力机制关注于不同位置特征,它是一种3-D注意力机制。SimAm注意力机制是基于神经科学理论,利用具有更多信息的神经元与其相邻神经元相比更加重要的特性,通过定义线性可分性的能量函数在保证运算高效的同时对每个神经元进行重要度评估。SimAm结构如图7所示。

图7 SimAm结构

由于舌象检测网络受到小目标的遮挡与弧形相似物体干扰等问题干扰,该文在舌象检测网络中添加SimAm[16]注意力机制,通过对舌象特征权重进行全面高效的评估,多维度融合舌象信息,进而强化舌象的目标信息,弱化自然背景信息,实现对舌象的关注。

3 实验及结果分析

3.1 实验环境

实验环境使用Pytorch搭建,操作系统为Windows10,GPU型号为NVIDIA GeForce RTX 3080,运行内存为10 GB,编程语言为Python,编译器为Pycharm,CUDA为11.0。参数设置如表1所示。

表1 参数设置

3.2 数据集

图8 舌象数据集

3.3 评价指标

评价指标采用查准率(Precision)、查全率(Recall)、平均精度均值(mean Average Precision,mAP)。

查准率:将预测正样本真实情况是正样本的比例。查准率如式3所示:

(3)

查全率:将预测正样本真实情况是正样本,占全部真实情况是正样本的比例。查全率如式4所示:

(4)

平均精度:绘图将计算的舌象Recall为横轴,计算的舌象Precision为纵轴围成的面积是平均精度(AP)。平均精度如式5所示:

(5)

平均精度均值:YOLOv5在所有类别的平均精度的均值,其中,N表示被检测目标的类别数,AP为单类别目标的平均精度。平均精度均值如式6所示:

(6)

3.4 对比分析

3.4.1 与其它方法对比

YOLOv7算法模型参数量达到了72.1 MB,远高于YOLOv5s模型的参数量,由于模型参数量越小部署越容易,所以选择YOLOv5s为改进的基准算法。YOLO-RGS在自然状态下舌象的检测,与目前常用的目标检测的算法进行了对比实验,算法是Faster R-CNN[17],SSD[18],YOLOv4-tiny[19-23],YOLOv5s[24-26]和YOLOv5m[27],以上算法的对比实验均在IOU=0.5下完成,如表2所示。

表2 常用检测网络对比

YOLO-RGS与两阶段的Faster R-CNN检测算法相比在查全率上低5.3百分点,但是在查准率和平均精度均值上远远优于Faster R-CNN。YOLO-RGS与SSD检测算法相比在查全率上低2.1百分点,其它各指标均优于SSD模型。YOLO-RGS在查准率、查全率、平均精度均值和Speed上均远远高于YOLOv4-tiny和YOLOv5m的模型指标。YOLO-RGS 98.2百分点的查准率、91.8百分点的查全率和96.6百分点的平均精度均值均远胜于YOLOv5s 94.8百分点的查准率、87.4百分点的查全率和93.6百分点的平均精度均值,但在检测速度上略低于97帧/s的YOLOv5s。从表2中可以看出YOLO-RGS算法与其他对比算法在查准率、查全率以及平均精度均值等方面,具有较明显的优势。

在实际应用上物体的检测速度应当至少达到30帧/s,识别速度越高,检测物体的速度越快,在实际应用中实时检测效果越好。常用检测网络的识别速度只有YOLO系列算法达到30帧/s的检测速度。文中的检测速度达到了86帧/s,虽然略低于YOLOv5s的97帧/s,但远远高于实际应用的检测速度。

在舌象检测设备的部署上,模型参数量越小,在舌象检测设备上部署越容易。文中改进模型参数量为7.8 MB,相比两阶段的Faster R-CNN和端到端的SSD有大幅度缩减。YOLO-RGS算法网络模型参数量减小到YOLOv5s模型的55百分点,更适合移动端的部署且改进的算法在自然状态下舌象检测精度更高。

3.4.2 消融实验

消融对比实验的目的是为验证添加各个模块对网络的优化作用,实验结果如表3所示。YOLO-R表示ReLu激活函数替换原有激活函数SiLU;YOLO-RG表示在YOLO-R的基础上把BottleNeck替换为轻量化的Ghost-BottleNeck;YOLO-RGS表示在YOLO-RG的基础上添加SimAm注意力机制。从表3中的数据可以看出:引入ReLu激活函数替换激活函数SiLU后,在识别速度和参数量不变的情况下,YOLO-R相比于YOLOv5s mAP提升了2.3百分点,说明ReLu激活函数可以更好地拟合舌象检测网络,大幅提高舌象检测的精度;引入轻量化模型Ghost,代替YOLO-R网络的BottleNeck,虽然mAP有所降低,但是参数量大幅下降,同时检测速度由97帧/s下降到88帧/s,是由于DWConv卷积对流水线CPU适用,在专用GPU下没有效率,导致检测帧数下降;引入SimAm注意力机制的舌象检测网络,在不增加参数量的情况下,相比于YOLO-RG 的mAP提升了1.2百分点。YOLO-RGS模型相较于YOLOv5s模型虽然检测速度有所下降,但是网络的精度获得较大提升,并且网络的复杂度降低,更加适合移动端的部署。

表3 消融实验

3.4.3 可视化分析

为了体现YOLO-RGS算法的性能,将以下3种算法进行定性分析。从实验中随机抽取图像,在同一测试环境下,3种检测网络的检测结果示例如图9所示。

由Image1所示,Image1舌诊仪下采集,YOLOv5s,YOLO-RGS和YOLOv5m都对舌象的检测效果较好;Image2和Image3中存在遮挡物体和弧形形状物体,且干扰物体与舌象正面弧形相似,YOLOv5s均不能对存在干扰物体的舌象做出较好检测,YOLOv5m对干扰物体做出部分检测,但YOLO-RGS均可以较好检测;Image4中存在弧形形状干扰并且图中背景颜色相似,YOLOv5s和YOLO-RGS均能做出检测,但YOLOv5m存在误检;Image5中存在灰度背景,可以模拟昏暗环境下舌象采集,导致YOLOv5s和YOLOv5m存在漏检;Image6中存在舌象不完全吐露,3种算法均有较好检测效果;Image7中对于多舌象检测,均有较好检测效果。对于存在相似物体遮挡的、多舌象以及小目标舌象,YOLO-RGS均能做出检测,不但检测精度高,还能适应复杂的自然环境变化,具有很强的鲁棒性。

4 结束语

在自然环境中获取舌象时受到自然光线强度和物体形态的影响,导致模型存在精度低和计算量大等问题。该文将Ghost轻量化和YOLOv5结合运用在自然环境舌象检测场景,通过施加SimAm注意力机制来加强舌象信息的融合,并调整激活函数为ReLu来提升检测舌象的精度。实验结果表明,YOLO-RGS算法在自然环境舌象检测中具有一定的实时性和可靠性,能够判断采集图像是否存在舌象,为后续舌象采集工作提供实际应用参考。

猜你喜欢
查全率舌象精度
574例新型冠状病毒肺炎康复者舌象特征分析
基于Citespace的国内肿瘤舌象研究可视化分析(2001-2020年)
基于Citespace糖尿病舌象研究的文献计量与可视化分析
舌象仪临床应用研究的方法学及报告质量评价
海量图书馆档案信息的快速检索方法
基于DSPIC33F微处理器的采集精度的提高
基于词嵌入语义的精准检索式构建方法
GPS/GLONASS/BDS组合PPP精度分析
改进的Goldschmidt双精度浮点除法器
巧用磨耗提高机械加工精度