欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 基于深度学习的高空抛物检测方法、装置及介质独创技术25957字

基于深度学习的高空抛物检测方法、装置及介质

2021-01-29 16:42:59

基于深度学习的高空抛物检测方法、装置及介质

  技术领域

  本发明涉及深度学习及人工智能技术领域,具体涉及一种基于深度学习的高空抛物检测方法、装置及介质。

  背景技术

  高空抛物被称为“悬在城市上空的痛”,其不仅仅是不文明的行为,更是给社会安全带来很大隐患。由于事件发生场所多为高空楼层,少有目击者,抛物时间短,使得执法部门很难追究抛物者的法律责任。因此,实现智能对高空抛物的检测就非常的重要。

  但现有的高空抛物检测方法误检率高,且检测速度慢。

  发明内容

  针对上述技术缺陷,本发明实施例的目的在于提供一种基于深度学习的高空抛物检测方法、装置及可读存储介质。

  为实现上述目的,第一方面,本发明实施例提供了一种基于深度学习的高空抛物检测方法,包括:

  S1:使用第一帧高空抛物监控图像作为初始化背景,初始化t=2;

  S2:根据所述初始化背景,基于yolov3检测方法,检测第t帧高空抛物监控图像中的运动目标,其中t≥2;

  S3:结合匈牙利算法和卡尔曼滤波算法对检测到的所述运动目标进行追踪,并通过追踪算法获得所述运动目标的运动轨迹;

  S4:根据所述运动目标的运动轨迹,判断所述运动目标是否为高空抛物,若是进入步骤S5,否则,删除所述运动目标的运动轨迹;

  S5:根据所述运动目标的运动轨迹,获取所述运动目标的抛出位置。

  作为本申请的一种具体实施方式,所述步骤S2具体包括:

  S201:根据所述初始化背景,对第t帧高空抛物监控图像进行前景检测,得到第t帧高空抛物监控图像的前景检测结果;

  S202:基于第t帧高空抛物监控图像的前景检测结果判断摄像头是否抖动,若是,进入步骤S203,否则进入步骤S204;

  S203:使用第t帧的高空抛物监控图像更新所述初始化背景,使得t=t+1,并转至步骤S201;

  S204:采用随机更新方法更新所述初始化背景,进入步骤S205;

  S205:使用yolov3检测方法,检测第t帧高空抛物监控图像中的运动目标,并进入步骤S3。

  进一步地,所述基于第t帧高空抛物监控图像的前景检测结果判断摄像头是否抖动,具体包括:

  (1)统计所述前景检测结果中,前景目标所占像素点的个数,记为n1;

  (2)计算n1与第t帧的高空抛物监控图像的总像素点个数n2的比例n1/n2;

  (3)若比例n1/n2大于设定阈值,则认为摄像头发生抖动,否则,认为摄像头未发生抖动。

  作为本申请的一种具体实施方式,所述步骤S3具体包括:

  S301:将第t-1帧高空抛物监控图像中该运动目标的信息和第t帧高空抛物监控图像中该运动目标的信息输入匈牙利算法,使用匈牙利算法匹配第t-1帧高空抛物监控图像中该运动目标在第t帧高空抛物监控图像中的位置,若追踪成功,将第t帧高空抛物监控图像中该运动目标的位置输入到对应的卡尔曼滤波器中,若追踪失败,使用卡尔曼滤波器预测该运动目标在第t帧高空抛物监控图像中的位置;根据得到的该运动目标在第t帧高空抛物监控图像中的位置形成初步轨迹;

  S302:判断所述初步轨迹中是否存在连续5个点都是使用卡尔曼滤波器预测得到,若是,则确定所述初步轨迹为该运动目标的运动轨迹,转至步骤S4;否则,进入步骤S303;

  S303:判断第t帧高空抛物监控图像是否为高空抛物监控视频的最后一帧,若是,则结束;否则,t=t+1,并转至步骤S2。

  作为本申请的一种具体实施方式,所述步骤S4具体包括:

  S401:统计检测到的运动轨迹中,使用匈牙利算法匹配得到的点个数x、使用卡尔曼滤波预测得到的点个数y和非加速运动点个数z;

  S402:若或z>0.3*(x+y),则判定该运动目标不是高空抛物,并进入步骤S403;否则,判定该运动目标为高空抛物,进入步骤S5;

  S403:将该运动目标的运动轨迹删除。

  第二方面,本发明实施例提供了一种基于深度学习的高空抛物检测装置,包括运动目标检测单元、运动轨迹检测单元和判定单元;

  所述运动目标检测单元用于:

  使用第一帧高空抛物监控图像作为初始化背景,初始化t=2;

  根据所述初始化背景,基于yolov3检测方法,检测第t帧高空抛物监控图像中的运动目标,其中t≥2;

  所述运动轨迹检测单元用于:

  结合匈牙利算法和卡尔曼滤波算法对检测到的所述运动目标进行追踪,并通过追踪算法获得所述运动目标的运动轨迹;

  所述判定单元用于:

  根据所述运动目标的运动轨迹,判断所述运动目标是否为高空抛物,若是,根据所述运动目标的运动轨迹,获取所述运动目标的抛出位置,否则,删除所述运动目标的运动轨迹。

  第三方面,本发明实施例提供了另一种基于深度学习的高空抛物检测装置,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。

  第四方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。

  与现有技术相比,实施本发明实施例具有以下有益效果:

  (1)本发明采用yolov3方法作为运动目标的检测手段,巧妙利用了深度学习的相关知识,实时的对高空抛物进行监控,该方法易于实现对资源占用小,相比与背景差分法,速度和准确率有显著性提高。同时,由于样本的多样性,使得该方法抗噪能力较好,能适用于绝大部分实际监控场景。

  (2)本发明在使用yolov3检测运动目标的过程中加入了摄像头防抖动机制,充分考虑了摄像头在各种情况下不稳定导致位置偏移的情形,通过在摄像头抖动过程中更新监控背景,进而提高了yolov3检测运动目标的准确率,从而降低了误检率。

  (3)本发明结合匈牙利算法和卡尔曼滤波算法对运动目标进行追踪,匈牙利算法追踪使得系统的运行速度有较大提升,卡尔曼滤波算法追踪大幅度降低了对抛物追踪的丢失率,保证对抛物的追踪效果。该方法对于小目标的运动目标有较好的检测效果,并能够适应目标被短暂遮挡或者漏检、背景环境发生缓慢变化等情形。

  附图说明

  为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。

  图1是本发明实施例提供的基于深度学习的高空抛物检测方法的示意流程图;

  图2是本发明第一实施例提供的基于深度学习的高空抛物检测装置的结构示意图;

  图3是本发明第二实施例提供的基于深度学习的高空抛物检测装置的结构示意图。

  具体实施方式

  下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

  当前,随着大数据时代的来临和机器学习的飞速发展,在拥有海量的视频图像数据的今天,通过机器学习等方法来进行目标检测,比之前相对于背景差分法的目标检测不仅仅在速度方面有显著的提升,在准确率方面更是有着明显的提高。

  基于此,本发明实施例提供了一种基于深度学习的高空抛物检测方法。如图1所示,该方法包括:

  S1:使用第一帧高空抛物监控图像作为初始化背景,初始化t=2。

  本发明中的高空抛物监控视频来自对目标建筑的监控,可以是实时采集的,也可以是下载的。视频图像采集的过程包括:监控摄像机布置与安装、视频数据流获取和数据流解码。

  其中,监控摄像机的布置与安装过程如下:将网络摄像机安装在监控大楼下方,选择合适的安装距离、安装高度、安装角度和安装相机数量进行安装,保证物体真实大小与监控图像中物品大小1:1的比例成像。本发明实施例中,将网络摄像机安装在监控大楼的下方,安装在距离大楼30米处,安装高度为3米。相机数量和安装角度可保证物体真实大小与监控图像中物品大小1:1的比例成像,即若物体的真实大小为N1*N2(cm),则视频中拍摄的物体的大小为N1*N2(像素)。

  视频数据流的获取过程如下:通过有线/无线连接传输监控数据,具体地,通过相机的IP地址、端口号、用户名、密码获得已压缩的视频数据流。

  数据流的解码过程如下:利用H264解码方法将获得的视频数据流解码为一帧帧的图像。

  需要说明的是,在执行步骤S1之前,上述方法还可以对解码得到的原始高空抛物监控图像进行灰度化和中值滤波等预处理。

  S2:根据背景,基于yolov3方法检测第t帧高空抛物监控中的运动目标,t>=2。

  yolov3检测方法是一种基于深度学习的检测方法,其基本思想是,将数据集进行标记放入神经网络中进行训练,得到预测结果和准确率,训练完成后调用模型文件即可进行检测,充分利用GPU强大的并行计算能力并与CPU进行协同工作,更高效的利用硬件高效的完成yolov3算法中大规模的、高并行度的计算,实现系统加速功能。相比于传统的背景差分方法,速度和准确率有显著性提高。

  具体地,步骤S2具体包括以下子步骤:

  S201:根据所述初始化背景,对第t帧高空抛物监控图像进行前景检测,得到第t帧高空抛物监控图像的前景检测结果;

  S202:基于第t帧高空抛物监控图像的前景检测结果判断摄像头是否抖动,若是,进入步骤S203,否则进入步骤S204;

  S203:使用第t帧的高空抛物监控图像更新所述初始化背景,使得t=t+1,并转至步骤S201;

  S204:采用随机更新方法更新所述初始化背景,进入步骤S205;

  S205:使用yolov3检测方法,检测第t帧高空抛物监控图像中的运动目标,并进入步骤S3。

  需要说明的是,由于本项目实际应用场景需要将相机摆放在正对大楼墙面的户外,导致相机在拍摄过程中容易受环境的影响导致相机晃动或人为移动。为此本发明中加入了摄像头防抖动机制。在前景检测结果中,包括由于自身运动而出现的运动目标,也包括因为摄像机抖动而出现的运动目标,可称为抖动目标。且由于摄像机抖动而出现的运动目标占多数。

  在引入摄像头防抖动机制时,本发明统计前景检测结果中像素值为255的像素点的个数(运动物体所占像素点的个数),记为n1,即筛选出前景目标;计算n1与当前帧图像的总像素点个数n2的比例;若n1/n2大于设定阈值k,则认定当前摄像头拍摄画面发生抖动或摄像头被移动,即相机发生抖动。其中,本发明优选k=0.2。其中,前景目标包括因抖动产生的前景目标(即抖动目标)和相机未抖动出现的实际的运动目标。

  S3:对第t帧高空抛物监控中检测到的目标,结合匈牙利算法和卡尔曼滤波算法对目标进行追踪,通过追踪算法获得目标的运动轨迹。

  即,对第t帧高空抛物监控图像中检测到的每个运动目标,先基于匈牙利算法追踪该运动目标,在匈牙利算法追踪失败后,再基于卡尔曼滤波追踪该运动目标,通过追踪获得该运动目标的运动轨迹。

  具体地,步骤S3包括以下子步骤:

  S301:将第t-1帧中该运动目标的信息和第t帧中该运动目标的信息输入匈牙利算法,使用匈牙利算法匹配第t-1帧中该运动目标在第t帧中的位置,若追踪成功,将该帧的位置输入到对应的卡尔曼滤波器中,若追踪失败,将使用卡尔曼滤波器预测该运动目标在t帧中的位置。

  检测程序对每一帧图片进行检测,可得到一个可能为抛物的点集。对每相邻两帧得到的点集视为一个二分图,进而使用匈牙利算法计算得到每个点(物体)在相邻两帧的位置,进而可以实现对抛物的追踪。匈牙利算法通过对各待匹配点构成的二分图查找其增广路径获得最大匹配的过程。设n-1帧的点设为x,n帧的点设为y,D表示像素点x与y的欧氏距离。代价函数value的计算方式如下:其中,x.area为x点的尺寸,y.area为y点的尺寸。匈牙利算法的输入:按照value计算方法得到的n-1帧中的所有点和n帧中的所有点的“value矩阵”。匈牙利算法的输出:n-1帧的点在n帧对应的位置。由于实际场景的不确定性,存在一定可能在某些帧无法对抛物进行位置追踪,故引入卡尔曼滤波算法,将每个抛物的运行轨迹进行存储,并在无法追踪到抛物时进行预测,得到抛物的大概位置,继而继续完成追踪。

  其中,卡尔曼滤波器实现运动目标追踪分为三个步骤:

  首先,初始化卡尔曼滤波器,将运动目标的位置和速度输入卡尔曼滤波器,并记录当前帧的时间。

  然后,进行状态估计,利用当前帧和上一帧的时间间隔进行卡尔曼预测,预测当前帧中运动目标的位置和运动状态,并搜索区域中的最佳匹配,获得真实目标的位置和运动状态值,同时记录当前的时间,在此创新性的增加高空抛物运动的先验知识,若出现轨迹连续非下落时间tnum大于阈值T,即tnum>T,则表示此运动目标为非抛物运动,直接将此运动目标去除。阈值T为5帧。

  最后,进行状态更新,用真实状态向量作为卡尔曼滤波器的输入更新卡尔曼滤波器的状态。

  S302:判断运动轨迹中是否存在连续5个点都是使用卡尔曼滤波器预测得到,若是,则得到每个运动目标的运动轨迹,转至步骤S4;否则,进入步骤S303。由于一条运动轨迹可能只出现在视频的一小段时间内,因此,当连续5个点都是使用卡尔曼滤波器预测得到,判定该运动轨迹结束,用于进行高空抛物的判断。

  S303:判断第t帧高空抛物监控图像是否为高空抛物监控视频的最后一帧,若是,则整个方法结束;否则,t=t+1,转至步骤S2。

  本发明是按照帧处理的,整个视频处理完之后自然结束。

  S4:根据第t帧高空抛物监控中检测到的目标的运动轨迹,判断该目标是否为高空抛物,若是步骤进入S5,否则,删除目标轨迹。

  据统计,高空抛物的运动具备以下特点:

  (1)高空抛物的运动轨迹始终是向下运动,因此运动目标轨迹的纵坐标的值是持续增大的;

  (2)高空抛物运动目标轨迹点的数目M要满足设置的阈值T,即M>T,运动目标在监控范围内运动,其运动定会运动一定的时间,因此检测的轨迹点的数目会有一定的限制;

  (3)高空抛物运动目标轨迹从监控范围的边界终结,抛物运动不会在某个地方停留,会从某个边界地方出监控范围,同时边界区域也不会是上边界区域,只会从左、右及下边界区域;

  (4)抛物运动在开始部分基本上在做加速运动,但受到环境等的影响,无法避免会出现检测目标有减速和匀速的部分点,但整体上做加速运动,因此设置比例阈值以去除一直匀速或者减速的运动目标;

  (5)高空抛物运动目标下落过程中,纵坐标的差分数值不会一直太小,因此可以去除纵坐标几乎重合的噪声。

  具体地,步骤S4包括以下子步骤:

  S401:统计检测到的运动轨迹中,使用匈牙利算法匹配得到的点个数x、使用卡尔曼滤波预测得到的点个数y和非加速运动点个数z;

  S402:若或z>0.3*(x+y),则判定该运动目标不是高空抛物,并进入步骤S403;否则,判定该运动目标为高空抛物,进入步骤S5;

  S403:将该运动目标的运动轨迹删除。

  S5:根据目标的运动轨迹,获取其抛出位置。

  具体地,对高空抛物的运动轨迹进行曲线拟合,获得其抛出位置,仅保存高空抛物出现以及下落过程的视频。

  当判定出现高空抛物时,将系统缓存的一段时间的监控图片通过压缩实现图片到视频的压缩实现高空抛物关键视频的保存,并可以根据抛物出现的时间,位置等信息查找进行回放。

  综上可知,与现有技术相比,实施本发明实施例的技术方案具有以下有益效果:

  (1)本发明采用yolov3方法作为运动目标的检测手段,巧妙利用了深度学习的相关知识,实时的对高空抛物进行监控,该方法易于实现对资源占用小,相比与背景差分法,速度和准确率有显著性提高。同时,由于样本的多样性,使得该方法抗噪能力较好,能适用于绝大部分实际监控场景。

  (2)本发明在使用yolov3检测运动目标的过程中加入了摄像头防抖动机制,充分考虑了摄像头在各种情况下不稳定导致位置偏移的情形,通过在摄像头抖动过程中更新监控背景,充分利用GPU强大的并行计算能力并与CPU进行协同工作,更高效的利用硬件完成yolov3算法中大规模的、高并行度的计算,实现系统加速功能,提高了yolov3检测运动目标的准确率和速度,从而降低高空抛物的误检率,达到了实时检测的标准。

  (3)本发明结合匈牙利算法和卡尔曼滤波算法对运动目标进行追踪,匈牙利算法追踪使得系统的运行速度有较大提升,卡尔曼滤波算法追踪大幅度降低了对抛物追踪的丢失率,保证对抛物的追踪效果。该方法对于小目标的运动目标有较好的检测效果,并能够适应目标被短暂遮挡或者漏检、背景环境发生缓慢变化等情形。

  基于相同的发明构思,本发明实施例提供了一种基于深度学习的高空抛物检测装置。如图2所示,该装置包括运动目标检测单元10、运动轨迹检测单元11和判定单元12。

  其中,所述运动目标检测单元10用于:

  使用第一帧高空抛物监控图像作为初始化背景,初始化t=2;

  根据所述初始化背景,基于yolov3检测方法,检测第t帧高空抛物监控图像中的运动目标,其中t≥2;

  所述运动轨迹检测单元11用于:

  结合匈牙利算法和卡尔曼滤波算法对检测到的所述运动目标进行追踪,并通过追踪算法获得所述运动目标的运动轨迹;

  所述判定单元12用于:

  根据所述运动目标的运动轨迹,判断所述运动目标是否为高空抛物,若是,根据所述运动目标的运动轨迹,获取所述运动目标的抛出位置,否则,删除所述运动目标的运动轨迹。

  在本发明的另一优选实施例中,如图3所示,该处理装置可以包括:一个或多个处理器101、一个或多个输入设备102、一个或多个输出设备103和存储器104,上述处理器101、输入设备102、输出设备103和存储器104通过总线105相互连接。存储器104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器101被配置用于调用所述程序指令执行上述方法实施例部分的方法。

  应当理解,在本发明实施例中,输入设备102可以包括键盘等,输出设备103可以包括显示器(LCD等)、扬声器等。

  该存储器104可以包括只读存储器和随机存取存储器,并向处理器101提供指令和数据。存储器104的一部分还可以包括非易失性随机存取存储器。例如,存储器104还可以存储设备类型的信息。

  具体实现中,本发明实施例中所描述的处理器101、输入设备102、输出设备103可执行本发明实施例提供的基于深度学习的高空抛物检测方法的实施例中所描述的实现方式,在此不再赘述。

  需要说明的是,本发明实施例中检测装置的具体工作流程及相关细节,请参考前述方法实施例部分,在此不再赘述。

  进一步地,本发明实施例还提供了一种可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:上述基于深度学习的高空抛物检测方法。

  所述计算机可读存储介质可以是前述任一实施例所述的系统的内部存储单元,例如系统的硬盘或内存。所述计算机可读存储介质也可以是所述系统的外部存储设备,例如所述系统上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述系统的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述系统所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

  本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

  在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

  所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

  另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

  所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

  以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

《基于深度学习的高空抛物检测方法、装置及介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)