本申请涉及图像检测技术领域,尤其涉及一种基于改进yolov3的安全帽佩戴检测方法及系统。
背景技术:
在变电站日常运维、施工的环境中,安全帽对工作人员的头部起到了至关重要的保护作用。传统的人工检测方式主要通过观看监控视频进行检测,需要耗费大量的人力,且监控人员易疲劳,易出现误检的现象。以视频自动监控的方式进行安全帽的检测,可以减少人力、可以准确的监控变电站内作业人员的安全帽佩戴情况,降低了他们发生意外危险的概率。
公开号为cn112307984a的中国专利申请公开了基于神经网络的安全帽检测方法和装置,它基于yolov3算法作为基础网络,并对yolov3结构进行改进,实现了对安全帽和人的检测精度有明显提升的效果。但是,当出现工作人员低头或临时被遮挡时,采用上述方法仍然会产生误检的情况,如判断为未佩戴安全帽,从而导致误报的情况频发。
技术实现要素:
本申请提供了一种基于改进yolov3的安全帽佩戴检测方法及系统,用于解决当工作人员低头或临时被遮挡时产生误检,从而导致误报的情况频发的技术问题。
有鉴于此,本申请第一方面提供了一种基于改进yolov3的安全帽佩戴检测方法,包括以下步骤:
s1、将变电站内的监控视频流解码为多个帧图像;
s2、基于行人检测模型检测每个所述帧图像中的目标行人,所述行人检测模型是预先基于改进yolov3目标检测算法训练得到,所述改进yolov3目标检测算法采用lossiou_giou损失函数进行训练,所述lossiou_giou损失函数为基于预测框和真实框的重叠区域以及包含所述预测框和所述真实框的最小框得到;
s3、生成行人检测框对所述目标行人进行标注,并对每个检测出的所述目标行人分配不同的id;
s4、基于ioutracker跟踪算法在连续的所述帧图像中对所述目标行人进行持续跟踪;
s5、基于人头检测模型检测所述行人检测框中的所述目标行人的头部,生成头部检测框对所述头部进行标注;
s6、基于安全帽分类模型对所述头部检测框中的所述头部进行安全帽佩戴分类,从而判断每个所述帧图像中所述目标行人是否佩戴安全帽;
s7、获取同一id的所述目标行人在连续的所述帧图像中的安全帽佩戴判断结果,当连续的n个所述帧图像中的安全帽佩戴判断结果为未佩戴安全帽,且n值大于预设帧值,则判定相应的所述目标行人未佩戴安全帽。
优选地,步骤s2之前包括:
s21、制备带有行人标注信息的视频帧行人图像数据集,其中,行人标注信息包括行人预测框;
s22、基于所述视频帧行人图像数据集作为训练集,以lossiou_giou损失函数作为边框置信度损失函数,对yolov3目标检测算法进行训练迭代,从而得出所述行人检测模型。
优选地,步骤s5之前包括:
s51、对所述视频帧行人图像数据集中的所述行人预测框进行截取,从而得到行人预测框数据集;
s52、通过头部预测框对所述行人预测框数据集中的头部进行标注,以获得头部数据集;
s53、基于所述头部数据集作为训练集,以lossiou_giou损失函数作为边框置信度损失函数,对yolov3目标检测算法进行训练迭代,从而得出所述人头检测模型。
优选地,步骤s6之前包括:
s61、对所述头部数据集中的所述头部预测框进行截取,从而得到头部预测框数据集;
s62、判断所述头部预测框数据集中的头部是否佩戴有安全帽,根据安全帽佩戴结果对所述头部预测框数据集中的头部进行分类标注,其标注内容为未佩戴安全帽或佩戴安全帽,从而获得安全帽数据集;
s63、基于所述安全帽数据集作为训练集,对resnet-50网络结构进行训练迭代,从而得出所述安全帽分类模型。
优选地,步骤s4具体包括:
基于ioutracker跟踪算法对连续前后两个所述帧图像中的所述行人检测框进行关联,具体为:当前后两个所述帧图像中的所述行人检测框的重叠程度大于预设的重叠程度值时,则判定为同一个目标行人,并向相应的两个所述帧图像中的所述目标行人分配同样的id;当所述帧图像中的所述行人检测框在其它所述帧图像中未匹配与其的重叠程度大于预设的重叠程度值的所述行人检测框时,则判定有新的目标行人出现,并向相应的所述新的目标行人分配新的id。
优选地,步骤s7之后还包括:
当判定为所述目标行人未佩戴安全帽时,则发出告警信号。
第二方面,本发明还提供了一种基于改进yolov3的安全帽佩戴检测系统,包括:
解码模块,用于将变电站内的监控视频流解码为多个帧图像;
行人检测模块,用于基于行人检测模型检测每个所述帧图像中的目标行人,所述行人检测模型是预先基于改进yolov3目标检测算法训练得到,所述改进yolov3目标检测算法采用lossiou_giou损失函数进行训练,所述lossiou_giou损失函数为基于预测框和真实框的重叠区域以及包含所述预测框和所述真实框的最小框得到;
标注模块,用于生成行人检测框对所述目标行人进行标注,还用于对每个检测出的所述目标行人分配不同的id;
跟踪模块,用于基于ioutracker跟踪算法在连续的所述帧图像中对所述目标行人进行持续跟踪;
人头检测模块,用于基于人头检测模型检测所述行人检测框中的所述目标行人的头部,还用于生成头部检测框对所述头部进行标注;
安全帽分类模块,用于基于安全帽分类模型对所述头部检测框中的所述头部进行安全帽佩戴分类,从而判断每个所述帧图像中所述目标行人是否佩戴安全帽;
判定模块,用于获取同一id的所述目标行人在连续的所述帧图像中的安全帽佩戴判断结果,还用于当连续的n个所述帧图像中的安全帽佩戴判断结果为未佩戴安全帽,且n值大于预设帧值,则判定相应的所述目标行人未佩戴安全帽。
第三方面,本发明还提供了一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序被处理器加载执行时,实现如上述的基于改进yolov3的安全帽佩戴检测方法。
第四方面,本发明还提供了一种电子设备,包括:处理器及存储器;其中,所述存储器用于存储计算机程序;所述处理器用于加载执行所述计算机程序,以使所述电子设备执行如上述的基于改进yolov3的安全帽佩戴检测方法。
从以上技术方案可以看出,本发明例具有以下优点:
本发明通过将改进yolov3目标检测算法运用于行人检测模型中,提高了目标检测算法精度,降低了算法训练计算量,同时,基于ioutracker跟踪算法对目标行人进行持续跟踪,还通过人头检测模型对目标行人的头部识别,并通过安全帽分类模型对头部进行安全帽佩戴分类,从而判断每个帧图像中目标行人是否佩戴安全帽,最后,还基于预设的佩戴判定规则判定相应的目标行人是否佩戴安全帽,从而能够提高安全帽佩戴检测的灵活性和可靠性,降低了当工作人员低头或临时被遮挡时产生误检从而导致的误报的情况频发的概率。
附图说明
图1为本申请实施例提供的一种基于改进yolov3的安全帽佩戴检测方法的流程图;
图2为本申请实施例提供的预测框和真实框的重叠情况示意图;
图3为本申请实施例提供的一种基于改进yolov3的安全帽佩戴检测系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
由于目前的安全帽佩戴检测方法在对变电站内的工作人员是否佩戴安全帽检测过程中,当出现工作人员低头或临时被遮挡时,仍然会产生误检的情况,如判断为未佩戴安全帽,从而导致误报的情况频发。
请参阅图1,为了解决上述问题,本发明提供的一种基于改进yolov3的安全帽佩戴检测方法,包括以下步骤:
s1、将变电站内的监控视频流解码为多个帧图像;
需要说明的是,该方法可以应用至现有的变电站视频监控系统中,并从摄像头中获取变电站内的监控视频流。
s2、基于行人检测模型检测每个帧图像中的目标行人,行人检测模型是预先基于改进yolov3目标检测算法训练得到,改进yolov3目标检测算法采用lossiou_giou损失函数进行训练,lossiou_giou损失函数为基于预测框和真实框的重叠区域以及包含预测框和真实框的最小框得到;
需要说明的是,如图2所示,其示意出了预测框和真实框的重叠情况示意图,其中,a为真实框,b为预测框,c为包含预测框和真实框的最小框,ab为真实框与预测框的重叠区域,d1和d2均为在包含预测框和真实框的最小框c中的真实框与预测框的非重叠区域。
在计算iou(intersectionoverunion,重叠度)损失函数时,也即交并比,是计算预测框和真实框的交集和并集的比值,其计算公式表示为,
由于iou损失函数是比值的概念,对目标物体的尺度是不敏感的,计算giou(generalizedintersectionoverunion,广义重叠度)损失函数时,考虑了预测框和真实框的尺度,其计算公式表示为,
在本实施例中,采用lossiou_giou损失函数进行训练改进yolov3目标检测算法,其lossiou_giou损失函数是基于预测框和真实框的重叠区域以及包含预测框和真实框的最小框得到,其计算公式表示为,
由上式可以得出,lossiou_giou损失函数即考虑了预测框和真实框的重叠区域,又考虑了重非重叠区域的面积,包含了iou损失函数和giou损失函数的特性,同时,lossiou_giou损失函数相比于giou损失函数的计算工作量较小,使算法训练速度更快,训练出来的算法行人检测框精度更高。
yolo英文全称youonlylookonce,yolov3算法是通过其网络结构去实现的。
s3、生成行人检测框对目标行人进行标注,并对每个检测出的目标行人分配不同的id;
可以理解的是,基于改进yolov3目标检测算法可以对目标行人进行标注,其标注形式即将目标行人框起来,同时,对每个检测出的目标行人分配不同的id,其每个目标行人的id是唯一的,如0001,0002,0003等。
s4、基于ioutracker跟踪算法在连续的帧图像中对目标行人进行持续跟踪;
s5、基于人头检测模型检测行人检测框中的目标行人的头部,生成头部检测框对头部进行标注;
s6、基于安全帽分类模型对头部检测框中的头部进行安全帽佩戴分类,从而判断每个帧图像中目标行人是否佩戴安全帽;
需要说明的是,安全帽佩戴分类的结果为未佩戴安全帽和佩戴安全帽。
s7、获取同一id的目标行人在连续的帧图像中的安全帽佩戴判断结果,当连续的n个帧图像中的安全帽佩戴判断结果为未佩戴安全帽,且n值大于预设帧值,则判定相应的目标行人未佩戴安全帽。
需要说明的是,在经过对连续n个帧图像中的目标行人的检测和跟踪,获取目标行人在n个帧图像中安全帽佩戴结果,如果对于id为0001的目标行人,在n个帧图像内均判别为未佩戴安全帽,则判定id为0001的目标行人未佩戴安全帽,从而降低了当工作人员低头或临时被遮挡时产生误检的概率。
在本实施例中,通过将改进yolov3目标检测算法运用于行人检测模型中,提高了目标检测算法精度,降低了算法训练计算量,同时,基于ioutracker跟踪算法对目标行人进行持续跟踪,还通过人头检测模型对目标行人的头部识别,并通过安全帽分类模型对头部进行安全帽佩戴分类,从而判断每个帧图像中目标行人是否佩戴安全帽,最后,还基于预设的佩戴判定规则判定相应的目标行人是否佩戴安全帽,从而能够提高安全帽佩戴检测的灵活性和可靠性,降低了当工作人员低头或临时被遮挡时产生误检从而导致的误报的情况频发的概率。
进一步地,步骤s2之前包括:
s21、制备带有行人标注信息的视频帧行人图像数据集,其中,行人标注信息包括行人预测框;
需要说明的是,本实施例中的数据集是基于变电站应用场所中得到的,因此,其视频帧行人图像数据集是由变电站中获得。采用labelimage软件对初始的视频帧行人图像数据集中每帧视频帧行人图像进行标注,得到视频帧行人图像数据集。另外,在其它实施例中,还可以对视频帧行人图像数据集进行增广操作,以获得更多场景的大量视频帧行人图像数据。
s22、基于视频帧行人图像数据集作为训练集,以lossiou_giou损失函数作为边框置信度损失函数,对yolov3目标检测算法进行训练迭代,从而得出行人检测模型。
进一步地,步骤s5之前包括:
s51、对视频帧行人图像数据集中的行人预测框进行截取,从而得到行人预测框数据集;
需要说明的是,基于yolov3目标检测算法,在检测出目标行人后,在原图中给出目标行人的坐标信息(检测框的坐标),以坐标信息为基准,在原图上进行截取操作(抠图操作)。
s52、通过头部预测框对行人预测框数据集中的头部进行标注,以获得头部数据集;
s53、基于头部数据集作为训练集,以lossiou_giou损失函数作为边框置信度损失函数,对yolov3目标检测算法进行训练迭代,从而得出人头检测模型。
进一步地,步骤s6之前包括:
s61、对头部数据集中的头部预测框进行截取,从而得到头部预测框数据集;
需要说明的是,基于yolov3目标检测算法,在检测出头部后,在原图中给出头部的坐标信息(检测框的坐标),以坐标信息为基准,在原图上进行截取操作(抠图操作)。
s62、判断头部预测框数据集中的头部是否佩戴有安全帽,根据安全帽佩戴结果对头部预测框数据集中的头部进行分类标注,其标注内容为未佩戴安全帽或佩戴安全帽,从而获得安全帽数据集;
s63、基于安全帽数据集作为训练集,对resnet-50网络结构进行训练迭代,从而得出安全帽分类模型。
进一步地,步骤s4具体包括:
基于ioutracker跟踪算法对连续前后两个帧图像中的行人检测框进行关联,具体为:当前后两个帧图像中的行人检测框的重叠程度大于预设的重叠程度值时,则判定为同一个目标行人,并向相应的两个帧图像中的目标行人分配同样的id;当帧图像中的行人检测框在其它帧图像中未匹配与其的重叠程度大于预设的重叠程度值的行人检测框时,则判定有新的目标行人出现,并向相应的新的目标行人分配新的id。
需要说明的是,在ioutracker跟踪算法中,采用iou(intersectionoverunion)值反映前后两个帧图像中的行人检测框的重叠程度,iou值即交并比,是通过预测框和真实框的交集和并集之间的比值计算得到。在处理每个帧图像中的行人检测框时,需要对当前追踪的目标行人检测框,从上一个帧图像中所有检测到的行人检测框中选取与其之间的iou值最大的行人检测框,若该iou值大于预设的重叠程度值,则说明两者匹配,并向两者分配同样的id,否则匹配失败,如果不存在与其匹配的行人检测框,则认为是新出现的目标,并为之创建一个新的id。
进一步地,步骤s7之后还包括:
当判定为目标行人未佩戴安全帽时,则发出告警信号。
需要说明的是,告警信号的发送方式可以为声光报警,也可以为语音提醒。
以下为实现本发明提供的一种基于改进yolov3的安全帽佩戴检测方法的系统,为了方便理解,请参阅图3,本发明提供的一种基于改进yolov3的安全帽佩戴检测系统,包括:
解码模块100,用于将变电站内的监控视频流解码为多个帧图像;
行人检测模块200,用于基于行人检测模型检测每个帧图像中的目标行人,行人检测模型是预先基于改进yolov3目标检测算法训练得到,改进yolov3目标检测算法采用lossiou_giou损失函数进行训练,lossiou_giou损失函数为基于预测框和真实框的重叠区域以及包含预测框和真实框的最小框得到;
标注模块300,用于生成行人检测框对目标行人进行标注,还用于对每个检测出的目标行人分配不同的id;
跟踪模块400,用于基于ioutracker跟踪算法在连续的帧图像中对目标行人进行持续跟踪;
人头检测模块500,用于基于人头检测模型检测行人检测框中的目标行人的头部,还用于生成头部检测框对头部进行标注;
安全帽分类模块600,用于基于安全帽分类模型对头部检测框中的头部进行安全帽佩戴分类,从而判断每个帧图像中目标行人是否佩戴安全帽;
判定模块700,用于获取同一id的目标行人在连续的帧图像中的安全帽佩戴判断结果,还用于当连续的n个帧图像中的安全帽佩戴判断结果为未佩戴安全帽,且n值大于预设帧值,则判定相应的目标行人未佩戴安全帽。
在本实施例与上述的基于改进yolov3的安全帽佩戴检测方法的工作过程一致,在此不再赘述。
本实施例通过将改进yolov3目标检测算法运用于行人检测模型中,提高了目标检测算法精度,降低了算法训练计算量,同时,基于ioutracker跟踪算法对目标行人进行持续跟踪,还通过人头检测模型对目标行人的头部识别,并通过安全帽分类模型对头部进行安全帽佩戴分类,从而判断每个帧图像中目标行人是否佩戴安全帽,最后,还基于预设的佩戴判定规则判定相应的目标行人是否佩戴安全帽,从而能够提高安全帽佩戴检测的灵活性和可靠性,降低了当工作人员低头或临时被遮挡时产生误检从而导致的误报的情况频发的概率。
本发明还提供了一种计算机可读存储介质,其中存储有计算机程序,计算机程序被处理器加载执行时,实现如上述的基于改进yolov3的安全帽佩戴检测方法。
本发明还提供了一种电子设备,包括:处理器及存储器;其中,存储器用于存储计算机程序;处理器用于加载执行计算机程序,以使电子设备执行如上述的基于改进yolov3的安全帽佩戴检测方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以通过一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文缩写:rom)、随机存取存储器(英文全称:randomaccessmemory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
