一种基于摇头摄像机的目标跟踪方法与流程

专利2022-06-29  75


本发明涉及视觉跟踪技术领域,具体涉及一种基于摇头摄像机的目标跟踪方法。



背景技术:

在计算机视觉领域中,目标跟踪是最具有挑战性的问题之一,涉及的方向主要是单目标跟踪和多目标跟踪,而安防领域运用最多的主要是多目标跟踪。多目标跟踪其主要跟踪流程有检测、特征提取/运动轨迹预测、相似度计算、id分配。现有技术主要采用相关性滤波器与深度学习方法来进行跟踪,主要用来预测下一帧目标位置和对检测框区域进行特征提取,以获得更具判别性的特征表达。

现有技术中,一些传统的物体追踪算法运行速度快但追踪精度差,而许多新提出的物体追踪算法底层数学模型又很复杂,有些还需要联合深度学习方法进行视觉特征提取,从而导致目标追踪过程中产生巨大的运算量,达不到实时性;此外,当目标检测产生误检时,在使用运动摄像机跟踪目标会产生由于误检导致摄像机左右或上下摇摆,从而使得最终的跟踪效果很差。

公开号为:cn109040574a的中国专利申请公开了一种转动摇头机跟踪目标的方法及装置,用以识别视频中的目标并控制摇头机转动以跟踪目标,将目标保持在画面中心位置,便于用户观察。该方法包括:获取摇头机当前拍摄的一帧图像;从当前帧图像中确定出摇头机的跟踪目标;确定所述跟踪目标与图像中心的距离;根据所述跟踪目标与图像中心的距离,以及预先确定的摇头机的电机转动参数与图像距离之间的关系,确定转动摇头机跟踪目标所需电机转动参数;根据所述电机转动参数转动所述摇头机。该方法通过计算跟踪目标在移动过程中,在每一帧画面中产生的与图像中心位置的偏移,进一步计算出摇头机将跟踪目标保持在图像中心区域相应的电机转动参数,使得摇头机镜头能够跟踪目标并保持目标在画面中心区域,方便用户观察。但是该方法依旧存在目标追踪过程中产生巨大的运算量、实时性差,跟踪不稳定,摇头机乱晃的问题。



技术实现要素:

针对现有技术的不足,本发明提出了一种基于摇头摄像机的目标跟踪方法,解决了现有技术运算量大,模型复杂,跟踪不稳定摇头机乱晃的问题。

为实现上述技术方案,针对人形/人脸目标,本发明提供了一种基于摇头摄像机的目标跟踪方法,具体包括如下步骤:

s1、人形/人脸检测定位:对于人形和人脸检测,通过设定检测模式以及人形和人脸的分数阈值来检测视频中的人形或者人脸;

s2、人形/人脸位置预测与id分配:对于当前帧,利用卡尔曼滤波器预测出来的目标位置,联合步骤s1中检测出来的实际目标位置,通过计算预测位置与实际位置之间的iou值作为权重,其中iou值为卡尔曼滤波器预测出来的目标位置的矩形区域与步骤s1中检测出来的实际目标位置的矩形区域的交集与并集的比值,并使用匈牙利匹配算法来为当前帧分配id,得到分配好id的目标;

s3、确定跟踪的人形/人脸目标:根据上一帧跟踪目标的id,在当前帧中找到相同id的目标作为当前帧要跟踪的目标;若当前帧中没有同上一帧相同id的目标,则要重新选择要跟踪的目标;

s4、计算目标在水平和垂直方向距离画面中心的距离:根据跟踪目标矩形区域左上顶点坐标和宽高,以及画面的宽高,计算出跟踪目标在水平方向距离画面中心的距离vecx和垂直方向距离画面中心的距离vecy;

s5、控制摇头机将目标转动到画面中心:

a.水平方向:当|vecx|>40且|vecx|>(obj_width/4),同时vecx<0,其中obj_width表示目标的宽;当满足上述条件时,调用驱动接口控制摇头机向右转动;反之,当vecx>0,调用驱动接口控制摇头机向左转动;实时计算目标水平方向距离vecx,当|vecx|<=40或者|vecx|<(obj_width/4),则电机在水平方向停止转动;

b.垂直方向:当|vecy|>40且|vecy|>(obj_height/4),同时vecy<0,其中obj_height表示目标的高,当满足上述条件时,调用驱动接口控制摇头机向上转动;反之,当vecy>0,调用驱动接口控制摇头机向下转动;实时计算目标垂直方向距离vecy,当|vecy|<=40或者|vecy|<(obj_height/4),则电机在垂直方向停止转动;

s6、判段摇头机是否需要回到home位置:

a.当连续15帧检测到静止的人时,将前后帧摇头机跟踪的目标记录下来,计算前后两帧跟踪目标的中心点在水平和垂直方向分别的距离差horizon_dis,vertical_dis,以及两个目标的面积差area_dis,若horizon_dis、vertical_dis以及area_dis连续15帧分别小于设定的阈值,则此时让摇头机回home位置;反之,继续追踪目标;

b.当摄像头停止转动,且在停止转动后的30s内没有检测到人形/人脸,则此时让摇头机回到home位置。

优选的,步骤s3中,重新选择要跟踪的目标的方法是,先计算步骤s2中所有目标距离画面的水平中心距离,然后按升序排列目标;然后将目标的面积按照不等式areai>4*areaj排列,其中,areai、areaj分别表示目标i、j的面积,最后将排列好的第一个目标作为最后要跟踪的目标对象。

针对前景运动块的目标跟踪,本发明还提供了一种基于摇头摄像机的目标跟踪方法,具体包括如下步骤:

s1、目标定位:对于运动块检测,使用背景差分法完成前景运动目标检测;

s2、确定跟踪目标块:过滤掉面积小于设定面积阈值的运动块;判断符合条件的运动块目标个数是否为零,若为零,则返回作下一帧处理;反之,对保留的运动块面积进行降序排列;在摇头电机静止情况下,对视频进行帧数计数;判断运动块个数,并对运动块中心点距离画面中心点的水平距离进行升序排列,得到面积较大者作为最终要跟踪的目标;

s3、计算单位像素对应的摇头机移动步长:让摇头机静止,记录下此时摇头机电机水平垂直位置坐标,同时选取此时镜头所对画面中的一点p,并记录这点的像素坐标;通过ptz控制摇头机转动一段时间后停止,此时再记录p点移动到新位置后的像素坐标,同时再记录摇头机电机水平垂直位置坐标;计算p点在新旧位置的水平和垂直方向像素差,以及摇头机水平垂直方向分别的位置坐标差;最后用电机的位置坐标差除以像素差得到水平方向单位像素对应的步长step_hor和垂直方向单位像素对应的步长step_ver;

s4、计算摇头机转动的目标位置:根据所得到的最终目标块,计算目标运动块的中心点距离画面中心点在水平方向的距离vecx和垂直方向的距离vecy;根据步骤s23中记录的目标运动方向,以及vecx的正负值,计算得到的单位像素对应的摇头机水平移动步长step_hor和垂直移动步长step_ver,然后结合求得的像素距离值vecx,vecy,计算得到摄像机应该移动的步长vecx*step_hor,vecy*step_ver;通过驱动接口获得摄像头当前所处的水平和垂直位置horizon_position,vertical_position,计算得到摄像头转动的目标位置;

s5、控制摇头机到达目标位置:不断的获取当前电机的位置,如果发现发生了命令但是电机又没有转动,需要再次调用驱动命令;当水平或垂直其中一个方向到达目标位置时,则在这个方向停止电机转动;当两个方向都停止时则这个目标跟踪完成;

s6、判定摇头机是否要回到home位置:当摄像头停止转动,且在停止转动后的30s内均没有检测到运动目标,此时要让摄像头回到home位置。

优选的,所述步骤s2具体采用如下步骤实现:

s21、对于用背景差分法检测到的运动块,过滤掉面积小于20像素的块;

s22、判断符合条件的运动块目标个数是否为零,若为零,则返回作下一帧处理;反之,对保留的运动块面积进行降序排列;

s23、在摇头电机静止情况下,对视频进行帧数计数;同时,对按面积排序后的运动块,首先判断面积最大的块obj_area是否为全屏运动块;若obj_area是全屏运动块,则令非全屏运动块个数movecount为0;若不是全屏运动块时,则对movecount加1;然后判断movecount值是否在0与10之间,包含0与10临界点,若在此范围之内,则将所有目标清零,不对任何块进行跟踪,同时使用卡尔曼滤波与匈牙利匹配法来为目标分配id,得到各目标在水平方向的平均速度v;若v<-20,记录目标运动方向向左,若v>20,记录目标运动方向向右,若v在[-20,20]范围之内,则认为目标运动幅度较小;若movecount大于10,且计时的视频帧数大于10帧时,则将按面积降序排列后的所有目标块送入下一步作处理;

s24、判断运动块个数,若运动块个数cnt满足1<cnt<=5,则对运动块中心点距离画面中心点的水平距离进行升序排列;若cnt>5,则按面积降序顺序选择前5个运动块进行中心点水平距离升序排列;最后选择出距离画面中心点水平距离最近的运动块obj_dis;

s25、将obj_area与obj_dis作面积比较,得到面积较大者作为最终要跟踪的目标。

优选的,所述步骤s4具体采用如下步骤实现:

s41、根据所得到的最终目标块,计算目标运动块的中心点距离画面中心点在水平方向的距离vecx和在垂直方向的距离vecy,同时为避免当目标块位于画面中心或附近时引起摇头机左右摇晃,此时对vecx与vecy的绝对值进行判断,当其值大于设定的阈值时,控制摇头机在满足条件的方向转动;否则不控制摇头机转动;

s42、根据步骤s23中记录的目标运动方向,以及vecx和vecy的正负值,判断出摇头机和目标运动方向相反还是同向,具体为:若同向,则让水平的单位像素步长step_hor及垂直的单位像素步长step_ver增加0.2,若反向,则让step_hor和step_ver减小0.2;若目标运动幅度较小,则让step_hor和step_ver保持原有值不变;

s43、根据步骤s42中计算得到的单位像素对应的摇头机水平移动步长step_hor和垂直移动步长step_ver,以及步骤s41中求得的目标运动块的中心点距离画面中心点在水平方向的距离vecx和在垂直方向的距离vecy,通过公式vecx*step_hor与vecy*step_ver分别计算出摄像头水平与垂直方向应该移动的步长;

s44、通过驱动接口获得摄像头当前所处的水平位置horizon_position和垂直位置vertical_position,结合步骤s43中计算得到的电机应该移动的步长vecx*step_hor和vecy*step_ver,利用公式horizon_target=horizon_position-vecx*step_hor与vertical_target=vertical_position-vecy*step_ver则分别计算出了摄像头转动的水平和垂直目标位置;

s45、对水平和垂直方向的目标位置进行水平垂直光耦约束;

s46、对水平和垂直方向的目标位置进行边界条件约束以求得最后摇头机要转动到的目标位置;

s47、将步骤s2中确定跟踪的前景运动块中s23步骤记录的帧数清零。

本发明提供的一种基于摇头摄像机的目标跟踪方法的有益效果在于:本发明运用简单的数学计算和多帧滤波、卡尔曼预测与匈牙利匹配方法达到实时跟踪人形/人脸及运动目标块的目的,且在跟踪过程中,避免了因目标检测误检而导致摇头机乱晃的情况,解决了现有技术运算量大,模型复杂,跟踪不稳定摇头机乱晃的问题。

附图说明

图1为实施例1的流程示意图。

图2为实施例2的流程示意图。

具体实施方式

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

实施例1:一种基于摇头摄像机的目标跟踪方法。

参照图1,一种基于摇头摄像机的目标跟踪方法,具体包括如下步骤:

针对人形/人脸目标,本发明提供了一种基于摇头摄像机的目标跟踪方法,具体包括如下步骤:

s1、人形/人脸检测定位:对于人形和人脸检测,通过设定检测模式以及人形和人脸的分数阈值来检测视频中的人形或者人脸;

s2、人形/人脸位置预测与id分配:对于当前帧,利用卡尔曼滤波器预测出来的目标位置,联合步骤s1中检测出来的实际目标位置,通过计算预测位置与实际位置之间的iou值作为权重,其中iou值为卡尔曼滤波器预测出来的目标位置的矩形区域与步骤s1中检测出来的实际目标位置的矩形区域的交集与并集的比值,并使用匈牙利匹配算法来为当前帧分配id,得到分配好id的目标;

s3、确定跟踪的人形/人脸目标:根据上一帧跟踪目标的id,在当前帧中找到相同id的目标作为当前帧要跟踪的目标;若当前帧中没有同上一帧相同id的目标,则要重新选择要跟踪的目标;重新选择要跟踪的目标的方法是,先计算步骤s2中所有目标距离画面的水平中心距离,然后按升序排列目标;然后将目标的面积按照不等式areai>4*areaj排列,其中,areaj表示目标面积,最后将排列好的第一个目标作为最后要跟踪的目标对象;

s4、计算目标在水平和垂直方向距离画面中心的距离:根据跟踪目标矩形区域左上顶点坐标和宽高,以及画面的宽高,计算出跟踪目标在水平方向距离画面中心的距离vecx和垂直方向距离画面中心的距离vecy;

s5、控制摇头机将目标转动到画面中心:

a.水平方向:当|vecx|>40且|vecx|>(obj_width/4),同时vecx<0,其中obj_width表示目标的宽;当满足上述条件时,调用驱动接口控制摇头机向右转动;反之,当vecx>0,调用驱动接口控制摇头机向左转动;实时计算目标水平方向距离vecx,当|vecx|<=40或者|vecx|<(obj_width/4),则电机在水平方向停止转动;

b.垂直方向:当|vecy|>40且|vecy|>(obj_height/4),同时vecy<0,其中obj_height表示目标的高,当满足上述条件时,调用驱动接口控制摇头机向上转动;反之,当vecy>0,调用驱动接口控制摇头机向下转动;实时计算目标垂直方向距离vecy,当|vecy|<=40或者|vecy|<(obj_height/4),则电机在垂直方向停止转动;

s6、判段摇头机是否需要回到home位置:

a.当连续15帧检测到静止的人时,将前后帧摇头机跟踪的目标记录下来,计算前后两帧跟踪目标的中心点在水平和垂直方向分别的距离差horizon_dis,vertical_dis,以及两个目标的面积差area_dis,若horizon_dis、vertical_dis以及area_dis连续15帧分别小于设定的阈值,则此时让摇头机回home位置;反之,继续追踪目标;

b.当摄像头停止转动,且在停止转动后的30s内没有检测到人形/人脸,则此时让摇头机回到home位置。

本方法运用简单的数学计算和多帧滤波、卡尔曼预测与匈牙利匹配方法达到实时跟踪人形/人脸的目的,且在跟踪过程中,避免了因目标检测误检而导致摇头机乱晃的情况,解决了现有技术运算量大,模型复杂,跟踪不稳定摇头机乱晃的问题。

实施例2:一种基于摇头摄像机的目标跟踪方法。

参照图2所示,针对前景运动块的目标跟踪,一种基于摇头摄像机的目标跟踪方法,具体包括如下步骤:

s1、目标定位:对于运动块检测,使用背景差分法完成前景运动目标检测;

s2、确定跟踪目标块:

s21、对于用背景差分法检测到的运动块,过滤掉面积小于20像素的块;

s22、判断符合条件的运动块目标个数是否为零,若为零,则返回作下一帧处理;反之,对保留的运动块面积进行降序排列;

s23、在摇头电机静止情况下,对视频进行帧数计数;同时,对按面积排序后的运动块,首先判断面积最大的块obj_area是否为全屏运动块;若obj_area是全屏运动块,则令非全屏运动块个数movecount为0;若不是全屏运动块时,则对movecount加1;然后判断movecount值是否在0与10之间,包含0与10临界点,若在此范围之内,则将所有目标清零,不对任何块进行跟踪,同时使用卡尔曼滤波与匈牙利匹配法来为目标分配id,得到各目标在水平方向的平均速度v;若v<-20,记录目标运动方向向左,若v>20,记录目标运动方向向右,若v在[-20,20]范围之内,则认为目标运动幅度较小;若movecount大于10,且计时的视频帧数大于10帧时,则将按面积降序排列后的所有目标块送入下一步作处理;

s24、判断运动块个数,若运动块个数cnt满足1<cnt<=5,则对运动块中心点距离画面中心点的水平距离进行升序排列;若cnt>5,则按面积降序顺序选择前5个运动块进行中心点水平距离升序排列;最后选择出距离画面中心点水平距离最近的运动块obj_dis;

s25、将obj_area与obj_dis作面积比较,得到面积较大者作为最终要跟踪的目标;

s3、计算单位像素对应的摇头机移动步长:让摇头机静止,记录下此时摇头机电机水平垂直位置坐标,同时选取此时镜头所对画面中的一点p,并记录这点的像素坐标;通过ptz控制摇头机转动一段时间后停止,此时再记录p点移动到新位置后的像素坐标,同时再记录摇头机电机水平垂直位置坐标;计算p点在新旧位置的水平和垂直方向像素差,以及摇头机水平垂直方向分别的位置坐标差;最后用电机的位置坐标差除以像素差得到水平方向单位像素对应的步长step_hor和垂直方向单位像素对应的步长step_ver;

s4、计算摇头机转动的目标位置:

s41、根据所得到的最终目标块,计算目标运动块的中心点距离画面中心点在水平方向的距离vecx和在垂直方向的距离vecy,同时为避免当目标块位于画面中心或附近时引起摇头机左右摇晃,此时对vecx与vecy的绝对值进行判断,当其值大于设定的阈值时,控制摇头机在满足条件的方向转动;否则不控制摇头机转动;

s42、根据步骤s23中记录的目标运动方向,以及vecx和vecy的正负值,判断出摇头机和目标运动方向相反还是同向,具体为:若同向,则让水平的单位像素步长step_hor及垂直的单位像素步长step_ver增加0.2,若反向,则让step_hor和step_ver减小0.2;若目标运动幅度较小,则让step_hor和step_ver保持原有值不变;

s43、根据步骤s42中计算得到的单位像素对应的摇头机水平移动步长step_hor和垂直移动步长step_ver,以及步骤s41中求得的目标运动块的中心点距离画面中心点在水平方向的距离vecx和在垂直方向的距离vecy,计算出摄像机水平方向上应该移动的步长vecx*step_hor和垂直方向上应该移动的步长vecy*step_ver。

s44、通过驱动接口获得摄像头当前所处的水平位置horizon_position和垂直位置vertical_position,结合步骤s43中计算得到的电机应该移动的步长vecx*step_hor和vecy*step_ver,利用公式horizon_target=horizon_position-vecx*step_hor与vertical_target=vertical_position-vecy*step_ver则分别计算出了摄像头转动的水平和垂直目标位置;

s45、对水平和垂直方向的目标位置进行水平垂直光耦约束;

s46、对水平和垂直方向的目标位置进行边界条件约束以求得最后摇头机要转动到的目标位置;

s47、将步骤s2中确定跟踪的前景运动块中s23步骤记录的帧数清零;

s5、控制摇头机到达目标位置:不断的获取当前电机的位置,如果发现发生了命令但是电机又没有转动,需要再次调用驱动命令;当水平或垂直其中一个方向到达目标位置时,则在这个方向停止电机转动;当两个方向都停止时则这个目标跟踪完成;

s6、判定摇头机是否要回到home位置:当摄像头停止转动,且在停止转动后的30s内均没有检测到运动目标,此时要让摄像头回到home位置。

本方法运用简单的数学计算和多帧滤波、卡尔曼预测与匈牙利匹配方法达到实时跟踪运动目标块的目的,且在跟踪过程中,避免了因目标检测误检而导致摇头机乱晃的情况,解决了现有技术运算量大,模型复杂,跟踪不稳定摇头机乱晃的问题。

以上所述为本发明的较佳实施例而已,但本发明不应局限于该实施例和附图所公开的内容,所以凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。


技术特征:

1.一种基于摇头摄像机的目标跟踪方法,其特征在于具体包括如下步骤:

s1、人形/人脸检测定位:对于人形和人脸检测,通过设定检测模式以及人形和人脸的分数阈值来检测视频中的人形或者人脸;

s2、人形/人脸位置预测与id分配:对于当前帧,利用卡尔曼滤波器预测出来的目标位置,联合步骤s1中检测出来的实际目标位置,通过计算预测位置与实际位置之间的iou值作为权重,其中iou值为卡尔曼滤波器预测出来的目标位置的矩形区域与步骤s1中检测出来的实际目标位置的矩形区域的交集与并集的比值,并使用匈牙利匹配算法来为当前帧分配id,得到分配好id的目标;

s3、确定跟踪的人形/人脸目标:根据上一帧跟踪目标的id,在当前帧中找到相同id的目标作为当前帧要跟踪的目标;若当前帧中没有同上一帧相同id的目标,则要重新选择要跟踪的目标;

s4、计算目标在水平和垂直方向距离画面中心的距离:根据跟踪目标矩形区域左上顶点坐标和宽高,以及画面的宽高,计算出跟踪目标在水平方向距离画面中心的距离vecx和垂直方向距离画面中心的距离vecy;

s5、控制摇头机将目标转动到画面中心:

a.水平方向:当|vecx|>40且|vecx|>(obj_width/4),同时vecx<0,其中obj_width表示目标的宽;当满足上述条件时,调用驱动接口控制摇头机向右转动;反之,当vecx>0,调用驱动接口控制摇头机向左转动。实时计算目标水平方向距离vecx,当|vecx|<=40或者|vecx|<(obj_width/4),则电机在水平方向停止转动;

b.垂直方向:当|vecy|>40且|vecy|>(obj_height/4),同时vecy<0,其中obj_height表示目标的高,当满足上述条件时,调用驱动接口控制摇头机向上转动;反之,当vecy>0,调用驱动接口控制摇头机向下转动;实时计算目标垂直方向距离vecy,当|vecy|<=40或者|vecy|<(obj_height/4),则电机在垂直方向停止转动;

s6、判段摇头机是否需要回到home位置:

a.当连续15帧检测到静止的人时,将前后帧摇头机跟踪的目标记录下来,计算前后两帧跟踪目标的中心点在水平和垂直方向分别的距离差horizon_dis,vertical_dis,以及两个目标的面积差area_dis,若horizon_dis、vertical_dis以及area_dis连续15帧分别小于设定的阈值,则此时让摇头机回home位置;反之,继续追踪目标;

b.当摄像头停止转动,且在停止转动后的30s内没有检测到人形/人脸,则此时让摇头机回到home位置。

2.如权利要求1所述的基于摇头摄像机的目标跟踪方法,其特征在于:步骤s3中,重新选择要跟踪的目标的方法是,先计算步骤s2中所有目标距离画面的水平中心距离,然后按升序排列目标;然后将目标的面积按照不等式areai>4*areaj排列,其中,areai、areaj分别表示目标i、j的面积,最后将排列好的第一个目标作为最后要跟踪的目标对象。

3.一种基于摇头摄像机的目标跟踪方法,其特征在于具体包括如下步骤:

s1、目标定位:对于运动块检测,使用背景差分法完成前景运动目标检测;

s2、确定跟踪目标块:过滤掉面积小于设定面积阈值的运动块;判断符合条件的运动块目标个数是否为零,若为零,则返回作下一帧处理。反之,对保留的运动块面积进行降序排列;在摇头电机静止情况下,对视频进行帧数计数;判断运动块个数,并对运动块中心点距离画面中心点的水平距离进行升序排列,得到面积较大者作为最终要跟踪的目标;

s3、计算单位像素对应的摇头机移动步长:让摇头机静止,记录下此时摇头机电机水平垂直位置坐标,同时选取此时镜头所对画面中的一点p,并记录这点的像素坐标;通过ptz控制摇头机转动一段时间后停止,此时再记录p点移动到新位置后的像素坐标,同时再记录摇头机电机水平垂直位置坐标。计算p点在新旧位置的水平和垂直方向像素差,以及摇头机水平垂直方向分别的位置坐标差;最后用电机的位置坐标差除以像素差得到水平方向单位像素对应的步长step_hor和垂直方向单位像素对应的步长step_ver;

s4、计算摇头机转动的目标位置:根据所得到的最终目标块,计算目标运动块的中心点距离画面中心点在水平方向的距离vecx和垂直方向的距离vecy;根据步骤s23中记录的目标运动方向,以及vecx的正负值,计算得到的单位像素对应的摇头机水平移动步长step_hor和垂直移动步长step_ver,然后结合求得的像素距离值vecx,vecy,计算得到摄像机应该移动的步长vecx*step_hor,vecy*step_ver;通过驱动接口获得摄像头当前所处的水平和垂直位置horizon_position,vertical_position,计算得到摄像头转动的目标位置;

s5、控制摇头机到达目标位置:不断的获取当前电机的位置,如果发现发生了命令但是电机又没有转动,需要再次调用驱动命令;当水平或垂直其中一个方向到达目标位置时,则在这个方向停止电机转动;当两个方向都停止时则这个目标跟踪完成;

s6、判定摇头机是否要回到home位置:当摄像头停止转动,且在停止转动后的30s内均没有检测到运动目标,此时要让摄像头回到home位置。

4.如权利要求3所述的基于摇头摄像机的目标跟踪方法,其特征在于:所述步骤s2具体采用如下步骤实现:

s21、对于用背景差分法检测到的运动块,过滤掉面积小于20像素的块;

s22、判断符合条件的运动块目标个数是否为零,若为零,则返回作下一帧处理;反之,对保留的运动块面积进行降序排列。

s23、在摇头电机静止情况下,对视频进行帧数计数;同时,对按面积排序后的运动块,首先判断面积最大的块obj_area是否为全屏运动块;若obj_area是全屏运动块,则令非全屏运动块个数movecount为0;若不是全屏运动块时,则对movecount加1;然后判断movecount值是否在0与10之间,包含0与10临界点,若在此范围之内,则将所有目标清零,不对任何块进行跟踪,同时使用卡尔曼滤波与匈牙利匹配法来为目标分配id,得到各目标在水平方向的平均速度v;若v<-20,记录目标运动方向向左,若v>20,记录目标运动方向向右,若v在[-20,20]范围之内,则认为目标运动幅度较小;若movecount大于10,且计时的视频帧数大于10帧时,则将按面积降序排列后的所有目标块送入下一步作处理;

s24、判断运动块个数,若运动块个数cnt满足1<cnt<=5,则对运动块中心点距离画面中心点的水平距离进行升序排列;若cnt>5,则按面积降序顺序选择前5个运动块进行中心点水平距离升序排列;最后选择出距离画面中心点水平距离最近的运动块obj_dis;

s25、将obj_area与obj_dis作面积比较,得到面积较大者作为最终要跟踪的目标。

5.如权利要求4所述的基于摇头摄像机的目标跟踪方法,其特征在于所述步骤s4具体采用如下步骤实现:

s41、根据所得到的最终目标块,计算目标运动块的中心点距离画面中心点在水平方向的距离vecx和在垂直方向的距离vecy,同时为避免当目标块位于画面中心或附近时引起摇头机左右摇晃,此时对vecx与vecy的绝对值进行判断,当其值大于设定的阈值时,控制摇头机在满足条件的方向转动;否则不控制摇头机转动;

s42、根据步骤s23中记录的目标运动方向,以及vecx和vecy的正负值,判断出摇头机和目标运动方向相反还是同向,具体为:若同向,则让水平的单位像素步长step_hor及垂直的单位像素步长step_ver增加0.2。若反向,则让step_hor和step_ver减小0.2;若目标运动幅度较小,则让step_hor和step_ver保持原有值不变;

s43、根据步骤s42中计算得到的单位像素对应的摇头机水平移动步长step_hor和垂直移动步长step_ver,以及步骤s41中求得的目标运动块的中心点距离画面中心点在水平方向的距离vecx和在垂直方向的距离vecy,通过公式vecx*step_hor与vecy*step_ver分别计算出摄像头水平与垂直方向应该移动的步长;

s44、通过驱动接口获得摄像头当前所处的水平位置horizon_position和垂直位置vertical_position,结合步骤s43中计算得到的电机应该移动的步长vecx*step_hor和vecy*step_ver,利用公式horizon_target=horizon_position-vecx*step_hor与vertical_target=vertical_position-vecy*step_ver则分别计算出了摄像头转动的水平和垂直目标位置;

s45、对水平和垂直方向的目标位置进行水平垂直光耦约束;

s46、对水平和垂直方向的目标位置进行边界条件约束以求得最后摇头机要转动到的目标位置;

s47、将步骤s2中确定跟踪的前景运动块中s23步骤记录的帧数清零。

技术总结
本发明提供了一种基于摇头摄像机的目标跟踪方法,具体包括人形/人脸检测定位、人形/人脸位置预测与ID分配、确定跟踪的人形/人脸目标、计算目标在水平和垂直方向距离画面中心的距离、控制摇头机将目标转动到画面中心、判段摇头机是否需要回到home位置等步骤。本发明运用简单的数学计算和多帧滤波、卡尔曼预测与匈牙利匹配方法达到实时跟踪人形/人脸及运动目标块的目的,且在跟踪过程中,避免了因目标检测误检而导致摇头机乱晃的情况,解决了现有技术运算量大,模型复杂,跟踪不稳定摇头机乱晃的问题。

技术研发人员:唐自兴;马玉涛;徐少辉;杨亮亮;杨运红;江发钦;申雷;李志洋;宋庆丰;庞继锋
受保护的技术使用者:珠海安联锐视科技股份有限公司
技术研发日:2020.02.13
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-48955.html

最新回复(0)