首页> 中国专利> 一种基于深度学习的粮库通风窗状态检测算法

一种基于深度学习的粮库通风窗状态检测算法

摘要

本发明公开了一种基于深度学习的粮库通风窗状态检测算法,通过图像或视频采集设备采集获取粮库的通风窗场景图片;在上位机中,将通风窗场景图片输入至粮库通风窗状态检测网络进行通风窗定位与状态分类;粮库通风窗状态检测网络以YOLOv5s网络为基础网络,包括依次连接的主干网络、特征融合网络和预测头三部分,主干网络的C3模块中加入挤压激励SE模块形成SE‑C3模块;预测头中,将原来的耦合头修改为解耦头。本发明使用基于YOLOv5s的改进算法,在粮库环境下对通风窗开闭状态进行判断,在图片背景、拍摄角度、观察距离、光照条件等发生变化时,仍可以保持较高的检测精确度。

著录项

  • 公开/公告号CN114821154A

    专利类型发明专利

  • 公开/公告日2022-07-29

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN202210317338.4

  • 发明设计人 金心宇;尚珂珂;

    申请日2022-03-28

  • 分类号G06V10/764(2022.01);G06V10/774(2022.01);G06V10/82(2022.01);G06K9/62(2022.01);G06N3/04(2006.01);G06N3/08(2006.01);

  • 代理机构杭州中成专利事务所有限公司 33212;

  • 代理人金祺

  • 地址 310058 浙江省杭州市西湖区余杭塘路866号

  • 入库时间 2023-06-19 16:12:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-16

    实质审查的生效 IPC(主分类):G06V10/764 专利申请号:2022103173384 申请日:20220328

    实质审查的生效

说明书

技术领域

本发明涉及目标识别神经网络技术领域,具体是一种基于深度学习的粮库通风窗状态检测算法。

背景技术

粮食不仅是人民生活中不可缺少的基础物资,还是国家重要的战略储备,在国家以及地方的粮食存储和粮食流通环节中,粮库发挥着不可代替的作用。粮库的主要职责在于完成粮食的接收、存储、运输、调度配置等各个环节,而粮食的安全存储,又是其中的重中之重。对封闭式粮库而言,合理、有效的通风是预防粮食变质的一项重要手段。目前国内外应用最广泛的通风技术依然是机械通风技术,根据天气条件控制通风窗的开启关闭是粮库通风的关键手段。

目前大部分粮仓确认通风窗的状态正常与否,需要依靠工作人员的巡逻检视,由于粮库中粮仓数量较多,工作人员工作量较大,漏检的现象经常出现,尤其是对于未紧密关闭的通风窗经常发现不及时,影响储量品质,造成不必要的经济损失。虽然目前已有一些智能化通风系统的研究,通过计算机智能系统和电信号传输监测通风情况,但是由于改造成本和难度问题,应用范围较小。所以通风窗状态检测方法的研究有很重要的现实意义。

虽然已有多种基于计算机视觉的门窗状态检测算法,但在粮库复杂环境下的通风窗检测问题上仍有不足,主要存在以下问题等待解决:

(1)针对粮库通风窗的检测并无相关公开数据集可以直接使用,需要进行大量的数据采集,标注和预处理工作。

(2)粮库环境复杂,通风窗数量较多且分布较为密集,使检测的难度上升。

(3)粮库通风窗图像和视频由无人机和固定摄像头采集,当遇到雾天、雨天等复杂天气环境,对采集的图像视频造成较大噪声干扰,使得检测精度降低。

(4)目前大多数门窗状态检测采用传统的图像处理方法,对视频流中读取到的图像进行灰度及高斯模糊处理,对判断区域进行泛洪填充操作,根据判断区域泛洪填充操作返回像素点数量与设定阈值的关系来判断开关门状态。但以上方法适用场景较为简单,在固定摄像头的条件下,对场景中单一的门窗进行检测,算法的泛化性和鲁棒性都有所不足,当观察角度、观察距离、环境光照出现变化时,算法的性能难以满足生产环境要求。

发明内容

本发明要解决的技术问题是提供一种基于深度学习的粮库通风窗状态检测算法,用以在粮库环境中对通风窗的开闭状态进行判断。

为了解决上述技术问题,本发明提供一种基于深度学习的粮库通风窗状态检测算法,包括过程为:通过图像或视频采集设备采集获取粮库的通风窗场景图片;在上位机中,将通风窗场景图片输入至粮库通风窗状态检测网络进行通风窗定位与状态分类,获得带有通风窗的预测框位置、通风窗的状态类别以及置信度的检测结果图像;

所述粮库通风窗状态检测网络以YOLOv5s网络为基础网络,包括依次连接的主干网络、特征融合网络和预测头三部分,所述主干网络的C3模块中加入挤压激励SE模块形成SE-C3模块;所述预测头中,将原来的耦合头修改为解耦头。

作为本发明的一种基于深度学习的粮库通风窗状态检测算法的改进:

所述SE-C3模块为将YOLOv5s基础网络的C3模块中的bottleneck修改为SE-bottleneck,SE-bottleneck的输入为上层网络的特征图X,特征图X首先经过两个卷积层形成特征图X1,特征图X1使用挤压激励SE模块进行处理得到一个维度为通道数*1的向量t1,将向量t1与特征图X1相乘得到特征图X2,最后将输入的特征图X与特征图X2相加得到SE-bottleneck模块的输出;

所述挤压激励SE模块包含全局池化层、两个全连接层和sigmoid激活函数。

作为本发明的一种基于深度学习的粮库通风窗状态检测算法的进一步改进:

所述解耦头的输入为所述特征融合网络输出的特征图,首先经过一个1x1的卷积层,然后分别进入分类分支和定位分支:分类分支经过两个1*1的卷积层和sigmoid激活函数,输出所述通风窗的状态类别,定位分支经过一个1*1卷积层,再分为两个分支,一个分支经过1*1的卷积层和sigmoid激活函数输出所述置信度,另一个分支经过1*1的卷积层,输出所述通风窗的预测框位置。

作为本发明的一种基于深度学习的粮库通风窗状态检测算法的进一步改进:

所述粮库通风窗状态检测网络的训练和测试过程为:将训练集作为粮库通风窗状态检测网络训练的输入,以损失函数作为优化目标,利用后向传播算法进行网络参数的更新,训练方式采用训练预热+余弦退火的方式,以随机梯度下降SGD算法优化网络参数,每完成一个epoch会在验证集上进行一次验证,共迭代100个epoches,选择在验证集上的mAP值大于0.8的模型文件作为训练好的.pt模型文件;将测试集输入训练好的粮库通风窗状态检测网络,将得到的输出结果与测试集的标签进行比对,达到预设目标从而获得在线使用的所述粮库通风窗状态检测网络。

作为本发明的一种基于深度学习的粮库通风窗状态检测算法的进一步改进:

所述训练集和测试集的划分过程为:采集不同角度、天气、光照下对粮库中不同开关状态的通风窗的图像数据,筛选具有不同角度、天气和光照组合的粮库通风窗的图像进行数据增强操作,包括对比度增强、反转、镜像、裁剪,然后对数据增强操作后的图像标注出通风窗位置,并生成包含对应图像中目标位置和状态类别的txt标签文件,将标注后的图像及其对应txt标签文件按7:1:2的比例划分为所述训练集、验证集和测试集。

作为本发明的一种基于深度学习的粮库通风窗状态检测算法的进一步改进:

所述状态类别分为打开、闭合、半开、闭合不紧密四种。

作为本发明的一种基于深度学习的粮库通风窗状态检测算法的进一步改进:

所述损失函数包括分类损失、位置损失函数和置信度损失,分类损失和置信度损失与YOLOv5s网络的分类损失和置信度损失一致,位置损失函数为CIoU loss,公式如下:

其中,d代表的是计算两个中心点之间的欧式距离,c代表闭包的对角线距离,IoU表示交并比(Intersection Over Union)为预测框和真实的标注框的重叠面积与二者总面积的比值;α是用来调节的参数,v是衡量长宽比一致性的参数,计算方式为:

w表示预测框的宽度,h表示预测框的高度。

本发明的有益效果主要体现在:

1、本发明使用基于YOLOv5s的改进算法,在粮库环境下对通风窗开闭状态进行判断,在图片背景、拍摄角度、观察距离、光照条件等发生变化时,仍可以保持较高的检测精确度;

2、本发明在原来的YOLOv5s网络结构的基础上,引入注意力机制,将原网络中的C3模块,替换为SE-C3模块,对特征图进行校正,增加有价值的特征所占权重,抑制无价值特征权重,进而提升网络的检测准确度;

3、本发明将原来的YOLOv5s耦合预测头修改为解耦头,原先的YOLOv5s网络中的预测头通过一个通道直接对分类和位置信息结合进行预测,这种结合预测的方式会使两种任务发生冲突,影响检测精度,本发明使用两个分支分别输出目标的位置和分类预测,以提高检测精度。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细说明。

图1为本发明的粮库通风窗状态检测方法的流程框图;

图2为本发明的粮库通风窗状态检测网络的结构示意图;

图3为图2中的SE-C3模块的结构示意图;

图4为本发明的解耦头结构示意图。

具体实施方式

下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:

实施例1、一种基于深度学习的粮库通风窗状态检测算法,如图1所示,具体过程如下:

S1:构建数据集

采集不同角度、天气、光照环境下、粮库场景中包含通风窗的图像,保障数据集的全面性和充分性,并对图像数据进行预处理。

S101:使用无人机和固定摄像头,采用不同角度、在各种天气、光照环境下对粮库中不同开关状态的通风窗进行拍摄采集,得到包含通风窗目标的图像数据。

S102:对步骤S101中得到的图像数据进行筛选,尽可能选取不同角度、天气、光照情况下等不同条件组合的粮库通风窗的图像;

S103:对步骤S102筛选后的图像进行对比度增强、反转、镜像、裁剪等数据增强操作,以扩充数据集数量,提高数据集的多样性;

S104:使用LabelImg对步骤S103数据增强操作后的图像进行处理,用矩形框框出检测目标即标注出图像中的通风窗位置,并生成包含对应图片中目标位置和状态类别的txt标签文件。根据不同季节和天气条件下粮库运行管理日常中通风作业的要求,粮库的通风窗主要有三种状态:完全打开、闭合、半开。此外,粮库真实作业场景中,经常出现的通风窗未按照要求紧闭闭合却被误判为关闭的情况,新增了闭合不紧密状态,因此,数据集中检测目标的状态类别共分为打开、闭合、半开、闭合不紧密四种;

S105:将步骤S104标注后的图像及其对应txt标签文件按照7:1:2的比例划分为训练集、验证集和测试集。

S2:构建粮库通风窗状态检测网络

在YOLOv5s网络基础上添加挤压激励模块,并对网络输出端做出调整,加入解耦头结构提高网络精度,得到粮库通风窗状态检测网络,整体结构如图2所示。

S201:搭建YOLOv5s网络作为基础结构,包括依次连接的主干网络、特征融合网络和预测头三部分。主干网络基于CSPDarkNet结构,由Focus模块和4个C3模块以及一个空间金字塔池化SPP模块组成,Focus模块对输入的图像进行切分和拼接操作,每隔一个像素进行一次取值操作,得到4组下采样图片,每个C3模块对特征图进行下采样操作;经过SPP模块将输入的特征经过不同尺度的最大池化层处理之后再进行拼接操作,能够增大网络的感受野,使算法适应不同分辨率的图像,得到更多的信息。主干网络输出3个不同尺寸的特征图到特征融合网络;特征融合网络采用FPN+PAN模式,对不同尺度的特征进行处理融合,生成特征金字塔,使网络能够识别不同大小和尺度的同一个物体;预测头部分负责输出预测结果,包括预测框的位置信息,预测框中通风窗的状态类别(打开、闭合、半开、闭合不紧密)以及该预测的置信度;

S202:在YOLOv5s网络的主干网络的C3模块中加入挤压激励模块(Squeeze-and-Excitation,简称为SE),形成SE-C3模块,SE-C3模块通过引入通道注意力机制,对特征进行校正,增加有价值的特征所占权重,抑制无价值特征权重,从而使得提取到的特征更具有可学习性,提高网络的精度;SE-C3模块结构如图3所示,将原YOLOv5s网络的C3模块中的bottleneck部分修改为SE-bottleneck,SE-bottleneck的输入为上层网络的特征图X,该输入首先经过两个卷积层形成特征图X1,该特征图X1使用挤压激励SE模块进行处理,挤压激励SE模块包含全局池化层、两个全连接层和sigmoid激活函数,得到一个维度为通道数*1的向量t1,表示特征图X1各个通道的权重,将该向量t1与特征图X1相乘,可得到特征图X2,该特征图X2通过注意力机制,学习到了各个通道不同的重要程度,最后将输入的特征图X与特征图X2相加,即可得到SE-bottleneck模块的输出。

S203:在YOLOv5s网络的预测头中,将原来的耦合头修改为解耦头。原先的YOLOv5s网络中的预测头通过一个通道直接对分类和位置信息结合预测,这种结合预测的方式会使两种任务发生冲突,影响检测精度,使用解耦头结构,利用两个分支分别输出目标的位置和分类预测,可以提高检测精度。解耦头的输入为特征融合网络输出的特征图,结构如图4所示,输入的特征图首先经过一个1x1的卷积层,目的是进行通道降维,降低运算量;然后分别进入分类分支和定位分支,分别负责分类和定位任务:分类分支经过两个1*1的卷积层和sigmoid激活函数,输出通风窗的状态类别预测,定位分支经过一个1*1卷积层,再分为两个分支,一个分支经过1*1的卷积层和sigmoid激活函数输出置信度预测,另一个分支经过1*1的卷积层,输出通风窗的位置坐标预测。

S3:训练和测试粮库通风窗状态检测网络

S301:损失函数

粮库通风窗状态检测网络的损失函数,主要由位置损失、分类损失、置信度损失三个部分构成。

分类损失和置信度损失与YOLOv5s网络的分类损失和置信度损失一致,位置损失函数为CIoU loss,公式如下:

其中,d代表的是计算两个中心点之间的欧式距离,c代表闭包的对角线距离,IoU表示交并比(Intersection Over Union)为预测框和真实的标注框的重叠面积与二者总面积的比值;α是用来调节的参数,v是衡量长宽比一致性的参数,计算方式为:

w表示预测框的宽度,h表示预测框的高度。

S302:训练粮库通风窗状态检测网络

将步骤S105获得的训练集作为粮库通风窗状态检测网络训练的输入,以S301中所述的损失函数作为优化目标,利用后向传播算法进行网络参数的更新,训练方式采用训练预热+余弦退火的方式。训练预热是指在网络训练的开始阶段,先采取一个较小的学习率进行训练,因为此时模型的权重初始化是随机的,若学习率选择过大,会引发模型的不稳定振荡。再经过一定的迭代周期之后,再采用预先设置的学习率变化方式训练模型,加快模型收敛速度,优化模型效果;实验设置初始学习率为0.01,最终的学习率为0.002,用余弦退火算法衰减学习率。以SGD(随机梯度下降)算法优化网络参数,动量系数设为0.9,权重衰减为0.0002,由于显存限制,batch size设为32,batch size指在一次前向输入中处理的图片数量,共迭代100个epoches,一个epoch表示所有的训练集图片都进行一次训练;训练过程中,模型参数会更新并实时保存到.pt模型文件,每完成一个epoch会在验证集上进行一次验证,计算精确率、召回率、mAP,以此可以实时的评价网络模型的性能。100个epoches训练完成后,选择在验证集上的mAP值大于0.8的模型文件作为训练好的.pt模型文件,从而获得训练好的粮库通风窗状态检测网络。

S303:测试粮库通风窗状态检测网络

加载S302训练好的.pt模型文件获得训练好的粮库通风窗状态检测网络,将步骤S105获得的测试集中的图像输入到该粮库通风窗状态检测网络中,将得到的输出结果与测试集图像对应的标签进行比对,通过计算其精确率、召回率、以及mAP值,用于进行网络模型评估是否达到预设目标,从而获得可以在线使用的粮库通风窗状态检测网络。

在目标检测任务中,TP表示超过IoU阈值且置信度最高的预测框,FP表示IoU低于阈值或者置信度不如最佳匹配框的预测框,FN表示漏检的标注框。

召回率计算方法为TP/(TP+FN),代表模型进行正确预测的比例占所有真实样本的比例。

精确率计算方法为TP/(TP+FP),代表模型正确预测的比例占所有预测结果的比例。

平均精确率(AP)是针对于某个单一类别而言的,通过计算该类别的召回率和精确率,可以得完整的P-R曲线,该曲线以查准率Precision为横轴,召回率Recall为纵轴,曲线围成的面积即为平均精确率AP,而将每个类别的平均精确率取均值则可以得到mAP值,mAP的值属于区间[0,1],数值越大表示模型的效果越好。

S4:在线使用粮库通风窗状态检测网络对通风窗开关状态进行检测。

首先,通过图像或视频采集设备,例如使用固定摄像头或者无人机设备,采集获取粮库的通风窗场景图片,使用步骤3获得可在线使用的粮库通风窗状态检测网络对所采集的通风窗场景图片进行通风窗定位与状态分类,获得通风窗的预测框位置、通风窗的状态类别(打开、半开、闭合、闭合不紧密)以及置信度,通过以上信息,即可在原输入图像上绘制出通风窗目标位置和状态类别,得到包含检测结果的图像。

实验:

1)、实验环境:本实验基于CentOS系统的服务器进行,配有GPU加速训练,采用python语言编程,使用pytorch深度学习框架搭建和训练模型,能够很好的支持GPU运算,相关的软硬件配置如下表1所示。

表1、实验的软硬件配置

2)、实验数据集:

本实验的通风窗数据集获取的数据主要来源于两个途径,一是通过爬虫爬取网络相关资源图片,来源于全国各粮仓的作业环境,共筛选出2300张图片;二是在粮库实地,通过固定摄像头和无人机采集获取,包含了不同背景、不同角度、光照条件下的照片,共得到粮库通风窗检测数据图片3500张;通过以上两种途径构建的数据集图片共计5800张。

接着对图像的进行预处理,对部分图像加入了光照、噪声、模糊等处理,以使得所得数据集更具有泛化性,最终获得实验数据集共计8300张图片,图片中包含的通风窗四种类别状态的数量分别为,打开:7233,关闭:8784,半开:6921,闭合不紧密5862,将此四种类别状态分别作为对应图片的标签。

3)实验结果

为了对比分析,选择以下3个模型进行训练:

(a)、YOLOv5s原始网络:

按实施例1中步骤S201搭建的YOLOv5s网络

(b)、YOLOv5s+SE-C3网络:

按实施例1中步骤S201搭建YOLOv5s网络,然后按实施例1中步骤S202在YOLOv5s网络的主干网络的C3模块中加入挤压激励模块,形成SE-C3模块;

(c)、YOLOv5s+SE-C3+解耦头:即本发明的粮库通风窗状态检测网络。

将上述共计8300张图片的实验数据集的80%作为训练集,按照具体实施方式S302中所述方式训练模型,分别得到训练好的YOLOv5s原始网络、YOLOv5s+SE-C3网络和本发明的粮库通风窗状态检测网络;然后将实验数据集的20%,共1660张图片作为测试集,分别输入到训练好的YOLOv5s原始网络、YOLOv5s+SE-C3网络和本发明的粮库通风窗状态检测网络中,对三种网络进行测试,将得到的输出结果与标签进行比对,计算并比较三种网络的mAP和FPS(Frames Per Second,每秒帧率,表示模型每秒处理图片的数量,该值越大,表示模型处理速度越快),评估模型的性能,实验评估结果如表2所示。

表2实验评估结果:

由表2可知,YOLOv5s原始网络在实验数据集下的mAP为90.1%,加入了SE-C3模块之后,mAP提升到了92.3%,进一步加入解耦头结构,mAP提升到93.8%。可见,本发明提出的YOLOv5s+SE-C3+解耦头的网络结构,通过SE-C3模块和解耦头结构,在牺牲一定检测速度的条件下,有效提高了检测的精度,使网络能对通风窗状态进行更加准确地识别。

最后,还需要注意的是,以上列举的仅是本发明的若干个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号