CN114419093A - 一种目标跟踪方法、装置、设备及存储介质 - Google Patents
一种目标跟踪方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114419093A CN114419093A CN202210064828.8A CN202210064828A CN114419093A CN 114419093 A CN114419093 A CN 114419093A CN 202210064828 A CN202210064828 A CN 202210064828A CN 114419093 A CN114419093 A CN 114419093A
- Authority
- CN
- China
- Prior art keywords
- video frame
- target object
- video
- scale
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本说明书公开了一种目标跟踪方法、装置、设备及存储介质,通过仅对待处理视频中的第一视频帧进行目标检测,得到目标对象,并根据目标对象在第一视频帧中的位置以及获取的待处理视频中各视频帧对应的运动矢量,确定目标对象在各第二视频帧中的位置,从而在待处理视频的各视频帧中对目标对象进行跟踪。可见,通过仅对待处理视频中的第一视频帧进行高精度的目标检测,在有限的算力条件下保证了目标检测的精度,同时,利用运动矢量确定目标对象在除第一视频帧之外的第二视频帧中的位置,实现对目标对象的跟踪,兼顾了目标跟踪的实时性。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种目标跟踪方法、装置、设备及存储介质。
背景技术
随着视觉计算技术的发展,目标跟踪技术在视频转播、安防监控、无人驾驶等领域得到了广泛的应用。目标跟踪的主要任务是通过智能设备连续、实时、准确地定位视频序列中被跟踪的目标对象。其中,目标跟踪可采用密集的跟踪方法,即,使用目标检测模型,对视频中的每一帧图像均进行目标检测,确定被跟踪的目标对象在每一帧图像中的位置,从而实现对目标的跟踪。然而,由于智能设备(如智能摄像头)的算力有限,使用目标检测算法对视频图像进行运算的帧率远低于视频的帧率,因此无法通过对视频中的每一帧图像均进行目标检测运算,实现目标跟踪,导致目标跟踪的实时性降低,甚至无法对目标对象进行跟踪。
现有技术中,为了在有限的算力条件下在智能设备上实现目标跟踪,通常采用精简目标检测模型的方式,降低目标检测模型运算的时间,提高使用目标检测算法对视频图像进行运算的帧率,从而提高目标跟踪的实时性。
然而,对目标检测模型的精简会导致目标检测模型精度的下降,进而降低了目标跟踪的精度。
发明内容
本说明书提供一种目标跟踪方法、装置、设备及存储介质,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种目标跟踪方法,包括:
获得待处理视频,并确定所述待处理视频中的第一视频帧和第二视频帧;
通过预先训练的目标检测模型,对所述第一视频帧进行目标检测,以确定所述第一视频帧中的目标对象,以及所述目标对象在所述第一视频帧中的位置;并确定所述待处理视频中各视频帧对应的运动矢量;
根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;
根据所述目标对象在所述第一视频帧中的位置以及所述目标对象在所述第二视频帧中的位置,对所述目标对象进行跟踪。
可选地,确定所述待处理视频中的第一视频帧和第二视频帧,具体包括:
根据所述待处理视频的帧率以及预先训练的目标检测模型的帧率,确定抽帧的频率;
根据所述频率,对所述待处理视频进行抽帧,将抽取出的视频帧作为第一视频帧,将除第一视频帧之外的视频帧作为第二视频帧。
可选地,确定所述待处理视频中各视频帧对应的运动矢量,具体包括:
将所述待处理视频进行多尺度调整,得到多个不同尺度的待处理视频;
针对每个尺度的待处理视频,将该尺度的待处理视频中各视频帧进行分割,得到该尺度的各视频帧的像素块;并获取该尺度的各视频帧中每个像素块对应的运动矢量,作为该尺度的视频帧对应的运动矢量;一个视频帧中一个像素块对应的运动矢量用于表征该像素块从该视频帧到下一个视频帧的位移。
可选地,所述第一视频帧中的目标对象包括具有上下级关系的多个目标对象;其中,上一级目标对象在视频帧中覆盖的像素块包括下一级目标对象在视频帧中覆盖的像素块;
针对每一级目标对象,在所述多个不同的尺度中,确定该级目标对象对应的指定尺度,其中,所述指定尺度的待处理视频中存在用于表征该级目标对象所覆盖的像素块对应的运动矢量,且所述指定尺度在所述多个不同的尺度中最小;所述指定尺度的待处理视频中用于表征该级目标对象所覆盖的像素块对应的运动矢量为:该级目标对象对应的指定运动矢量;
根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置,具体包括:
按照所述不同的尺度从小到大的顺序,依次选择当前尺度,确定第一视频帧中以选择出的当前尺度为指定尺度的目标对象,作为当前目标对象;
根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置;
若存在未被选择的尺度,则继续按照所述不同的尺度从小到大的顺序,依次选择当前尺度,并继续确定第一视频帧中以选择出的当前尺度为指定尺度的目标对象在第二视频帧中的位置,直至不存在未被选择的尺度。
可选地,根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置,具体包括:
若所述当前目标对象不具有上一级目标对象,根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置;
若所述当前目标对象具有上一级目标对象,将所述当前目标对象的上一级目标对象在对应的指定尺度的第二视频帧中的位置,映射到所述当前目标对象对应的当前尺度的第二视频帧中,以确定所述当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置;
根据所述当前目标对象对应的指定运动矢量,以及所述当前目标对象的上一级目标对象对应的指定运动矢量,确定所述当前目标对象对应的相对运动矢量;
根据所述当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置以及所述当前目标对象对应的相对运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置。
可选地,所述方法还包括:
当不存在未被选择的尺度时,在所述不同的尺度中,将尺度最大的第二视频帧还原为原始尺度的第二视频帧;其中,所述原始尺度包括获取的待处理视频的尺度;
根据所述第一视频帧中的各级目标对象在尺度最大的第二视频帧中的位置,确定所述各级目标对象在所述原始尺度的第二视频帧中的位置。
可选地,根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置,具体包括:
若所述第二视频帧与所述第一视频帧相邻,根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;
若所述第二视频帧与所述第一视频帧不相邻,所述方法还包括:
根据所述目标对象在所述第二视频帧的前一视频帧中的位置以及所述第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;其中,所述目标对象在所述第二视频帧的前一视频帧中的位置是根据所述目标对象在所述第一视频帧中的位置以及所述第二视频帧的前一视频帧对应的运动矢量确定的。
本说明书提供了一种目标跟踪装置,包括:
视频帧确定模块,用于获得待处理视频,并确定所述待处理视频中的第一视频帧和第二视频帧;
目标对象确定模块,用于通过预先训练的目标检测模型,对所述第一视频帧进行目标检测,以确定所述第一视频帧中的目标对象,以及所述目标对象在所述第一视频帧中的位置;
运动矢量确定模块,用于确定所述待处理视频中各视频帧对应的运动矢量;
位置确定模块,用于根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;
跟踪模块,用于根据所述目标对象在所述第一视频帧中的位置以及所述目标对象在所述第二视频帧中的位置,对所述目标对象进行跟踪。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述目标跟踪方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述目标跟踪方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的目标跟踪方法中,仅对待处理视频中的第一视频帧进行目标检测,得到目标对象,并根据目标对象在第一视频帧中的位置以及获取的待处理视频中各视频帧对应的运动矢量,确定目标对象在各第二视频帧中的位置,从而在待处理视频的各视频帧中对目标对象进行跟踪。可见,通过仅对待处理视频中的第一视频帧进行高精度的目标检测,在有限的算力条件下保证了目标检测的精度,同时,利用运动矢量确定目标对象在除第一视频帧之外的第二视频帧中的位置,实现对目标对象的跟踪,兼顾了目标跟踪的实时性。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种目标跟踪方法的流程示意图;
图2A为本说明书中一种各目标对象间的关系示意图;
图2B为本说明书中一种各目标对象间的关系示意图;
图2C为本说明书中一种多个尺度的各级目标对象示意图;
图3为本说明书中一种目标跟踪方法的流程示意图;
图4为本说明书中一种多个尺度的第一视频帧以及第二视频帧的示意图;
图5为本说明书中一种目标跟踪方法的流程示意图;
图6A为本说明书中一种确定目标对象在第二视频帧中位置的示意图;
图6B为本说明书中一种确定目标对象在第二视频帧中位置的示意图;
图7为本说明书中一种目标跟踪方法的流程示意图;
图8为本说明书中一种待处理视频中视频帧序列的示意图;
图9为本说明书提供的一种目标跟踪装置的示意图;
图10为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
目标跟踪是指对智能设备采集到的视频进行分析与处理,充分利用所采集到视频的信息对目标进行稳定跟踪的过程。目标被确定后,就可以获得目标的位置、速度、加速度等运动参数,进而获得目标的特征参数。在军事方面,目标跟踪技术广泛应用于导弹精确制导、机器人自主导航、无人机着陆、靶场光电跟踪等领域。在民用方面,该技术在智能视频监控、智能交通管制、医疗影像诊断等方面也有着重要应用。
目标跟踪可以看作是一系列的目标检测。例如在监控视频中,目标是一个行人,提取一段监控视频中的每一帧图像,对每一帧图像进行目标检测,通过检测目标行人在每一帧图像中的位置,即可明确目标行人在这一段监控视频中的移动过程,由此实现对目标行人的跟踪。进一步地,通过两帧图像中目标行人坐标的变化来计算目标行人的位移,结合两帧图像的间隔时间即可获得目标行人的移动速度。这种对每一帧图像进行目标检测从而实现目标跟踪的方法,由于需要处理视频的每一帧图像,计算量十分巨大,且高精度的目标检测算法的帧率远低于视频的帧率,即,使用高精度的目标检测算法进行目标跟踪,无法实时对视频中的目标进行跟踪。但是,采用精简目标检测模型的方式,虽然可通过降低目标检测模型运算的时间,提高使用目标检测算法对视频图像进行运算的帧率,但是会导致目标检测模型精度的下降,进而降低了目标跟踪的精度。
为了兼顾目标跟踪的精度以及实时性,本方法利用智能设备在通常情况均会配置的视频编码功能,获取未经处理的原始视频中每一帧对应的运动矢量。仅对小部分视频帧进行目标检测,并利用运动矢量预测两次目标检测之间目标对象的位移,从而实现对视频中目标对象的跟踪。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中一种目标跟踪方法的流程示意图,具体包括以下步骤:
S100:获得待处理视频,并确定所述待处理视频中的第一视频帧和第二视频帧。
图像信息经智能设备采集后生成的待处理视频。根据应用场合的需要,待处理视频可在智能设备本地存储和播放,也可经传输后在其他设备上存储和播放。对于需要将待处理视频传输到其他设备的应用场合,由于传输网络无法容纳待处理视频巨大的数据量,需要在智能设备中配置视频编码模块,将原始视频进行编码压缩后,再进行传输。其中,智能设备可包括智能摄像头、智能手机等具有采集图像并生成视频功能的设备。
在本说明书实施例中,执行目标跟踪方法的设备可以是生成视频的智能设备,也可以是接收视频的其他设备(如服务器),本说明书对此不做限定。但需要说明的是,由于相较于接收视频的其他设备而言,生成视频的智能设备实现目标跟踪的算力更加有限,因此,本方法更适用于在算力有限的智能设备上实现兼顾高精度以及高实时性的目标跟踪。
另外,在本步骤中,需要在待处理视频中的各视频帧中抽取一部分视频帧作为后续进行目标检测的视频帧,将抽取出的视频帧作为第一视频帧,将除第一视频帧之外的待处理视频的视频帧作为第二视频帧。通常,为了提高目标跟踪的实时性,第一视频帧的数量可少于第二视频帧的数量。对于第一视频帧的抽取频率,本说明书不做限定。
S102:通过预先训练的目标检测模型,对所述第一视频帧进行目标检测,以确定所述第一视频帧中的目标对象,以及所述目标对象在所述第一视频帧中的位置;并确定所述待处理视频中各视频帧对应的运动矢量。
目标检测的任务是获得视频帧中所有目标对象,确定目标对象的类别和位置。本说明书实施例中采用的目标检测模型可以是任意现有的目标检测模型,其中,目标检测模型可以是机器学习模型,本说明书对此不做限定。另外,需要说明的是,第一视频帧用于通过目标检测模型确定目标对象以及目标对象在第一视频帧中的位置。第二视频帧用于根据目标对象在第一视频帧中的位置以及目标对象对应的运动矢量确定目标对象在第二视频帧中的位置。
另外,由于待处理视频的数据量非常大,一旦涉及到视频的传输与存储,就需要将原始视频编码压缩,再进行传输与存储。通常情况下,采集图像并生成视频的智能设备可配置视频编码模块,对生成的原始视频进行编码。本方法利用智能设备在通常情况均会配置的视频编码功能,获取待处理视频中每一视频帧对应的运动矢量。仅对小部分视频帧进行目标检测,并利用运动矢量预测其他未进行目标检测的视频帧中目标对象的位置,从而确定待处理视频的各视频帧中目标对象的位置,实现对待处理视频中目标对象的跟踪。
S104:根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置。
为了实现对待处理视频中的目标对象进行跟踪,需要获取目标对象在待处理视频中每个视频帧中的位置,由于在前述步骤S102中已经对第一视频帧进行了目标检测,因此,还需确定第二视频帧中目标对象的位置,即可确定目标对象在待处理视频中每个视频帧中的位置。
由于视频帧对应的运动矢量可表征视频帧中目标对象从当前视频帧到下一视频帧的位移,因此,可利用第一视频帧中目标对象的位置,以及运动矢量预测第一视频帧的下一视频帧中目标对象的位置。
S106:根据所述目标对象在所述第一视频帧中的位置以及所述目标对象在所述第二视频帧中的位置,对所述目标对象进行跟踪。
按照待处理视频中视频帧的排列顺序,从已进行目标检测的第一视频帧开始,利用视频帧对应的运动矢量,依次确定目标对象在每个第二视频帧中的位置,从而获得目标对象在待处理视频中每个视频帧中的位置,实现对目标对象的跟踪。
在本说明书提供的目标跟踪方法中,仅对待处理视频中的第一视频帧进行目标检测,得到目标对象,并根据目标对象在第一视频帧中的位置以及获取的待处理视频中各视频帧对应的运动矢量,确定目标对象在各第二视频帧中的位置,从而在待处理视频的各视频帧中对目标对象进行跟踪。可见,通过仅对待处理视频中的第一视频帧进行目标检测,在有限的算力条件下保证了目标检测的精度,同时,利用运动矢量确定目标对象在除第一视频帧之外的第二视频帧中的位置,实现对目标对象的跟踪,兼顾了目标跟踪的实时性。
本说明书实施例中,如图1步骤S100所示的确定所述待处理视频中的第一视频帧和第二视频帧,具体可通过以下步骤实现。
首先,获取预先训练的目标检测模型的帧率,以及待处理视频的帧率。
由于在本说明书实施例中并不对待处理视频中的每个视频帧均进行目标检测,因此,采用的目标检测模型可以是现有目标检测模型中精度较高的模型。通常情况下,精度较高的目标检测模型的帧率远低于待处理视频的帧率。根据所述待处理视频的帧率以及预先训练的目标检测模型的帧率,确定抽帧的频率。
然后,根据所述待处理视频的帧率以及预先训练的目标检测模型的帧率,确定抽帧的频率。
最后,根据所述频率,对所述待处理视频进行抽帧,将抽取出的视频帧作为第一视频帧,将除第一视频帧之外的视频帧作为第二视频帧。
在实际应用中,为了进一步节约智能设备的算力,可在保证目标跟踪精度的情况下,进一步降低抽帧的频率。抽帧的频率可以根据具体应用场合确定,本说明书对此不做限定。
例如,待处理视频的帧率为50fps,即待处理视频中两个视频帧的间隔为20ms。预先训练的目标检测模型的帧率为10fps,即目标检测模型对一个视频帧进行目标检测的运行时间为100ms。对于智能设备中目标检测模型满负荷运行的情况,每5帧抽取一帧作为第一视频帧进行目标检测即可。对于节约智能设备算力的情况,即无需目标检测模型满负荷运行的情况,可每6帧抽取一帧作为第一视频帧进行目标检测,此时,由于每120ms才进行一次运行时间为100ms的目标检测,因此目标检测模型每120ms有20ms的空闲时间,节约了16%的算力。
本说明书实施例中,如图1步骤S102所示的确定所述待处理视频中各视频帧对应的运动矢量,具体通过以下步骤实现。
首先,将所述待处理视频进行多尺度调整,得到多个不同尺度的待处理视频。
具体的,为了避免小尺度的待处理视频中,覆盖像素块较少的目标对象在两个视频帧之间的位移无法被表征出来,将待处理视频进行多尺度调整,得到多个不同尺度的待处理视频,以便后续确定多个不同尺度的视频帧对应的运动矢量,从而能够完整的表征不同级别的目标对象的位移信息。
然后,针对每个尺度的待处理视频,将该尺度的待处理视频中各视频帧进行分割,得到该尺度的各视频帧的像素块。
最后,获取该尺度的各视频帧中每个像素块对应的运动矢量,作为该尺度的视频帧对应的运动矢量;一个视频帧中一个像素块对应的运动矢量用于表征该像素块从该视频帧到下一个视频帧的位移。
在实际应用中,由于视频数据量比较大,通常在智能设备中配置视频编码模块,对获取到的视频进行编码,以降低视频的数据量,然后通过有线或者无线网络将编码后的视频传输至服务器或用户端,再进行解码,能够降低传输过程中所需的网络带宽,并且减少视频的存储空间。
通常情况下,连续两个视频帧中的目标对象不会发生突然变化,因此可用时域上前一视频帧和/或后一视频帧的目标对象的位置来预测当前视频帧的目标对象的位置。其中,在视频编码的帧间预测过程中,可利用视频帧间的时域相关性,获取当前视频帧的运动矢量,以实现对视频帧进行压缩。
具体的,将待处理视频中的各视频帧分成若干互不重叠的像素块,并认为同一像素块内的所有像素的位移方向以及位移大小均相同。针对当前视频帧中的每个像素块,在当前视频帧的前一视频帧和/或后一视频帧的指定搜索范围内,根据预设的匹配规则,确定与该像素块最相似的像素块,即该像素块的匹配块。然后,根据该像素块以及该像素块对应的匹配块之间的位移确定该像素块的运动矢量。
本说明书实施例中,如图1步骤S102所示的通过预先训练的目标检测模型,对所述第一视频帧进行目标检测时,可以对多个不同尺度的第一视频帧进行目标检测,也可以只对多个不同尺度中的一个尺度的第一视频帧进行目标检测。
对于对多个不同尺度的第一视频帧进行目标检测的情况:通过预先训练的目标检测模型,对多个不同尺度的第一视频帧进行目标检测,可得到目标对象在多个不同尺度的第一视频帧中的位置。通过目标对象在多个不同尺度的第一视频帧中的位置,以及目标对象对应的运动矢量,可以确定目标对象在多个不同尺度的第二视频帧中的位置。
对于对多个不同尺度中的一个尺度的第一视频帧进行目标检测的情况:可以在多个不同尺度的第一视频帧中,选择预先训练的目标检测模型可检测的一个尺度的第一视频帧,采用预先训练的目标检测模型,对选择出的尺度的第一视频帧进行目标检测,确定目标对象在选择出的尺度的第一视频帧中的位置,以便后续根据多个不同等级的目标对象在选择出的尺度的第一视频帧中的位置,结合多个不同尺度的视频帧对应的运动矢量以及不同等级的目标对象对应的相对运动矢量,确定目标对象在多个不同尺度的第二视频帧中的位置,进而在多个不同的尺度中,将尺度最大的第二视频帧还原为原始尺度的第二视频帧,最终确定各级目标对象在所述原始尺度的第二视频帧中的位置。其中,在多个不同尺度中选择的一个尺度可以是预先训练的目标检测模型可以检测的任一尺度,本说明书对此不做限定。
本说明书实施例中,如图1步骤S104所示的在确定所述目标对象在所述第二视频帧中的位置时,需要确定所述第一视频帧中检测出的各目标对象之间的关系。其中,各目标对象之间可以具有相互独立的关系,也可以具有上下级关系。因此,本说明书实施例中采用的预先训练的目标检测模型在对第一视频帧进行目标检测时,可直接检测出所有的目标对象。
通常情况下,对于具有相互独立关系的多个目标对象,各目标对象在视频帧中覆盖的像素块相互独立、互不相交,如图2A所示的目标对象A1以及目标对象A2,可见,目标对象A1所覆盖的像素块和目标对象A1所覆盖的像素块互不相交,此时目标对象A1与目标对象A1相互独立;对于具有上下级关系的多个目标对象,上一级目标对象在视频帧中覆盖的像素块包括下一级目标对象在视频帧中覆盖的像素块,如图2B所示的目标对象B1以及目标对象B2,可见,目标对象B1所覆盖的像素块包括目标对象B2所覆盖的像素块,因此目标对象B1是目标对象B2的上一级目标对象。
如果所述第一视频帧中的目标对象包括具有上下级关系的多个目标对象,可针对每一级目标对象,在所述多个不同的尺度中,确定该级目标对象对应的指定尺度,其中,所述指定尺度的待处理视频中存在用于表征该级目标对象所覆盖的像素块对应的运动矢量,且所述指定尺度在所述多个不同的尺度中最小;所述指定尺度的待处理视频中用于表征该级目标对象所覆盖的像素块对应的运动矢量为:该级目标对象对应的指定运动矢量。
例如,如图2C所示的为第一视频帧进行目标检测后得到的目标对象C1、目标对象C2以及目标对象C3,其中,各目标对象之间的关系为:目标对象C3的上一级目标对象为目标对象C2,目标对象C2的上一级目标对象为目标对象C1。在尺度方面,尺度1小于尺度2,尺度2小于尺度3,可见,同一目标对象在不同尺度的视频帧中所覆盖的像素块均不相同,因此可能会出现同一级目标对象在不同尺度的视频帧中存在多个可表征该目标对象所覆盖的像素块对应的运动矢量,如在尺度1、尺度2以及尺度3的视频帧中,均存在目标对象C1所覆盖的像素块对应的运动矢量;也可能会出现目标对象在较小尺度的视频帧中不存在表征该目标对象所覆盖的像素块对应的运动矢量,如目标对象C2,在尺度1的视频帧中,由于目标对象C2所覆盖的像素块与尺度1的视频帧划分的像素块不匹配,因此在尺度1的视频帧中不存在目标对象C2对应的指定运动矢量,而将视频帧的尺度调整为尺度2后,即可获得目标对象C2对应的指定运动矢量。综上,在如图2C所示的视频帧中可确定,目标对象C1的指定尺度为尺度1、目标对象C2的指定尺度为尺度2、目标对象C3的指定尺度为尺度3。
本说明书实施例中,如图1步骤S104所示的根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置,可如图3所示,通过以下步骤实现:
S200:按照所述不同的尺度从小到大的顺序,依次选择当前尺度,确定第一视频帧中以选择出的当前尺度为指定尺度的目标对象,作为当前目标对象。
S202:根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置。
S204:判断是否存在未被选择的尺度。
若是,则执行步骤S200,否则执行步骤S206。
S206:在所述不同的尺度中,将尺度最大的第二视频帧还原为原始尺度的第二视频帧;其中,所述原始尺度包括获取的待处理视频的尺度;根据所述第一视频帧中的各级目标对象在尺度最大的第二视频帧中的位置,确定所述各级目标对象在所述原始尺度的第二视频帧中的位置。
在此步骤中,当判断不存在未被选择的尺度时,说明已经确定多个不同尺度中每个尺度的第二视频帧中目标对象的位置。由于各级目标对象之间具有上下级关系,每次在确定当前目标对象在对应的指定尺度的第二视频帧中的位置时,已经确定了当前目标对象的上一级目标对象在第二视频帧中的位置。因此,当在多个不同尺度中选择的当前尺度是最大尺度时,以最大尺度为指定尺度的当前目标对象是各级目标对象中最后一级目标对象,确定当前目标对象在最大尺度的第二视频帧中的位置,即确定了各级目标对象在最大尺度的第二视频帧中的位置,通过将尺度最大的第二视频帧还原为原始尺度的第二视频帧,确定所述各级目标对象在所述原始尺度的第二视频帧中的位置。
例如,如图4所示,为图2C中各级目标对象在对应的指定尺度的第一视频帧以及第二视频帧中的位置,可见,当选择的当前尺度为尺度1时,根据以尺度1为指定尺度的目标对象C1在尺度1的第一视频帧的位置以及目标对象C1的指定运动矢量,可以确定目标对象C1在尺度1的第二视频帧中的位置。然而,由于目标对象C1的下级目标对象,目标对象C2以及目标对象C3的指定尺度不是尺度1,因此,在尺度1的第二视频帧中,无法确定目标对象C2以及目标对象C3的位移,此时,在尺度1的第二视频帧中目标对象C2以及目标对象C3相对于目标对象C1的位置不变。以此类推,当在尺度3的第二视频帧中,可确定目标对象C1、目标对象C2以及目标对象C3的位置,此时,将尺度3的第二视频帧还原为原始尺度即可确定原始尺度的第二视频帧中确定目标对象C1、目标对象C2以及目标对象C3的位置。
本说明书实施例中,如图2步骤S202所示的根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置时,需要考虑当前目标对象的上一级目标对象在第二视频帧中的位置,对当前目标对象在第二视频帧中的位置的影响,如图5所示,具体通过以下步骤确定。
S300:判断所述当前目标对象是否具有上一级目标对象。若是,则执行步骤S304,否则,执行步骤S302。
由于具有上下级关系的各目标对象在两个视频帧之间的位移是具有相关性的,即,下一级目标对象的位移是限制在上一级目标对象的位移之内的。因此,可通过判断当前目标对象是否具有上一级目标对象,从而确定当前目标对象在下一视频帧(也就是第二视频帧)中的位置是否受上一级目标对象在第二视频帧中的位置的限制。
S302:根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置。
如果当前目标对象没有上一级目标对象,说明当前目标对象在第二视频帧中的位置不受其他目标对象的限制,因此仅根据当前目标在当前尺度的第一视频帧中的位置以及当前目标对象对应的指定运动矢量即可确定当前目标对象在当前尺度的第二视频帧中的位置。
S304:将所述当前目标对象的上一级目标对象在对应的指定尺度的第二视频帧中的位置,映射到所述当前目标对象对应的当前尺度的第二视频帧中,以确定所述当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置。
如果当前目标对象具有上一级目标对象,说明当前目标对象在第二视频帧中的位置可根据当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置确定。
S306:根据所述当前目标对象对应的指定运动矢量,以及所述当前目标对象的上一级目标对象对应的指定运动矢量,确定所述当前目标对象对应的相对运动矢量。
当前目标对象对应的相对运动矢量表征了当前目标对象在上一级目标对象内从当前尺度的当前视频帧到当前尺度的下一视频帧的位移,即当前目标对象对应的相对运动矢量表征了当前目标对象相对于上一级目标对象的位移。
S308:根据所述当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置以及所述当前目标对象对应的相对运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置。
结合当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置,以及当前目标对象相对当前目标对象的于上一级目标对象的位移,从而确定当前目标对象在当前尺度的第二视频帧中的位置。
例如,以图4中目标对象C2为例,对于尺度2为当前尺度的情况,在第一视频帧中以尺度2为当前尺度的当前目标对象为目标对象C2。由于目标对象C2存在上一级目标对象C1,因此,需要首先将目标对象C1在其对应的指定尺度,即尺度1中第二视频帧中的位置,映射到尺度2,如图6A所示。然后,如图6B所示,根据目标对象C1的指定运动矢量VM1以及目标对象C2的指定运动矢量VM2,确定目标对象C2的相对运动矢量VM3,以便表征目标对象C2从第一视频帧中的位置(虚线所示)到第二视频帧中的位置(实线所示),相对于目标对象C1的相对位移,根据尺度2的第二视频帧中目标对象C1的位置(实线所示),以及目标对象C2的相对运动矢量VM3,确定目标对象C2在尺度2的第二视频帧中的位置(实线所示)。需要说明的是,目标对象对应的指定运动矢量可表征目标对象在两个视频帧间位移的方向和大小,图6B中标注的运动矢量的具体大小和方向需要根据具体应用场景确定。
本说明书实施例中,如图1步骤S104所示的确定所述目标对象在所述第二视频帧中的位置时,还需要确定待处理视频中所述第二视频帧与所述第一视频帧的相邻关系,如图7所示,具体通过以下步骤确定。
S400:判断所述第二视频帧是否与所述第一视频帧相邻。若是,则执行步骤S402,否则执行步骤S404。
S402:根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置。
若第二视频帧与第一视频帧相邻,由于第一视频帧通过目标检测模型已经确定目标对象,因此可直接根据目标对象在第一视频帧中的位置,以及位于第一视频帧之后的第二视频帧对应的运动矢量,确定目标对象在第二视频帧中的位置。
可选地,对于第二视频帧与第一视频帧相邻的情况,可以是在待处理视频中,第二视频帧位于第一视频帧之前,此时,可根据具体应用场合,确定目标对象在该第二视频帧中的位置是根据目标对象在该第二视频帧的前一视频帧中的位置以及第二视频帧对应的运动矢量确定,还是根据目标对象在位于该第二视频帧之后的第一视频帧中的位置以及该第二视频帧对应的运动矢量确定。
S404:根据所述目标对象在所述第二视频帧的前一视频帧中的位置以及所述第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;其中,所述目标对象在所述第二视频帧的前一视频帧中的位置是根据第一视频帧以及所述第二视频帧的前一视频帧对应的运动矢量确定的。
若第二视频帧与第一视频帧不相邻,说明该第二视频帧的前后两个视频帧均不是第一视频帧,此时,可根据该第二视频帧的前一视频帧中目标对象的位置,以及该第二视频帧对应的运动矢量,确定目标对象在第二视频帧中的位置。
例如,如图8所示的待处理视频,在该待处理视频中,将视频帧1以及视频帧5作为第一视频帧,除第一视频帧之外的视频帧2~4均为第二视频帧。对于视频帧2,由于视频帧2的前一视频帧为视频帧1,因此可根据目标对象在视频帧1中的位置,以及视频帧2对应的运动矢量确定目标对象在视频帧2中的位置。对于视频帧4,由于视频帧4的后一视频帧为视频帧5,因此可根据目标对象在视频帧5中的位置,以及视频帧4对应的运动矢量,确定目标对象在视频帧4中的位置。对于视频帧3,由于视频帧3的前一视频帧以及后一视频帧均不是第一视频帧,即视频帧3与第一视频帧不相邻,此时,可根据视频帧2中目标对象的位置,以及视频帧3对应的运动矢量确定视频帧3中目标对象的位置。其中,目标对象在视频帧2中的位置是根据目标对象在视频帧1中的位置,以及视频帧2对应的运动矢量确定的。
以上为本说明书的一个或多个实施例提供的目标跟踪方法,基于同样的思路,本说明书还提供了相应的目标跟踪装置,如图9所示。图9为本说明书提供的一种目标跟踪装置示意图,具体包括:
视频帧确定模块500,用于获得待处理视频,并确定所述待处理视频中的第一视频帧和第二视频帧;
目标对象确定模块502,用于通过预先训练的目标检测模型,对所述第一视频帧进行目标检测,以确定所述第一视频帧中的目标对象,以及所述目标对象在所述第一视频帧中的位置;
运动矢量确定模块504,用于确定所述待处理视频中各视频帧对应的运动矢量;
位置确定模块506,用于根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;
跟踪模块508,用于根据所述目标对象在所述第一视频帧中的位置以及所述目标对象在所述第二视频帧中的位置,对所述目标对象进行跟踪。
可选地,所述视频帧确定模块500具体用于,根据所述待处理视频的帧率以及预先训练的目标检测模型的帧率,确定抽帧的频率;根据所述频率,对所述待处理视频进行抽帧,将抽取出的视频帧作为第一视频帧,将除第一视频帧之外的视频帧作为第二视频帧。
可选地,所述运动矢量确定模块504具体用于,将所述待处理视频进行多尺度调整,得到多个不同尺度的待处理视频;针对每个尺度的待处理视频,将该尺度的待处理视频中各视频帧进行分割,得到该尺度的各视频帧的像素块;并获取该尺度的各视频帧中每个像素块对应的运动矢量,作为该尺度的视频帧对应的运动矢量;一个视频帧中一个像素块对应的运动矢量用于表征该像素块从该视频帧到下一个视频帧的位移。
可选地,所述第一视频帧中的目标对象包括具有上下级关系的多个目标对象;其中,上一级目标对象在视频帧中覆盖的像素块包括下一级目标对象在视频帧中覆盖的像素块;针对每一级目标对象,在所述多个不同的尺度中,确定该级目标对象对应的指定尺度,其中,所述指定尺度的待处理视频中存在用于表征该级目标对象所覆盖的像素块对应的运动矢量,且所述指定尺度在所述多个不同的尺度中最小;所述指定尺度的待处理视频中用于表征该级目标对象所覆盖的像素块对应的运动矢量为:该级目标对象对应的指定运动矢量;
可选地,所述位置确定模块506具体用于,按照所述不同的尺度从小到大的顺序,依次选择当前尺度,确定第一视频帧中以选择出的当前尺度为指定尺度的目标对象,作为当前目标对象;根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置;若存在未被选择的尺度,则继续按照所述不同的尺度从小到大的顺序,依次选择当前尺度,并继续确定第一视频帧中以选择出的当前尺度为指定尺度的目标对象在第二视频帧中的位置,直至不存在未被选择的尺度。
可选地,所述位置确定模块506具体用于,若所述当前目标对象不具有上一级目标对象,根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置;若所述当前目标对象具有上一级目标对象,将所述当前目标对象的上一级目标对象在对应的指定尺度的第二视频帧中的位置,映射到所述当前目标对象对应的当前尺度的第二视频帧中,以确定所述当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置;根据所述当前目标对象对应的指定运动矢量,以及所述当前目标对象的上一级目标对象对应的指定运动矢量,确定所述当前目标对象对应的相对运动矢量;根据所述当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置以及所述当前目标对象对应的相对运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置。
可选地,所述位置确定模块506还用于,当不存在未被选择的尺度时,在所述不同的尺度中,将尺度最大的第二视频帧还原为原始尺度的第二视频帧;其中,所述原始尺度包括获取的待处理视频的尺度;根据所述第一视频帧中的各级目标对象在尺度最大的第二视频帧中的位置,确定所述各级目标对象在所述原始尺度的第二视频帧中的位置。
可选地,所述位置确定模块506具体用于,若所述第二视频帧与所述第一视频帧相邻,根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;
可选地,若所述第二视频帧与所述第一视频帧不相邻,所述位置确定模块506还用于,根据所述目标对象在所述第二视频帧的前一视频帧中的位置以及所述第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;其中,所述目标对象在所述第二视频帧的前一视频帧中的位置是根据所述目标对象在所述第一视频帧中的位置以及所述第二视频帧的前一视频帧对应的运动矢量确定的。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的目标跟踪方法。
本说明书还提供了图10所示的电子设备的示意结构图。如图10所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的目标跟踪方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种目标跟踪方法,其特征在于,包括:
获得待处理视频,并确定所述待处理视频中的第一视频帧和第二视频帧;
通过预先训练的目标检测模型,对所述第一视频帧进行目标检测,以确定所述第一视频帧中的目标对象,以及所述目标对象在所述第一视频帧中的位置;并确定所述待处理视频中各视频帧对应的运动矢量;
根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;
根据所述目标对象在所述第一视频帧中的位置以及所述目标对象在所述第二视频帧中的位置,对所述目标对象进行跟踪。
2.如权利要求1所述的方法,其特征在于,确定所述待处理视频中的第一视频帧和第二视频帧,具体包括:
根据所述待处理视频的帧率以及预先训练的目标检测模型的帧率,确定抽帧的频率;
根据所述频率,对所述待处理视频进行抽帧,将抽取出的视频帧作为第一视频帧,将除第一视频帧之外的视频帧作为第二视频帧。
3.如权利要求1所述的方法,其特征在于,确定所述待处理视频中各视频帧对应的运动矢量,具体包括:
将所述待处理视频进行多尺度调整,得到多个不同尺度的待处理视频;
针对每个尺度的待处理视频,将该尺度的待处理视频中各视频帧进行分割,得到该尺度的各视频帧的像素块;并获取该尺度的各视频帧中每个像素块对应的运动矢量,作为该尺度的视频帧对应的运动矢量;一个视频帧中一个像素块对应的运动矢量用于表征该像素块从该视频帧到下一个视频帧的位移。
4.如权利要求3所述的方法,其特征在于,所述第一视频帧中的目标对象包括具有上下级关系的多个目标对象;其中,上一级目标对象在视频帧中覆盖的像素块包括下一级目标对象在视频帧中覆盖的像素块;
针对每一级目标对象,在所述多个不同的尺度中,确定该级目标对象对应的指定尺度,其中,所述指定尺度的待处理视频中存在用于表征该级目标对象所覆盖的像素块对应的运动矢量,且所述指定尺度在所述多个不同的尺度中最小;所述指定尺度的待处理视频中用于表征该级目标对象所覆盖的像素块对应的运动矢量为:该级目标对象对应的指定运动矢量;
根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置,具体包括:
按照所述不同的尺度从小到大的顺序,依次选择当前尺度,确定第一视频帧中以选择出的当前尺度为指定尺度的目标对象,作为当前目标对象;
根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置;
若存在未被选择的尺度,则继续按照所述不同的尺度从小到大的顺序,依次选择当前尺度,并继续确定第一视频帧中以选择出的当前尺度为指定尺度的目标对象在第二视频帧中的位置,直至不存在未被选择的尺度。
5.如权利要求4所述的方法,其特征在于,根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置,具体包括:
若所述当前目标对象不具有上一级目标对象,根据所述当前目标对象在当前尺度的第一视频帧中的位置,以及所述当前目标对象对应的指定运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置;
若所述当前目标对象具有上一级目标对象,将所述当前目标对象的上一级目标对象在对应的指定尺度的第二视频帧中的位置,映射到所述当前目标对象对应的当前尺度的第二视频帧中,以确定所述当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置;
根据所述当前目标对象对应的指定运动矢量,以及所述当前目标对象的上一级目标对象对应的指定运动矢量,确定所述当前目标对象对应的相对运动矢量;
根据所述当前目标对象的上一级目标对象在当前尺度的第二视频帧中的位置以及所述当前目标对象对应的相对运动矢量,确定所述当前目标对象在当前尺度的第二视频帧中的位置。
6.如权利要求4所述的方法,其特征在于,所述方法还包括:
当不存在未被选择的尺度时,在所述不同的尺度中,将尺度最大的第二视频帧还原为原始尺度的第二视频帧;其中,所述原始尺度包括获取的待处理视频的尺度;
根据所述第一视频帧中的各级目标对象在尺度最大的第二视频帧中的位置,确定所述各级目标对象在所述原始尺度的第二视频帧中的位置。
7.如权利要求1所述的方法,其特征在于,根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置,具体包括:
若所述第二视频帧与所述第一视频帧相邻,根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;
若所述第二视频帧与所述第一视频帧不相邻,所述方法还包括:
根据所述目标对象在所述第二视频帧的前一视频帧中的位置以及所述第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;其中,所述目标对象在所述第二视频帧的前一视频帧中的位置是根据所述目标对象在所述第一视频帧中的位置以及所述第二视频帧的前一视频帧对应的运动矢量确定的。
8.一种目标跟踪装置,其特征在于,包括:
视频帧确定模块,用于获得待处理视频,并确定所述待处理视频中的第一视频帧和第二视频帧;
目标对象确定模块,用于通过预先训练的目标检测模型,对所述第一视频帧进行目标检测,以确定所述第一视频帧中的目标对象,以及所述目标对象在所述第一视频帧中的位置;
运动矢量确定模块,用于确定所述待处理视频中各视频帧对应的运动矢量;
位置确定模块,用于根据所述目标对象在第一视频帧中的位置以及所述待处理视频中位于所述第一视频帧之后的第二视频帧对应的运动矢量,确定所述目标对象在所述第二视频帧中的位置;
跟踪模块,用于根据所述目标对象在所述第一视频帧中的位置以及所述目标对象在所述第二视频帧中的位置,对所述目标对象进行跟踪。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210064828.8A CN114419093A (zh) | 2022-01-20 | 2022-01-20 | 一种目标跟踪方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210064828.8A CN114419093A (zh) | 2022-01-20 | 2022-01-20 | 一种目标跟踪方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114419093A true CN114419093A (zh) | 2022-04-29 |
Family
ID=81275856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210064828.8A Pending CN114419093A (zh) | 2022-01-20 | 2022-01-20 | 一种目标跟踪方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114419093A (zh) |
-
2022
- 2022-01-20 CN CN202210064828.8A patent/CN114419093A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109344789B (zh) | 人脸跟踪方法及装置 | |
CN108320296B (zh) | 一种视频中目标对象的检测跟踪方法、装置及设备 | |
CN112015847B (zh) | 一种障碍物的轨迹预测方法、装置、存储介质及电子设备 | |
CN111311634B (zh) | 一种人脸图像检测方法、装置及设备 | |
CN112465029A (zh) | 一种实例追踪的方法及装置 | |
CN112284394A (zh) | 一种地图构建及视觉定位的方法及装置 | |
CN111288971B (zh) | 一种视觉定位方法及装置 | |
CN109902588B (zh) | 一种手势识别方法、装置及计算机可读存储介质 | |
US20230162474A1 (en) | Method of processing image, method of training model, and electronic device | |
CN111126362A (zh) | 一种预测障碍物轨迹的方法及装置 | |
CN113112525A (zh) | 目标跟踪方法、网络模型及其训练方法、设备和介质 | |
CN118053153B (zh) | 一种点云数据的识别方法、装置、存储介质及电子设备 | |
CN112883871B (zh) | 一种模型训练以及确定无人车运动策略方法及装置 | |
CN117541963A (zh) | 包含文本风险的关键视频帧提取方法及装置 | |
CN112393723A (zh) | 一种定位方法、设备、介质及无人设备 | |
CN114419093A (zh) | 一种目标跟踪方法、装置、设备及存储介质 | |
CN112734851B (zh) | 一种位姿确定的方法以及装置 | |
CN116069801A (zh) | 一种交通视频结构化数据生成方法、装置及介质 | |
CN113673436A (zh) | 一种行为识别、模型训练的方法及装置 | |
CN114187355A (zh) | 一种图像标定方法及装置 | |
CN116310406B (zh) | 一种图像检测的方法、装置、存储介质及电子设备 | |
CN116152299B (zh) | 一种运动状态的检测方法、装置、存储介质及电子设备 | |
CN114528923B (zh) | 基于时域上下文的视频目标检测方法、装置、设备及介质 | |
CN117809025B (zh) | 基于注意力网络的目标跟踪方法、装置、设备及存储介质 | |
CN115546254A (zh) | 一种双进程多目标跟踪方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |