背景技术
随着计算机视觉、人工智能、模式识别等技术的发展,基于网络视频监控的周界入侵检测,已经成为人们研究的热点。基于网络视频监控的周界入侵检测,是在摄像机监控的场景范围内,可以根据监控需要和目的设置警域,系统可以自动检测入侵到警戒区域的运动目标及其行为,一旦发现有满足预设警戒条件,则自动产生报警信息,并标识出其运动轨迹。其技术具有广泛的应用场景:包括军事重地,机场,军械库,监狱,银行,库房重地,博物馆等。
与本发明最相似的实现方案是:在视频中人为预设置警戒区域后针对警戒区域进行目标检测;然后对进入警戒区域目标进行目标跟踪;分析入侵目标的运动轨迹,根据运动轨迹的方向升级或解除对目标的预警;当目标存在围界入侵行为时,监控系统发出警报以通知工作人员驱除入侵者,并记录入侵时间及截取入侵图像和视频。
现有技术的缺点:
(1)现有的入侵检测方法未考虑到行人目标是否有权进入该区域的情况,对合法进入与非法入侵的人员无法鉴别,对于正常进入警戒区域的工作人员会反复频繁错误报警。现有的入侵检测未考虑多层级多区域的入侵判定问题,对于现实复杂场景,区域入侵存在多级别,多区域的情况,如正常工作人员可进入以及任何人员都不可进入的区域判定问题;
(2)现有的部分周界入侵判定方法使用动态检测作为判定入侵区域的判决条件,对于警戒区域出现运动目标产生报警,判定机制简单。且现有技术不判别运动目标种类,会出现大量误报;
(3)现有的部分周界入侵判定方法使用目标中心点入侵或包围框重叠面积作为判定入侵区域的判决条件,无法适应摄像头拍摄角度差异导致的难以分析监控视频中目标轨迹、难以判定目标是否入侵的问题。在人员目标身高参差不齐、姿态不同等情况下使用该判决条件,会导致大量误检。
(4)现有技术中往往使用矩形框来描述警戒区域,这在诸多自然场景中并不适用,从而引发无法准确叙述警戒区域情况,导致大量的漏检或误检情况。
发明内容
本发明的目的在于克服上述技术的不足,提供一种具有鉴权功能的多目标周界入侵预警方法,尽可能降低误报率。
一种具有鉴权功能的多目标周界入侵预警方法,该方法由以下步骤实现:
步骤一、采用深度学习算法,对行人检测数据集进行训练优化,获得用于目标检测的行人检测模型;
步骤二、实时获取监控视频;采用深度学习算法,结合步骤一所得行人检测模型,对监控视频逐帧进行目标检测,获取各视频帧中的行人目标,所述行人目标包括设定包围框属性;
步骤三、采用动态检测排除误检;
采用OpenCV库进行基于去除背景的动态检测,对步骤二获得的监控视频中的各视频帧进行动态检测,获取二值化图像,采用差分法获取运动目标包围框,并与步骤二中获得的行人目标的包围框进行对比,过滤静态目标,获得动态的行人目标,并传入鉴权器;其特征是:
步骤四、所述鉴权器对动态的行人目标进行入侵鉴权,具体步骤如下:
步骤四一、初始化鉴权器;
设定跟踪目标集为空,目标ID为0;
设定门轮廓线集合door_contours,内部区域轮廓线集合in_contours;
将门轮廓线和内部区域轮廓线传入鉴权器;
设定最大允许闯入内部区域的帧数总和阈值max_break;
设定鉴权器中目标最大允许匹配失败次数max_failure;
步骤四二、使用多目标跟踪算法,将当前帧检测的所有动态行人目标与鉴权器中的跟踪目标集进行匹配;
步骤四三、判断当前目标与鉴权器中的目标是否匹配成功,如果是,则实现对原有目标跟踪,更新鉴权器中被匹配目标,判断目标是否有入侵行为,进行预警;如果否,则当前目标为新目标,初始化当前目标并存入鉴权器;
步骤四四、若鉴权器中的目标未被匹配,判断该目标匹配失败次数是否大于鉴权器中目标最大允许匹配失败次数max_failure,如果是,则删除该目标;如果否,则该目标跟踪匹配失败次数加1。
本发明的有益效果:
(1)本发明拥有鉴权功能,入侵检测支持多区域、多层级,拓宽检测使用场景,支持对多层级多区域有需求的场景,如游乐园多场馆间、涉密机关多层级间的入侵及安全问题,对于进入警戒区域内的正常工作人员不会误报,对原本处于警戒区域的工作人员不会误报;
(2)本发明在目标检测后采用动态检测方法过滤结果,排除误检,增加方法鲁棒性,通过目标检测和动态检测两个方法结合,有效排除两种方法的误检结果,使目标检测结果准确使,算法运行更稳健、更精确;
(3)采用目标包围框的底边中点表示人员目标的位置,通过使用底边中点作为入侵判定点,更好地刻画了人员目标的行进轨迹,有效解决了由于摄像角度不同带来的难以判定入侵的问题,规避由于人员目标身高参差不齐、姿态不同的影响;使监控位置更加灵活,使用场景更加广泛;
(4)采用轮廓线勾勒门和内部区域,适用于各种不规则的周界情况,更精确的刻画了门和内部区域,使得算法报警更为精确可靠。
(5)能实现多目标的跟踪,当检测区域中目标数量大时,也能准确地跟踪目标,保证后续检测判断的准确性,同时对于同一目标入侵现象不会重复报警。
具体实施方式
结合图1至图18说明本实施方式,一种具有鉴权功能的多目标周界入侵预警方法,该方法由以下步骤实现:
第一步,采用深度学习算法(以yolov5为例),对行人检测数据集(以Object365数据集为例)进行训练优化,获得行人检测模型;
第二步,实时获取监控视频;采用深度学习算法,结合第一步所得行人检测模型,对监控视频逐帧进行目标检测,获取各视频帧中的行人目标,所述行人目标包括设定包围框属性;
第三步,采用动态检测排除误检;采用OpenCV库进行基于去除背景的动态检测,对从第二步获得的监控视频中的各视频帧进行动态检测,获取二值化图像,采用差分法获取运动目标包围框,并与从第二步获得的行人目标的包围框进行对比,过滤静态的行人目标,获得动态的行人目标,并传入鉴权器;
第四步,所述鉴权器对动态的行人目标进行入侵鉴权,具体步骤如下:
1、初始化鉴权器:(仅在第一次调用时初始化一次)结合图2。
A、设定跟踪目标集为空,目标ID为0;
B、设定门轮廓线集合为door_contours,内部区域轮廓线集合为in_contours,将门轮廓线和内部区域的轮廓线传入鉴权器;结合图6。
按照获取视频的第一帧图像设置静态场景的门及内部区域包围框集合,具体设置方法:
a、在静态场景中,逐个门设置轮廓线,并添加进门轮廓线集合door_contours,对同一扇门,沿着门的轮廓画直线,保存沿途各条直线的端点;对不同扇门,分别保存轮廓线;
b、对应每一扇门轮廓线,设置每一扇门所代表的内部区域的轮廓线,门需要与内部区域一一对应,但内部区域可以没有对应的门,即该区域不允许任何入侵,对于内部区域轮廓线设置方法与门轮廓线相同,都可以是多边形。
C、设定最大允许闯入内部区域的帧数总和阈值max_break;
D、设定鉴权器中目标最大允许匹配失败次数max_failure。
2、使用多目标跟踪算法(以DeepSort为例),将当前帧检测到的所有动态行人目标与鉴权器中的跟踪目标集进行匹配;
3、若当前目标与鉴权器中的目标匹配成功,即实现对原有目标跟踪,更新鉴权器中被匹配目标,结合图3,具体过程为:
A、设置当前目标闯入各内部区域帧数为鉴权器中被匹配目标闯入各内部区域帧数,设置当前目标在各内部区域的授权为鉴权器中被匹配目标在各内部区域的授权;设置当前目标匹配失败次数为0;
B、读入第一个门,设置为当前门。
C、判断当前目标包围框的底边中点是否出现在当前门,如果是,则认定当前目标有权进入对应的内部区域,即当前目标在对应内部区域授权为真,进入步骤E;如果否,执行步骤D;
D、判断是否存在下一个门,如果是,则读入下一个门,设置为当前门,执行步骤C;如果否,进入步骤E;
E、读入第一个内部区域,设置为当前内部区域。
F、判断当前目标是否有权进入当前内部区域,如果是,则目标闯入该内部区域帧数置为0,执行步骤H;如果否,执行步骤G;
G、判断当前目标包围框的底边中点是否出现在当前内部区域,如果是,则当前目标闯入当前内部区域帧数加1,执行步骤H;否则,执行步骤H;
H、判断是否存在下一个内部区域,如果是,读入下一个内部区域,设置为当前内部区域,执行步骤F;否则,执行步骤I;
I、判断当前目标闯入各内部区域帧数的总和是否大于内部区域的帧数总和阈值max_break,如果是,输出对应区域的周界入侵警告,删除当前目标,执行步骤J;如果否,执行步骤J;
J、将鉴权器中被匹配目标的闯入各内部区域帧数、被各内部区域的授权更新为当前目标闯入各内部区域帧数、被各内部区域的授权,目标更新完成。
4、若当前目标未匹配成功,即为新目标,初始化当前目标并存入鉴权器,结合图4,初始化目标过程为:
A、初始化当前目标ID为鉴权器目标ID;
B、初始化当前目标闯入各内部区域帧数均为0;
C、从内部区域轮廓线集合in_contour中读入第一个区域并设置为当前区域;
D、判断当前目标包围框的底边中点是否出现在该内部区域内,如果是,则目标被该内部区域的授权设置为真,执行步骤E;如果否,执行步骤E;
E、判断是否存在下一区域,如果是,读入下一个区域并设置为当前区域,执行步骤D;如果否,执行步骤F;
F、从门轮廓线集合door_contours中读入第一个门并设置为当前门;
G、判断当前目标包围框的底边中点是否出现在该门,如果是,则认定当前目标有权进入该门对应的内部区域,即当前目标被该门对应的内部区域的授权设置为真,执行步骤I;如果否,执行步骤H;
H、判断是否存在下一个门,如果是,读入下一个门并设置为当前门,执行步骤G;如果否,执行步骤I;
I、初始化当前目标跟踪匹配失败次数为0;
J、将当前目标加入鉴权器的跟踪目标集,鉴权器的目标ID加1。
5、若鉴权器中的目标未被匹配,判断该目标匹配失败次数是否大于max_failure,如果是,则删除该目标;结合图5。如果否,则该目标跟踪匹配失败次数加1,删除目标过程为:
A、删除该目标闯入各内部区域帧数;
B、删除该目标被各内部区域的授权设置;
C、删除该目标匹配失败次数;
D、在鉴权器的跟踪目标集中删除该目标。
本实施方式中,图8为初始目标在合法区域的效果图,图9和图10为本发明初始目标在外部区域效果图;图11为多层级区域效果图,该示意图有三级区域,灰色部分为目标被授权区域,白色部分为目标未授权区域(目标没有第三级区域授权)。箭头处为行人运动轨迹点,轨迹点旁alarm表示报警,表示行人非法闯入。行人目标从外部区域进入到内部区域,从第一个门和第二个门分别进第一级区域和第二级区域,因此被第一级和第二级区域授权,不报警;当目标进入第三级区域时,目标未从第三级区域的门进入,因此目标此时只有第一级区域和第二级区域授权,没有第三级区域授权,报警。
图12为多区域效果图,该示意图有两个区域,灰色部分为目标被授权区域,白色部分为目标未被授权区域。x为行人运动轨迹点,轨迹点旁alarm表示报警,表示行人非法闯入。目标从中间进入右区域门,获得右区域授权,进入右区域,不报警;目标从右区域进入左区域,未经过左区域门,未获得左区域授权,进入左区域后报警。
图13为本发明使用底边中点作为入侵判定效果图,分别给出误报和漏报的不同情况。图14为多层级区域入侵判定效果图,图15和图16为目标检测结果图,行人检测模型检测出的行人目标(用包围框标记)。图17和图18为本实施方式中多边形区域效果图,监控录像中用包围框标出各区域以及门。各区域皆为不规则多边形,使用多边形能够更准确满足区域描绘需求。
本实施方式中所述的入侵预警方法,支持多区域、多层级鉴权。在现有技术中,往往当目标出现在内部区域时即发出周界入侵告警,而不关心目标是否有权进入该内部区域。现有技术无法规避工作人员在内部区域作业被反复报警的情况。该方法采用多目标跟踪算法,给初始化在内部区域或门的行人目标授权能够进入该内部区域,从而解决了工作人员反复报警的问题。
本实施方式中所述的入侵预警方法替换了现有方法的目标中心点,采用目标包围框的底边中点表示人员目标的位置,这能够更好得刻画人员目标的行进轨迹,算法运行更稳健、更精确。该方法有效解决了由于人员目标身高参差不齐、行进轨迹多样导致的中心点偏移、对行进轨迹描述失当的问题。
现有方法中往往使用矩形框来描述感兴趣区域,在诸多自然场景中并不适用,从而引发大量的漏检或误检情况。该方法采用轮廓线勾勒门和内部区域,更精确的刻画了门和内部区域,使得算法报警更为精确可靠。
本实施方式中选择yolov5作为目标检测算法,可以转换为其他目标检测算法,如FastRCNN,FasterRCNN,SSD等,另外作为算法训练数据集,也可以依据实际需求使用Object365以外的目标检测数据集,如COCO数据集,或者根据实际需求自行标注。另外本实施方法中选择使用DeepSort算法作为目标跟踪算法,也可以替换为Sort算法等其他目标跟踪算法。
另外,本实施方式中对于门的授权设置,可以将门替换为任何有近似门作用的区域,如合法进入内部区域的通道,车道等。同时对于行人入侵也可更改为其他目标,车辆入侵,动物入侵等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。