运动事件检测方法、电子设备及计算机可读存储介质与流程

文档序号:24559947发布日期:2021-04-06 12:09阅读:49来源:国知局
运动事件检测方法、电子设备及计算机可读存储介质与流程

本申请涉及图像处理领域,特别是涉及一种运动事件检测方法、电子设备及计算机可读存储介质。



背景技术:

随着计算机视觉技术和计算机网络技术的不断发展,视频监控被广泛应用于安防,金融和教育等领域。

监控运动事件为视频监控的主要事项之一。所谓监控运动事件(例如打架),即为在监控区域安装监控设备,以利用监控设备拍摄监控区域的视频,对拍摄到的视频进行分析,以确定视频中是否存在运动事件。

然而,现有的运动事件检测的方法需要耗费过多的计算量和时间。



技术实现要素:

本申请提供一种运动事件检测方法、电子设备及计算机可读存储介质,能够解决现有的运动事件检测的方法需要耗费过多的计算量和时间的问题。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种运动事件检测方法。该方法包括:利用双目摄像头获取当前帧;确定当前帧中的动态目标区域;获取当前帧与上一帧之间关于动态目标区域的场景流,作为当前帧对应的场景流;至少基于当前帧对应的场景流确定当前帧中是否存在运动事件。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种电子设备,该电子设备包括处理器、与处理器连接的存储器,其中,存储器存储有程序指令;处理器用于执行存储器存储的程序指令以实现上述方法。

为解决上述技术问题,本申请采用的又一个技术方案是:提供一种计算机可读存储介质,该存储介质存储有程序指令,该程序指令被执行时能够实现上述方法。

通过上述方式,本申请在需要获取当前帧对应的场景流(当前帧相对于上一帧的场景流)时,确定当前帧中的动态目标区域,获取当前帧与上一帧之间关于动态目标区域的场景流,作为当前帧对应的场景流。相较于获取整个区域的场景流的方式,能够减少所需计算量和时间。

附图说明

图1是本申请运动事件检测方法实施例一的流程示意图;

图2是本申请运动事件检测方法实施例二的流程示意图;

图3是图2中s22的具体流程示意图;

图4是本申请运动事件检测方法实施例三的流程示意图;

图5是本申请以像素点1为中心的9个像素点的示意图;

图6是本申请运动事件检测方法实施例四的流程示意图;

图7是本申请运动事件检测方法实施例五的流程示意图;

图8是本申请运动事件检测方法实施例五的流程示意图;

图9是本申请电子设备一实施例的结构示意图;

图10是本申请计算机可读存储介质一实施例的结构示意图。

具体实施方式

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

本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,在不冲突的情况下,本文所描述的实施例可以与其它实施例相结合。

图1是本申请运动事件检测方法实施例一的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图1所示的流程顺序为限。如图1所示,本实施例可以包括:

s11:利用双目摄像头获取当前帧。

可以在监控过程中,利用双目摄像头实时对监控区域拍摄,得到视频帧。双目摄像头拍摄到的每个视频帧可以包括左目视频帧和右目视频帧。当前帧可以为视频数据中最新拍摄到的视频帧。为简化后文描述,本申请后文将当前帧包括的左目视频帧称为当前左目视频帧,将当前帧包括的右目视频帧称为当前右目视频帧。

为了更好地拍摄到监控区域的动态目标(可以为人,也可以为其他动态的活体),可以在监控区域采用倾斜的方式安装双目摄像头。

s12:确定当前帧中的动态目标区域。

当前帧中的动态目标区域可以为当前左目视频帧中的动态目标区域,也可以为当前右目视频帧中的动态目标区域。本申请后文以当前左目视频帧中的动态目标区域为例进行说明。动态目标区域可以为存在动态目标的区域。可以利用动态目标检测、语义分割等算法来确定动态目标区域。

以语义分割(yolactedge网络)为例,可以利用yolactedge网络对当前左目视频帧进行语义分割,得到动态目标区域。其中,在得到动态目标区域之后,可以将动态目标区域从当前帧中截取出来,用于后续处理。或者,可以用掩膜的方式将当前帧中的动态区域标记,后续的处理仅针对标记的区域进行。

此外,在本步骤使用yolactedge网络之前,可以采集应用场景下的包含运动事件的视频,从视频中抽帧进行标注,以用于对yolactedge网络的训练。

s13:获取当前帧与上一帧之间关于动态目标区域的场景流,作为当前帧对应的场景流。

上一帧的拍摄时间先于当前帧,上一帧可以包括上一左目视频帧和上一右目视频帧。上一帧与当前帧可以为相邻视频帧,上一帧与当前帧之间也可以间隔预设数量个视频帧。

在获取到当前帧中的动态目标区域之后,可以直接获取当前帧与上一帧之间关于动态目标区域的场景流。也可以先对动态目标区域作进一步的处理,再获取当前帧与上一帧之间关于经处理的动态目标区域的场景流。具体请参见后面的实施例。

场景流可以用于反映当前帧与上一帧的监控画面之间的运动情况(,运动大小和运动方向)。

s14:至少基于当前帧对应的场景流确定当前帧中是否存在运动事件。

运动事件可以是包括打架、打砸、群殴、跌倒、直线奔跑、坠落等。

可以仅基于当前帧对应的场景流确定当前帧中是否存在运动区域,也可以基于当前帧及当前帧邻近的历史帧共同确定当前帧中是否存在剧烈运动事件。

可以理解的是,由于动态目标区域才可能存在剧烈运动事件。因此,本申请在需要获取当前帧对应的场景流(当前帧相对于上一帧的场景流)时,确定当前帧中的动态目标区域,获取当前帧与上一帧之间关于动态目标区域的场景流,作为当前帧对应的场景流。相较于获取整个区域的场景流的方式,能够减少所需计算量和时间。并且本申请提供的运动目标检测方法适用场景广泛。

在获取到当前帧中的动态目标区域之后,直接获取当前帧与上一帧之间关于动态目标区域的场景流的情况下,可以对上述实施例一进行如下扩展:

图2是本申请运动事件检测方法实施例二的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图2所示的流程顺序为限。本实施例中s21是在s13之前可以包括的步骤,s22是对s13的进一步扩展。当前帧中的动态目标区域为当前左目视频帧中的动态目标区域。如图2所示,本实施例可以包括:

s21:获取当前左目视频帧与当前右目视频帧之间的第一视差信息。

第一视差信息可以用于表示当前左目视频帧与当前右目视频帧中对应像素点的运动情况/位置变化情况。可以采用字符串匹配(bm)、半全局立体匹配(sgbm)等算法获取得到。

s22:基于第一视差信息获取当前帧与上一帧之间关于动态目标区域的场景流。

结合参阅图3,若当前帧中的动态目标区域为当前左目视频帧中的动态目标区域,则s22可以包括以下子步骤:

s221:基于第一视差信息和当前左目视频帧中的动态目标区域,获取动态目标在当前左目视频帧中的第一位置信息。

可以基于双目摄像头参数、第一视差信息和当前左目视频帧中的动态目标区域,根据三角测量原理计算得到第一位置信息。第一位置信息可以包括动态目标在当前左目视频帧中对应的各像素点的三维坐标xyz_t1。

可以理解的是,双目摄像头参数可以基于双目摄像头拍摄到的视频帧获取得到。并且一般来说,在双目摄像头的安装位置未改变的情况下,双目摄像头参数也不会改变。

s222:获取第一位置信息和动态目标在上一左目视频帧中的第二位置信息之差,作为场景流。

第二位置信息xyz_t0与第一位置信息的获取方法相同。

可以理解的是,理想情况下同一视频帧包括的左目视频帧与右目视频帧中对应的像素点的纹理(梯度值)和亮度(灰度值)是不变的,并且上一左目视频帧与当前左目视频帧(上一右目视频帧与当前右目视频帧)中对应的像素点的纹理(梯度值)和亮度(灰度值)也是不变的。但是实际情况下,外界光照、视差和光流的计算误差等因素会对像素点的亮度、纹理产生影响,使得对应的像素点的亮度、纹理存在差异,影响场景流的计算。

因此,可以在获取当前帧与上一帧之间关于动态目标区域的场景流之前,基于像素点对应的亮度和/或纹理差异,对动态区域作进一步的处理。其中,关于亮度差异和纹理差异的具体计算方式,请参见后文的描述。

在一具体实施方式中,可以基于当前左目视频帧与当前右目视频帧中对应像素点的亮度和/或纹理差异,确定当前左目视频帧中对应差异满足第一要求的像素点。

和/或,可以基于当前左目视频帧与上一左目视频帧中对应像素点的差异,确定当前左目视频帧中对应差异满足第二要求的像素点。

和/或,可以基于上一左目视频帧与上一右目视频帧中对应像素点的亮度和/或纹理差异,确定当前左目视频帧中对应差异满足第三要求的像素点。

可以将当前左目视频帧中属于动态目标区域,且满足第一要求、第二要求和第三要求中的至少一个的像素点组成的区域,作为动态目标区域的处理结果。也就是说,可以将当前左目视频帧中的动态目标区域中满足第一要求、第二要求和第三要求中的至少一个的像素点,作为当前左目视频帧中经处理的动态目标区域。

例如,将当前左目视频帧中属于动态目标区域,且满足第一要求、第二要求和第三要求的像素点组成的区域作为经处理的动态目标区域。

为了减少对动态目标区域进行处理的过程的计算量,上述满足第二要求、第二要求、第三要求的像素点的确定可以是在当前左目视频帧中的动态目标区域的基础上进行的。在此情况下,可以对上述实施例二进行如下扩展:

图4是本申请运动事件检测方法实施例三的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图4所示的流程顺序为限。本实施例中s31-s32是在s22之前可以包括的步骤。如图4所示,本实施例可以包括:

s31:基于第一视差信息,确定动态目标区域的各像素点在当前右目视频帧中对应的第一像素点。

s32:确定动态目标区域中的视差有效区域。

视差有效区域中的像素点与对应的第一像素点之间的差异小于第一差异阈值,差异包括纹理差异和/或亮度差异。

差异小于第一差异阈值,意味着受外界影响的程度满足第一要求。

对于动态目标区域的每个像素点,其与对应的第一像素点的亮度差异可以用灰度值差异来衡量,其与对应的第一像素点的纹理差异可以用梯度值差异来衡量。其中,可以利用sobel算子计算各像素点的梯度值。

下面以动态目标区域的像素点1为例对灰度值差异和纹理差异的计算方式进行说明:

可以直接将像素点1与对应的第一像素点的灰度值之间的绝对误差、梯度值之间的绝对误差分别作为灰度值差异和梯度值差异

为了使计算得到的灰度值差异更加精确,可以结合周围像素点的灰度值在获取像素点1与对应的第一像素点的灰度值差异。例如,如图5所示,可以选取动态目标区域中以像素点1为中心的9个像素点1~9。并分别为像素点1~9设置对应的权重系数,得到权重系数矩阵

分别计算像素点1~9与对应的第一像素点的灰度值之间的绝对误差,然后依据对应的权重系数对每个绝对误差进行加权求平均处理,得到灰度值差异

当像素点1对应的小于阈值和/或小于阈值时,像素点1可以用于组成视差有效区域。

在s32之后、s22之前,可以利用视差有效区域替换动态目标区域。或者说,将视差有效区域作为动态目标区域的处理结果。从而s22中为获取当前帧与上一帧之间关于视差有效区域的场景流,作为当前帧对应的场景流。

或者,在s32之后、s22之前,可以进一步对视差有效区域进行处理。因此可以对上述实施例三进行如下扩展:

图6是本申请运动事件检测方法实施例四的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图6所示的流程顺序为限。本实施例中s31-s32是在s32之后可以包括的步骤。如图6所示,本实施例可以包括:

s41:获取当前左目视频帧与上一左目视频帧之间的光流信息。

光流信息可以用于反映当前左目视频帧与上一左目视频帧之间对应像素点的运动情况/位置变化情况。

可以但不限于利用基于深度学习的光流估计网络flownets,获取光流信息。在获取光流信息之前,可以先对光流估计网络flownets进行训练。例如,可以在开源光流数据集sceneflowdatasets上对flownets进行有监督预训练,然后在采集的数据集上对预训练后的flownets进行无监督训练。

s42:基于光流信息,确定视差有效区域的各像素点在上一左目视频帧中对应的第二像素点。

s43:确定视差有效区域中的第一光流有效区域。

第一光流有效区域的像素点与对应的第二像素点之间的差异小于第二差异阈值。

差异小于第一差异阈值,意味着受外界影响的程度满足第二要求。本步骤中差异的计算方法请参见前面的实施例,在此不赘述。

在s43之后,s22之前,可以利用第一光流有效区域替换动态目标区域。或者说,将第一光流有效区域作为动态目标区域/视差有效区域的处理结果。从而s22中为获取当前帧与上一帧之间关于第一光流有效区域的场景流,作为当前帧对应的场景流。

或者,在s43之后、s22之前,可以进一步对第一光流有效区域进行处理。因此可以对上述实施例四进行如下扩展:

图7是本申请运动事件检测方法实施例五的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图7所示的流程顺序为限。本实施例中s51-s55是在s43之后可以包括的步骤。如图7所示,本实施例可以包括:

s51:基于光流信息,确定上一左目视频帧中与第一光流有效区域对应的第二光流有效区域。

s52:基于上一左目视频帧与上一右目视频帧之间的第二视差信息,确定第二光流有效区域的各像素点在上一右目视频帧中对应的第三像素点。

第二视差信息可以是在计算上一帧对应的场景流时用到并存储下来的,也可以是在计算当前帧对应的场景流时计算的。

s53:确定第二光流有效区域中的第一场景流有效区域。

第一场景流有效区域的各像素点与对应的第三像素点之间的差异小于第三差异阈值。

差异小于第三差异阈值,意味着受外界影响的程度满足第三要求。本步骤中差异的计算方法请参见前面的实施例,在此不赘述。

s54:基于光流信息,确定第一场景流有效区域在当前左目视频帧中对应的第二场景流有效区域。

s55:利用第二场景流有效区域替换动态目标区域。

将第二场景流有效区域作为动态目标区域/第一光流有效区域的处理结果。从而s22中为获取当前帧与上一帧之间关于第二场景流有效区域的场景流,作为当前帧对应的场景流。

图8是本申请运动事件检测方法实施例五的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图8所示的流程顺序为限。本实施例是对s14的进一步扩展。如图8所示,本实施例可以包括:

s61:基于当前帧对应的场景流,获取动态目标在当前帧相对于所述上一帧运动的平均幅值,作为当前帧对应的平均幅值。

s62:结合当前帧对应的平均幅值以及当前帧的邻近视频帧对应的平均幅值,确定当前帧中是否存在运动事件。

当前帧的邻近视频帧可以为拍摄时间与当前帧相邻的视频帧。可以理解的是,很多情况下运动时间会维持一定的时间,例如2s或者更长时间。因此,结合当前帧的邻近视频帧来确定当前帧中是否存在运动事件,能够得到更加准确的结果。

当前帧的邻近视频帧可以包括在当前帧的拍摄时间之前或之后的预设时间范围(例如2s)内的历史帧,或者,可以包括当前帧之前或之后的预设数量个视频帧。

例如,当前帧的邻近视频帧为当前帧之前的31个视频帧,形成的包括当前帧在内的32视频帧组成的序列。如果该序列内存在24个视频帧对应的平均幅值均大于阈值,那么可以确定当前帧中存在运动事件。并且可以发出警报以提醒相关人员及时处理。

图9是本申请电子设备一实施例的结构示意图。如图9所示,该电子设备可以包括处理器71、与处理器71耦接的存储器72。

其中,存储器72存储有用于实现上述任一实施例的方法的程序指令;处理器71用于执行存储器72存储的程序指令以实现上述方法实施例的步骤。其中,处理器71还可以称为cpu(centralprocessingunit,中央处理单元)。处理器71可能是一种集成电路芯片,具有信号的处理能力。处理器71还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器71也可以是任何常规的处理器等。

图10是本申请计算机可读存储介质一实施例的结构示意图。如图10所示,本申请实施例的计算机可读存储介质80存储有程序指令81,该程序指令81被执行时实现本申请上述实施例提供的方法。其中,该程序指令81可以形成程序文件以软件产品的形式存储在上述计算机可读存储介质80中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的计算机可读存储介质80包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。

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

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1