一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

物体跟踪计数方法、装置、计算机设备和存储介质与流程

2022-05-21 02:09:37 来源:中国专利 TAG:


1.本技术涉及图像处理技术领域,特别是涉及一种物体跟踪计数方法、装置、计算机设备和存储介质。


背景技术:

2.随着图像处理技术的发展,目前图像处理技术已经广泛应用于生产和生活中给人们带来便利。例如图像处理技术可以应用于物体跟踪计数,采用图像采集设备采集物体图像,采用常规跟踪计数方式即可计数出在一定时间内物体的数量。
3.上述的物体跟踪计数方式最常见是应用于快递行业,在快递行业的中转场中,皮带机包裹流量估计具有巨大的应用意义,例如,可以用来计算中转场工作效率,可以用来提高设备和人员的使用能效等等。皮带机包裹流量估计最重要的工作是统计一段时间内包裹的数量,基于机器视觉的方法因安装方便,精度高,成本低而得到了广泛的应用。
4.然而,传统的物体跟踪计数方案无法兼顾计数精度和计数效率,实现过程复杂。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种准确且高效的物体跟踪计数方法、装置、计算机设备和存储介质。
6.一种物体跟踪计数方法,方法包括:
7.获取物体视频流;
8.对物体视频流进行物体检测,获取检测输出的物体边界框数据;
9.根据检测输出的物体边界框数据、采用预设跟踪算法跟踪物体,获取物体跟踪边界框数据;
10.根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据;
11.根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量。
12.在其中一个实施例中,对物体视频流进行物体检测,获取检测输出的物体边界框数据包括:
13.对物体视频流进行物体检测,获取检测输出的物体初始边界框数据;
14.获取历史边界框数据,历史边界框数据为历史记录物体在物体检测时的边界框数据;
15.构建物体初始边界框数据与历史边界框数据之间的iou矩阵;
16.对iou矩阵做二分图匹配;
17.根据二分图匹配结果与预设约束阈值,更新历史边界框数据,得到检测输出的物体边界框数据。
18.在其中一个实施例中,根据二分图匹配结果与预设约束阈值,更新历史边界框数据,得到检测输出的物体边界框数据包括:
19.获取二分图匹配结果对应的匹配结果值;
20.若匹配结果值小于预设约束阈值,则判定检测到新物体,则在历史边界框数据中增加新物体对应的边界框数据,得到检测输出的物体边界框数据;
21.若匹配结果值不小于预设约束阈值,则判定检测到相同物体,更新历史边界框数据中相同物体对应的边界框数据,得到检测输出的物体边界框数据。
22.在其中一个实施例中,对iou矩阵做二分图匹配包括:
23.采用匈牙利算法对iou矩阵做二分图匹配。
24.在其中一个实施例中,对物体视频流进行物体检测包括:
25.对物体视频流进行基于神经网络检测模型的物体跟踪检测。
26.在其中一个实施例中,根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据包括:
27.根据检测输出的物体边界框数据以及物体跟踪边界框数据,通过卡尔曼滤波器得到每个物体对应的(x,y,w,h,x*,y*,w*,h*),其中,x表示边界框的中心的横坐标、y表示边界框的中心的纵坐标、w表示边界框的宽度、h表示边界框的高度;x*表示边界框的中心的横坐标的速度、y*表示边界框的中心的纵坐标的速度、w*表示边界框的宽度的速度、h*表示边界框的高度的速度;
28.将(x,y,w,h)赋值给对历史记录物体启动卡尔曼跟踪时的边界框数据、并将(x*,y*,w*,h*)赋值给卡尔曼参数,得到卡尔曼跟踪边界框数据。
29.在其中一个实施例中,根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量包括:
30.根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史记录物体的新的边界框数据;
31.在启动卡尔曼跟踪的下一帧,将历史记录物体的新的边界框数据重新作为历史记录物体的启动卡尔曼跟踪时的边界框数据,返回根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史记录物体的新的边界框数据的步骤,以线性跟踪物体的运动;
32.根据不同时刻帧下历史记录物体的新的边界框数据,计数运动至目的位置的物体数量。
33.一种物体跟踪计数装置,装置包括:
34.视频流获取模块,用于获取物体视频流;
35.物体检测模块,用于对物体视频流进行物体检测,获取检测输出的物体边界框数据;
36.物体跟踪模块,用于根据检测输出的物体边界框数据、采用预设跟踪算法跟踪物体,获取物体跟踪边界框数据;
37.卡尔曼跟踪模块,用于根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据;
38.线性跟踪模块,用于根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量。
39.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计
算机程序时实现以下步骤:
40.获取物体视频流;
41.对物体视频流进行物体检测,获取检测输出的物体边界框数据;
42.根据检测输出的物体边界框数据、采用预设跟踪算法跟踪物体,获取物体跟踪边界框数据;
43.根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据;
44.根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量。
45.一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
46.获取物体视频流;
47.对物体视频流进行物体检测,获取检测输出的物体边界框数据;
48.根据检测输出的物体边界框数据、采用预设跟踪算法跟踪物体,获取物体跟踪边界框数据;
49.根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据;
50.根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量。
51.上述物体跟踪计数方法、装置、计算机设备和存储介质,获取物体视频流,先对物体视频流进行物体检测,再进行基于常规跟踪算法的跟踪检测,以跟踪物体,针对检测得到的物体边界框数据和物体跟踪边界框数据采用卡尔曼滤波进行跟踪,最后基于卡尔曼跟踪得到的数据进行线性跟踪,计数运动至目的位置的物体数量。整个过程中,采用物体检测识别物体,通过常规跟踪算法确定在接下来物体的位置,采用卡尔曼滤波的方式获取物体的运动速度,其能够准确对物体进行线性跟踪,整个过程无需依赖复杂已训练的深度学习模型以及持续的基于特征的跟踪,实现过程简单,可以实现高效且准确的物体跟踪计数。
附图说明
52.图1为一个实施例中物体跟踪计数方法的应用环境图;
53.图2为一个实施例中物体跟踪计数方法的流程示意图;
54.图3为另一个实施例中物体跟踪计数方法的流程示意图;
55.图4为一个实施例中物体跟踪计数装置的结构框图;
56.图5为一个实施例中计算机设备的内部结构图。
具体实施方式
57.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
58.本技术提供的物体跟踪计数方法,可以应用于如图1所示的应用环境中。其中,终端102用于对分拣设备中皮带机104上的包裹进行计数,终端102采集皮带机104上物体视频流,对物体视频流进行物体检测,获取检测输出的物体边界框数据;根据检测输出的物体边
界框数据、采用预设跟踪算法跟踪物体,其中,预设跟踪算法可以是根据实际需求采用的现有或常规的跟踪算法,获取物体跟踪边界框数据;根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据;根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置(皮带机的另一端)的物体数量。其中,终端102可以但不限于是各种具有数据处理功能的设备,例如计算机、笔记本、上位机等。
59.在一个实施例中,如图2所示,提供了一种物体跟踪计数方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
60.s100:获取物体视频流。
61.终端可以通过使用图像采集功能来获取物体视频流,还可以直接接受外部图像采集设备采集到的物体视频流。具体来说,终端可以内置有图像采集组件,例如摄像头等组件,拍摄运动物体的视频图像,得到物体视频流。在实际应用于图1所示的场景中,终端中摄像头采集在皮带机上运动包裹的视频图像数据,得到包裹的视频流。一般来说,包裹在皮带机上的运动轨迹是一个近似的匀速直线运动(即从皮带机一端到皮带机的另一端),包裹到达另外一端后计数器加1,完成最终的包裹跟踪计数。
62.s200:对物体视频流进行物体检测,获取检测输出的物体边界框数据。
63.终端对物体视频流进行物体检测,识别在视频流每帧数据中出现的物体,针对识别出的物体,提取图像帧数据中对应的物体边界框数据。具体来说,可以通过预设分类模型来对物体视频流进行物体检测,识别在视频图像帧中出现的物体,在该预设分类模型中只有一个识别类别,即在预设分类模型中设定一个预设的目标类别,例如目标类为快递包裹,这样通过预设分类模型对物体视频帧流进行物体检测之后可以检测出快递包裹的边界框数据。边界框数据可以理解为用于描述物体轮廓所处位置的数据,其具体可以包括边界框中心的横坐标、纵坐标、边界框的宽度以及边界框的高度。检测输出的物体边界框数据是指对物体视频流进行物体检测,得到物体首次被检测到时对应的边界框数据,其可以理解为物体对应的第一帧边界框数据。
64.在实际应用中,以皮带机上包裹检测为例,对皮带机上包裹视频流进行包裹检测,确定在每帧视频图像中出现的包裹,并且提取这些包裹的边界框数据,即提取这些包裹的外围形状体积等数据,具体包括包裹中心的横坐标、纵坐标以及包裹的宽度和包裹的高度。非必要的,进行物体检测之后,可以将检测输出的物体边界框数据缓存在一个临时缓存空间内,所有检测到物体都会被记录下来,当物体达到目的位置之后,该物体又会从缓存空间内删除,随着时间的推移,在这个临时缓存空间内的数据不断更新,这些数据包括自记录以来的所有检测到的物体。
65.s300:根据检测输出的物体边界框数据、采用预设跟踪算法跟踪物体,获取物体跟踪边界框数据。
66.预设跟踪算法是预先设定物体跟踪算法,其具体可以为现有或常规的跟踪算法,例如常见的csrt(判断相关滤波)目标跟踪算法。根据检测输出的物体边界框数据可以确定当前检测到的物体,采用预设跟踪算法对这些所有检测到的物体进行跟踪,得到物体跟踪边界框数据。物体跟踪边界框数据是指采用预设跟踪算法之后,在检测输出的物体边界框数据的基础上实时跟踪物体得到物体跟踪边界框数据。具体来说,检测输出的物体边界框数据可以理解为对物体视频流中各物体进行检测之后得到的物体第一帧边界框数据,针对
单个物体a来说,在得到物体a第一帧边界框数据之后以此为“起点”采用预设跟踪算法跟踪物体a,这个跟踪是采用常规特征跟踪的过程,得到物体a后续(至少需要第二帧)的边界框数据,即物体跟踪边界框数据。
67.s400:根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据。
68.针对已经检测到的每个物体,根据检测输出的物体边界框数据以及采用常规跟踪算法得到的物体跟踪边界框数据,使用卡尔曼滤波的方式,计算物体的运动数据,运动数据包括物体在当前帧的边界框数据以及物体的运动速度数据,得到卡尔曼跟踪边界框数据。当前帧的边界框数据是指对物体启动卡尔曼跟踪时刻的边界框数据。非必要的,卡尔曼滤波可以通过卡尔曼滤波器来实现。如上描述,针对同一个物体a来说,s200得到物体a的第一帧边界框数据,s300采用预设跟踪算法以物体a的第一帧边界框数据作为“起点”,采用特征跟踪的方式跟踪得到物体a第二帧边界框数据,即得到物体a跟踪边界框数据,根据物体a的第一帧边界框数据以及物体a的第二帧边界框数据即可进一步分析出物体a的运动数据,这里采用卡尔曼滤波的方式,得到卡尔曼跟踪边界框数据,换言之,卡尔曼跟踪边界框数据中包含有物体的运动数据以及启动卡尔曼跟踪时物体对应的边界框数据。
69.s500:根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量。
70.在卡尔曼跟踪边界框数据中已经明确了所有物体的在启动卡尔曼跟踪时的边界框数据以及物体的运动速度数据,采用线性跟踪的方式,不断跟踪物体的运动轨迹,当物体运动至目的位置时,即运动至目的位置的物体数量加1。具体来说,以皮带机,根据卡尔曼跟踪边界框数据对皮带机上已检测到的包裹进行线性跟踪,跟踪这些包裹的运动轨迹,当包裹的边界框数据表征其到达皮带机的另一端(目的位置),将包裹数量计数加1。
71.上述物体跟踪计数方法,获取物体视频流,先对物体视频流进行物体检测,再进行基于常规跟踪算法的跟踪检测,以跟踪物体,针对检测得到的物体边界框数据和物体跟踪边界框数据采用卡尔曼滤波进行跟踪,最后基于卡尔曼跟踪得到的数据进行线性跟踪,计数运动至目的位置的物体数量。整个过程中,采用物体检测识别物体,通过常规跟踪算法确定在接下来物体的位置,采用卡尔曼滤波的方式获取物体的运动速度,其能够准确对物体进行线性跟踪,整个过程无需依赖复杂已训练的深度学习模型以及持续的基于特征的跟踪,实现过程简单,可以实现高效且准确的物体跟踪计数。
72.如图3所示,在其中一个实施例中,s200包括:
73.s210:对物体视频流进行物体检测,获取检测输出的物体初始边界框数据。
74.对物体视频流进行物体检测,识别出当前在视频流中出现的物体,获取这些物体对应的物体初始边界框数据。具体来说,可以通过神经网络模型对物体视频流进行物体检测,即将物体视频流输入至神经网络模型,在该神经网络模型设置有唯一的分类类别,该类别为目标类别物体,例如若需要对包裹进行跟踪计数,在神经网络模型中设置包裹为目标的分类类别,获取神经网络模型检测输出的物体初始边界框数据。更进一步来说,神经网络模型为卷积神经网络模型,其设置的类别为快递包裹,即通过已训练识别快递包裹的卷积神经网络模型对视频流进行物体检测,识别出当前视频流中出现的快递包裹,获取检测输出的快递包裹初始边界框数据。
75.s220:获取历史边界框数据,历史边界框数据为历史记录物体在物体检测时的边界框数据。
76.历史记录物体是指在历史记录中从物体视频流中检测到的物体,例如针对一段物体视频流,依次检测到有物体1、物体2、物体3、物体a、物体b等,这历史记录物体包括该物体1、物体2、物体3、物体a、物体b。历史记录物体在物体检测时的边界框数据是指物体在物体检测时对应的当前帧边界框数据,或者简单理解为物体被检测(捕捉)到的第一帧边界框数据,这个第一是帧对每个物体独立计算的,不同的物体其对应的第一帧时刻不同,针对每个物体而言,其第一次从物体视频流中检测出的时刻即为其第一帧。将历史记录物体在物体检测时的边界框数据均缓存下来,在这里直接获取已经缓存的这部分数据,进入下一步处理,以便识别当前检测输出的物体初始边界框数据中是否存在“新物体”的边界框数据,即是否存在“新物体”的第一帧边界框数据。
77.s230:构建物体初始边界框数据与历史边界框数据之间的iou矩阵。
78.由于针对视频流中同一个物体可能在不同帧时被重复检测到(例如物体短暂停留),为了避免后续重复跟踪、计数,在这里需要构建iou矩阵,来识别检测输出的物体初始边界框数据与历史记录边界框数据是否存在匹配的内容。具体来说,如上述,针对每次(每帧)检测到的物体都存储至临时的缓存空间内,在该缓存空间存储有历史记录中已检测到的物体,在s210得到检测输出的物体初始边界框数据之后,需要进一步识别当前检测输出的物体初始边界框数据与临时缓存空间内历史边界框数据是否存在匹配的内容。假定,检测输出的物体初始边界框数据中包含m个物体的边界框数据,目前历史记录的物体为n个物体,即历史边界框数据为n个物体在物体检测时的边界框数据,则iou矩阵为m*n。
79.s240:对iou矩阵做二分图匹配。
80.s250:根据二分图匹配结果与预设约束阈值,更新历史边界框数据,得到检测输出的物体边界框数据。
81.可以采用凶牙算法对iou矩阵做二分图匹配,并且增加一个约束,即获取一个预先设定的约束阈值,根据二分图匹配结果以及预设约束阈值的比较结果来判断检测输出的物体初始边界框数据中是否存在有与历史边界框数据匹配的内容,即检测到的物体是否属于历史记录(历史已检测到)的物体,是否有新的物体出现,从而来更新已检测到物体在物体检测时的边界框数据,得到检测输出的物体边界框数据。具体来说,预设约束阈值是预先设定的值,其可以根据实际情况的需要进行设定,例如可以设定为0.5。
82.在其中一个实施例中,根据二分图匹配结果与预设约束阈值,更新已检测到物体的历史边界框数据,得到检测输出的物体边界框数据包括:
83.获取二分图匹配结果对应的匹配结果值;若所述匹配结果值小于预设约束阈值,则判定检测到新物体,则在所述历史边界框数据中增加所述新物体对应的边界框数据,得到检测输出的物体边界框数据;若匹配结果值不小于预设约束阈值,则判定检测到相同物体,更新所述历史边界框数据中所述相同物体对应的边界框数据,得到检测输出的物体边界框数据。
84.若匹配结果值小于预设约束阈值,则表明检测输出的物体初始边界框数据中存在有未匹配成功的数据,即认为是一个新出现的物体,将整个新出现物体对应的初始边界框数据更新至历史边界框数据中,得到检测输出的物体边界框数据。例如历史边界框数据包
含有a、b、c物体的在物体检测时的边界框数据,检测输出的初始边界框数据中包含有d物体的边界框数据,此时匹配结果值小于预设约束阈值,将d物体的边界框数据更新至历史边界框数据中,得到a、b、c、d在物体检测时的边界框数据,即得到输出的物体边界框数据。若匹配结果不小于预设约束阈值,则表明检测输出的物体初始边界框数据与历史边界框数据存在高度匹配,即认为没有新出现的物体,判定当前检测到的物体为历史已经检测到过的物体,本次检测到相同物体,更新历史边界框数据中相同物体对应的边界框数据,得到检测输出的物体边界框数据。例如历史边界框数据包含有a、b、c物体在物体检测时的边界框数据,检测输出的初始边界框数据中包含有c物体的边界框数据,此时匹配结果值不小于预设约束阈值,确定相同物体c,更新历史边界框数据中c物体对应的物体检测时的边界框数据,即将现c物体的边界框数据替换c物体的历史当前帧边界框数据,得到检测输出的物体边界框数据。
85.在其中一个实施例中,根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据包括:
86.根据检测输出的物体边界框数据以及物体跟踪边界框数据,通过卡尔曼滤波器得到每个物体对应的(x,y,w,h,x*,y*,w*,h*),其中,x表示边界框的中心的横坐标、y表示边界框的中心的纵坐标、w表示边界框的宽度、h表示边界框的高度;x*表示边界框的中心的横坐标的速度、y*表示边界框的中心的纵坐标的速度、w*表示边界框的宽度的速度、h*表示边界框的高度的速度;将(x,y,w,h)赋值给对历史记录物体启动卡尔曼跟踪时的边界框数据、并将(x*,y*,w*,h*)赋值给卡尔曼参数,得到卡尔曼跟踪边界框数据。
87.对于每一个历史记录中已经检测到的物体,根据检测输出的物体边界框数据以及物体跟踪边界框数据,使用卡尔曼滤波器可以得到物体的(x,y,w,h,x*,y*,w*,h*),该数据即为每个物体的卡尔曼跟踪边界框数据,其中(x,y,w,h)为启动卡尔曼跟踪时历史记录物体的边界框数据,包括边界框的中心横坐标、纵坐标以及边界框的高度和高度;其中(x*,y*,w*,h*)为卡尔曼参数用于表征物体的运动变化,针对匀速运动的物体,该数据表征物体的匀速运动速度。具体来说,可以将(x,y,w,h)理解为卡尔曼滤波器的观测变量,将(x,y,w,h,x*,y*,w*,h*)理解为卡尔曼的状态变量,在下一步中,将基于这2个部分的数据对历史记录物体进行线性跟踪。
88.在其中一个实施例中,根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量包括:
89.根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史记录物体的新的边界框数据;在启动卡尔曼跟踪的下一帧,将所述历史记录物体的新的边界框数据重新作为历史记录物体的启动卡尔曼跟踪时的边界框数据,返回所述根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史记录物体的新的边界框数据的步骤,以线性跟踪物体的运动;根据不同时刻帧下所述历史记录物体的新的边界框数据,计数运动至目的位置的物体数量。
90.线性跟踪可以理解为是一个随着时间持续更新跟踪的过程,其中卡尔曼参数表征物体的运动变化,根据启动卡尔曼跟踪时的边界框数据和卡尔曼参数,可以计算新的边界框数据,在到达启动卡尔曼跟踪的下一帧时,将新的边界框数据重新作为历史记录物体的启动卡尔曼跟踪时的边界框数据,返回根据对历史记录物体启动卡尔曼跟踪时的边界框数
据以及卡尔曼参数,计算历史记录物体的新的边界框数据的步骤,通过不断的线性跟踪方式根据物体的运动,直至根据物体最新边界框数据发现其已经运动至目的位置,计数运动至目的位置的物体数量,通过累计不同时刻帧下运动至目的位置物体数量,计数运动至目的位置的物体数量。以皮带机上包裹为例,针对每个包裹,用启动卡尔曼跟踪时的边界框数据(x,y,w,h)和卡尔曼参数(x*,y*,w*,h*)计算新的边界框数据(x’,y’,w’,h’),其具体计算公式为:x’=x x*;y’=y y*;w’=w w*;h’=h h*,将新计算得到的边界框数据重新作为启动卡尔曼跟踪时的边界框数据,直至最新得到的边界框数据表明包裹已经运动至目的位置,即包裹最新的边界框数据中x和y的坐标大于皮带机另一端的坐标值,则包裹数量增加1。非必要的,针对已经运动至目的位置的物体,可以从临时缓存空间内删除,以避免不必要的资源占用。
91.具体来说,在本技术中物体边界框数据是指物体在物体视频流中第一次被检测出时对应的边界框数据,即物体第一帧边界框数据,随着时间的推移,物体在运动,采用预设跟踪算法跟踪物体,得到物体第二帧边界框数据,在得到物体至少2帧边界框数据之后,可以采用卡尔曼滤波的方式,分析得到物体的运动数据,以第二帧边界框数据作为起点,基于分析得到的物体运动数据,对物体进行卡尔曼跟踪,得到物体第三帧边界框数据、第四帧边界框数据,直至检测到物体运动至目的位置。可以理解,在上述的第二针边界框数据即启动卡尔曼跟踪时物体的边界框数据。
92.为了更进一步详细解释本技术物体跟踪计数方法的技术方案及其效果,下面将以皮带机上包裹为例,采用计算机编程语言详细说明整个过程,其具体包括以下实现阶段:
93.前提假设:包裹在皮带机上的运动轨迹是一个近似的匀速直线运动(即从皮带机一端到皮带机的另一端),包裹到达另外一端后计数器加1。在算法中,用一个结构体代表一个包裹。
94.一、初始化
95.加载检测算法的模型参数,初始化一个计数器为0,初始化一个buffer(临时缓存空间)内数据为空,此buffer中的数据只能是包裹的结构体。
96.二、模型检测与处理
97.使用的模型是yolov3,一种基于卷积神经网络的检测模型,类别只有一类,即包裹,模型的输出是检测到的所有包裹的在物体检测时的边界框数据。边界框数据的形式为(x,y,w,h),分别表示边界框数据的中心的横坐标、中心的纵坐标、宽度、高度)。首先用当前检测到包裹的边界框数据和历史记录中包括的在物体检测时的边界框数据构建iou矩阵。假设当前检测到包裹的数量为m,历史检测到包裹的数量为n,则iou矩阵的维度是m*n,矩阵中第mn维的那个数代表了第m个当前检测到的包裹和第n个历史检测到包裹的iou。其次,用匈牙利算法对iou矩阵做二分图匹配,并增加一个约束,大于等于某个阈值(例如0.5)的iou才能匹配。对于检测算法输出的且未匹配成功的包裹,认为是一个新出现的包裹,初始化一个结构体,加入到buffer中;对于匹配成功的两个包裹,认为是同一个包裹。
98.三、传统跟踪
99.用传统跟踪方法(例如csrt)跟踪buffer中所有的包裹,得到所有包裹的新的包裹边界框数据,赋值给buffer中所有的包裹在传统跟踪之后的边界框数据。
100.四、卡尔曼跟踪
101.对于buffer中的每一个包裹,利用物体检测时的边界框数据以及传统跟踪后的边界框数据,使用卡尔曼滤波器计算得到包裹的(x,y,w,h,x*,y*,w*,h*),(x,y,w,h)赋值给启动卡尔曼跟踪时包裹边界框数据,(x*,y*,w*,h*)赋值给卡尔曼参数。其中,卡尔曼滤波器的观测变量是(x,y,w,h),状态变量是(x,y,w,h,x*,y*,w*,h*),x*,y*,w*,h*分别表示包裹边界框中心的横坐标的速度、中心的纵坐标的速度、宽度的速度、高度的速度。
102.五、线性跟踪
103.用启动卡尔曼跟踪时包裹边界框数据(x,y,w,h)和卡尔曼参数(x*,y*,w*,h*)计算新的包裹边界框数据(x’,y’w’,h’)。判断历史记录包裹中是否有包裹到达皮带机的另一端,若到达,则计数器加1,并从历史记录包裹中删除此包裹。
104.在实际应用本技术物体跟踪计数方法时,上述阶段二至阶段五可以分别采用一个独立处理模块来实现,即包括检测模块、传统跟踪模块、卡尔曼跟踪模块以及线性跟踪模块,这些模块各自实现上述对应的功能,想成一个完整的处理流程,一个模块一个视频帧或者一张图片,假设处理流程的长度为n个视频帧,那么就有n个模块,前三个模块分别是检测模块、传统跟踪模块、卡尔曼跟踪模块,后面4-n个模块全部为线性跟踪模块。在实际应用中,经由大量试验和尝试,一般取n=6,并且视频流是1秒6帧,速度和精度达到最佳,即一个处理流程是1秒,有1个检测模块、传统跟踪模块、卡尔曼跟踪模块,3个线性跟踪模块。
105.应该理解的是,虽然上述各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
106.另外,如图4所示,本技术还提供一种物体跟踪计数装置,装置包括:
107.视频流获取模块100,用于获取物体视频流;
108.物体检测模块200,用于对物体视频流进行物体检测,获取检测输出的物体边界框数据;
109.物体跟踪模块300,用于根据检测输出的物体边界框数据、采用预设跟踪算法跟踪物体,获取物体跟踪边界框数据;
110.卡尔曼跟踪模块400,用于根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据;
111.线性跟踪模块500,用于根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量。
112.上述物体跟踪计数装置,获取物体视频流,先对物体视频流进行物体检测,再进行基于常规跟踪算法的跟踪检测,以跟踪物体,针对检测得到的物体边界框数据和物体跟踪边界框数据采用卡尔曼滤波进行跟踪,最后基于卡尔曼跟踪得到的数据进行线性跟踪,计数运动至目的位置的物体数量。整个过程中,采用物体检测识别物体,通过常规跟踪算法确定在接下来物体的位置,采用卡尔曼滤波的方式获取物体的运动速度,其能够准确对物体进行线性跟踪,整个过程无需依赖复杂已训练的深度学习模型以及持续的基于特征的跟
踪,实现过程简单,可以实现高效且准确的物体跟踪计数。
113.在其中一个实施例中,物体检测模块200还用于对物体视频流进行物体检测,获取检测输出的物体初始边界框数据;获取历史边界框数据,历史边界框数据为历史记录物体在物体检测时的边界框数据;构建物体初始边界框数据与历史边界框数据之间的iou矩阵;对iou矩阵做二分图匹配;根据二分图匹配结果与预设约束阈值,更新历史边界框数据,得到检测输出的物体边界框数据。
114.在其中一个实施例中,物体检测模块200还用于获取二分图匹配结果对应的匹配结果值;若匹配结果值小于预设约束阈值,则判定检测到新物体,则在历史边界框数据中增加新物体对应的边界框数据,得到检测输出的物体边界框数据;若匹配结果值不小于预设约束阈值,则判定检测到相同物体,更新历史边界框数据中相同物体对应的边界框数据,得到检测输出的物体边界框数据。
115.在其中一个实施例中,物体检测模块200还用于采用匈牙利算法对iou矩阵做二分图匹配。
116.在其中一个实施例中,物体检测模块200还用于对物体视频流进行基于神经网络检测模型的物体跟踪检测。
117.在其中一个实施例中,卡尔曼跟踪模块400还用于根据检测输出的物体边界框数据以及物体跟踪边界框数据,通过卡尔曼滤波器得到每个物体对应的(x,y,w,h,x*,y*,w*,h*),其中,x表示边界框的中心的横坐标、y表示边界框的中心的纵坐标、w表示边界框的宽度、h表示边界框的高度;x*表示边界框的中心的横坐标的速度、y*表示边界框的中心的纵坐标的速度、w*表示边界框的宽度的速度、h*表示边界框的高度的速度;将(x,y,w,h)赋值给对历史记录物体启动卡尔曼跟踪时的边界框数据、并将(x*,y*,w*,h*)赋值给卡尔曼参数,得到卡尔曼跟踪边界框数据。
118.在其中一个实施例中,线性跟踪模块500,用于根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史记录物体的新的边界框数据;在启动卡尔曼跟踪的下一帧,将历史记录物体的新的边界框数据重新作为历史记录物体的启动卡尔曼跟踪时的边界框数据,返回根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史记录物体的新的边界框数据的操作,以线性跟踪物体的运动;根据不同时刻帧下历史记录物体的新的边界框数据,计数运动至目的位置的物体数量。
119.关于物体跟踪计数装置的具体限定可以参见上文中对于物体跟踪计数方法的限定,在此不再赘述。上述物体跟踪计数装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
120.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储历史物体跟踪的数据以及预先配置数据等数据。该计算机设备的网络接
口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种物体跟踪计数方法。
121.本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
122.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
123.获取物体视频流;
124.对物体视频流进行物体检测,获取检测输出的物体边界框数据;
125.根据检测输出的物体边界框数据、采用预设跟踪算法跟踪物体,获取物体跟踪边界框数据;
126.根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据;
127.根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量。
128.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
129.对物体视频流进行物体检测,获取检测输出的物体初始边界框数据;获取历史边界框数据,所述历史边界框数据为历史记录物体在物体检测时的边界框数据;构建所述物体初始边界框数据与所述历史边界框数据之间的iou矩阵;对所述iou矩阵做二分图匹配;根据二分图匹配结果与预设约束阈值,更新所述历史边界框数据,得到检测输出的物体边界框数据。
130.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
131.获取二分图匹配结果对应的匹配结果值;若所述匹配结果值小于预设约束阈值,则判定检测到新物体,则在所述历史边界框数据中增加所述新物体对应的边界框数据,得到检测输出的物体边界框数据;若匹配结果值不小于预设约束阈值,则判定检测到相同物体,更新所述历史边界框数据中所述相同物体对应的边界框数据,得到检测输出的物体边界框数据。
132.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
133.采用匈牙利算法对所述iou矩阵做二分图匹配。
134.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
135.对所述物体视频流进行基于神经网络检测模型的物体跟踪检测。
136.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
137.根据检测输出的物体边界框数据以及物体跟踪边界框数据,通过卡尔曼滤波器得到每个物体对应的(x,y,w,h,x*,y*,w*,h*),其中,x表示边界框的中心的横坐标、y表示边界框的中心的纵坐标、w表示边界框的宽度、h表示边界框的高度;x*表示边界框的中心的横坐标的速度、y*表示边界框的中心的纵坐标的速度、w*表示边界框的宽度的速度、h*表示边界框的高度的速度;将(x,y,w,h)赋值给对历史记录物体启动卡尔曼跟踪时的边界框数据、并将(x*,y*,w*,h*)赋值给卡尔曼参数,得到卡尔曼跟踪边界框数据。
138.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
139.根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史
记录物体的新的边界框数据;在启动卡尔曼跟踪的下一帧,将所述历史记录物体的新的边界框数据重新作为历史记录物体的启动卡尔曼跟踪时的边界框数据,返回所述根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史记录物体的新的边界框数据的步骤,以线性跟踪物体的运动;根据不同时刻帧下所述历史记录物体的新的边界框数据,计数运动至目的位置的物体数量。
140.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
141.获取物体视频流;
142.对物体视频流进行物体检测,获取检测输出的物体边界框数据;
143.根据检测输出的物体边界框数据、采用预设跟踪算法跟踪物体,获取物体跟踪边界框数据;
144.根据检测输出的物体边界框数据以及物体跟踪边界框数据、采用卡尔曼滤波,得到卡尔曼跟踪边界框数据;
145.根据卡尔曼跟踪边界框数据进行线性跟踪,计数运动至目的位置的物体数量。
146.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
147.对物体视频流进行物体检测,获取检测输出的物体初始边界框数据;获取历史边界框数据,所述历史边界框数据为历史记录物体在物体检测时的边界框数据;构建所述物体初始边界框数据与所述历史边界框数据之间的iou矩阵;对所述iou矩阵做二分图匹配;根据二分图匹配结果与预设约束阈值,更新所述历史边界框数据,得到检测输出的物体边界框数据。
148.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
149.获取二分图匹配结果对应的匹配结果值;若所述匹配结果值小于预设约束阈值,则判定检测到新物体,则在所述历史边界框数据中增加所述新物体对应的边界框数据,得到检测输出的物体边界框数据;若匹配结果值不小于预设约束阈值,则判定检测到相同物体,更新所述历史边界框数据中所述相同物体对应的边界框数据,得到检测输出的物体边界框数据。
150.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
151.采用匈牙利算法对所述iou矩阵做二分图匹配。
152.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
153.对所述物体视频流进行基于神经网络检测模型的物体跟踪检测。
154.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
155.根据检测输出的物体边界框数据以及物体跟踪边界框数据,通过卡尔曼滤波器得到每个物体对应的(x,y,w,h,x*,y*,w*,h*),其中,x表示边界框的中心的横坐标、y表示边界框的中心的纵坐标、w表示边界框的宽度、h表示边界框的高度;x*表示边界框的中心的横坐标的速度、y*表示边界框的中心的纵坐标的速度、w*表示边界框的宽度的速度、h*表示边界框的高度的速度;将(x,y,w,h)赋值给对历史记录物体启动卡尔曼跟踪时的边界框数据、并将(x*,y*,w*,h*)赋值给卡尔曼参数,得到卡尔曼跟踪边界框数据。
156.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
157.根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史
记录物体的新的边界框数据;在启动卡尔曼跟踪的下一帧,将所述历史记录物体的新的边界框数据重新作为历史记录物体的启动卡尔曼跟踪时的边界框数据,返回所述根据对历史记录物体启动卡尔曼跟踪时的边界框数据以及卡尔曼参数,计算历史记录物体的新的边界框数据的步骤,以线性跟踪物体的运动;根据不同时刻帧下所述历史记录物体的新的边界框数据,计数运动至目的位置的物体数量。
158.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
159.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
160.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献