本发明涉及图像处理和点云处理,尤其涉及一种2d和3d结合的区域入侵监测方法与系统。
背景技术:
1、随着深度学习技术的发展和海量视频监控资源的产生,仅通过人力对视频资源进行分析和处理耗时耗力,远远满足不了需求,且现有的区域入侵监测方法存在实时性较差、检测精度不高的问题。探索应用智能视频识别技术结合点云数据提供的3d信息,智能分析重点监控区域的违法违规行为并进行预警,可以实时准确高效的对区域入侵情况进行监测。
技术实现思路
1、本发明针对现有技术的不足,提供一种2d和3d结合的,判断精度高、实时性好的视频监控物体入侵监测区域的方法并提供一个具有较好移植性的区域入侵监测系统。
2、本发明的技术方案为一种2d和3d结合的区域入侵监测方法,包含以下步骤:
3、步骤1,根据自定义数据集重新训练yolov5得到训练好的模型,在系统界面选择已经训练好的模型;
4、步骤2,根据步骤1选择的模型,初始化模型参数;
5、步骤3,选择检测目标的类型,包括图片检测、本地视频检测以及实时摄像头检测;
6、步骤4,若步骤3选中图片检测,上传本地文件夹中的图片,执行目标检测,获取bbox坐标预测信息和置信度,并保存;
7、步骤5,若步骤3选中本地视频检测或实时摄像头检测且不勾选区域入侵功能,则读入视频流,根据预设的fps,对视频帧执行目标检测,获取bbox坐标预测信息和置信度,并保存;
8、步骤6,若步骤3选中本地视频检测或实时摄像头检测且勾选区域入侵功能,则可以选择上传本地区域坐标信息json文件或实时绘制区域。若选择上传本地区域坐标信息json文件,先生成多边形,再对视频帧执行多边形区域的入侵目标检测,获取入侵区域内的bbox坐标信息、入侵类别和置信度;若选择实时绘制区域,使用鼠标绘制警示区域,连点成线构成一个多边形,再对视频帧执行多边形区域的入侵目标检测,获取入侵区域内的bbox坐标信息、入侵类别和置信度,并生成报警信息可视化。以2d视觉数据获取到的入侵区域内的bbox坐标信息、入侵类别和置信度为主导,激光雷达获取到的3d点云数据为辅助,使用epnp算法求解出相机的位姿,进而建立起点云坐标和像素坐标的对应关系,将入侵目标的2d坐标转换为其实际的3d坐标,实现2d和3d信息的结合。
9、优选的,步骤4所述图片检测,包括如下步骤:
10、读入图片,将图片resize到640*640,图片模式从bgr转换到rgb,并将像素值映射到0-1;开始模型推理,对推理的结果应用nms,iou_thres设置为0.7;接着处理检测结果,缩放预测bbox(x1y1x2y2),绘制bbox和输出检测信息,其中,x1,y1指检测出的目标框的左上角的2d坐标值,x2,y2指检测出的目标框的右下角的2d坐标值。
11、优选的,步骤5所述本地视频检测和实时摄像头检测,包括如下步骤:
12、读入视频,先进行视频检测初始化,获取当前系统时间,作为video的文件名,设置fps;先判断是否开启区域入侵功能,如果已经绘制区域或者上传区域,对每一帧只在区域内进行检测;接着处理检测结果,缩放预测bbox(x1y1x2y2),绘制bbox和输出检测信息,其中,x1,y1指检测出的目标框的左上角的2d坐标值,x2,y2指检测出的目标框的右下角的2d坐标值。
13、优选的,步骤6所述实时绘制区域,使用鼠标绘制警示区域,连点成线构成一个多边形,包括如下步骤:
14、勾选“区域入侵”模式,确保鼠标点击事件能够被系统识别;结合步骤4的图片、视频或实时摄像头监测结果,在结果图像输出的区域范围内,单击鼠标左键,完成创建多边形的单个点操作,通过重复执行鼠标左键单击事件,在创建出三个及以上的不同点后,连接成多边形的警示区域;如果需要重新绘制多边形,可以单击鼠标右键,将之前创建的所有多边形点进行清除。
15、优选的,步骤6所述2d和3d信息的结合,包括如下步骤:
16、首先在世界坐标系下选取四个非共面的虚拟控制点,以3d点云数据的质心为第一个控制点,通过主成分分析法得到x、y、z轴上另外三个控制点,建立起坐标系;使用epnp算法,根据这四个控制点在世界坐标系下的三维坐标及其对应在图像坐标系下的像素坐标,计算出相机的位姿,进而得到3d点在2d空间的对应坐标,实现2d和3d信息的结合。
17、优选的,步骤6所述对视频帧执行多边形区域的入侵目标检测方法,包括如下步骤:
18、加载区域的多边形点数据,得到一个区域坐标的二维数组,[[x1,y1],[x2,y2],……,[xn,yn]],xn,yn指区域多边形第n个顶点的2d坐标,n表示绘制的区域入侵监测区域多边形顶点数;获取到检测结果bbox(x1y1x2y2),获取bbox物体框的中点,其中,x1,y1指检测出的物体框的左上角的2d坐标值,x2,y2指检测出的物体框的右下角的2d坐标值;对比中点坐标和区域二维数组的位置关系,判断点是否在多边形内,从中点引出一条射线,统计这条射线与多边形的交点个数,若为奇数个交点,则说明物体框中点在多边形内,判定检测结果bbox(x1y1x2y2)侵入区域,若为偶数个交点,则在外。
19、优选的,步骤6所述结合2d和3d数据,获取入侵区域内的bbox坐标信息、入侵类别和置信度,并生成报警信息可视化,包括如下步骤:
20、规定区域入侵的报警触发规则为框选物体的bbox中点坐标位于当前帧图像中的警示区域中;区域入侵的报警消除规则为框选物体的bbox中点坐标不在当前帧图像中的警示区域中。yolov5识别到物体类别和物体在图像中所处的区域后,绘制bbox坐标信息、物体类别和置信度;确保勾选了“区域入侵”模式后,在当前帧图像上加载显示出步骤6绘制的警示区域,对当前帧图像进行判断,是否有满足警示区域中的物体,如果有,在系统报警信息框中更新该物体的bbox中点坐标,同时判断该物体是否属于person类别,如果是,统计当前帧的图像中入侵人数,同时更新判断该物体为person类别的置信度。
21、本发明还提供一种2d和3d结合的区域入侵监测系统,包括:
22、模型加载模块,用于根据自定义数据集重新训练yolov5得到训练好的模型,并加载训练好的模型;
23、初始化模块,用于根据选择好的模型参数对yolov5模型进行初始化,使其具有目标检测的能力;
24、检测功能划分模块,用于根据目标检测的对象类型不同,将检测的功能划分为图片检测、本地视频检测和实时摄像头检测三大功能子模块;
25、显示模块,用于显示用户选择的对象以及目标检测结果;
26、在图片检测功能子模块中,读取用户选择的,存放在本地的图片文件,为了避免不同图片之间存在的分辨率差异,先将加载的图片分辨率统一缩放到一定尺寸,并利用yolov5模型执行目标检测,识别图片中的物体,用bbox框选出识别出的物体位置,标识其类别,并获取bbox坐标信息和置信度,随后将这些信息通过结果输出窗口进行展示;
27、在本地视频检测功能子模块中,读取用户选择的,存放在本地的视频文件,并将视频拆分成一帧一帧的图像进行显示,对每一帧图像都进行yolov5目标检测,其中,视频每秒帧数与原视频的一致;并根据需要对每一帧视频画面都绘制入侵区域,判断物体类别、bbox坐标信息和置信度,通过bbox中点引出的射线与入侵区域边界的交点个数,判断物体是否在区域内部,从而达到实时区域入侵检测;
28、在实时摄像头检测功能子模块中,选择若干个不同场所的摄像头作为该子模块的输入视频流,首先匹配场所和对应的rtmp视频流和3d点云数据,同时将fps控制在25,将每一帧图像进行显示并进行目标检测,并根据需要对每一帧视频画面都绘制入侵区域,判断物体类别、bbox坐标信息和置信度,通过bbox中点引出的射线与入侵区域边界的交点个数,判断物体是否在区域内部,从而达到实时区域入侵检测。
29、为解决技术问题,本技术提供一种计算机存储介质,其中存储有计算机程序,计算机程序被执行时实现上述区域入侵监测方法中的步骤。
30、本发明提供了一种2d和3d结合的区域入侵监测方法。与现有技术相比具备以下有益效果:本发明结合了2d和3d数据以进行区域入侵监测,提供了更为丰富的信息,且准确性高;本发明检测模型采用yolov5降低了模型的运行要求,同时兼顾精度和速度;本发明所开发的系统不仅可以用于区域入侵检测,还可用于通用目标检测任务;本发明基于yolov5实时处理视频流,并且使用预测结果中心点与多边形的相对位置关系进行快速判定是否存在区域入侵,实时性好,效率高。