本申请涉及计算机技术领域,特别是涉及一种安全帽佩戴检测方法和装置、电子设备、计算机可读存储介质。
背景技术:
随着城市化发展的不断深化,人们生活的节奏越来越快,网络的高速发展活跃了外卖和快递市场,人们享受着网上购物和送餐给生活带来的便利。然而在便利的同时,由于外卖和快递市场对外送和派件业务有着严格的时效限制,配送人员往往在驾驶过程中存在未佩戴安全帽、打电话等不规范驾驶行为,极大程度上增加了发生交通事故的严重程度及几率。有研究表明驾驶人员佩戴安全帽将大大降低交通事故的发生率。因此,有必要对驾驶人员是否佩戴安全帽进行检查并监督。传统的安全帽佩戴检测方法,通常是采用部署在城市的公共道路出入口及主要行人车流通道的摄像头,来对两轮或者三轮机动车驾驶者佩戴安全帽的状态进行实时统计。然而,这种检测方法的准确性较低,因此,亟需提供一种安全帽佩戴检测方法来改善这种情况。
技术实现要素:
本申请实施例提供一种安全帽佩戴检测方法、装置、电子设备、计算机可读存储介质,可以提高安全帽佩戴检测的准确性。
一种安全帽佩戴检测方法,包括:
对图像帧中的人体骨骼点进行检测,得到每组人体骨骼点的位置信息;
对所述图像帧中的安全帽进行检测,得到安全帽的位置信息;
通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到人体骨骼点与安全帽的匹配对;
当所述匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
在其中一个实施例中,所述通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到人体骨骼点与安全帽的匹配对,包括:
对每组人体骨骼点的位置信息与安全帽的位置信息计算匹配值,所述每组人体骨骼点至少包括人体上鼻子、脖子对应的骨骼点;
将所述匹配值输入至匈牙利算法中计算出人体骨骼点的位置信息与安全帽的位置信息的匹配对。
在其中一个实施例中,所述当所述匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽,包括:
判断所述匹配对的匹配值是否小于所述第一阈值;
若判断出所述匹配对的匹配值小于所述第一阈值,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
在其中一个实施例中,所述方法还包括:
当判断出所述匹配对的匹配值大于或等于所述第一阈值,则检测出符合预设条件的匹配对中的人员未佩戴安全帽。
在其中一个实施例中,所述一组人体骨骼点至少包括人体上鼻子、脖子对应的骨骼点;所述当所述匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽,包括:
获取符合预设条件的匹配对,计算所述符合预设条件的匹配对中人体上脖子对应的骨骼点到鼻子对应的骨骼点的向量作为基准向量;
计算所述符合预设条件的匹配对中人体上鼻子对应的骨骼点到安全帽的中心点的向量;
将所述人体上鼻子对应的骨骼点到安全帽的中心点的向量分别与所述基准向量做点乘运算得到点乘运算结果,对所述点乘运算结果计算加权和;
当所述点加权和小于第二阈值时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
在其中一个实施例中,所述方法还包括:
当所述加权和大于或等于第二阈值时,则检测出符合预设条件的匹配对中的人员未佩戴安全帽。
在其中一个实施例中,所述方法还包括:
获取未佩戴安全帽的人员的相关信息,所述相关信息包括位置信息、图像信息;
将所述未佩戴安全帽的人员的相关信息上传至服务器进行存储。
一种安全帽佩戴检测装置,包括:
人体骨骼点位置检测模块,用于对图像帧中的人体骨骼点进行检测,得到每组人体骨骼点的位置信息;
安全帽位置检测模块,用于对所述图像帧中的安全帽进行检测,得到安全帽的位置信息;
匹配对获取模块,用于通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到人体骨骼点与安全帽的匹配对;
佩戴安全帽确定模块,用于当所述匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,,计算机程序被处理器执行时实现如上方法的步骤。
上述安全帽佩戴检测方法、装置、电子设备、计算机可读存储介质,对图像帧中的人体骨骼点进行检测,得到每组人体骨骼点的位置信息,对图像帧中的安全帽进行检测,得到安全帽的位置信息。通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到人体骨骼点与安全帽的匹配对,当匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。当人员正确佩戴了安全帽时,人体骨骼点位置信息与安全帽的位置相关性较强,因此利用了人体骨骼点信息与安全帽位置的位置相关性较强的特性,通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,并在所得的匹配对符合预设条件时,检测出符合预设条件的匹配对中的人员佩戴安全帽。如此,通过该安全帽佩戴检测方法所得出的检测结果的鲁棒性更好,同时更加准确。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中安全帽佩戴检测方法的应用环境图;
图2为一个实施例中安全帽佩戴检测方法的流程图;
图3为一个实施例中人体骨骼点的分布图;
图4为一个实施例中人帽匹配过程的示意图;
图5为图2中从符合预设条件的匹配对中确定人员佩戴安全帽的流程图;
图6为一个实施例中向量的示意图;
图7为一个具体的实施例中安全帽佩戴检测方法的流程图;
图8为一个实施例中安全帽佩戴检测装置的结构框图;
图9为一个实施例中安全帽佩戴检测装置的结构框图;
图10为一个实施例中电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
图1为一个实施例中安全帽佩戴检测方法在充电过程中的应用环境示意图。如图1所示,该应用环境包括电子设备120及服务器140,该电子设备120具有拍照功能,并可以对所拍摄的照片或视频进行分析处理,判断出所拍摄的照片或视频中的人员是否佩戴安全帽,并将未佩戴安全帽的人员的图像上传至服务器140中的数据库进行存储,以便对未佩戴安全帽的人员进行记录,并可以进行警告和处罚。电子设备120可以安装到配送快递或外卖等的车(两轮、三轮车及汽车等交通工具)上,以便对驾驶人员或随行人员进行拍摄照片或视频。当然,电子设备120也可以安装到施工场地等需要检测人员是否佩戴安全帽的场景中,对施工场地进行拍摄照片或视频。电子设备120可以对图像帧中的人体骨骼点进行检测,得到每组人体骨骼点的位置信息,对图像帧中的安全帽进行检测,得到安全帽的位置信息。通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到人体骨骼点与安全帽的匹配对,当匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。可以理解的是,上述电子设备120可以不限于是各种具有拍照及处理功能的手机、电脑、可携带设备、数码相机等设备,也可以是具有摄像头的嵌入式设备。
图2为一个实施例中安全帽佩戴检测方法的流程图,如图2所示,安全帽佩戴检测方法包括步骤220至步骤280,应用于电子设备。
步骤220,对图像帧中的人体骨骼点进行检测,得到每组人体骨骼点的位置信息。
电子设备对拍摄场景进行拍摄得到图像或视频,从所拍摄得到的图像或视频中提取出包含人体的图像帧。因为人体一般都是由固定的骨骼构成,所以可以对人体骨骼点进行定位,从而实现人体二维姿态估计,以便后续将人体与安全帽之间的相对位置进行确定。具体的,可以预先设置人体的关键骨骼点。本申请所采用的人体骨骼点检测算法共检测18个人体骨骼点,当然,也可以对人体骨骼点进行更细致的检测,检测出更多组的人体骨骼点,也可以减少所检测出的人体骨骼点,本申请对比不作限定。如图3所示,预先设置人体的骨骼点包括18个骨骼点,这18个骨骼点及其标号分别为鼻子-0,脖子-1,右肩-2,右肘-3,右手腕-4,左肩-5,左肘-6,左手腕-7,右臀-8,右膝盖-9,右脚踝-10,左臀-11,左膝盖-12,左脚踝-13,右眼-14,左眼-15,右耳朵-16,左耳朵-17。左图为整个人体的骨骼点的分布图,右图为头部的骨骼点的放大图。
采用的人体骨骼点检测算法对图像帧中的每个人体的人体骨骼点分别进行检测,得到每组人体骨骼点的位置信息。其中,每个人的人体骨骼点构成一组人体骨骼点。例如,图像帧中可能包括多个人体、多个安全帽,那么采用的人体骨骼点检测算法对图像帧中的每个人体的鼻子-0,脖子-1,右眼-14,左眼-15,右耳朵-16,左耳朵-17这6个人体骨骼点进行检测,得出每个人体的鼻子-0的位置信息记作(x0,y0),脖子-1的位置信息记作(x1,y1),右眼-14的位置信息记作(x14,y14),左眼-15的位置信息记作(x15,y15),右耳朵-16的位置信息记作(x16,y16),左耳朵-16的位置信息记作(x17,y17)。
步骤240,对图像帧中的安全帽进行检测,得到安全帽的位置信息。
对图像帧中的每个安全帽进行检测,得到每个安全帽的位置信息,,记作(xbox,ybox)。一般对安全帽的包围盒boundingbox的中心点的位置进行检测,作为安全帽的位置。
步骤260,通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到人体骨骼点与安全帽的匹配对。
匈牙利算法(thehungarianalgorithm)是由匈牙利数学家edmonds于1965年提出因而得名。匈牙利算法是基于hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,因此它是一种用增广路径求二分图最大匹配的算法。
具体的,图像帧中可能包括多个人体、多个安全帽。假设从图像帧中检测到有m个人,n个安全帽,那么在进行匈牙利算法匹配人和头盔时,首先对m组人体骨骼点的位置与n个安全帽的位置进行两两匹配,此时人体骨骼点可以选用与安全帽位置关联性较强的[0,1,14,15,16,17]编号的人体骨骼点。将每组人体骨骼点中的[0,1,14,15,16,17]编号的骨骼点的位置、及每个安全帽的位置输入至匈牙利算法中,进行两两匹配,直到得到一组人体骨骼点与某个安全帽的匹配对。若未找到与该组人体骨骼点匹配的安全帽,则认为该组人体骨骼点对应的人员为未匹配人员,直接认为该未匹配人员未佩戴安全帽。该匹配过程主要是通过距离来实现匹配,距离越小则该组人体骨骼点与某个安全帽的匹配度越高,则该组人体骨骼点所对应的人佩戴安全帽的概率越高。
步骤280,当匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
在经过匈牙利算法得到了人体骨骼点与安全帽的匹配对之后,继续判断匹配对是否符合预设条件,进一步筛选出预设条件的匹配对,就可以得出该匹配对所对应的人员佩戴了该安全帽。
传统方法中,采用行人检测算法检测图像帧中人员的位置,通过行人检测算法所检测出的图像帧中人员的位置与安全帽的位置之间的位置相关性较弱,无法判断出图像帧中人员的位置与安全帽的位置是否匹配。且采用行人检测算法对电子设备的安装角度有较高的要求,因此,电子设备的安装灵活性较差。
本申请实施例中,对图像帧中的人体骨骼点进行检测,得到每组人体骨骼点的位置信息,对图像帧中的安全帽进行检测,得到安全帽的位置信息。通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到人体骨骼点与安全帽的匹配对,当匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。当人员正确佩戴了安全帽时,人体骨骼点位置信息与安全帽的位置相关性较强,因此利用了人体骨骼点信息与安全帽位置的位置相关性较强的特性,通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,并在所得的匹配对符合预设条件时,检测出符合预设条件的匹配对中的人员佩戴安全帽。如此,通过该安全帽佩戴检测方法所得出的检测结果的鲁棒性更好,同时更加准确,且采用该方法可以对图像帧中出现的多个人和多个安全帽同时进行检测。
在一个实施例中,步骤260,通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到人体骨骼点与安全帽的匹配对,包括:
对每组人体骨骼点的位置信息与安全帽的位置信息计算匹配值,每组人体骨骼点至少包括人体上鼻子、脖子对应的骨骼点;
将匹配值输入至匈牙利算法中计算出人体骨骼点与安全帽的匹配对。
具体的,如图4所示,图4中左侧深灰色的圆圈代表每个安全帽的位置信息,左侧浅灰色的圆圈代表每个人员的一组人体骨骼点的位置信息。分别将每个人员的一组人体骨骼点的位置信息与每个安全帽的位置信息做匹配计算匹配值。这里为了减少计算量,每个人员的一组人体骨骼点至少需要包括人体上鼻子、脖子对应的这两个骨骼点。当然,每个人员的一组人体骨骼点也可以包括人体上鼻子、脖子、右眼、左眼、右耳朵、左耳朵对应的这六个骨骼点。甚至为了计算的精确度,每个人员的一组人体骨骼点可以上面实施例中提及的18个骨骼点。
当选择每个人员的一组人体骨骼点也可以包括人体上鼻子、脖子、右眼、左眼、右耳朵、左耳朵对应的这六个骨骼点。则计算匹配值的公式为:
其中,指的是匹配值,(x,y)指的是每个人员的一组人体骨骼点的位置,ukeypoint指的是每个人员的一组人体骨骼点(包括鼻子、脖子、右眼、左眼、右耳朵、左耳朵对应的这六个骨骼点)。(xbox,ybox)指的是每个安全帽的位置。上述公式中选用a个骨骼点来计算该a个骨骼点到安全帽的中心点的距离均值,因此分母为a。当计算鼻子、脖子、右眼、左眼、右耳朵、左耳朵对应的这六个骨骼点到安全帽的中心点的距离均值,则此时a就取值为6。当计算鼻子、脖子对应的这两个骨骼点到安全帽的中心点的距离均值,则此时a就取值为2。
为了减少计算量,每个人员的一组人体骨骼点至少需要包括人体上鼻子、脖子对应的这两个骨骼点。当人体骨骼点检测算法连人体上鼻子、脖子对应的这两个骨骼点都无法检测到的时候,就认为匹配失败。
在计算出匹配值distancemean之后,取负值得到-distancemean。将-distancemean输入至匈牙利算法中得到人体骨骼点与安全帽的匹配对。此时,可能得到了多k组匹配对,其中,k=min(m,n),m指的是图像帧中有m个人,n指的是图像帧中有n个安全帽。
本申请实施例中,每个人员的一组人体骨骼点至少需要包括人体上鼻子、脖子对应的这两个骨骼点。计算每个人员的一组人体骨骼点的位置与每个安全帽的中心点之间的距离均值,该距离均值即为一组人体骨骼点的位置与某个安全帽的中心点的匹配值。对该匹配值取负值,然后输入至匈牙利算法中计算出人体骨骼点与安全帽的匹配对。采用本方法依次将每一组人体骨骼点的位置坐标都与每一个安全帽的中心点坐标,都计算匹配值。再将该匹配值取负值输入至匈牙利算法中进行匹配出人体骨骼点与安全帽的匹配对。匈牙利算法能够准确地得出匹配对,提高了最终所检测出的是否佩戴安全帽的准确性。
在一个实施例中,当匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽,包括:
判断匹配对的匹配值是否小于第一阈值;
若判断出匹配对的匹配值小于第一阈值,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
具体的,第一阈值指的是tmatch。如图4所示,当经过匈牙利算法得出了匹配对之后,判断每组匹配对的匹配值是否满足distancemean<tmatch。筛选出符合该条件的匹配对作为最终的匹配对,则检测出该匹配对中的该组人体骨骼点对应的人员佩戴安全帽。其中,tmatch为该匹配逻辑的阈值。该阈值即表示人体骨骼点与安全帽中心点的距离均值的阈值,因此与所拍摄图像的尺寸、应用场景等都有一定的关系。该阈值为经过对大量的样本图像进行分析所得出的,与拍摄图像不同的尺寸、不同的应用场景相对应。
本申请实施例中,通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到了人体骨骼点与安全帽的匹配对。继续判断匹配对的匹配值是否是否小于第一阈值,若判断出匹配对的匹配值小于第一阈值,则检测出符合预设条件的匹配对中的人员佩戴安全帽。增加第一阈值来从第一次筛选出的匹配对中筛选出目标匹配对,两次筛选大大提高了最终所得到的目标匹配对的准确性,进而提高最终所检测出的是否佩戴安全帽的准确性。
接上一个实施例中,还提供了一种安全帽佩戴检测方法,包括:
当判断出匹配对的匹配值大于或等于第一阈值,则检测出符合预设条件的匹配对中的人员未佩戴安全帽。
本申请实施例中,通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到了人体骨骼点与安全帽的匹配对。继续判断匹配对的匹配值是否是否小于第一阈值,若判断出匹配对的匹配值大于或等于第一阈值,则检测出符合预设条件的匹配对中的人员未佩戴安全帽。增加第一阈值来从第一次筛选出的匹配对中筛选出目标匹配对,两次筛选大大提高了最终所得到的目标匹配对的准确性,进而提高最终所检测出的是否佩戴安全帽的准确性。
在一个实施例中,如图5所示,还提供了一种安全帽佩戴检测方法,一组人体骨骼点至少包括人体上鼻子、脖子对应的骨骼点;
步骤280,当匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽,包括:
步骤282,获取符合预设条件的匹配对,计算符合预设条件的匹配对中人体上脖子对应的骨骼点到鼻子对应的骨骼点的向量作为基准向量;
步骤284,计算符合预设条件的匹配对中人体上鼻子对应的骨骼点到安全帽的中心点的向量;
步骤286,将人体上鼻子对应的骨骼点到安全帽的中心点的向量分别与基准向量做点乘运算得到点乘运算结果,对点乘运算结果计算加权和;
步骤288,当加权和小于第二阈值时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
具体的,请结合图6所示,图中包括[0,1,14,15,16,17]这6个编号的人体骨骼点,图中方框表示安全帽区域,安全帽的中心点为centerpoint。当对图像帧的某个人体检测出了[0,1,14,15,16,17]这6个编号的人体骨骼点,则就可以根据[0,1,14,15,16,17]这6个编号的人体骨骼点来做向量计算。当然,只要至少对图像帧的某个人体检测出[0,1]这2个编号的人体骨骼点就可以来做计算。
基于人体头部与安全帽的位置关系,显然,0,1号人体骨骼点与安全帽的位置相关性最强,在对人体的骨骼点进行检测的时候,至少要检测出[0,1]这2个编号的人体骨骼点,才能进行后续的向量计算。其中,0号人体骨骼点为鼻子,1号人体骨骼点为脖子。因此,在获取符合预设条件的匹配对之后,计算符合预设条件的匹配对中人体上脖子对应的骨骼点到鼻子对应的骨骼点的向量作为基准向量basevector。
由于1号骨骼点相比于其余5个骨骼点距离安全帽位置较远,因此不考虑1号骨骼点,将剩余的骨骼点分别与安全帽boundingbox中心点连线所得的向量。
一种情况下,当对图像帧的某个人体仅仅检测出了[0,1]这2个编号的人体骨骼点,由于1号骨骼点相比于0号骨骼点距离安全帽位置较远,因此不考虑1号骨骼点,将0号骨骼点与安全帽boundingbox中心点连线所得的向量。此时,该向量的权重就是1。
另一种情况下,如除了检测出[0,1]这2个编号的人体骨骼点之外,还检测出了其他更多的骨骼点,则可以选择性地将其他骨骼点加入进来进行向量计算。当然,为了节约计算量,依然可以仅仅对[0,1]这2个编号的人体骨骼点做向量计算,将0号骨骼点与安全帽boundingbox中心点连线得到向量,而不对除了[0,1]这2个编号的人体骨骼点之外的骨骼点做向量计算。
例如,当对图像帧的某个人体检测出了[0,1,14,15,16,17]这6个编号的人体骨骼点,同理则可以将[0,14,15,16,17]这5个骨骼点分别与安全帽boundingbox中心点连线所得的向量。并为相关性较强的骨骼点分配较大的权重,由于0号人体骨骼点-鼻子与安全帽中心点的相关性最强,因此,为0号人体骨骼点分配最大的权值;其次,对14,15号人体骨骼点分配较小的权值;最后对16,17号人体骨骼点分配最小的权值。这些权值之和为1即可。例如,可以为[0,14,15,16,17]这5个骨骼点分别与安全帽boundingbox中心点连线所得的向量,分别分配权值[0.4,0.2,0.2,0.1,0.1]。当然,本申请对权重分配并不作限定。
然后,将人体上鼻子、右眼、左眼、右耳朵、左耳朵对应的骨骼点到安全帽的中心点的向量分别与基准向量做点乘运算,得到点乘运算结果,再对点乘运算结果乘以各自的权重得到加权和。判断加权和是否小于第二阈值,当点乘运算结果小于第二阈值时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。当加权和大于或等于第二阈值时,则检测出符合预设条件的匹配对中的人员未佩戴安全帽。
其中,第二阈值即表示人体骨骼点与安全帽中心点的距离均值的阈值,因此与所拍摄图像的尺寸、应用场景等都有一定的关系。该阈值为经过对大量的样本图像进行分析所得出的,与拍摄图像不同的尺寸、不同的应用场景相对应。
本申请实施例中,在上述得出了符合预设条件的匹配对之后,进一步计算符合预设条件的匹配对中人体上脖子对应的骨骼点到鼻子对应的骨骼点的向量作为基准向量,计算符合预设条件的匹配对中部分人体骨骼点到安全帽的中心点的向量。再对这两类向量做点乘,将点乘运算结果与第二阈值进行比较。从而,更进一步对符合预设条件的匹配对中并未佩戴安全帽的人员进行剔除。通过向量可以进一步剔除人员只是将安全帽放在旁边的情形或未正确佩戴安全帽的情形。从而,保证了所检测出的人员佩戴安全帽的准确性,且保证了人员不仅佩戴了安全帽,还应该是正确佩戴安全帽。
在一个实施例中,还提供了一种安全帽佩戴检测方法,包括:
获取未佩戴安全帽的人员的相关信息,相关信息包括位置信息、图像信息;将未佩戴安全帽的人员的相关信息上传至服务器进行存储。
本申请实施例中,检测出图像帧中哪些人员未佩戴安全帽,则将获取未佩戴安全帽的人员的相关信息,将未佩戴安全帽的人员的相关信息上传至服务器进行存储。相关信息包括位置信息(gps经纬度信息)、图像信息及车辆上所安装的电子设备的摄像头的编号信息。以便采用无人值守的方式,实现安全警示和记录在案的功能。
在一个具体的实施例中,如图7所示,提供了一种安全帽佩戴检测方法,包括:
步骤702:获取视频帧;
步骤704:对图像帧中的人体骨骼点进行检测,得到每组人体骨骼点的位置信息;
步骤706:判断是否检测到人,若否,则进入步骤702;
步骤708:若是,则对图像帧中的安全帽进行检测,得到安全帽的位置信息;
步骤710:通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,计算匹配值并得到人体骨骼点与安全帽的匹配对,将人体骨骼点与安全帽的匹配对输入至步骤712,将未匹配的人员输入至步骤720;
步骤712:判断匹配对的匹配值是否小于第一阈值;
步骤714:若是,则计算基准向量及人体上骨骼点到安全帽的中心点的向量,并分别进行点乘运算,再对点乘运算结果计算加权和;
步骤716:判断加权和是否小于第二阈值;
步骤718:若是,则判断为佩戴安全帽;
步骤720:若判断匹配对的匹配值大于或等于第一阈值,则将该匹配对与加权和大于或等于第二阈值的匹配对及未匹配的人员进行融合;
步骤722:将融合后的匹配对判断为未佩戴安全帽;
步骤724:保存未佩戴安全帽的图像帧,并将该图像帧的位置信息与摄像头编号上传至服务器中,更新数据库。
本申请实施例中,利用了人体骨骼点信息与安全帽位置的位置相关性较强的特性,通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,并在所得的匹配对符合预设条件时,检测出符合预设条件的匹配对中的人员佩戴安全帽。在得出了符合预设条件的匹配对之后,进一步计算符合预设条件的匹配对中人体上脖子对应的骨骼点到鼻子对应的骨骼点的向量作为基准向量,计算符合预设条件的匹配对中部分人体骨骼点到安全帽的中心点的向量。再对这两类向量做点乘,将点乘运算结果与第二阈值进行比较。从而,更进一步对符合预设条件的匹配对中并未佩戴安全帽的人员进行剔除。通过向量可以进一步剔除人员只是将安全帽放在旁边的情形或未正确佩戴安全帽的情形。从而,保证了所检测出的人员佩戴安全帽的准确性,且保证了人员不仅佩戴了安全帽,还应该是正确佩戴安全帽。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种安全帽佩戴检测装置800,包括:人体骨骼点位置检测模块820、放电深度获取模块630、匹配对获取模块860及佩戴安全帽确定模块880,其中,
人体骨骼点位置检测模块820,用于对图像帧中的人体骨骼点进行检测,得到每组人体骨骼点的位置信息;
安全帽位置检测模块840,用于对所述图像帧中的安全帽进行检测,得到安全帽的位置信息;
匹配对获取模块860,用于通过匈牙利算法对每组人体骨骼点的位置信息与安全帽的位置信息进行匹配,得到人体骨骼点与安全帽的匹配对;
佩戴安全帽确定模块880,用于当所述匹配对符合预设条件时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
在一个实施例中,匹配对获取模块860,还用于对每组人体骨骼点的位置信息与安全帽的位置信息计算匹配值,所述每组人体骨骼点至少包括人体上鼻子、脖子对应的骨骼点;将所述匹配值输入至匈牙利算法中计算出人体骨骼点与安全帽的匹配对。
在一个实施例中,佩戴安全帽确定模块880,还用于判断所述匹配对的匹配值是否小于所述第一阈值;若判断出所述匹配对的匹配值小于所述第一阈值,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
在一个实施例中,佩戴安全帽确定模块880,还用于当判断出所述匹配对的匹配值大于或等于所述第一阈值,则检测出符合预设条件的匹配对中的人员未佩戴安全帽。
在一个实施例中,所述一组人体骨骼点至少包括人体上鼻子、脖子对应的骨骼点;佩戴安全帽确定模块880,包括:
基准向量获取单元,用于获取符合预设条件的匹配对,计算所述符合预设条件的匹配对中人体上脖子对应的骨骼点到鼻子对应的骨骼点的向量作为基准向量;
骨骼点到安全帽的中心点的向量获取单元,用于计算所述符合预设条件的匹配对中人体上鼻子对应的骨骼点到安全帽的中心点的向量;
点乘运算及加权和单元,用于将所述人体上鼻子对应的骨骼点到安全帽的中心点的向量分别与所述基准向量做点乘运算得到点乘运算结果,对所述点乘运算结果计算加权和;
佩戴安全帽确定单元,用于当所述加权和小于第二阈值时,则检测出符合预设条件的匹配对中的人员佩戴安全帽。
在一个实施例中,佩戴安全帽确定模块880,还用于当所述点乘运算结果大于或等于第二阈值时,则检测出符合预设条件的匹配对中的人员未佩戴安全帽。
在一个实施例中,如图9所示,提供了一种安全帽佩戴检测装置800,还包括上传模块890,用于获取未佩戴安全帽的人员的相关信息,所述相关信息包括位置信息、图像信息;将所述未佩戴安全帽的人员的相关信息上传至服务器进行存储。
上述安全帽佩戴检测装置中各个模块的划分仅用于举例说明,在其他实施例中,可将安全帽佩戴检测装置按照需要划分为不同的模块,以完成上述安全帽佩戴检测装置的全部或部分功能。
图10为一个实施例中电子设备的内部结构示意图。如图10所示,该电子设备包括通过系统总线连接的处理器和存储器。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以下各个实施例所提供的一种安全帽佩戴检测方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。该电子设备可以是手机、平板电脑或者个人数字助理或穿戴式设备等。
本申请实施例中提供的安全帽佩戴检测装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述方法的步骤。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当计算机可执行指令被一个或多个处理器执行时,使得处理器执行安全帽佩戴检测方法的步骤。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行安全帽佩戴检测方法。
本申请实施例所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram),它用作外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。