基于改进YOLOv3 的川贝母检测识别算法研究
2024-05-18刘新跃
胡 科,刘新跃
(成都大学信息网络中心,四川成都)
引言
据《中国药典》中记载,贝母类药材主要分为川贝母、浙贝母、平贝母、伊贝母和湖北贝母五种。临床应用中川贝母药用价值最高,按其性状又可分为松贝母、青贝母和炉贝母。目前计算机视觉技术在中草药检测中的应用已有一些研究报道[1-3],主要通过小波分析、灰度共生矩阵等特征提取方法对多个特征量进行选择,再输入SVM、RNN 等分类器完成分类鉴定。这些方法主要集中于视觉特征区别较大,不同种间的识别,且算法过程复杂,无法利用高层语义的特征信息,准确率和识别效率还有待提升。本研究构造一种基于改进YOLOv3 网络的目标检测模型,快速定位并精确识别出川贝母各个类别及其伪品,实现快速批量自动化的检测识别。
1 改进YOLOv3 的网络结构
YOLO 系列网络是目标检测领域常用的一种端到端的深度学习网络,YOLO 系列算法在经过YOLOv2[4]和YOLOv3[5]两次改进之后,YOLOv3 算法在检测精度和速度上都得到了很大提升。由于川贝母各个类别的外观差异较小,神经网络不仅要能提取到像纹理、轮廓、形状等这样的低层次特征,还需要学习到更为抽象的高层次特征。为了兼顾检测准确率和速度的同步提升,本研究在YOLOv3 的基础上进行改进,设计出能够充分表达川贝母特征的网络模型,提升川贝母的检测识别精度。
本研究在YOLOv3 的基础上嵌入双通路模块和注意力机制模块,创造更加丰富的特征信息的同时,自适应校准特征通道响应值,筛选出更有用的特征,提升模型对川贝母图像数据的检测精度。Dual-YOLO网络如图1 所示,首先输入大小为416×416 的RGB图像数据到DBL 单元中,其中DBL 单元由3×3 卷积、批量归一化和Leaky ReLU 激活函数组成;接着引入双通路模块(Dual)[6]和注意力机制模块(SE)[7],替代Darknet-53 作为基础网络进行特征提取。输入图像经过5 次下采样后输出第一种大小为13×13 的特征图;再经上采样后与第4 次下采样的特征图堆叠,输出第二种大小为26×26 的特征图;同理与第3 次下采样的特征图堆叠得到第三种大小为52×52 的特征图。最后将输出得到的三种特征图分别通过大小1×1的卷积进行目标边界框的预测,卷积核的数量m 为
图1 Dual-YOLO 网络结构
式中:k 为目标边界框的数量;class 为目标的类别数,本研究川贝母数据共4 类,k 取值为3,因此卷积核数量m 为27。
2 数据采集和预处理
川贝母及次品平贝母样品来源于成都市国际贸易城中药材市场,经成都市中草药研究所的研究员鉴定其所属类别,其中,川贝母包括松贝母、青贝母、炉贝母,共计四类样品。由于川贝母体积较小,单目标分类效率不高,市场上对川贝母的分类通常为多目标检测识别的形式,并且川贝母呈现的体位各异,因此通过单反相机分别对四种样品进行随机批量图像采集,图像分辨率为5184×3456。每一类样品各采集200~300 张,共计1072 张图像,每张图像包含6~10 个检测目标,所有目标都经过图像标注工具LabelImg 进行人工标注,生成.xml 文件,标签文件主要包含目标的类别和位置坐标信息,并确保图像数据与标签文件一一对应。
本研究采用数据增强方法,如图像翻转、旋转、加噪等。一方面,扩大了数据量;另一方面,克服了过拟合问题,增强了模型分类检测性能。数据量扩大为原来的4 倍,共计4288 张图像。训练开始前,将川贝母四类样本数据集以4:1:1 的比例随机划分为训练集、验证集和测试集,表1 为数据集中所有类别的目标数量。
表1 数据集中目标数量
3 实验及结果分析
3.1 模型训练
由于YOLOv3 网络原始先验框的大小是根据COCO 数据集得到的,并不适用于川贝母数据集的目标检测。本研究使用K-means 聚类得到先验框的大小,从而标准化图像的高度和宽度与先验框的高度和宽度。本研究使用K-means 聚类得到的先验框大小为(29,42),(31,47),(33,43),(34,49),(36,55),(37,49),(40,53),(42,60),(50,67),其中尺寸最小的三个先验框分给最大特征图的输出,尺寸最大的三个先验框分给最小特征图的输出,剩下的分给中间尺寸特征图的输出。
本研究沿用YOLOv3 的损失函数,综合评价坐标差异、分类误差和置信度误差。所有训练均在Linux 4.19、CPU 为Intel Pentium G640 @ 2.80GHz、16GB RAM环境下进行,使用Python3.6 及Tensorflow深度学习框架实现。训练设置Batch 大小为16,最大迭代次数为1000 次,学习率设定为0.001。
3.2 实验结果
本实验采用平均精度均值(mean average precision,mAP)和检测速度(FPS)作为评价指标对算法模型进行评价。使用测试集对Dual-YOLO 网络进行性能测试,图2 为Dual-YOLO 在四个类别数据上的检测识别结果。从检测识别结果可以看出,青贝母和炉贝母的平均检测精度最高,分别为0.96 和0.89,而松贝母和平贝母的平均检测精度相对较低,分别为0.82 和0.75,这与实际各个类别的特征鉴别点不同有关。
图2 部分检测识别结果
作为对比,本实验在原始YOLOv3 网络上进行相同训练参数下的性能测试,两种算法在川贝母目标检测上的性能比较如表2 所示。对表2 分析可知,Dual-YOLO 模型mAP 达到80%,相较于YOLOv3 算法提升了约4 个百分点。从检测速度上来看,Dual-YOLO 提高了3 帧/ 秒;在模型大小方面,Dual-YOLO 比YOLOv3 小23MB,其参数量亦更小,相同参数下网络模型的收敛速度更快。
表2 两种算法的检测性能比较
3.3 消融实验
通过消融实验验证Dual-YOLO 网络在川贝母检测识别中的有效性。删除不同的网络模块,使用相同的数据集和训练参数进行训练,分别测试双通路模块(Dual-block)和注意力机制模块(SE-block)在YOLO网络中作用,测试结果如表3 所示。
表3 消融实验的结果
从表3 可知,相比Dual-YOLO 网络的检测识别结果,删除Dual-block 后,以darknet-53 作为基础网络会使平均检测精度降低,对检测速度和模型大小的影响较小;而删除SE-block 会使模型的参数量增加,导致检测速度降低,模型大小增大,并且平均检测精度降低。由此可知,双通路模块主要作用是增强特征提取,提升网络的检测精度;注意力机制模块可以提升网络对特征的选择,从而降低模型复杂度,提升模型的检测性能。
结束语
本研究采集具有代表性的多视觉川贝母图像,提出一种基于改进YOLOv3 的川贝母检测识别方法,利用双通路模块重用上层特征并产生新的特征,增强模型对特征信息的利用;并采用注意力机制模块对双通路模块提取的特征信息进行通道加权,自动学习不同通道特征的重要程度,提升网络的识别效率和精度。在实际中药材鉴别场景中,本研究的川贝母检测识别方法同样可以推广到其它中药材的图像检测和识别上,从而完善中药材行业质量鉴定方法体系。