潘 杨 张守京 杨文彬
(西安工程大学,陕西西安,710600)
我国是棉花生产大国,原棉质量直接影响最终棉纺织品质量。原棉在采摘、运输、加工过程中混入的塑料薄膜、丙纶丝、棉秆、羽毛等异纤会对棉纺织品质量造成严重影响,如纱线断裂、形成疵点等。因此,寻找一种快速、准确的棉花异纤检测方法十分重要。
目前,国内外在棉花异纤检测研究中采用的检测方法主要为光学检测与超声波检测。其中,超声波检测[1]通过超声波发生装置,向通道中的棉花定向发射超声波,利用超声接收装置,接收反射的超声波来检测棉花异纤,这种检测技术主要针对与棉花材质、面积差异较大的棉花异纤,对小尺寸的棉花异纤检测效果欠佳且该检测技术受气温、湿度、现场振动、被测物运行速度等因素的干扰,局限性大,很少被采用。光学检测分为可见光检测、紫外线检测、偏振光检测与红外光检测。其中紫外线检测[2]采用两组紫外线光源作为棉花的照明光源,激发棉花异纤的荧光效应,通过两台高速CCD 相机拍摄检测荧光信号来判定棉花异纤,此方法仅针对带有荧光效应的白色棉花异纤,其他棉花异纤无法检测。偏振光检测[3]采用经过偏振调制的白色光源对原棉进行照射,通过不同物体表面反射对偏振角度会发生改变这一原理,利用多角度偏振相机采集光线改变的角度来检测棉花异纤,此方法主要针对透明或半透明塑料薄膜。红外光检测[4]利用红外光敏器件采集不同材质的物体对热能的残留效应或温升效应来识别棉花异纤,此方法主要针对羽毛类棉花异纤,且需要调节参数,具有局限性。可见光检测采用两组三基色可见光源作为棉花的照明装置,左右两侧两台高速CCD 相机拍摄棉流图片之后通过传统图像处理[5-6]、机器学习[7-8]、深度学习等方法来检测棉花异纤。一些方法[9-12]使用深度学习模型进行了棉花异纤检测,但检测速度慢,不能解决小尺寸、背景复杂的棉花异纤检测中出现的误检、漏检问题。
本研究针对棉花异纤检测问题提出一种基于YOLOv5 的改进模型。在主干网络中嵌入卷积注意力模块(CBAM)[13],使模型可以自主学习每个通道的权重,增强模型分辨棉花异纤的能力,抑制背景信息干扰;嵌入卷积注意力模块后,模型参数量增加使得模型检测速度降低,故使用深度可分离卷积[14]替换模型中的普通卷积操作,减少模型参数量,提高模型检测速度;基于特征融合[15]思想,设计一个用于检测小尺寸棉花异纤的检测层,使得模型更适用于棉花异纤检测任务。
YOLO[16-19]是目前最著名的一阶段目标检测算法之一,它将图片使用网格进行划分,每个网格负责检测落在其内的目标,具有速度快、精度高的优点。YOLOv5 按模型从小到大可分为YOLOv5S、YOLOv5M、YOLOv5L、YOLOv5X。考虑到后期模型要部署到棉花异纤检测系统中,本研究对轻量级的YOLOv5S 模型进行改进。YOLOv5S 网络结构如图1 所示。YOLOv5S 模型主要由4 部分组成,分别为输入端、Backbone、Neck、Head。
图1 YOLOv5S 网络结构
输入端主要包括图片的自动填充、图片的数据增强以及锚框计算3 部分。图片的自动填充对原始特征图的尺寸进行调整,将输入统一为标准尺寸;图片的数据增强采用Mosaic 技术,Mosaic将4 张特征图以随机排布、随机裁剪的方式进行拼接,丰富特征图背景;锚框计算通过计算反向传播输出的预测框与真实框之间的大小误差,迭代获取大小最合适的锚框。
Backbone 是网络的特征提取部分,主要包括Focus、Conv、C3、SPP 模块。Focus 模块将输入特征图做切片处理,切片后的特征图进行通道维度的堆叠,输出特征图大小为原来的1/4,通道数为原来的4 倍,再经过一次Conv(标准卷积),同时实现了下采样与特征提取,原理如图2 所示。SPP 模块可以将任意大小的输入特征图转换为固定大小的输出特征图,且只需进行一次标准卷积操作,减少了模型计算量。Conv 和C3 模块为主要的特征提取模块,SPP、C3、Conv 结构如图3所示。
图2 Focus 原理示意图
图3 SPP、C3、Conv 结构图
YOLOv5 中,随着网络深度的增加,大量的卷积操作会造成小目标的特征信息丢失甚至消失。因此,在Neck 部分进行特征融合,使特征图既包含细节信息,也包含语义信息,提升检测精度。Head 部分输出目标的类别概率与边框位置信息,本部分共由3 个检测层组成,分别用来检测大小不同的目标,最后在图像中标出预测框与目标类别。
为了解决棉花异纤检测中透明塑料薄膜、丙纶丝与棉秆等背景复杂、小尺寸棉花异纤的漏检、误检问题,在原YOLOv5S 模型中的普通卷积Conv 之后嵌入CBAM,以增强网络的特征提取能力,使网络在检测过程中更好地关注棉花异纤目标,抑制背景信息干扰。CBAM 结构如图4所示。
图4 CBAM 结构图
图4 中,CBAM 模块的输入特征图先后经过通道注意力模块、空间注意力模块加权后得到CBAM 的输出特征图。通道注意力模块、空间注意力模块结构如图5 所示。
图5 通道注意力模块、空间注意力模块结构图
图5 中,输入特征图分别经过MaxPool、Avg-Pool 操作后得到最大池化向量与平均池化向量,这两个向量分别经共享全连接层后得到两个维度相同的向量,将这两个维度相同的向量做加和操作后再经过sigmoid 激活函数得到通道注意力权值。通道注意力权值与输入特征图做乘法操作后得到通道注意力模块的输出特征图。通道注意力模块表达式如公式(1)所示。
式中:Fc表示通道注意力权值;F表示C×H×W的输入特征图,其中C为输入特征图通道数,H为输入特征图高度,W为输入特征图宽度;MaxPool 为全局最大池化;AvgPool 为全局平均池化;MLP 为共享全连接层;W0与W1为全连接层权重;Favg与Fmax分别代表平均池化向量与最大池化向量。
将通道注意力模块的输出特征图作为空间注意力模块的输入特征图,该特征图分别进行Max-Pool 与AvgPool 操作后得到两个1×H×W特征图,将它们在通道维度进行拼接后得到一个2×H×W的特征图,该特征图经过一个卷积核大小为7×7 的卷积层后再通过sigmoid 函数得到空间注意力权值。空间注意力权值与空间注意力模块的输入特征图做乘法操作后得到CBAM 的输出特征图。空间注意力模块的表达式如公式(2)所示。
式中:Ms表示空间注意力权值;f7×7表示卷积核大为7×7 的卷积操作。
在YOLOv5 模型中嵌入CBAM 后虽然提高了模型的检测精度,减少了漏检、误检问题,但是同时也增加了模型的参数量,降低了模型的检测速度。为了使模型既具有较高的检测精度也具有较高的检测速度,本研究使用深度可分离卷积(DWConv)替换YOLOv5 模型中的普通卷积(Conv)操作。深度可分离卷积原理如图6 所示。
图6 深度可分离卷积
图6 中,深度可分离卷积分为两步。第1 步使用C个卷积核大小为K×K的卷积核对输入特征图做逐通道卷积,其中一个卷积核只对输入特征图的一个通道做卷积操作,得到C个H×W的特征图。第2 步使用N个过滤器(每个过滤器由C个1×1 的卷积核组成)分别对第1 步的输出特征图做逐点卷积操作,得到输出特征图。给定任意输入特征图Fi∈RC×H×W,要得到输出特征图FO∈RN×P×Q。其中,C为输入特征图的通道数,H为输入特征图的高度,W为输入特征图的宽度,卷积核大小为K×K,N为输出特征图的通道数,P为输出特征图的高度,Q为输出特征图的宽度。若使用深度可分离卷积,其卷积核参数量为C×K2+C×N×1×1。而使用普通卷积,其卷积核参数量为C×K2×N。所以,使用深度可分离卷积可以减少模型中卷积核参数量,从而减少计算量,提高模型的检测速度。
棉花在采摘过程中除了混入如废纸、丙纶丝、塑料薄膜等异纤外,还会混入如棉秆类的伪异纤。此类棉花异纤体积较小,而在YOLOv5 模型中,通过卷积核提取的底层特征图具有较高的分辨率,颜色、纹理清晰,目标位置准确。但随着网络加深,底层特征图经过多次卷积操作后,虽然提取的特征图语义信息逐渐丰富,含有更多概念层信息,更易于人类理解,但是图片的分辨率低,目标位置较为粗略,随着网络逐步加深,甚至会导致小尺寸棉花异纤目标丢失,从而导致漏检、误检问题。
在原YOLOv5 模型中,第17 层、第20 层、第23 层输出的特征图分别用于对小型、中型、大型目标检测,但由于小尺寸棉花异纤在数据图片中所占面积很小,经过多次卷积后会丢失目标,造成漏检。因此,为了提高小尺寸棉花异纤的检测精度,解决高层特征图分辨率低、目标位置粗略甚至丢失的问题,在原模型的基础上,增加了一层融合底层特征的小尺寸棉花异纤检测层。将第19 层提取的棉花异纤特征图与第2 层提取的棉花异纤特征图进行通道维度的拼接,融合其细节信息和语义信息,从而使模型在检测小尺寸棉花异纤时具有更高的精度。改进后网络结构如图7 所示。
图7 改进的YOLOv5 网络结构
本研究的试验环境为Windows10 企业版操作系统,Intel(R)Core(TM)i9-10900X CPU @3.70 GHz 处理器,NVIDIA GeForce RTX 2080Ti 显卡两块,深度学习框架为Pytorch-1.10.0、CUDA 版本为CUDA-10.2。训练参数:初始学习率为0.01,动量值为0.937,每批次包含16 张图片,最大迭代次数300 次。
本研究数据是对纺织实验室的异纤机棉流进行拍摄,采集到3 659 张平均尺寸为4 000 pixel×3 000 pixel 含有不同类型棉花异纤的棉花图片作为样本集。样本集包含棉花异纤共6 大类:废纸、塑料薄膜、丙纶丝、棉秆、棉线、羽毛。将采集的样本集使用LabelImg 标记出棉花异纤在图中的位置,得到最终数据集。数据集以8∶2 的比例划分为训练集与测试集。数据集可视化结果如图8 所示。其中异纤尺寸分布以及中心坐标分布是归一化处理结果。
图8 数据集可视化结果
本研究使用平均精度均值mAP、模型检测速度作为模型评价指标,mAP∈[0,1],其值越大表示模型检测效果越好。其中mAP分为mAP@0.5和mAP@0.5∶0.95。mAP@0.5 为真实框与预测框的交并比IoU=0.5 时的mAP,mAP@0.5∶0.95为IoU在0.5 到0.95(步长0.05)上的平均mAP。模型检测速度由在本研究GPU 环境下,检测1 000张棉花图片的检测时长得到。mAP计算公式如下。
式中:P表示检测精度,即被正确检测的棉花异纤数量占检测出的棉花异纤数量的比值;R表示召回率,即被正确检测的棉花异纤数量占数据集棉花异纤数量的比值;TP为被正确检测的棉花异纤数量;FP为被误检的棉花异纤数量;FN为被误检的非棉花异纤数量;n为总类别数;i为当前类别的序号。
为了验证模型改进后的效果,将改进后的模型与原YOLOv5 模型进行各项指标的对比,如图9 和图10 所示。
图9 mAP 值结果对比
图10 损失结果对比
由图9 可以看出,改进后模型mAP@0.5 值与mAP@0.5∶0.95 值分别为0.981 0、0.773,相较于原模型分别提高0.022 5、0.120,mAP@0.5小幅提升,mAP@0.5∶0.95 大幅提升,且改进模型迭代曲线更加平稳,波动较小。
由图10 可以看出,50 次迭代后,改进后模型的定位损失、置信度损失、分类损失曲线均趋于平稳,各项损失均小于原模型,表明改进后的模型收敛速度更快,损失值更小,且置信度损失前20 次迭代损失起始值小于0.15,并快速收敛,表明改进后的模型对棉花背景与棉花异纤的分辨能力更高,检测如塑料薄膜、白色丙纶丝的精度更高,漏检、误检问题得到解决。
3.3.1 消融试验
改进后的YOLOv5 模型嵌入了CBAM 模块,使用了DWConv,并增加了针对小尺寸棉花异纤的检测层。为了验证各改进对原模型的优化作用,设计消融试验,结果如表1 所示。
表1 消融试验结果
从表1 可以看出,模型1 较原模型参数减少2 454 976,检测1 000 张样本图时,所用时间减少约4 s,模型检测速度提高,mAP值略有下降。模型2 特征提取能力提升,较原模型参数量增加43 912,模型的检测时间增加2.35 s,但mAP@0.5、mAP@0.5∶0.95分别提升0.027 5、0.126。模型3 提升了模型对小尺寸棉花异纤的检测能力,较原模型参数量增加662 689,模型的检测时间增加约11 s,mAP@0.5、mAP@0.5∶0.95分别提升0.024 5、0.117。模型4 的mAP@0.5、mAP@0.5∶0.95较原模型分别提升0.022 5、0.120,虽然检测1 000 张图片所用时间比原模型多约6 s,但是满足了棉花异纤检测任务需求,且mAP值提升较大,较原模型更适用于棉花异纤检测任务。
3.3.2 实际检测结果分析
为了更好地验证改进后的模型检测效果,选取数据集中部分数据进行检测,结果如图11所示。
图11 效果对比图
由图11 可以看到,YOLOv5 算法中第一幅图存在白色丙纶丝漏检,第二幅存在羽毛漏检,且将棉花背景错误识别为白色丙纶丝,第三幅图存在白色丙纶丝漏检且将棉花背景错误识别为羽毛,第四幅图存在小块棉秆漏检,且将白色丙纶丝错误识别为塑料薄膜。本研究改进后的模型均准确识别棉花异纤目标,未出现误检、漏检现象,检测效果明显提升。
本研究针对目前棉花异纤检测领域中背景复杂、棉花异纤种类繁多、尺寸较小,从而使得棉花异纤检测存在误检、漏检的问题,提出了一种基于改进YOLOv5 的棉花异纤检测方法。该方法在原YOLOv5 模型的基础上,通过嵌入卷积注意力模块、使用深度可分离卷积、针对小尺寸棉花异纤增加检测层等方法提高模型的检测精度。试验结果表明:该方法对小尺寸、复杂背景的棉花异纤检测效果优于原YOLOv5 模型,满足棉花异纤检测任务需求且具有更高的精度,更适用于棉花异纤检测任务。下一步将继续改进模型的结构、减小模型大小,从而实现移动端的棉花异纤实时检测。