掌桥专利:专业的专利平台
掌桥专利
首页

基于监控视频的社交距离监测方法、装置、设备和介质

文献发布时间:2023-06-19 12:18:04


基于监控视频的社交距离监测方法、装置、设备和介质

技术领域

本申请涉及计算机图像处理技术领域,特别是涉及一种基于监控视频的社交距离监测方法、装置、设备和介质。

背景技术

随着在病毒肆意传播的当下,在某些场合可能会被要求有一定的社会交流的规则,即保持一定的社交距离。而社会环境中的摄像头是公共场所最基础的设施,可以说这种设施提供了一种十分可行的基础条件来控制行人间的社交距离。视觉社会距离(VisualSocial Distancing, VSD)是依靠摄像机和其他成像传感器来分析人的邻近行为的方法,涉及计算机视觉及深度学习方面的技术。

近年来随着深度学习的出现,数字图像处理领域又面临着前所未有的挑战,深度学习将所有以前比较成熟的问题又转化为了新的问题,例如目标检测。传统的目标检测技术主要有两个流派主导:第一,利用神经网络,通过区域的划分来寻找目标在哪里;第二类方法:也是利用神经网络,但不再采取传统的提取感兴趣区域、滑窗、分类的步骤,直接将检测问题转化为回归问题,YOLO便是其中十分具有代表性的算法之一。近来,机器学习领域的专家就提出了一款社交距离检测系统,其通过摄像头监控行人之间的距离,即采用机器学习监控社交距离。然而,在实现本发明的过程中,发明人发现传统的社交距离检测技术中,存在着无法全自动地实现社交距离监测的技术问题。

发明内容

基于此,有必要针对上述技术问题,提供一种可全自动地实现社交距离监测的基于监控视频的社交距离监测方法、一种基于监控视频的社交距离监测装置、一种计算机设备以及一种计算机可读存储介质。

为了实现上述目的,本发明实施例采用以下技术方案:

一方面,本发明实施例提供一种基于监控视频的社交距离监测方法,包括步骤:

采用YOLOv3检测模型对输入的监测视频的任意帧监控画面进行行人检测,标注监控画面中的各行人并输出各行人的原始行人坐标;

采用霍夫变换对监控画面进行地面直线检测,确定各地面直线并计算各地面直线的交点;

采用K-Means聚类算法对各交点进行聚类处理,得到监控画面中的各地面控制点;

从各地面控制点中抽取四个目标控制点,采用单应性矩阵根据四个目标控制点和各原始行人坐标对监控画面进行透视变换,得到监控画面对应的鸟瞰图以及鸟瞰图中的各行人坐标;其中,四个目标控制点在监控画面上构成矩形框;

计算鸟瞰图中各行人坐标之间的距离,得到各行人之间的行人距离,根据各行人距离分别与社交距离阈值的比较结果进行社交距离预警。

另一方面,还提供一种基于监控视频的社交距离监测装置,包括:

行人检测模块,用于采用YOLOv3检测模型对输入的监测视频的任意帧监控画面进行行人检测,标注监控画面中的各行人并输出各行人的原始行人坐标;

直线检测模块,用于采用霍夫变换对监控画面进行地面直线检测,确定各地面直线并计算各地面直线的交点;

点聚类模块,用于采用K-Means聚类算法对各交点进行聚类处理,得到监控画面中的各地面控制点;

透视变换模块,用于从各地面控制点中抽取四个目标控制点,采用单应性矩阵根据四个目标控制点和各原始行人坐标对监控画面进行透视变换,得到监控画面对应的鸟瞰图以及鸟瞰图中的各行人坐标;其中,四个目标控制点在监控画面上构成矩形框;

监测预警模块,用于计算鸟瞰图中各行人坐标之间的距离,得到各行人之间的行人距离,根据各行人距离分别与设定的社交距离阈值的比较结果进行社交距离预警。

又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现任一项的上述基于监控视频的社交距离监测方法的步骤。

再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现任一项的上述基于监控视频的社交距离监测方法的步骤。

上述技术方案中的一个技术方案具有如下优点和有益效果:

上述基于监控视频的社交距离监测方法、装置、设备和介质,通过针对输入的监控视频的每一帧监控画面,首先基于YOLOv3检测模型进行行人检测与坐标定位,然后基于直线检测进行地面直线检测与地面控制点的自动选取,进而基于透视变换对前述处理后的监控画面进行鸟瞰图转换,得到相应的自上而下的鸟瞰图及其中的行人坐标,最后利用各行人坐标计算行人之间的距离并与社交距离阈值进行比较,实现行人的社交距离的自动监测预警。如此,将目标检测YOLOv3算法、霍夫变换直线网格监测、K-Means聚类算法、图像单应性变换和视觉社交距离研究等综合为一体,为综合计算机视觉、图像变换和社交距离估算等技术进行创新融合应用。高精度、高速度地检测到每一幅画面中的行人,全自动抽取地面控制点并进行透视变换,再利用单应性矩阵求得行人的坐标,计算行人之间的距离并判断行人之间是否符合规定的社交距离,达到了全自动地实现社交距离监控的效果。

附图说明

图1为一个实施例中所采取的整体技术框架示意图;

图2为一个实施例中基于监控视频的社交距离监测方法的流程示意图;

图3为一个实施例中利用霍夫变换进行直线检测的流程示意图;

图4为一个实施例中Canny算子进行边缘提取的结果示意图;

图5为一个实施例中利用霍夫变换进行直线检测的结果示意图;

图6为一个实施例中优化后的霍夫变换的直线检测结果示意图;

图7为一个实施例中霍夫变换检测到的直线求交点后的结果示意图;

图8为一个实施例中K-Means聚类后得到的交点坐标示意图;

图9为一个实施例中利用透视变换实现鸟瞰图转换的流程示意图;

图10为一个实施例中示例所用到的监控在t=1s、4s时的两帧画面示意图;其中,(a)为t=1s时的一帧视频监控画面,(b)为t=4s时的另一帧视频监控画面;

图11为一个实施例中YOLOv3检测到行人并用矩形框标注的示意图;其中,(a)为t=1s时的一帧视频监控画面上检测到并标注每个人的边界框的示意图,(b)为t=4s时的一帧视频监控画面上检测到并标注每个人的边界框的示意图;

图12为一个实施例中标注出矩形框底边中点的示意图;其中,(a)为t=1s时的一帧视频监控画面上标注出行人的边界框底边中点的示意图,(b)为t=4s时的一帧视频监控画面上标注出行人的边界框底边中点的示意图;

图13为另一个实施例中经过霍夫变换得到的直线检测结果示意图;

图14为另一个实施例中经过透视变换实现鸟瞰图转换的示意图;其中,(a)为t=1s时的一帧视频监控画面,(b)为t=1s时的一帧视频监控画面经透视变换后得到的鸟瞰图,(c)为t=4s时的一帧视频监控画面,(d)为t=4s时的一帧视频监控画面经透视变换后得到的鸟瞰图;

图15为一个实施例中示例结果的展示示意图;其中,(a)表示t=1s时的一帧鸟瞰图标识示意,(b)表示t=4s时的一帧鸟瞰图标识示意;

图16为一个实施例中基于监控视频的社交距离监测装置的模块结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。

另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

目标检测技术是计算机视觉领域问题中最为核心的,这成为了许多计算机科学领域的基本任务目标,例如在科学领域中所常见的实例分割、目标跟踪技术等。现代科技发展之下,一般将目标检测分为两大模块来研究和讨论:理论和应用。理论是模仿人类的视觉和大脑配合来识别、检测不同的物体。而应用涉及到在特别的场景下的实际应用,例如本申请所研究的行人检测,以及现在的人脸识别、文本识别和无人机检测等领域。

近年来,深度学习在近年来慢慢进入人们的视野,目标检测技术的发展有了质的飞跃,目前主要分为两大流派:

(1)Region CNN(RCNN)。代表着深度学习目标检测技术开始占据重要的地位,基于候选区域(Region Proposal),比较有名的有:R-CNN、SPP-NET、Fast-RCNN以及Faster-RCNN等;

(2)YOLO。YOLO算法是建立在“回归”问题上的,是深度学习目标检测算法,其中包括YOLO、Single Shot MultiBox Detector(SSD)等算法。

视觉社会距离VSD问题定义为从图像中自动估计人与人之间的距离,以及对相关人群聚集的表征,是一个关键的非侵入性分析,以确定人们是否遵守可持续发展的社会限制,并提供有关特定地区的安全水平的统计数据。

本申请针对传统的社交距离检测技术中,存在着的无法全自动地实现社交距离监控的技术问题,提供一种基于监控视频的社交距离监测方法,以提供一种全自动式的交互方式,从而自动地实现社交距离监测,其中,用到计算机视觉知识和深度学习知识。在本申请中,将视觉社交距离估算主要分以下三步进行:

(1)选取视频的一帧画面,使用目标检测技术检测监控画面中所有的行人;

(2)转为鸟瞰图后计算两两行人之间的距离;

(3)最后根据设定的安全阈值,判断行人是否符合规定的社交距离,从而进行预警。

图1所示,展示了本申请整体所采取的技术框架,分为行人检测过程、基于直线检测和点聚类的地面控制点选取过程、基于透视变换的鸟瞰图转换过程以及社交距离检测与应用评估过程。其中,行人检测过程,本文基于深度学习的YOLOv3检测模型,进行行人数据集制作、深度学习行人数据模型训练、结果验证与分析以及行人坐标定位;地面控制点选取过程,本申请基于霍夫变换以及K-Means聚类算法,在带有地砖的场景下的视频监控,完成直线检测、控制点选取等工作;在鸟瞰图转换的过程中,利用透视变换,在前一步的基础上抽取合适的控制点对,进行单应性矩阵估计;最后,本申请在鸟瞰图上完成行人距离的估算,进行距离度量分析,寻找合适的算法及过程,完成坐标转换与投影验证,最后计算两两行人之间的社交距离。

请参阅图2,一方面,本发明提供一种基于监控视频的社交距离监测方法,包括如下步骤S12至S20:

S12,采用YOLOv3检测模型对输入的监测视频的任意帧监控画面进行行人检测,标注监控画面中的各行人并输出各行人的原始行人坐标。

可以理解,在开始对输入的监控画面进行行人检测前,可以先获取训练好的YOLOv3检测模型。训练YOLOv3检测模型的步骤可以包括数据集制作、训练模型及检测结果等两个部分。

在一个实施例中,上述YOLOv3检测模型通过基于PASCAL VOC2007训练数据集进行训练后得到。

具体的,使用PASCAL VOC2007训练数据集制作用于训练YOLOv3检测模型的数据集:首先,在Scripts目录之下创建三个文件夹;这三个文件夹中包括用于存放标签文件的An文件夹(这类文件的格式一般均为xml格式)、用于存放图像的数据的Im文件夹以及用于存放测试集和训练集图片的JP文件夹。

然后分别将VOC2007数据集里的文件,提取到相应VOC_person文件夹之下;例如:提取VOC/Im/Main/里的四个person文件到VOC_person/Im/Main/目录下。此后,在VOC_person/Im/Main/目录下生成两个txt文件;该两个txt文件分别为测试集test和训练集train。

在一个实施例中,对于训练模型及检测结果部分,其主要包括如下处理步骤:

将制作的所有数据集改为本地使用的数据集文件;

下载预训练文件并开始进行YOLOv3检测模型的训练;

检测YOLOv3检测模型的训练结果。

具体的,在训练之前,首先需修改模型训练的现有代码,具体操作例如包括:在data目录下新建文件my_person_train.names(文件名还可以取为其他名称);在cfg目录下新建my_person_train.data文件(文件名还可以取为其他名称);适应性修改examples/yolo.c文件等。前述操作的最终目的是将模型训练的现有代码中所有数据集改为本次训练所使用的数据集文件。下载预训练文件并开始进行模型的训练。最后,检测训练的结果。用矩形框将检测到的行人标注出来。通过多次检验,验证了行人检测的代码可以有效并准确地检测到各帧画面中的行人。

在一个实施例中,关于上述步骤S12中,标注监控画面中的各行人并输出各行人的原始行人坐标的过程,具体可以包括如下处理流程:

在YOLOv3检测模型进行行人检测的过程中,选取标注的各行人框的底边中点,输出各底边中点的坐标作为各原始行人坐标。

具体的,通常可以但不限于使用矩形框将行人的整个框架标注出来;然而,在本申请中,需要确定行人的具体坐标,以便于变换到鸟瞰图后可以通过变换坐标来计算行人之间的距离。若在鸟瞰图中想要最大程度地得到行人的准确坐标,通过分析发现,须得到行人脚下的坐标。

因此,在YOLOv3检测模型检测行人的过程中,为了得到准确的行人坐标,最终选取标注的行人框(矩形框)的底边(也即矩形框位于地面上的边)中点,也即最接近行人双脚站立的位置,作为行人最终的坐标表示并输出这个坐标,也即得到监控画面中各行人的原始行人坐标。

S14,采用霍夫变换对监控画面进行地面直线检测,确定各地面直线并计算各地面直线的交点;

S16,采用K-Means聚类算法对各交点进行聚类处理,得到监控画面中的各地面控制点。

可以理解,在基于直线检测和点聚类的控制点选取的过程中,一条直线的检测可能会被检测成多条直线,从而导致在画面中某一点实际得到的是多条直线的交点,进而在实际的画面中某一交点处检测到多个交点。然而实际上画面中某一交点处只需要得到一个点,因此需要在实际的直线交点处进行多个交点的聚类处理,使得最终结果是获得一个所需的交点,也即画面中某一交点处的地面控制点。因此本申请应用了K-Means聚类算法,通过K-Means聚类之后,即可以自动地选取相应的地面控制点,用于进行透视变换。

具体的,使用直线检测的手段来进行直线和格网检测,在直线检测时,用到本领域已有的霍夫变换处理,其具体处理步骤如图3所示,其中,Canny算子进行边缘提取结果可如图4所示,得到最终的直线检测如图5所示。在具体的霍夫变换的相应代码实现过程中,可以通过调整霍夫变换的相应代码中的参数阈值使得检测结果得以优化,以使检测结果达到最优的地面直线以及网格的检测效果,如图6所示。

然后,通过应用现有的求直线交点的函数,将各直线交点在图中标注出,如图7所示。最终利用霍夫变换检测直线的技术,结合交点求解,得到了上述一系列交点。由于霍夫变换在检测直线的过程中,可能出现直线重叠,导致原本原图中一条直线被检测成多条,进而导致求交点时在一点处有多个交点出现,即原本一个点的附近检测出了多个交点,从而导致难以选取合适的交点进行透视变换。因此,使用了K-Means聚类算法使得交点聚类,从而得出单交点,也即各地面控制点,并且将其坐标在图中表示出来,如图8所示。

S18,从各地面控制点中抽取四个目标控制点,采用单应性矩阵根据四个目标控制点和各原始行人坐标对监控画面进行透视变换,得到监控画面对应的鸟瞰图以及鸟瞰图中的各行人坐标;其中,四个目标控制点在监控画面上构成矩形框。

可以理解,在计算机视觉领域的很多应用中,例如机器人导航、车道检测等,这些应用的一项中常见的工作就是将现地场景中的摄像机视图转换到从上到下的“俯视”视图,即鸟瞰图。而鸟瞰图转换的具体流程如图9所示。

在一个实施例中,抽取控制点对时,四个目标控制点变换到鸟瞰图中的四个相应控制点组成一个正矩形。

在一个实施例中,关于上述步骤S18中,采用单应性矩阵根据四个目标控制点和各原始行人坐标对监控画面进行透视变换,得到监控画面对应的鸟瞰图以及鸟瞰图中的各行人坐标的过程,具体可以包括如下处理步骤:

利用监控画面的四个目标控制点计算得到单应性矩阵;

根据监控画面和各原始行人坐标,利用得到的单应性矩阵计算得到鸟瞰图以及鸟瞰图中的各行人坐标。

具体的,一般情况下在原图像(也即当前处理的一帧监控画面)上设置4个点,经过透视变换即可得到鸟瞰图。在鸟瞰图中,也能得到与在原图像上选取的4个点一一对应的新的4个坐标,这8个点即确定了原图像到转换图像(也即鸟瞰图)的变换矩阵。在抽取控制点时,可遵循一个原则:即确定所抽取的4个地面控制点须在鸟瞰图中组成一个可度量的矩形;为了更好地还原真实场景中的鸟瞰图,在抽取控制点时,变换到鸟瞰图中的另外四个控制点对能够组成一个正矩形,即正方形。

在变换的过程中,通过原图(也即监控画面)的4个地面控制点(也即选取的目标控制点),通过本领域已有的单应性矩阵计算方法即可计算得到如下的单应性矩阵

利用该单应性矩阵,可以将之前利用YOLOv3检测模型检测到的原始行人坐标,通过该单应性矩阵计算得到鸟瞰图中相应的行人坐标,继而用于计算行人之间的实际距离。

S20,计算鸟瞰图中各行人坐标之间的距离,得到各行人之间的行人距离,根据各行人距离分别与设定的社交距离阈值的比较结果进行社交距离预警。

在一个实施例中,关于上述步骤S20中,计算鸟瞰图中各行人坐标之间的距离,得到各行人之间的行人距离的过程,具体可以包括如下处理步骤:

根据各行人坐标确定鸟瞰图中各行人对应的行人像素点;

利用监控画面对应的真实场景的尺寸先验信息,推算得到各行人像素点之间的距离与真实场景距离的关系;

根据各行人像素点之间的距离与真实场景距离的关系,确定各行人之间的行人距离。

可以理解,在鸟瞰图上直接通过点的坐标计算出来的,也即返回的实际上是鸟瞰图中两像素点之间的像素值距离,而并非是真实场景下的行人间距离,故而无法直接通过计算出来的像素值距离,判断行人之间是否符合安全的社交距离阈值。因此,可以利用真实场景尺寸的先验信息,例如但不限于地砖的真实尺寸、道路行车标志线的真实尺寸等先验信息,推算相应的像素点之间的距离和真实场景距离的关系,进而最终由各像素点之间的距离与真实场景距离的关系,确定各行人之间真实的行人距离。

在一个实施例中,关于上述步骤S20中,根据各行人距离分别与设定的社交距离阈值的比较结果进行社交距离预警的过程,具体可以包括如下处理步骤:

若任意一行人像素点对之间的行人距离小于社交距离阈值,则将任意一行人像素点对用第一颜色的连线进行预警标记;

若任意一行人像素点对之间的行人距离大于社交距离阈值,则将任意一行人像素点对用第二颜色连线进行标记。

具体的,可以采取不同的颜色对距离的范围进行标识,若任意一行人像素点对之间的行人距离不超过设定的社交距离阈值,则可以用第一颜色(例如但不限于红色或黄色)对其进行标记,以表示其不符合安全距离,以给出警示。若任意一行人像素点对之间的行人距离超过设定的社交距离阈值,则可以用第二颜色(例如但不限于绿色或蓝色)对其进行标记,以表示其符合安全距离。社交距离阈值可以根据具体的实际场景的社交距离要求来设定。

将上述当前输入的一帧画面的监测过程同理拓展到监控视频流的多帧画面,即可实现基于监控视频的社交距离的实时监测与预警。

上述基于监控视频的社交距离监测方法,通过针对输入的监控视频的每一帧监控画面,首先基于YOLOv3检测模型进行行人检测与坐标定位,然后基于直线检测进行地面直线检测与地面控制点的自动选取,进而基于透视变换对前述处理后的监控画面进行鸟瞰图转换,得到相应的自上而下的鸟瞰图及其中的行人坐标,最后利用各行人坐标计算行人之间的距离并与社交距离阈值进行比较,实现行人的社交距离的自动监测预警。如此,将目标检测YOLOv3算法、霍夫变换直线网格监测、K-Means聚类算法、图像单应性变换和视觉社交距离研究等综合为一体,为综合计算机视觉、图像变换和社交距离估算等技术进行创新融合应用。高精度、高速度地检测到每一幅画面中的行人,全自动抽取地面控制点并进行透视变换,再利用单应性矩阵求得行人的坐标,计算行人之间的距离并判断行人之间是否符合规定的社交距离,达到了全自动地实现社交距离监控的效果。

在一个实施例中,为更直观说明上述基于监控视频的社交距离监测方法,提供了其中一个可选的示例:用一段网络视频画面中的行人检测,以实验环境为64位的window10系统,运行内存8GB,GPU版本为NVIDIA GeForce GTX 1050,程序运行环境为Anaconda-3环境下的Python3.6.3、Pytorch1.2.0,编译器为Spyder的验证示例,有效验证了上述基于监控视频的社交距离监测方法的有益效果。

需要说明的是,该示例仅为示意性的验证示例,并非是对本申请上述方法的唯一限定。本领域技术人员可以理解,参照本申请上述方法的设计构思可以扩展实现对不同真实应用场景下的社交距离监控。

具体的,网络视频数据时长24秒,分辨率为790×444,帧速率为23.98帧/秒,截取了时间t=1s和4s时的任意两帧视频监控画面,如图10所示,其中,图(a)为t=1s时的一帧视频监控画面,图(b)为t=4s时的另一帧视频监控画面。试验步骤包括如下:

(1)行人检测

首先要获取原始帧监控画面中检测到的每个人的边界框,计算边界框的底边中点,即大致为行人双脚之间的点,可作为行人的坐标并在图中标出,如图11和图12所示。输出并保存这些坐标。如图11中,图(a)为t=1s时的一帧视频监控画面上检测到并标注每个人的边界框的示意图,图(b)为t=4s时的一帧视频监控画面上检测到并标注每个人的边界框的示意图;可在矩形的边界框中顶部空白标签框内标注字符“person”,用于代表行人,对于其他附图中行人的标签可以同理设置。如图12中,图(a)为t=1s时的一帧视频监控画面上标注出行人的边界框底边中点的示意图,图(b)为t=4s时的一帧视频监控画面上标注出行人的边界框底边中点的示意图。

根据YOLOv3的程序运行结果,t=1s时,图中四个行人的坐标保留整数后分别为(268,179)、(361,299)、(384,183)以及(324,188);t=4s时,图中三个行人的坐标分别为(247,117)、(153,118)以及(203,126)。

(2)地面角点选取与鸟瞰图转换

首先要在图中的有地砖的画面中进行霍夫变换直线检测,如图13所示,而后进行点聚类,目的是获取计划的4个角点(也即地面控制点),其中,这4个角点在实际的场景中需要构成一个正方形,以便透视变换中转换过来的鸟瞰图符合实际场景的比例。最后,经过透视变换后,如图14所示(左向右变换),保存转换矩阵,即单应性矩阵。图14中,图(a)为t=1s时的一帧视频监控画面,图(b)为t=1s时的一帧视频监控画面经透视变换后得到的鸟瞰图,图(c)为t=4s时的一帧视频监控画面,图(d)为t=4s时的一帧视频监控画面经透视变换后得到的鸟瞰图。

(3)坐标转换与投影验证

利用前述保存的单应性矩阵,对原始画面中每一个行人的坐标也进行相应的转换,获取每个行人在鸟瞰图中的相应坐标。同时,为了使鸟瞰图中的比例最大程度接近现实场景,输出转换后的坐标,进行正方形验证。

对于t=1s的画面,转换后的8个坐标中前4个坐标代表矩形的四个顶点,后3个坐标为检测到的3个行人坐标。通过4个顶点坐标不难看出,矩形两边的长度分别为299-197=102个像素值、201-100=101个像素值。通过调整变换后x和y方向的伸缩比例,最大程度近似得到了一个正方形。由于所选取场景的地砖为正方形地砖,所以最大化地还原了真实场景的比例。

(4)社交距离度量

在实验过程中对行人的坐标对进行两两组合,从而能够算出每一对行人之间的距离dsX(X=1,2,3……),详见表1和表2所示。

表1

表2

可以看出,得到的距离返回值并非实际的尺寸。还应该考虑到的是,通过坐标计算出来的,返回的是两像素之间的像素值距离,而并非真实场景下的行人距离,故而无法直接通过计算出来的距离判断行人之间是否符合安全的社交距离。因此,在这里还需要利用真实场景尺寸的先验信息,从而推算相应的像素点之间的距离和真实场景距离的关系。在本示例所设定的场景中,地砖的作用不仅可以用来直线、网格检测、确定透视变换的角点,还可以起到定量作用,即提供一个尺寸先验信息。

由先验信息得知,图13中的正方形地砖的真实尺寸为1m×1m。从上一步通过单应性矩阵得到的变换矩形的两边分别为101和102个像素值。取平均,即两块地砖的长度为101.5个像素值,所以一块地砖的边长近似为101.5/2=50.75个像素值。因此,可以得知实验示例中的实际场景里,1m的实际距离约等于50.75个像素值。如果设定安全社交距离(也即社交距离阈值)为2m,即101.5个像素值,那么可以判断表1中,在t=1s时的画面中,ds3、ds4与ds6小于101.5,即小于安全社交距离,不符合社交距离规则;表2中,在t=4s时的画面中,所有距离都小于安全社交距离,即图13中的三个行人都不符合社交距离规则。

最后,可以采取不同的颜色对距离的范围进行标识,超过的可用绿色进行标识,表示符合安全距离,不超过的可用红色进行标识,表示不符合安全距离,给出警示,如图15所示(其中,点间连线表示相应标识)。充分验证了上述基于监控视频的社交距离监测方法的高可行度,能够较好地自动检测行人之间的社交距离。图15中,图(a)表示t=1s时的一帧鸟瞰图标识示意,图(b)表示t=4s时的一帧鸟瞰图标识示意。

应该理解的是,虽然图2流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其他的顺序执行。而且图2的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

请参阅图16,在一个实施例中,还提供了一种基于监控视频的社交距离监测装置100,包括行人检测模块11、直线检测模块13、点聚类模块15、透视变换模块17和监测预警模块19。其中,行人检测模块11用于采用YOLOv3检测模型对输入的监测视频的任意帧监控画面进行行人检测,标注监控画面中的各行人并输出各行人的原始行人坐标。直线检测模块13用于采用霍夫变换对监控画面进行地面直线检测,确定各地面直线并计算各地面直线的交点。点聚类模块15用于采用K-Means聚类算法对各交点进行聚类处理,得到监控画面中的各地面控制点。透视变换模块17用于从各地面控制点中抽取四个目标控制点,采用单应性矩阵根据四个目标控制点和各原始行人坐标对监控画面进行透视变换,得到监控画面对应的鸟瞰图以及鸟瞰图中的各行人坐标;其中,四个目标控制点在监控画面上构成矩形框。监测预警模块19用于计算鸟瞰图中各行人坐标之间的距离,得到各行人之间的行人距离,根据各行人距离分别与设定的社交距离阈值的比较结果进行社交距离预警。

上述基于监控视频的社交距离监测装置100,通过各模块的协作,针对输入的监控视频的每一帧监控画面,首先基于YOLOv3检测模型进行行人检测与坐标定位,然后基于直线检测进行地面直线检测与地面控制点的自动选取,进而基于透视变换对前述处理后的监控画面进行鸟瞰图转换,得到相应的自上而下的鸟瞰图及其中的行人坐标,最后利用各行人坐标计算行人之间的距离并与社交距离阈值进行比较,实现行人的社交距离的自动监测预警。如此,将目标检测YOLOv3算法、霍夫变换直线网格监测、K-Means聚类算法、图像单应性变换和视觉社交距离研究等综合为一体,为综合计算机视觉、图像变换和社交距离估算等技术进行创新融合应用。高精度、高速度地检测到每一幅画面中的行人,全自动抽取地面控制点并进行透视变换,再利用单应性矩阵求得行人的坐标,计算行人之间的距离并判断行人之间是否符合规定的社交距离,达到了全自动地实现社交距离监控的效果。

在一个实施例中,上述行人检测模块11在用于标注监控画面中的各行人并输出各行人的原始行人坐标的过程中,具体可以用于在YOLOv3检测模型进行行人检测的过程中,选取标注的各行人框的底边中点,输出各底边中点的坐标作为各原始行人坐标。

在一个实施例中,上述YOLOv3检测模型通过基于PASCAL VOC2007训练数据集进行训练后得到。

在一个实施例中,上述透视变换模块17在用于采用单应性矩阵根据四个目标控制点和各原始行人坐标对监控画面进行透视变换,得到监控画面对应的鸟瞰图以及鸟瞰图中的各行人坐标的过程中,具体可以用于利用监控画面的四个目标控制点计算得到单应性矩阵;根据监控画面和各原始行人坐标,利用得到的单应性矩阵计算得到鸟瞰图以及鸟瞰图中的各行人坐标。

在一个实施例中,上述监测预警模块19在用于计算鸟瞰图中各行人坐标之间的距离,得到各行人之间的行人距离的过程中,具体可以用于:根据各行人坐标确定鸟瞰图中各行人对应的行人像素点;利用监控画面对应的真实场景的尺寸先验信息,推算得到各行人像素点之间的距离与真实场景距离的关系;根据各行人像素点之间的距离与真实场景距离的关系,确定各行人之间的行人距离。

在一个实施例中,上述监测预警模块19在用于根据各行人距离分别与设定的社交距离阈值的比较结果进行社交距离预警的过程中,具体可以用于:在任意一行人像素点对之间的行人距离小于社交距离阈值时,将任意一行人像素点对用第一颜色的连线进行预警标记;以及用于在任意一行人像素点对之间的行人距离大于社交距离阈值时,将任意一行人像素点对用第二颜色连线进行标记。

关于基于监控视频的社交距离监测装置100的具体限定,可以参见上文中基于监控视频的社交距离监测方法的相应限定,在此不再赘述。上述基于监控视频的社交距离监测装置100中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于具体数据处理功能的设备中,也可以软件形式存储于前述设备的存储器中,以便于处理器调用执行以上各个模块对应的操作,前述设备可以是但不限于本领域已有的各型监控设备、指挥调度系统设备等。

又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时可以实现以下步骤:采用YOLOv3检测模型对输入的监测视频的任意帧监控画面进行行人检测,标注监控画面中的各行人并输出各行人的原始行人坐标;采用霍夫变换对监控画面进行地面直线检测,确定各地面直线并计算各地面直线的交点;采用K-Means聚类算法对各交点进行聚类处理,得到监控画面中的各地面控制点;从各地面控制点中抽取四个目标控制点,采用单应性矩阵根据四个目标控制点和各原始行人坐标对监控画面进行透视变换,得到监控画面对应的鸟瞰图以及鸟瞰图中的各行人坐标;其中,四个目标控制点在监控画面上构成矩形框;计算鸟瞰图中各行人坐标之间的距离,得到各行人之间的行人距离,根据各行人距离分别与社交距离阈值的比较结果进行社交距离预警。

在一个实施例中,处理器执行计算机程序时还可以实现上述基于监控视频的社交距离监测方法各实施例中增加的步骤或者子步骤。

再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:采用YOLOv3检测模型对输入的监测视频的任意帧监控画面进行行人检测,标注监控画面中的各行人并输出各行人的原始行人坐标;采用霍夫变换对监控画面进行地面直线检测,确定各地面直线并计算各地面直线的交点;采用K-Means聚类算法对各交点进行聚类处理,得到监控画面中的各地面控制点;从各地面控制点中抽取四个目标控制点,采用单应性矩阵根据四个目标控制点和各原始行人坐标对监控画面进行透视变换,得到监控画面对应的鸟瞰图以及鸟瞰图中的各行人坐标;其中,四个目标控制点在监控画面上构成矩形框;计算鸟瞰图中各行人坐标之间的距离,得到各行人之间的行人距离,根据各行人距离分别与社交距离阈值的比较结果进行社交距离预警。

在一个实施例中,计算机程序被处理器执行时,还可以实现上述基于监控视频的社交距离监测方法各实施例中增加的步骤或者子步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其他介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线式动态随机存储器(Rambus DRAM,简称RDRAM)以及接口动态随机存储器(DRDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可做出若干变形和改进,都属于本申请保护范围。因此本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 基于监控视频的社交距离监测方法、装置、设备和介质
  • 基于视频图像分析的视频监控设备故障监测方法及系统
技术分类

06120113239873