由摄像机对画面中的图像进行智能跟踪的方法

文档序号:6380676阅读:501来源:国知局
专利名称:由摄像机对画面中的图像进行智能跟踪的方法
技术领域
涉及多媒体视频监控领域,尤其涉及视频前端采集设备智能跟踪的方法。
背景技术
在安防监控中,一般都是专人盯着监视器进行监视,但研究表明操作人员盯着电视墙超过10分钟将漏掉90%的视频信息而使这项工作失去意义,使得监控系统成事后追查事件的依据,同时从海量信息中获取有效信息耗时巨大。而大部分监控实际仅对可疑人或物及其运动轨迹感兴趣,因此亟待智能跟踪系统,对可疑目标进行智能跟踪,即提高监控效率,又可作为案后对事件轨迹回放分析,做到快速破案作用。目前智能分析系统的产品形态有两种,一是通过DSP实现的需要庞大计算量的智能算法,二是采用安装智能分析软件的后端PC服务器。但后端PC服务器方式需要增加额外设备并且应用环境苛刻,同时,目前市面上很多设备都不带DSP。一般智能跟踪系统都采用一个全景摄像机+ —个智能球机实现,我们设计一种智能跟踪方法,智能算法直接运行与ARM上,而不需要DSP来实现,同时不影响设备其他性能,并且该系统仅需要一台PTZ (Pan/Tilt/ZOOM)摄像机。既实现智能监控,又不增加成本。

发明内容
针对现有技术中的技术缺陷,本发明提供一种由摄像机对画面中的图像进行智能跟踪的方法,其特征在于,包括a.采集一图像内的多个宏块中每一个宏块运动矢量的方向;b.根据所述运动矢量的方向确定所述图像内的移动物体并计算所述移动物体的像素大小,所述移动物体包括多个宏块;c.以所述画面的中心为原点计算所述移动物体的中心坐标;d.根据所述移动物体的像素大小以及所述中心坐标计算所述移动物体需要被放大的放大倍数以及摄像机机芯视角中心的变化角度;以及e.根据所述放大倍数放大所述移动物体,并且根据所述变化角度将所述移动物体显示在所述画面中央。优选地,所述宏块的运动矢量的方向根据如下步骤进行计算以所述画面中心为原点,获取每个宏块在前一帧以及当前帧的画面坐标;根据每个宏块前一帧以及当前帧的画面坐标计算所述运动矢量的方向角并根据所述方向角的范围确定所述运动矢量的方向;其中,所述运动矢量的方向角根据如下公式计算Θ =actan(Vector y/Vector x),其中,θ为所述运动矢量的方向角,Vector y为所述宏块前一帧与当前帧纵坐标的差,Vector x为所述宏块前一帧与当前帧横坐标的差。优选地,所述步骤b包括将第一参数个所述方向一致的相邻宏块组成单位物体,并将所有单位物体组成所述移动物体;以及将所述单位物体的像素大小进行累加得到所述移动物体的像素大小。优选地,所述步骤a包括采集第二参数帧的图像中每一个宏块运动矢量的方向。优选地,所述步骤b包括将第三参数个所述方向一致的相邻宏块并且在所述第二参数帧内所述方向也一致的相邻宏块组成单位物体,将所有单位物体组成所述移动物体;以及将所有单位物体的像素大小进行累加得到所述移动物体的像素大小。优选地,所述步骤c包括将所述移动物体内的多个宏块进行编号,根据所述编号确定所述移动物体的中心所在的中心宏块,并以所述画面中心为原点获取所述中心宏块的坐标。优选地,所述放大倍数根据如下步骤进行计算判断所述移动物体的宽是否大于高;若判断所述移动物体的宽大于高,则根据如下公式计算所述放大倍数Z2=W1*Z1/W2 ;若判断所述移动物体的宽不大于高,则根据如下公式计算所述放大倍数Z2=H1*Z 1/H2,其中,Z2是所述放大倍数,Zl是当前放大倍数,Wl,Hl是画面的宽和高,W2,H2是移动物体的宽和高。优选地,所述摄像机机芯视角中心的变化角度包括垂直方向以及水平方向的变化角度。优选地,所述摄像机机芯视角中心垂直方向的变化角度根据如下步骤计算计算所述摄像机机芯视角中心垂直方向的变化角度在所述画面上映射的距离,计算公式如下所示yl = y+|y+|x|/sin(atan(|x|/ (R_|y I))) -R ;计算所述摄像机机芯视角中心垂直方向的变化角度,计算公式如下所示δ =actan (yl*tan ( β ) /H I),其中,yl为所述摄像机机芯视角中心垂直方向的变化角度在所述画面上映射的距离,S为所述摄像机机芯视角中心垂直方向的变化角度,X,y为所述移动物体的坐标,β为当前所述摄像机机芯垂直视角的一半,α为当前所述摄像机机芯视角中心与垂直方向夹角,Hl为所述画面的高,R为当前所述摄像机机芯水平转动形成图像轨迹半径,其中,R=(Hl/2)*tan a /tan β。优选地,所述摄像机机芯视角中心水平方向的变化角度根据如下步骤计算计算所述摄像机机芯视角中心水平方向的变化角度在所述画面上映射的距离,计算公式如下所示xl = x*actan(|x|/ (R,-1 y |))/sin (atan (| x | / (R,_|y I)));计算所述摄像机机芯视角中心水平方向的变化角度,计算公式如下所示Y =actan(xl*tan( ε )/(W1/2)),其中,xl为所述摄像机机芯视角中心水平方向的变化角度在所述画面上映射的距离,Y为所述摄像机机芯视角中心水平方向的变化角度,X,y为所述移动物体的坐标,ε为当前所述摄像机机芯的水平视角的一半,Π为当前所述摄像机机芯视角中心与水平方向夹角,Wl为所述画面的宽,R’为所述摄像机机芯垂直转动形成图像轨迹半径,其中,= (Hl/2)*tan n/tan ε 0本发明通过在摄像机的ARM上运行计算量较小的智能跟踪算法,利用图像最小单位宏块进行分析,一个宏块为16*16像素,每个宏块可以表示出其运动矢量,利用运动矢量检测到移动目标及其运动方向,检测到移动目标后,始终将该目标移动到画面中央,并根据移动目标大小放大或缩小至可全画面显示,直至移动目标超出摄像机可监视范围。摄像机通常支持双流功能,由于双流的图像信息一致,而辅流的分辨率较低,为了减少运算及节省系统CPU,因此,我们利用辅流图像进行分析。整个系统仅需一台普通摄像机,不需额外增加辅助设备,也不会影响摄像机硬件性能。该方法既适用标清设备也适用全高清设备。


通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显
图I示出根据本发明的第一实施例的,由摄像机对画面中的图像进行智能跟踪的方法的流程图;图2示出根据本发明的第二实施例的,识别移动物体的流程图;图3示出根据本发明的第三实施例的,根据缓存帧识别移动物体的流程图;图4示出根据本发明的第四实施例的,宏块运动矢量的方向角的范围的示意图;图5示出根据本发明的第五实施例的,当前摄像机机芯视角中心垂直方向的示意图; 图6示出根据本发明的第六实施例的,摄像机机芯视角中心垂直方向的变化角度的不意图;以及图7示出根据本发明的第七实施例的,摄像机机芯视角中心垂直方向的变化角度在画面中映射的示意图。
具体实施例方式通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显图I示出根据本发明的第一实施例的,由摄像机对画面中的图像进行智能跟踪的方法的流程图。具体地,本图示出了 5个步骤,首先是步骤S101,采集一图像内的多个宏块中每一个宏块运动矢量的方向。每个宏块运动矢量的方向以前一巾贞为基础,获取宏块在前一帧以及当前帧的坐标并进一步计算获得宏块运动矢量的方向角,根据图4所示方向角的范围确定宏块运动矢量的方向。步骤S102,根据运动矢量的方向确定图像内的移动物体并计算移动物体的像素大小。具体地,移动物体的识别过程将在图2以及图3中示出并具体描述。步骤S103,以画面的中心为原点计算移动物体的中心坐标。本领域技术人员理解,优选地,对移动物体所包含的宏块进行编号,例如,从左上开始编号为1,2至移动物体右下宏块编号为η,若η为奇数,则将编号为(η+1) /2的宏块作为移动物体的中心宏块,若η为偶数,则将编号为η/2或者(η+2) /2的宏块作为移动物体的中心宏块;又例如,根据移动物体包含m行和η列宏块,并进行编号,从左上开始编号为1-1,1-2,至移动物体右下宏块编号为m-n,此时,根据m, η的奇偶性,确定移动物体中心宏块的编号,若m, η同为奇数,则将编号为(m+l)/2- (η+1) /2的宏块作为移动物体的中心宏块,若m,n同为偶数,则将编号为m/2-n/2或者(m+2) /2- (η+2) /2的宏块作为移动物体的中心宏块,若m,η的奇偶性不同,也可通过上述方法确定中心宏块,具体地,在此不予赘述。次优地,本领域技术人员理解,对所述图像中所有的宏块进行编号,并提取出移动物体所包含的宏块的编号,进行进一步计算确定中心宏块,具体地,在此不予赘述。确定移动物体的中心宏块后,以画面中心为原点直接获取所述中心宏块的坐标值。之后执行步骤S104,根据所述移动物体的像素大小以及所述中心坐标计算所述移动物体需要被放大的放大倍数以及摄像机机芯视角中心的变化角度。所述放大倍数根据如下步骤进行计算,首先判断所述移动物体的宽是否大于高;若判断所述移动物体的宽大于高,则根据需要放大的放大倍数为Z2=W1*Z1/W2 ;若判断所述移动物体的宽不大于高,则根据需要放大的放大倍数为Z2=H 1*Z1/H2,其中,Z2是所述放大倍数,Zl是当前放大倍数,Wl,Hl是画面的宽和高,W2,H2是移动物体的宽和高。例如,假设分辨率是1080*720 (W1*H1),物体在该画面的大小占用像素为108*72 (W2*H2),当前zoom为I倍(Zl),那么要全屏显示则需要放大倍数为Z2=1080 (Wl) *1(Z I)/108 (W2) =10。具体地,摄像机机芯视角中心的变化角度计算原理及图像将在图6和图7中示出并具体描述。最后执行步骤S105,根据放大倍数放大所述移动物体,并且根据所述变化角度将所述移动物体显示在所述画面中央。图2示出根据本发明的第二实施例的,识别移动物体的流程图。具体地,本图示出了三个步骤,首先是步骤S201,计算图像中每个宏块运动矢量的方向。步骤S202,将第一参数个所述方向一致的相邻宏块组成单位物体,并将所有单位物体组成所述移动物体。具体地,本领域技术人员理解,优选地,将3*4的相邻宏块作为一个整体,也就是高为3个宏块宽为4个宏块,一共12个宏块作为一个整体,当这3*4的宏块的运动矢量的方向一致时,则认为该3*4的相邻宏块为移动物体的一部分。识别出所有运动矢量的方向一致的3*4的相邻 宏块时,将所有这些宏块组成移动的物体。最后是步骤S203,以及将所述单位物体的像素大小进行累加得到所述移动物体的像素大小。具体地,本领域技术人员理解,一个宏块的大小为16*16像素,则一个3*4的宏块整体就有48*64像素,若一个移动物体包括4*5个宏块整体,那么该移动物体的像素大小为192*320像素。具体地在此不予赘述。图3示出根据本发明的第三实施例的,根据缓存帧识别移动物体的流程图。具体地,本图示出了三个步骤,首先是步骤S301,计算第二参数帧图像中每个宏块运动矢量的方向。优选地,缓存3帧图像。根据物体运动的同向性,缓存三帧数据,以消除随机噪声。由于噪声在连续帧之间的运动矢量的方向是无规律的,而移动物体在连续帧之间的运动矢量的方向是有着相同规律的,因此如果连续三帧率运动矢量方向一致的则认为是移动物体,其方向为移动物体的运行方向。步骤S302,将第三参数个所述方向一致并且三帧内运动矢量方向也一直的相邻宏块组成单位物体,并将所有单位物体组成所述移动物体。具体地,本领域技术人员理解,优选地,将3*4的宏块作为一个整体,也就是高为3个宏块宽为4个宏块,一共12个宏块作为一个整体,当这3*4的宏块的运动矢量的方向一致并且在三帧内其方向也一致时,则认为该3*4的宏块为移动物体的一部分。识别出所有运动矢量的方向一致的3*4的宏块时,将所有这些宏块组成移动的物体。最后是步骤S203,以及将所述单位物体的像素大小进行累加得到所述移动物体的像素大小。具体地,本领域技术人员理解,一个宏块的大小为16*16像素,则一个3*4的宏块整体就有48*64像素,若一个移动物体包括4*5个宏块整体,那么该移动物体的像素大小为192*320像素。具体地在此不予赘述。图4示出根据本发明的第四实施例的,宏块运动矢量的方向角的范围的示意图。如图4所示,本发明把物体的运动方向分为8个方向右、右上、上、左上、左、左下、下、右下,分别对应图I的O 7八个区间。每个区间的方向角可以根据Θ =actan (Vector_y/Vector_x)计算出来。如果在π/8和15 /8之间,说明Θ落在O区间,运动矢量方向向右,物体向左运动,依次类推。具体地,运动矢量的方向角根据如下方法计算。首先以画面中心为原点,获取每个宏块在前一帧以及当前帧的在画面内的坐标,并根据每个宏块前一帧以及当前帧在画面内的坐标计算运动矢量的方向角,其中,运动矢量的方向角根据如下公式计算Θ =actan(Vector_y/Vector_x),其中,Θ为所述运动矢量的方向角,Vector_y为所述宏块前一帧与当前帧纵坐标的差,Vector_x为所述宏块前一帧与当前帧横坐标的差。进一步地,由于actan值是-^!/^ ^!/^,因此,Θ最终还需要根据x值进行判断哪个象限。具体地,本领域技术人员理解,当前帧某一宏块在前一帧的坐标首先要在前一帧图像内识别与该宏块最相似的宏块,获取该最相似宏块的坐标作为该宏块在前一帧图像内的坐标。图5示出了当前摄像机垂直方向的示意图,图6示出了摄像机机芯视角中心垂直方向的变化角度的示意图,图7示出了摄像机机芯视角中心垂直方向的变化角度在画面中映射的示意图。结合图5,图6,图7,优选地,本发明使用PTZ摄像机,并根据PTZ摄像机运行规律计算垂直运行角度,将移动物体的中心垂直方向移动至中心点,如图5所示,β为机芯的垂直视角的一般,ct为机芯视角中心与垂直方向夹角,Hl为图像高度一半,R为机芯水平转动形成图像轨迹半径。从机芯角度俯视整个画面,画面平面图如图7,Hl和Wl分别表示画面高和宽的一半,假设A(y,X)为移动物体的中心点,将A移动到与中心点ο点重合,根据PTZ摄像机运动特性, A实际轨迹为弧形,垂直方向实际只需要走yl距离即可,根据三角函数关系,计算出 yl=y+1 y+1 X I /sin (atan (| x | / (R-1 y I))) _ R,其中 R = Hl*tan a /tan β ,A点变成Al (yl,xl)点,如图6,PTZ摄像机垂直运行角度为δ , δ =atan (yl*tan ( β )/Η1)。类似地,计算水平运行角度水平运行方向实际为弧形,运行距离为xl,xl=x*atan(|x|/(R-|y|))/sin(atan(|x|/(R-|y|))),其中 R = Hl*tan a /tan β ,同上计算水平变化的角度为δ,δ =atan (xl*tan (i3)/Wl),其中β为机芯当前水平视角一半。本发明,优选地使用PTZ摄像机,PTZ摄像机都支持双流功能,由于双流的图像信息一致,而辅流的分辨率较低,为了减少运算及节省系统CPU,因此,本发明利用辅流图像进行分析。图像最小单位为宏块,一个宏块为16*16像素,每个宏块可以表示出其运动矢量,利用运动矢量检测到移动目标及其运动方向,检测到移动目标后,始终将该目标移动到画面中央,并根据移动目标大小放大或缩小至可全画面显示,直至移动目标超出PTZ摄像机可监视范围。整个系统仅需一台普通PTZ摄像机,不需额外增加辅助设备,也不会影响PTZ摄像机硬件性能。该方法既适用标清设备也适用全高清设备。以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
权利要求
1.一种由摄像机对画面中的图像进行智能跟踪的方法,其特征在于,包括 a.采集一图像内的多个宏块中每一个宏块运动矢量的方向; b.根据所述运动矢量的方向确定所述图像内的移动物体并计算所述移动物体的像素大小,所述移动物体包括多个宏块; c.以所述画面的中心为原点计算所述移动物体的中心坐标; d.根据所述移动物体的像素大小以及所述中心坐标计算所述移动物体需要被放大的放大倍数以及摄像机机芯视角中心的变化角度;以及 e.根据所述放大倍数放大所述移动物体,并且根据所述变化角度将所述移动物体显示在所述画面中央。
2.根据权利要求I所述的方法,其特征在于,所述宏块的运动矢量的方向根据如下步骤进行计算 以所述画面中心为原点,获取每个宏块在前一帧以及当前帧的画面坐标; 根据每个宏块前一帧以及当前帧的画面坐标计算所述运动矢量的方向角并根据所述方向角的范围确定所述运动矢量的方向; 其中,所述运动矢量的方向角根据如下公式计算Θ=actan (Vector_y/Vector_x), 其中,Θ为所述运动矢量的方向角,Vector_y为所述宏块前一帧与当前帧纵坐标的差,Vector_x为所述宏块前一帧与当前帧横坐标的差。
3.根据权利要求I所述的方法,其特征在于,所述步骤b包括 将第一参数个所述方向一致的相邻宏块组成单位物体,并将所有单位物体组成所述移动物体;以及 将所述单位物体的像素大小进行累加得到所述移动物体的像素大小。
4.根据权利要求I所述的方法,其特征在于,所述步骤a包括 采集第二参数帧的图像中每一个宏块运动矢量的方向。
5.根据权利要求4所述的方法,其特征在于,所述步骤b包括 将第三参数个所述方向一致的相邻宏块并且在所述第二参数帧内所述方向也一致的相邻宏块组成单位物体,将所有单位物体组成所述移动物体;以及 将所有单位物体的像素大小进行累加得到所述移动物体的像素大小。
6.根据权利要求I所述的方法,其特征在于,所述步骤c包括 将所述移动物体内的多个宏块进行编号,根据所述编号确定所述移动物体的中心所在的中心宏块,并以所述画面中心为原点获取所述中心宏块的坐标。
7.根据权利要求I所述的方法,其特征在于,所述放大倍数根据如下步骤进行计算 判断所述移动物体的宽是否大于高; 若判断所述移动物体的宽大于高,则根据如下公式计算所述放大倍数Z2=W1*Z1/W2 ; 若判断所述移动物体的宽不大于高,则根据如下公式计算所述放大倍数 Z2=H1*Z1/H2, 其中,Z2是所述放大倍数,Zl是当前放大倍数,Wl,Hl是画面的宽和高,W2,H2是移动物体的宽和高。
8.根据权利要求I所述的方法,其特征在于,所述摄像机机芯视角中心的变化角度包括垂直方向以及水平方向的变化角度。
9.根据权利要求8所述的方法,其特征在于,所述摄像机机芯视角中心垂直方向的变化角度根据如下步骤计算 计算所述摄像机机芯视角中心垂直方向的变化角度在所述画面上映射的距离,计算公式如下所示yl = y+1y H X I/sin(atan(|x|/(R-1y|)))-R ; 计算所述摄像机机芯视角中心垂直方向的变化角度,计算公式如下所示δ =actan(yl*tan(β)/H 1), 其中,yl为所述摄像机机芯视角中心垂直方向的变化角度在所述画面上映射的距离,δ为所述摄像机机芯视角中心垂直方向的变化角度,X,y为所述移动物体的坐标,β为当前所述摄像机机芯垂直视角的一半,α为当前所述摄像机机芯视角中心与垂直方向夹角,Hl为所述画面的高,R为当前所述摄像机机芯水平转动形成图像轨迹半径,其中,R=(Hl/2)*tan α/tan β。
10.根据权利要求9所述的方法,其特征在于,所述摄像机机芯视角中心水平方向的变化角度根据如下步骤计算 计算所述摄像机机芯视角中心水平方向的变化角度在所述画面上映射的距离,计算公式如下所示xl=x*actan(|x|/(R,-1y|))/sin(atan(|x|/(R' -1y|))); 计算所述摄像机机芯视角中心水平方向的变化角度,计算公式如下所示Y=actan(xl*tan(ε)/(ffl/2)), 其中,xl为所述摄像机机芯视角中心水平方向的变化角度在所述画面上映射的距离,Y为所述摄像机机芯视角中心水平方向的变化角度,X,y为所述移动物体的坐标,ε为当前所述摄像机机芯的水平视角的一半,n为当前所述摄像机机芯视角中心与水平方向夹角,Wl为所述画面的宽,R’为所述摄像机机芯垂直转动形成图像轨迹半径,其中,R'=(Hl/2) *tan n/tane0
全文摘要
本发明提供一种由摄像机对画面中的图像进行智能跟踪的方法,其特征在于,包括a.采集一图像内的多个宏块中每一个宏块运动矢量的方向;b.根据所述运动矢量的方向确定所述图像内的移动物体并计算所述移动物体的像素大小,所述移动物体包括多个宏块;c.以所述画面的中心为原点计算所述移动物体的中心坐标;d.根据所述移动物体的像素大小以及所述中心坐标计算所述移动物体需要被放大的放大倍数以及摄像机机芯视角中心的变化角度;以及e.根据所述放大倍数放大所述移动物体,并且根据所述变化角度将所述移动物体显示在所述画面中央。
文档编号G06T7/20GK102932598SQ20121043871
公开日2013年2月13日 申请日期2012年11月6日 优先权日2012年11月6日
发明者周建云 申请人:苏州科达科技股份有限公司, 苏州市科远软件技术开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1