行人异常行为检测方法、图像处理装置及存储装置
技术领域
本申请是申请人于2019年05月28日提出的名为“行人异常行为检测方法、图像处理装置及存储装置”、申请号为2019104528014的专利申请的分案申请,本申请涉及计算机视觉
技术领域
,特别是涉及一种行人异常行为检测方法、图像处理装置及存储装置。背景技术
随着监控摄像头越来越密集地布控于城市的各个角落,智能监控系统也在不断拓展其业务功能,从而逐渐替代监控人员完成大量且重复的监控工作。
其中,在监狱、车站、广场、商场等人流密集区域,针对行人异常行为检测的业务功能显得尤为重要。例如,当发生打架、斗殴等异常行为时,可以使有关部门及时介入,从而减少生命、财产损失,有利于社会稳定和区域安全,因此有着重大的应用价值与广阔的应用前景。故此,如何准确检测行人是否存在异常行为成为智能监控业务中亟待解决的问题。
发明内容
本申请主要解决的技术问题是提供一种行人异常行为检测方法、图像处理装置及存储装置,能够准确检测行人异常行为。
为了解决上述问题,本申请第一方面提供了一种行人异常行为检测方法,包括分别对摄像器件拍摄得到的多帧图像进行目标检测,得到每帧图像中与目标行人对应的检测区域;分别对每帧图像的检测区域进行光流检测,得到每帧图像的检测区域的光流信息,其中,多帧图像包括目标帧图像和至少一帧样本帧图像;利用至少一帧样本帧图像的光流信息,分析目标帧图像的光流信息;以及基于分析的结果,确定目标行人是否存在异常行为。
为了解决上述问题,本申请第二方面提供了一种图像处理装置,包括相互耦接的存储器和处理器;处理器用于执行存储器存储的程序指令,以实现上述第一方面的方法。
为了解决上述问题,本申请第三方面提供了一种存储装置,存储有能够被处理器运行的程序指令,程序指令用于实现上述第一方面的方法。
上述方案中,分别对摄像器件拍摄得到的包括目标帧图像和至少一帧样本帧图像的多帧图像进行目标检测,从而得到每帧图像中与目标行人对应的检测区域,从而对检测区域检测光流检测,进而获得目标帧图像和至少一帧样本帧图像的光流信息,从而利用样本帧图像的光流信息分析目标帧图像的光流信息,进而可以发现目标帧图像相较于样本帧图像的光流信息变化,故无论目标行人所在场景如何,都可以借鉴对该目标行人拍摄的样本帧图像的光流信息作为该目标行人当前的行为判断标准,来对目标帧图像的光流信息进行行为判断,以准确检测出目标行人是否存在异常行为。
附图说明
图1是本申请行人异常行为检测方法一实施例的流程示意图;
图2是本申请行人异常行为检测方法另一实施例的流程示意图;
图3是图2中步骤S21一实施例的流程示意图;
图4是图2中步骤S23一实施例的流程示意图;
图5是图1中步骤S11一实施例的流程示意图;
图6是本申请行人异常行为检测方法又一实施例的流程示意图;
图7是图6中步骤S61一实施例的流程示意图;
图8是图6中步骤S62一实施例的流程示意图;
图9是图6中步骤S61另一实施例的流程示意图;
图10是本申请行人异常行为检测方法又一实施例的流程示意图;
图11是本申请图像处理装置一实施例的框架示意图;
图12是本申请存储装置一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
请参阅图1,图1是本申请行人异常行为检测方法一实施例的流程示意图。具体而言,可以包括:
步骤S11:分别对摄像器件拍摄得到的多帧图像进行目标检测,得到每帧图像中与目标行人对应的检测区域。
摄像器件可以为夜视摄像头、红外摄像头等等。根据应用场景的不同可以选择不同类型的摄像器件。例如,针对环境幽暗、采光不佳的场所,摄像器件可以为夜视摄像头、红外摄像头;针对光线明亮的室内场所,摄像器件可以为一般的数字摄像头、网络摄像头;而针对室外无遮挡的场景,摄像器件可以防水摄像头,本实施例不做具体限制。
多帧图像可以为2帧图像、3帧图像、4帧图像等等,本实施例对在此不一一举例。
检测区域可以为一矩形,且该矩形包围每帧图像中的行人。或者,检测区域还可以为不规则图形,在一个实施场景中,为了后续对多帧图像的检测区域进行的光流检测更加精确,从而更加准确地得到多帧图像中目标行人的光流信息,检测区域可以为行人的轮廓区域。
检测区域的确定可以通过行人检测(Pedestrian Detection)技术来实现,行人检测技术是利用计算机视觉技术判断图像或者视频序列中是否存在行人并给予精确定位。现有行人检测方法主要有三种,分别为基于全局特征的方法、基于人体部位的方法、基于立体视觉的方法,例如基于全局特征的方法中具有代表性的基于Haar小波特征方法、基于HOG(Histogram of Oriented Gradients,梯度方向直方图)特征方法、基于轮廓模板的方法等等。行人检测技术为计算机视觉技术领域的现有技术,本实施例在此不再赘述。
步骤S12:分别对每帧图像的检测区域进行光流检测,得到每帧图像的检测区域的光流信息,其中,多帧图像包括目标帧图像和至少一帧样本帧图像。
光流(Optical Flow or Optic Flow)是关于视觉域中的物体运动检测中的概念,用来描述相对于观察者的运动所造成的观测目标、表面或边缘的运动。所谓光流就是指图像表面出运动的速度。物体在运动的时候之所以能够被人眼发现,就是因为当物体运动时,会在人的视网膜上形成一系列的连续变化的图像,这些变化信息在不同时间,不断地流过眼镜视网膜,就好像一种光流经过一样,故称之为光流。
光流检测在样型识别、计算机视觉以及其他摄像处理领域中有着重要的作用。具体地,光流检测可用于检测运动、物件切割、碰撞时间与物体膨胀的计算、运动补偿编码,或者通过物体表面与边缘进行立体的测量等等。
关于光流检测的方法目前有基于梯度的方法、基于匹配的方法、基于能量的方法等等。比较典型的有:霍恩-山克方法(Horn-Schunck Method)、卢卡斯-卡纳德方法(Lucas-Kanade Method)等等。光流检测的方法为本领域的现有技术,本实施例在此不再赘述。
在一个实施场景中,为了定量地表征光流点的位置信息,光流信息包括检测区域的至少一个光流点在多维坐标轴上的坐标信息,例如前一帧图像中的光流点1的光流信息表示为二维坐标轴上的坐标信息(X1,t,Y1,t),或者前一帧图像中的光流点2的光流信息表示为二维坐标轴上的坐标信息(X2,t,Y2,t),或者后一帧图像中的光流点1的光流信息表示为二维坐标轴上的坐标信息(X1,t+1,Y1,t+1),或者后一帧图像中的光流点2的光流信息表示为二维坐标轴上的坐标信息(X2,t+1,Y2,t+1)等等,本实施例不再赘述。
目标帧图像为当前需要进行行人异常行为检测的图像,在一个实施场景中,为了自适应地对目标帧图像进行行人异常行为检测,至少一帧样本帧图像为目标帧图像之前的若干帧图像,例如目标帧图像之前的连续十帧图像、目标帧图像之前的连续十五帧图像等等,本实施例在此不再一一举例。
步骤S13:利用至少一帧样本帧图像的光流信息,分析目标帧图像的光流信息。
基于至少一帧样本帧图像的光流信息,分析目标帧图像的光流信息。在一个实施场景中,通过基于至少一帧样本帧图像的光流信息,可以发现目标帧图像与样本图像光流信息之间的变化。
步骤S14:基于分析的结果,确定目标行人是否存在异常行为。
基于对目标帧图像和至少一帧样本帧图像的光流信息的分析,确定目标行人是否存在异常行为。在一个实施场景中,通过基于至少一帧样本帧图像的光流信息,可以发现目标帧图像与样本图像光流信息之间的变化,从而基于两者之间光流信息的变化,确定目标行人是否存在异常行为。
上述方式,分别对摄像器件拍摄得到的包括目标帧图像和至少一帧样本帧图像的多帧图像进行目标检测,从而得到每帧图像中与目标行人对应的检测区域,从而对检测区域检测光流检测,进而获得目标帧图像和至少一帧样本帧图像的光流信息,从而利用样本帧图像的光流信息分析目标帧图像的光流信息,进而可以发现目标帧图像相较于样本帧图像的光流信息变化,故无论目标行人所在场景如何,都可以借鉴对该目标行人拍摄的样本帧图像的光流信息作为该目标行人当前的行为判断标准,来对目标帧图像的光流信息进行行为判断,以准确检测出目标行人是否存在异常行为。
请参阅图2,图2是本申请行人异常行为检测方法另一实施例的流程示意图。在上述步骤S13之前,还可以进一步包括:
步骤S21:判断检测区域是否小于预设最小尺寸。若是,则执行步骤S22,否则执行步骤S23。
预设最小尺寸为可以包含供异常行为检测所需光流信息的最小尺寸。当检测区域小于预设最小尺寸时,检测区域内的光流信息较少,可能导致不足以供后续检测异常行为之用。预设最小尺寸为统一设置的预设尺寸,或者还可以是用户自定义设置的预设尺寸。在一个实施场景中,检测区域为矩形检测区域,预设最小尺寸也为矩形。请结合参阅图3,上述步骤S21可以具体包括:
步骤S211:获取检测区域的对角线的第一长度和预设最小尺寸的对角线的第二长度。
在一个实施场景中,可以通过检测区域所对应的矩形的顶点的坐标信息确定其对角线的第一长度,例如,检测区域所对应的四个顶点的坐标信息分别为(XA,YA)、(XA+30,YA)、(XA+30,YA+40)、(XA,YA+40),则根据勾股定理可以确定检测区域的对角线的第一长度为50,同理可以确定预设最小尺寸的对角线的第二长度,本实施例在此不再一一举例。
步骤S212:判断第一长度是否小于第二长度。若是,则执行步骤S213,否则执行步骤S214。
比较第一长度是否小于第二长度。
步骤S213:确定检测区域小于预设最小尺寸。
若第一长度小于第二长度,则可确定检测区域小于预设最小尺寸。
步骤S214:确定检测区域不小于预设最小尺寸。
若第一长度不小于第二长度,则可以确定检测区域不小于预设最小尺寸。
步骤S22:将检测区域内的图像放大至预设标准尺寸,并将放大后的图像作为检测区域内的图像。
当检测区域小于预设最小尺寸时,则说明若对此时检测区域内的图像进行光流检测,可能导致检测出的光流信息较少,从而可能导致不足以供后续检测异常行为之用。此时,可以通过将将检测区域内的图像放大至预设标准尺寸,并将放大后的图像作为检测区域内的图像。
步骤S23:计算检测区域的尺寸与预设标准尺寸之间的尺寸比值,并将检测区域中各光流点的光流位移与尺寸比值的积对应作为光流点的光流位移。
当检测区域不小于预设最小尺寸时,则说明若此时对检测区域内的图像进行光流检测,检测出的光流信息足以供后续检测异常行为之用。此时,可以进一步计算检测区域的尺寸与预设标准尺寸之间的尺寸比值,并将检测区域中各光流点的光流位移与尺寸比值的积作为对应光流点的光流位移。具体地,可以将预设标准尺寸除以检测区域的尺寸的作为尺寸比值,例如尺寸比值为1.2,则说明预设标准尺寸大于检测区域,则将检测区域内的各光流点的光流位移乘以尺寸比值1.2从而得到对应光流点的光流位移;或者,例如尺寸比值为0.8,则说明预设标准尺寸小于检测区域,则将检测区域内的各光流点的光流位移乘以尺寸比值10.8从而得到对应光流点的光流位移,通过上述方式可以将不同大小的检测区域内各光流点的光流位移归一化,从而消除了图像中近景与远景之间光流位移之间的差距对异常行为检测的影响。
而上述步骤S22中,若检测区域小于预设最小尺寸,则将检测区域内的图像放大至预设标准尺寸,并将放大后的图像作为检测区域内的图像,此时,检测区域的尺寸与预设标准尺寸之间的尺寸比值即为1,即相当于不必对光流点的光流位移进行缩放。
在一个实施场景中,在上述步骤S23中,为了快速、方便地计算检测区域的尺寸与预设标准尺寸之间的尺寸比值,请结合参阅图4,上述步骤S23可以具体包括如下步骤:
步骤S231:获取检测区域的对角线的第一长度和预设标准尺寸的对角线的第三长度。
在一个实施场景中,可以通过检测区域所对应的矩形的顶点的坐标信息确定其对角线的第一长度,例如,检测区域所对应的四个顶点的坐标信息分别为(XA,YA)、(XA+30,YA)、(XA+30,YA+40)、(XA,YA+40),则根据勾股定理可以确定检测区域的对角线的第一长度为50。同理,预设标准尺寸对角线的第三长度可以以此类推进行计算,本实施例在此不再一一举例。
步骤S232:将第三长度与第一长度之比作为尺寸比值。
将第三长度与第一长度之比作为尺寸比值。
上述方式,可以将不同大小的检测区域内各光流点的光流位移归一化,从而消除了图像中近景与远景之间光流位移之间的差距对异常行为检测的影响。
请参阅图5,图5是图1中步骤S11一实施例的流程示意图。具体而言,上述实施例中步骤S11可以包括如下步骤:
步骤S111:利用预设头肩框检测模型对每一帧图像进行检测,以获得每帧图像中与目标行人对应的头肩框。
预设头肩检测模型可以是预先通过深度学习训练而获得的,本实施例在此不做具体限制。
通过预设头肩检测模型对每一帧图像进行检测可以获得每帧图像中与目标行人对应的头肩框。
步骤S112:由与目标行人对应的头肩框得到与目标行人对应的检测区域。
基于目标行人对应的头肩框可以得到与目标行人对应的检测区域。在一个实施场景中,可以将头肩框按照预定比例、预定方向进行延展从而获得检测区域。例如,对头肩框统一下拉一定的比例,如1.2倍等等。
上述方式,通过预设头肩检测模型对图像进行检测,而头肩区域在图像中是相对稳定的部位,因此通过预设头肩检测模型对图像进行检测可以提高对目标行人的识别准确率,且利用头肩框还可以避免其他物体的运动对确定检测区域的影响,可提升所得到的检测区域的准确率,并提高后续基于检测区域内的光流信息进行异常行为检测的准确率。
请参阅图6,图6是本申请行人异常行为检测方法又一实施例的流程示意图。
具体而言,上述步骤S13可以包括如下步骤:
步骤S61:基于至少一帧样本帧图像的光流信息,得到目标帧图像的光流阈值。
基于至少一帧样本帧图像的光流信息得到后续用于检测目标帧图像中行人是否存在异常行为的光流阈值。在一个实施场景中,为了从多个维度检测行人是否存在异常行为,从而使得异常行为的检测结果更为准确,光流阈值可以包括光流位移阈值、光流比率阈值中的至少一者。
具体而言,可以通过获取每帧样本帧图像的检测区域的第一光流位移,并基于第一光流位移确定得到目标帧图像的光流位移阈值。在一个实施场景中,当前帧的光流位移可以基于当前帧中光流点的光流信息及其前一帧中对应光流点的光流信息,以及上述实施例中的尺寸比值获得,具体地,可以通过光流信息中的坐标信息获得,例如光流点1在当前帧图像中的坐标信息为(X1,t,Y1,t),在前一帧图像中的坐标信息为(X1,t-1,Y1,t-1),则光流点1的光流位移可以用向量表示为进而光流点1的光流位移的大小可以用向量的模表示为最终可将上述值与尺寸比值之间的乘积作为光流位移。以此类推,可计算得到其他光流点的光流位移及光流方向变化,本实施例在此不再一一举例。
此外,可以通过统计每帧样本帧图像的检测区域中光流方向变化大于预设角度的第一光流点数,并基于第一光流点数确定得到目标帧图像的光流比率阈值。在一个实施场景中,当前帧的光流方向变化可以基于当前帧中光流点的光流信息以及前一帧、后一帧中对应光流点的光流信息获得,具体地,可以通过光流信息中的坐标信息获得,例如光流点1在当前帧图像中的坐标信息为(X1,t,Y1,t),在后一帧图像中的坐标信息为(X1,t+1,Y1,t+1),在前一帧图像中的坐标信息为(X1,t-1,Y1,t-1),从而光流点1在当前帧与前一帧中所表示的光流位移为光流点1在当前帧与后一帧中所表示的光流位移为从而可以求得当前帧中光流点1光流方向的变化为预设角度可以统一预先设置,也可以用户根据实际应用自定义设置,预设角度可以为100度、120度等等,本实施例在此不做具体限制。
步骤S62:比较目标帧图像的光流信息与光流阈值。
在一个实施场景中,为了从多个维度检测行人是否存在异常行为,光流阈值可以包括光流位移阈值、光流比率阈值中的至少一者。此时,上述步骤S62具体可以通过获取目标帧图像的检测区域的第二光流位移,比较第二光流位移与光流位移阈值来进行实施;或者上述步骤S62还可以通过统计目标帧图像的检测区域中光流方向变化大于预设角度的第二光流点数,并基于第二光流点数得到目标帧图像的光流比率,比较光流比率与光流比率阈值来进行实施;或者上述步骤S62还可以通过首先获取目标帧图像的检测区域的第二光流位移,比较第二光流位移与光流位移阈值,之后再统计目标帧图像的检测区域中光流方向变化大于预设角度的第二光流点数,并基于第二光流点数得到目标帧图像的光流比率,比较光流比率与光流比率阈值来进行实施。具体而言,目标帧图像的检测区域的第二光流位移的具体计算方式可以参考上述步骤S61中计算光流位移阈值的实施方式,目标帧图像的检测区域中光流方向变化的具体计算方式可以参考上述步骤S61中的样本帧图像中检测区域中光流方向变化的实施方式,此处不再一一举例。
上述步骤S14可以包括:
步骤S63:若目标帧图像的光流信息与光流阈值之间的满足预设关系条件,则确定目标行人存在异常行为。
在一个实施场景中,为了从多个维度检测行人是否存在异常行为,光流阈值可以包括光流位移阈值、光流比率阈值中的至少一者。此时,预设关系条件包括:第二光流位移大于或等于光流位移阈值的第一预设倍数;和/或,光流比率大于或等于光流比率阈值的第二预设倍数。第一预设倍数可以为1.3、1.5、1.7、1.9、2.1等等,本实施例在此不做具体限制。第二预设倍数可以为1.3、1.5、1.7、1.9、2.1等等,本实施例在此不做具体限制。
上述方式,通过目标帧图像之前的若干帧样本帧图像的光流信息而获得光流阈值,通过比较目标帧图像的光流信息与光流阈值,若目标帧图像的光流信息与光流阈值之间满足预设关系条件,则可以确定目标行人存在异常行为,基于此,光流阈值是随场景及时间而不断变化的,而不是一成不变的,因此具有较长的适应性,提升了异常行为检测的自适应能力。
请参阅图7,图7是图6中步骤S61一实施例的流程示意图。为了减少后续利用光流信息判断是否存在异常行为的计算量,上述步骤S61中“获取每帧样本帧图像的检测区域的第一光流位移”具体可以通过如下步骤进行实施:
步骤S611:确定每帧样本帧图像的检测区域中光流位移满足预设位移条件的第一光流点。
预设位移条件包括检测区域中光流位移最大的预设数量个,预设数量个可以是检测区域中所有光流点数量的10%,则预设位移条件即为检测区域中光流位移最大的10%。例如,样本帧图像ft中的检测区域中共包含3000个光流点,则根据这3000个光流点的光流信息计算其光流位移,并按光流位移从大到小的顺序对这3000个光流点进行排序,取其中前10%的光流点作为第一光流点,同理对其他样本帧图像取满足预设位移条件的第一光流点,从而可以确定每帧样本帧图像的检测区域中光流位移满足预设位移条件的第一光流点。
步骤S612:基于第一光流点的光流位移得到对应样本帧图像的检测区域的第一光流位移。
在一个实施场景中,可以基于上述步骤S611中已经确定的第一光流点的光流位移的平均值作为样本帧图像的检测区域的第一光流位移。例如,样本帧图像ft中的检测区域中第一光流点共计300个,并求得300个第一光流点的光流位移分别是D1,t、D2,t、D3,t……D300,t,从而可以计算出300个第一光流点光流位移的平均值将该平均值作为样本帧图像ft中的检测区域的第一光流位移。当然,在另一个实施场景中,也可以将将样本帧图像的第一光流点的光流位移之和作为样本帧图像的检测区域的第一光流位移。例如,样本帧图像ft中的检测区域中第一光流点共计300个,并求得300个第一光流点的光流位移分别是D1,t、D2,t、D3,t……D300,t,从而可以计算出300个第一光流点光流位移之和本实施例在此不做具体限制。
进一步地,上述步骤S61中“基于第一光流位移确定得到目标帧图像的光流位移阈值”可以包括:
步骤S613:将至少一帧样本帧图像的第一光流位移的平均值作为目标帧图像的光流位移阈值。
基于计算得到的所有样本帧图像的第一光流位移,计算所有第一光流位移的平均值作为检测目标帧图像行人异常行为的光流位移阈值。例如,取目标帧图像之前的连续10帧样本帧图像,第一光流位移分别为Df1、Df2、Df3……Df10,则光流位移阈值可以表示为当所取的样本帧图像的个数为其他值时,可以依次计算,本实施例在此不再一一举例。
请参阅图8,图8是图6中步骤S62一实施例的流程示意图。同理,为了减少后续利用光流信息判断是否存在异常行为的计算量,上述步骤S62中“获取目标帧图像的检测区域的第二光流位移”可以包括:
步骤S621:确定目标帧图像的检测区域中光流位移满足预设位移条件的第二光流点。
预设位移条件包括检测区域中光流位移最大的预设数量个,预设数量个可以是检测区域中所有光流点数量的10%,则预设位移条件即为检测区域中光流位移最大的10%。例如,目标帧图像ft+1中的检测区域中共包含3000个光流点,则根据这3000个光流点的光流信息计算其光流位移,并按光流位移从大到小的顺序对这3000个光流点进行排序,取其中前10%的光流点作为第二光流点。
步骤S622:基于第二光流点的光流位移得到目标帧图像的检测区域的第二光流位移。
在一个实施场景中,当样本帧图像中检测区域的第一光流位移通过计算第一光流点的光流位移的平均值而获得时,可以将目标帧图像的第二光流点的光流位移的平均值作为目标帧图像的检测区域的第二光流位移。例如,目标帧图像ft+1中的检测区域中第二光流点共计300个,并求得300个第二光流点的光流位移分别是D1,t+1、D2,t+1、D3,t+1……D300,t+1,从而可以计算出300个第二光流点光流位移的平均值将该平均值作为目标帧图像ft+1中的检测区域的第二光流位移。在另一个实施场景中,当样本帧图像中检测区域的第一光流位移通过计算第一光流点的光流位移之和而获得时,可以将目标帧图像的第二光流点的光流位移之和作为目标帧图像的检测区域的第二光流位移。例如,目标帧图像ft+1中的检测区域中第二光流点共计300个,并求得300个第二光流点的光流位移分别是D1,t+1、D2,t+1、D3,t+1……D300,t+1,从而可以计算出300个第二光流点光流位移之和并将其作为第二光流位移。
请参阅图9,图9是图6中步骤S61另一实施例的流程示意图。在一个实施场景中,为了减少光流方向的计算量,上述步骤S61中“统计每帧样本帧图像的检测区域中光流方向变化大于预设角度的第一光流点数”中可以基于上述步骤S611中已经确定每帧样本帧图像的检测区域中光流位移满足预设位移条件的第一光流点,统计其中光流方向大于预设角度的第一光流点数。具体地,上述步骤S61中“基于第一光流点数确定得到目标帧图像的光流比率阈值”可以包括:
步骤S91:获取每帧样本帧图像的第一光流点数与检测区域总光流点数之间的点数比值。
统计得到每帧样本帧图像的检测区域中光流方向变化大于预设角度的第一光流点个数,从而可以计算每帧样本帧图像的第一光流点数与检测区域总光流点数之间的点数比值。例如,当第一光流点是基于上述步骤S611中已经确定每帧样本帧图像的检测区域中光流位移满足预设位移条件而获取时,举例来说,样本帧图像ft的检测区域中共有3000个光流点,取其中满足预设条件的300个光流点作为第一光流点,则进一步,统计这300个第一光流点中光流方向大于预设角度的个数,例如200个,则可以确定样本帧图像ft的第一光流点数与检测区域总光流点数之间的点数比值Pt为200/300。同理,可以此类推,分别计算得到其他样本帧图像ft-1、ft-2、ft-3……ft-n的第一光流点数与检测区域总光流点数之间的点数比值Pt-1、Pt-2、Pt-3……Pt-n。
步骤S92:将至少一帧样本帧图像的点数比值的平均值作为目标帧图像的光流比率阈值。
将所有样本帧图像的点数比值所取的平均值作为检测目标帧图像行人异常行为的光流比率阈值。例如,分别计算得到其他样本帧图像ft-1、ft-2、ft-3……ft-n的第一光流点数与检测区域总光流点数之间的点数比值Pt-1、Pt-2、Pt-3……Pt-n,则对所有样本帧图像的点数比值取平均作为光流比率阈值
相对应地,在一个实施场景中,为了减少光流方向的计算量,上述步骤S62中“统计目标帧图像的检测区域中光流方向变化大于预设角度的第二光流点数”可以基于上述步骤S621中已确定的目标帧图像的检测区域中光流位移满足预设位移条件的第二光流点,并统计其中光流方向变化大于预设角度的个数。
上述步骤S62中“基于第二光流点数得到目标帧图像的光流比率”可以包括:将目标帧图像的第二光流点数与检测区域总光流点数之间的比值,作为目标帧图像的光流比率。
具体地,可以得到目标帧图像的检测区域中光流方向变化大于预设角度的第二光流点个数,从而可以计算目标帧图像的第二光流点数与检测区域总光流点数之间的点数比值。例如,当第二光流点是基于上述步骤S621中已确定的目标帧图像的检测区域中光流位移满足预设位移条件的第二光流点时,举例来说,目标帧图像ft+1的检测区域中共有3000个光流点,取其中满足预设条件的300个光流点作为第二光流点,则进一步,统计这300个第二光流点中光流方向大于预设角度的个数,例如100个,则可以确定目标帧图像ft+1的第二光流点数与检测区域总光流点数之间的点数比值Pt+1为100/300。
请参阅图10,图10为本申请行人异常行为检测方法又一实施例的流程示意图。图10从整体上介绍了本申请行人异常行为检测方法,其中具体实施方式可参考上述任一实施例中的步骤。具体而言,可以包括:
步骤S1001:利用预设头肩框检测模型对每一帧图像进行检测,以获得每帧图像中与目标行人对应的头肩框。
预设头肩检测模型可以是预先通过深度学习训练而获得的,本实施例在此不做具体限制。
步骤S1002:由与目标行人对应的头肩框得到与目标行人对应的检测区域。
基于目标行人对应的头肩框可以得到与目标行人对应的检测区域。在一个实施场景中,可以将头肩框按照预定比例、预定方向进行延展从而获得检测区域。例如,对头肩框统一下拉一定的比例,如1.2倍等等。
步骤S1003:判断检测区域是否小于预设最小尺寸。若是,则执行步骤S1004,否则执行步骤S1005。
预设最小尺寸为可以包含供异常行为检测所需光流信息的最小尺寸。当检测区域小于预设最小尺寸时,检测区域内的光流信息较少,可能导致不足以供后续检测异常行为之用。预设最小尺寸为统一设置的预设尺寸,或者还可以是用户自定义设置的预设尺寸。在一个实施场景中,检测区域为矩形检测区域,预设最小尺寸也为矩形。
步骤S1004:将检测区域内的图像放大至预设标准尺寸,并将放大后的图像作为检测区域内的图像。
当检测区域小于预设最小尺寸时,则说明若对此时检测区域内的图像进行光流检测,可能导致检测出的光流信息较少,从而可能导致不足以供后续检测异常行为之用。此时,可以通过将将检测区域内的图像放大至预设标准尺寸,并将放大后的图像作为检测区域内的图像。
步骤S1005:计算检测区域的尺寸与预设标准尺寸之间的尺寸比值,并将检测区域中各光流点的光流位移与尺寸比值的积对应作为光流点的光流位移。
当检测区域不小于预设最小尺寸时,则说明若此时对检测区域内的图像进行光流检测,检测出的光流信息足以供后续检测异常行为之用。此时,可以进一步计算检测区域的尺寸与预设标准尺寸之间的尺寸比值,并将检测区域中各光流点的光流位移与尺寸比值的积作为对应光流点的光流位移。具体地,可以将预设标准尺寸除以检测区域的尺寸的作为尺寸比值,例如尺寸比值为1.2,则说明预设标准尺寸大于检测区域,则将检测区域内的各光流点的光流位移乘以尺寸比值1.2从而得到对应光流点的光流位移;或者,例如尺寸比值为0.8,则说明预设标准尺寸小于检测区域,则将检测区域内的各光流点的光流位移乘以尺寸比值10.8从而得到对应光流点的光流位移,通过上述方式可以将不同大小的检测区域内各光流点的光流位移归一化,从而消除了图像中近景与远景之间光流位移之间的差距对异常行为检测的影响。
步骤S1006:分别对每帧图像的检测区域进行光流检测,得到每帧图像的检测区域的光流信息,其中,多帧图像包括目标帧图像和至少一帧样本帧图像,且至少一帧样本帧图像为目标帧图像之前的若干帧图像。
关于光流检测的方法目前有基于梯度的方法、基于匹配的方法、基于能量的方法等等。比较典型的有:霍恩-山克方法(Horn-Schunck Method)、卢卡斯-卡纳德方法(Lucas-Kanade Method)等等。光流检测的方法为本领域的现有技术,本实施例在此不再赘述。至少一帧样本帧图像为目标帧图像之前的若干帧图像,例如目标帧图像之前10帧图像、或者之前15帧图像等等,本实施例在此不做具体限制。
步骤S1007:确定每帧样本帧图像的检测区域中光流位移满足预设位移条件的第一光流点。
预设位移条件包括检测区域中光流位移最大的预设数量个,预设数量个可以是检测区域中所有光流点数量的10%,则预设位移条件即为检测区域中光流位移最大的10%。
步骤S1008:将样本帧图像的第一光流点的光流位移的平均值作为样本帧图像的检测区域的第一光流位移。
例如,样本帧图像ft中的检测区域中第一光流点共计300个,并求得300个第一光流点的光流位移分别是D1,t、D2,t、D3,t……D300,t,从而可以计算出300个第一光流点光流位移的平均值将该平均值作为样本帧图像ft中的检测区域的第一光流位移。
步骤S1009:将至少一帧样本帧图像的第一光流位移的平均值作为目标帧图像的光流位移阈值。
例如,取目标帧图像之前的连续10帧样本帧图像,第一光流位移分别为Df1、Df2、Df3……Df10,则光流位移阈值可以表示为
步骤S1010:确定目标帧图像的检测区域中光流位移满足预设位移条件的第二光流点。
预设位移条件包括检测区域中光流位移最大的预设数量个,预设数量个可以是检测区域中所有光流点数量的10%,则预设位移条件即为检测区域中光流位移最大的10%。
步骤S1011:将目标帧图像的第二光流点的光流位移的平均值作为目标帧图像的检测区域的第二光流位移。
例如,目标帧图像ft+1中的检测区域中第二光流点共计300个,并求得300个第二光流点的光流位移分别是D1,t+1、D2,t+1、D3,t+1……D300,t+1,从而可以计算出300个第二光流点光流位移的平均值将该平均值作为目标帧图像ft+1中的检测区域的第二光流位移。
其中,在一个实施场景中,上述步骤S107至步骤S109,以及步骤S1010至步骤S1011可以先后执行,也可以并行执行,本实施例在此不做具体限制。
步骤S1012:判断第二光流位移大于或等于光流位移阈值的第一预设倍数,若是,则执行步骤S1013,否则执行步骤S1018。
第一预设倍数可以为1.3、1.5、1.7、1.9、2.1等等,本实施例在此不做具体限制。
步骤S1013:统计每帧样本帧图像的检测区域中光流方向变化大于预设角度的第一光流点数,获取每帧样本帧图像的第一光流点数与检测区域总光流点数之间的点数比值。
例如,样本帧图像ft的检测区域中共有3000个光流点,取其中满足预设条件的300个光流点作为第一光流点,则进一步,统计这300个第一光流点中光流方向大于预设角度的个数,例如200个,则可以确定样本帧图像ft的第一光流点数与检测区域总光流点数之间的点数比值Pt为200/300。同理,可以此类推,分别计算得到其他样本帧图像ft-1、ft-2、ft-3……ft-n的第一光流点数与检测区域总光流点数之间的点数比值Pt-1、Pt-2、Pt-3……Pt-n。
步骤S1014:将至少一帧样本帧图像的点数比值的平均值作为目标帧图像的光流比率阈值。
例如,分别计算得到其他样本帧图像ft-1、ft-2、ft-3……ft-n的第一光流点数与检测区域总光流点数之间的点数比值Pt-1、Pt-2、Pt-3……Pt-n,则对所有样本帧图像的点数比值取平均作为光流比率阈值
步骤S1015:统计目标帧图像的检测区域中光流方向变化大于预设角度的第二光流点数,将目标帧图像的第二光流点数与检测区域总光流点数之间的比值,作为目标帧图像的光流比率。
举例来说,目标帧图像ft+1的检测区域中共有3000个光流点,取其中满足预设条件的300个光流点作为第二光流点,则进一步,统计这300个第二光流点中光流方向大于预设角度的个数,例如100个,则可以确定目标帧图像ft+1的第二光流点数与检测区域总光流点数之间的点数比值Pt+1为100/300。
其中,在一个实施场景中,上述步骤S1013至步骤S1014,以及步骤S1015可以先后执行,也可以并行执行,本实施例在此不做具体限制。
步骤S1016:判断光流比率大于或等于光流比率阈值的第二预设倍数,若是,则执行步骤S1017,否则执行步骤S1018。
第二预设倍数可以为1.3、1.5、1.7、1.9、2.1等等,本实施例在此不做具体限制。
步骤S1017:确定行人存在异常行为。
若上述步骤S1012及上述步骤S1016的判断结果均为是,则可以确定行人存在异常行为。在一个实施场景中,此时可以发出报警信息,具体地,可以是声光报警信息,从而提示监控人员存在行人异常行为,以便监控人员及时干预、介入,或者监控人员通知安保人员及时干预、介入,从而减少生命、财产损失,维护治安稳定。
步骤S1018:确定行人不存在异常行为。
若上述步骤S1012、上述步骤S1016中至少一者的判断结果均为否,则可以确定行人不存在异常行为。
请参阅图11,图11是本申请图像处理装置1100一实施例的框架示意图。图像处理装置1100包括相互耦接的存储器1110和处理器1120,处理器1120用于执行存储器1110存储的程序指令,以实现上述任一实施例中的行人异常行为检测方法的步骤。
具体而言,处理器1120用于控制其自身以及存储器1110以实现上述任一实施例中的行人异常行为检测方法,处理器1120还用于控制其自身以及存储器1110以实现上述任一实施例中的目标的光流自相关性确定方法。处理器1120还可以称为CPU(CentralProcessing Unit,中央处理单元)。处理器1120可能是一种集成电路芯片,具有信号的处理能力。处理器1120还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器1120可以由多个成电路芯片共同实现。
本实施例中,处理器1120还用于分别对摄像器件拍摄得到的多帧图像进行目标检测,得到每帧图像中与目标行人对应的检测区域,处理器1120还用于分别对每帧图像的检测区域进行光流检测,得到每帧图像的检测区域的光流信息,其中,多帧图像包括目标帧图像和至少一帧样本帧图像,处理器1120还用于利用至少一帧样本帧图像的光流信息,分析目标帧图像的光流信息,处理器1120还用于基于分析的结果,确定目标行人是否存在异常行为。
上述方式,分别对摄像器件拍摄得到的包括目标帧图像和至少一帧样本帧图像的多帧图像进行目标检测,从而得到每帧图像中与目标行人对应的检测区域,从而对检测区域检测光流检测,进而获得目标帧图像和至少一帧样本帧图像的光流信息,从而利用样本帧图像的光流信息分析目标帧图像的光流信息,进而可以发现目标帧图像相较于样本帧图像的光流信息变化,故无论目标行人所在场景如何,都可以借鉴对该目标行人拍摄的样本帧图像的光流信息作为该目标行人当前的行为判断标准,来对目标帧图像的光流信息进行行为判断,以准确检测出目标行人是否存在异常行为。
在一些实施例中,处理器1120还用于基于至少一帧样本帧图像的光流信息,得到目标帧图像的光流阈值,处理器1120还用于比较目标帧图像的光流信息与光流阈值,处理器1120还用于若目标帧图像的光流信息与光流阈值之间的满足预设关系条件,则确定目标行人存在异常行为。
在一些实施例中,光流阈值包括以下至少一者:光流位移阈值和光流比率阈值,处理器1120还用于获取每帧样本帧图像的检测区域的第一光流位移,并基于第一光流位移确定得到目标帧图像的光流位移阈值,处理器1120还用于统计每帧样本帧图像的检测区域中光流方向变化大于预设角度的第一光流点数,并基于第一光流点数确定得到目标帧图像的光流比率阈值,处理器1120还用于获取目标帧图像的检测区域的第二光流位移,比较第二光流位移与光流位移阈值,处理器1120还用于统计目标帧图像的检测区域中光流方向变化大于预设角度的第二光流点数,并基于第二光流点数得到目标帧图像的光流比率,比较光流比率与光流比率阈值,其中,预设关系条件包括:第二光流位移大于或等于光流位移阈值的第一预设倍数;和/或,光流比率大于或等于光流比率阈值的第二预设倍数。
在一些实施例中,处理器1120还用于确定每帧样本帧图像的检测区域中光流位移满足预设位移条件的第一光流点,处理器1120还用于基于第一光流点的光流位移得到对应样本帧图像的检测区域的第一光流位移,处理器1120还用于确定目标帧图像的检测区域中光流位移满足预设位移条件的第二光流点,处理器1120还用于基于第二光流点的光流位移得到目标帧图像的检测区域的第二光流位移。
在一些实施例中,预设位移条件包括检测区域中光流位移最大的预设数量个,处理器1120还用于将样本帧图像的第一光流点的光流位移的平均值作为样本帧图像的检测区域的第一光流位移,处理器1120还用于将至少一帧样本帧图像的第一光流位移的平均值作为目标帧图像的光流位移阈值,处理器1120还用于将目标帧图像的第二光流点的光流位移的平均值作为目标帧图像的检测区域的第二光流位移。
在一些实施例中,处理器1120还用于获取每帧样本帧图像的第一光流点数与检测区域总光流点数之间的点数比值,处理器1120还用于将至少一帧样本帧图像的点数比值的平均值作为目标帧图像的光流比率阈值,处理器1120还用于将目标帧图像的第二光流点数与检测区域总光流点数之间的比值,作为目标帧图像的光流比率。
在一些实施例中,处理器1120还用于判断检测区域是否小于预设最小尺寸,处理器1120还用于当判断检测区域小于预设最小尺寸时,将检测区域内的图像放大至预设标准尺寸,并将放大后的图像作为检测区域内的图像,处理器1120还用于当判断检测区域不小于预设最小尺寸时,计算检测区域的尺寸与预设标准尺寸之间的尺寸比值,并将检测区域中各光流点的光流位移与尺寸比值的积对应作为光流点的光流位移。
在一些实施例中,处理器1120还用于获取检测区域的对角线的第一长度和预设最小尺寸的对角线的第二长度,处理器1120还用于判断第一长度是否小于第二长度,处理器1120还用于当判断第一长度小于第二长度时,确定检测区域小于预设最小尺寸,处理器1120还用于当判断第一长度不小于第二长度时,确定检测区域不小于预设最小尺寸。
在一些实施例中,处理器1120还用于获取检测区域的对角线的第一长度和预设标准尺寸的对角线的第三长度,处理器1120还用于将第三长度与第一长度作为尺寸比值。
在一些实施例中,至少一帧样本帧图像为目标帧图像之前的若干帧图像,处理器1120还用于利用预设头肩框检测模型对每一帧图像进行检测,以获得每帧图像中与目标行人对应的头肩框,处理器1120还用于由与目标行人对应的头肩框得到与目标行人对应的检测区域。
在一些实施例中,图像处理装置1100还包括摄像器件1130,用于依时序拍摄得到多帧图像。
请参阅图12,图12为本申请存储装置1200一实施例的框架示意图。本申请存储装置1200存储有能够被处理器运行的程序指令1210,程序指令1210用于实现上述任一行人异常行为检测方法的实施例中步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种基于RGB-D的实时避障系统