CN114387304A - 目标跟踪方法、计算机程序产品、存储介质及电子设备 - Google Patents
目标跟踪方法、计算机程序产品、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114387304A CN114387304A CN202111666704.9A CN202111666704A CN114387304A CN 114387304 A CN114387304 A CN 114387304A CN 202111666704 A CN202111666704 A CN 202111666704A CN 114387304 A CN114387304 A CN 114387304A
- Authority
- CN
- China
- Prior art keywords
- target
- frame
- feature
- similarity
- track
- 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
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及计算机视觉技术领域,提供一种目标跟踪方法、计算机程序产品、存储介质及电子设备。其中,目标跟踪方法包括:对待处理视频的当前帧进行目标检测,并根据得到的检测框确定当前帧中的每个目标的多模态特征,多模态特征包括位置特征、表观特征以及运动特征中的至少一类特征;根据当前帧中的每个目标的多模态特征和待处理视频当前可用的每个轨迹片段的多模态特征,对当前帧中的所有目标和当前可用的所有轨迹片段进行匹配。由于多模态特征从不同的角度对目标的属性进行了描述,因此可以更好地表达不同目标之间的区别以及同一目标之间的相似性,从而利用多模态特征进行目标匹配可以提高多目标跟踪的性能。
Description
技术领域
本发明涉及计算机视觉技术领域,具体而言,涉及一种目标跟踪方法、计算机程序产品、存储介质及电子设备。
背景技术
多目标跟踪(Multiple Object Tracking,简称MOT)任务是为了给视频中的多个目标各自指定唯一ID的过程,其在自动驾驶、医学诊断、视频监控领域具有广泛的应用场景。在现有技术中,通常利用单一的特征将一帧图像中的多个目标和该帧图像之前的多个轨迹片段(tracklet)之间关联起来,导致跟踪性能较差。
发明内容
本申请实施例的目的在于提供一种目标跟踪方法计算机程序产品、存储介质及电子设备,以改善上述技术问题。
为实现上述目的,本申请提供如下技术方案:
第一方面,本申请实施例提供一种目标跟踪方法,包括:对待处理视频的当前帧进行目标检测,并根据得到的检测框确定所述当前帧中的每个目标的多模态特征;其中,所述多模态特征包括位置特征、表观特征以及运动特征中的至少一类特征;根据所述当前帧中的每个目标的多模态特征和所述待处理视频当前可用的每个轨迹片段的多模态特征,对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配;其中,若所述当前帧中的一个目标与当前可用的一个轨迹片段匹配,则表明该目标与该轨迹片段对应的目标为同一目标。
上述方法基于当前帧中的目标的多模态特征和当前可用的轨迹片段的多模态特征,对当前帧中的目标(代表当前检测到的目标)和当前可用的轨迹片段(代表之前检测到的目标)进行匹配,由于多模态特征从不同的角度对目标的属性进行了描述,因此可以更好地表达不同目标之间的区别以及同一目标之间的相似性,从而利用多模态特征进行目标匹配可以提高多目标跟踪的性能。
第二方面,本申请实施例提供一种模型训练方法,包括:获取训练视频以及所述训练视频的第一标注信息;其中,所述第一标注信息包括:所述训练视频中的真实框以及所述真实框对应的目标ID;根据所述训练视频确定第二标注信息中的每个框对应的多模态特征,并结合所述第二标注信息中每个框对应的目标ID,得到所述训练视频的轨迹信息;其中,所述第二标注信息为所述第一标注信息,或者,通过执行以下步骤确定所述第二标注信息:对所述训练视频中的每帧进行目标检测,并将得到的检测框与该帧包含的真实框进行匹配,对于该帧中的每个真实框,若其与一个检测框匹配,则将所述第一标注信息中的该真实框替换为与其匹配的检测框,在处理完所有的帧后,得到所述第二标注信息;根据所述轨迹信息生成训练样本;根据所述训练样本训练本申请实施例提供的目标跟踪方法中使用的机器学习模型。
第三方面,本申请实施例提供一种目标跟踪装置,包括:特征提取模块,用于对待处理视频的当前帧进行目标检测,并根据得到的检测框确定所述当前帧中的每个目标的多模态特征;其中,所述多模态特征包括位置特征、表观特征以及运动特征中的至少一类特征;轨迹匹配模块,用于根据所述当前帧中的每个目标的多模态特征和所述待处理视频当前可用的每个轨迹片段的多模态特征,对所述当前帧中的所有目标和所有当前可用的轨迹片段进行匹配;其中,若所述当前帧中的一个目标与当前可用的一个轨迹片段匹配,则表明该目标与该轨迹片段对应的目标为同一目标。
第四方面,本申请实施例提供一种模型训练装置,包括:视频数据获取模块,用于获取训练视频以及所述训练视频的第一标注信息;其中,所述第一标注信息包括:所述训练视频中的真实框以及所述真实框对应的目标ID;轨迹信息获取模块,用于根据所述训练视频确定第二标注信息中的每个框对应的多模态特征,并结合所述第二标注信息中每个框对应的目标ID,得到所述训练视频的轨迹信息;其中,所述第二标注信息为所述第一标注信息,或者,通过执行以下步骤确定所述第二标注信息:对所述训练视频中的每帧进行目标检测,并将得到的检测框与该帧包含的真实框进行匹配,对于该帧中的每个真实框,若其与一个检测框匹配,则将所述第一标注信息中的该真实框替换为与其匹配的检测框,在处理完所有的帧后,得到所述第二标注信息;样本生成模块,用于根据所述轨迹信息生成训练样本;模型训练模块,用于根据所述训练样本训练第一方面的某些实现提供的方法中使用的机器学习模型。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面、第二方面或这两方面的任意一种可能的实现方式提供的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面、第二方面或这两方面的任意一种可能的实现方式提供的方法。
第七方面,本申请实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面、第二方面或这两方面的任意一种可能的实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种目标跟踪方法;
图2示出了本申请实施例提供的目标跟踪方法的工作原理;
图3示出了图2中的机器学习模型采用决策树模型(单棵决策树)时的情况;
图4示出了图2中的机器学习模型采用决策树模型(多棵决策树)时的情况;
图5示出了图2中的机器学习模型采用图神经网络模型时的情况;
图6示出了本申请实施例提供的一种模型训练方法;
图7示出了一种采用决策树模型时的样本获取方式;
图8示出了一种采用图神经网络模型时的样本获取方式;
图9示出了本申请实施例提供的一种目标跟踪装置;
图10示出了本申请实施例提供的一种模型训练装置;
图11示出了本申请实施例提供的一种电子设备。
具体实施方式
近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(Artificial Intelligence,简称AI)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图构建、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
本申请实施例中目标跟踪方法以及模型训练方法均属于计算机视觉技术范畴,其中的目标跟踪方法借助于当前帧中的目标的多模态特征和当前可用的轨迹片段的多模态特征对二者进行匹配,从而显著提升了多目标跟踪任务的性能,而其中的模型训练方法则用于训练目标跟踪方法的某些实现方式中所需的机器学习模型,为实现多目标跟踪提供必要的支持。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
目标跟踪任务的输入可以是一段视频,输出可以是视频的每一帧中的目标位置以及目标ID(当然,根据需求,输出内容也可以不同),不同帧中对应于同一ID的目标位置,形成了该目标在时间域上的运动轨迹,从而也就是在时间域对目标进行了跟踪。
本申请实施例中的目标跟踪方法可用于多目标跟踪场景,当然也可以应用于单目标跟踪场景,由于单目标跟踪可以视为多目标跟踪的一种特例,因此在后文的阐述时主要考虑目标为多个的情况。
从总体上看,本申请实施例中的目标跟踪方法是一种检测式跟踪方法,其大致工作过程为:首先,通过检测器作用在视频中的当前帧上,检测出多个感兴趣的目标;然后,通过特征提取器提取出每个当前目标的特征;最后,通过跟踪器根据当前目标和历史目标之间的特征相似度,确定各个当前目标和各个历史目标之间的关联关系,使得历史目标的轨迹得以延伸。
图1示出了本申请实施例提供的一种目标跟踪方法,该方法可以但不限于由图11示出的电子设备执行,关于该电子设备的具体结构可以参考后文的阐述。图2示出了图1中的目标跟踪方法的工作原理,供阐述图1时参考。参照图1,该目标跟踪方法包括:S110和S120。
步骤S110:对待处理视频的当前帧进行目标检测,并根据得到的检测框确定当前帧中的每个目标的多模态特征。
待处理视频可以是实时的视频流也可以是视频文件,待处理视频由有序的多帧图像构成。
当前帧可以是待处理视频中除第一帧以外的任意一帧,之所以排除第一帧,是因为在第一帧之前尚未开始目标跟踪,因此不存在任何轨迹片段(定义稍后阐述),所以针对第一帧只能执行步骤S110,不能执行步骤S120。但需要指出,针对第一帧执行步骤S110是有必要的,因为从第一帧中提取到的多模态特征在后续处理其他帧时会使用。
除第一帧以外的其他帧均可以执行步骤S110和S120,且每一帧在执行这些步骤时的处理逻辑是类似的,所以仅以当前帧为代表介绍其中一帧的处理逻辑。例如在图2中,当前帧为待处理视频的第t+1帧(t>0)。
应当理解,执行目标跟踪方法的各帧可以是待处理视频中连续的帧,也可以是待处理视频中间隔的帧,例如,为节约计算资源,可以从原始视频中每三帧取一帧执行目标跟踪方法的步骤。但为简单起见,后文中仅以不间隔取帧的情况为例进行阐述。
对当前帧进行目标检测可以采用任意的目标检测算法,例如YOLOv3、Mask-RCNN等,目标检测算法会输出当前帧中的多个检测框作为检测结果(这里为简单起见,仅以能够检测到目标的情况为例),每个检测框表示一个目标的位置,或者说每个检测框对应当前帧中的一个目标。例如在图2中,一共检测到了3个目标D1~D3(圆形),每个目标外部有一个矩形的检测框。
矩形的检测框可以有不同的表示方式,例如,可以用左上角顶点的坐标和右下角顶点的坐标来表示,可以用左上角顶点的坐标和框的宽高来表示,等等。
根据当前帧中的每个检测框的信息,可以提取出该检测框所对应的当前帧中的目标的多模态特征。所谓多模态特征,通俗理解就是多项不同特征,每项特征代表一种模态,即从一个角度对目标所具有的属性进行描述。相较于单一特征,多模态特征能够更加全面地勾勒出一个目标的全貌,从而更容易将不同的目标区分开来,因此有利于提高多目标跟踪的性能。
例如,多模态特征可以包括以下三类特征中至少两类(每类特征又可以包括一项或多项特征):
(1)目标的位置特征
目标的位置特征是指描述目标在图像中的位置的特征,目标的位置特征可以包括目标的检测框,由于检测框在目标检测的过程中已经得到,所以无需再另外提取。
(2)目标的表观特征
目标的表观特征是指描述目标的视觉属性的特征。表观特征可以包括ReID特征、目标朝向等。其中,将当前帧在检测框内的部分输入ReID模型(可以是一个神经网络模型),可以得到模型输出的ReID特征;将当前帧在检测框内的部分输入朝向预测模型(可以是一个神经网络模型),可以得到模型输出的目标朝向(每个朝向可以是一个类别)。
(3)目标的运动特征
目标的运动特征是指描述目标的运动属性的特征,运动特征可以包括运动角度、运动速度等。显然,仅靠当前帧一帧并不能得到目标的运动特征,必须要结合之前的帧进行分析。这里暂不阐述如何计算目标的运动特征,留待步骤S120再说明。
步骤S120:根据当前帧中的每个目标的多模态特征和待处理视频当前可用的每个轨迹片段的多模态特征,对当前帧中的所有目标和当前可用的所有轨迹片段进行匹配。
先说明轨迹和轨迹片段的定义:
例如,待处理视频共有100帧,目标a出现在其中的第1~30帧,则可以将第1~30帧中目标a的检测框按时间顺序排列后形成的有序集合定义为目标a的轨迹。当然,轨迹中还可能包含更丰富的信息,例如,目标a的ID、各个检测框所在的帧号(待处理视频中的帧号)、各个检测框对应的多模态特征等信息中的一项或多项。轨迹是目标跟踪的结果,目标跟踪方法在处理完待处理视频中的所有帧后,(理想情况下)将得到待处理视频中包含的所有轨迹。
其中,“检测框对应的多模态特征”就是指检测框所对应的目标的多模态特征,例如在步骤S110,当前帧中的检测框对应的多模态特征和当前帧中的目标的多模态特征是两个等价的概念。不过需要注意,目标在待处理视频中可能会持续多帧,在不同的视频帧中,对应于同一目标的检测框,其多模态特征也很可能是不同的,或者说上述“目标的多模态特征”应当理解为特定帧(检测框所在的帧)中目标的多模态特征。在后文的阐述中,根据场合的不同,可能会混合使用“检测框对应的多模态特征”和“目标的多模态特征”这两个概念。
轨迹片段是指轨迹的一部分(当然,整条轨迹自身也是一个轨迹片段),例如,可以将第26~30帧中目标a的检测框按时间顺序排列后形成的有序集合定义为目标a的一个轨迹片段。轨迹片段可以从轨迹中截取得到,至于轨迹片段的长度则可以根据需求确定。类似于轨迹,轨迹片段中也可能包含更丰富的信息,例如,目标a的ID、各个检测框所在的帧号、各个检测框对应的多模态特征等信息中的一项或多项。
再继续说明轨迹片段的多模态特征:
轨迹片段的多模态特征是指轨迹片段对应的目标的多模态特征,其含义与上面介绍的检测框对应的多模态特征类似。由于轨迹片段可视为一系列检测框的集合,而每个检测框对应的多模态特征可以根据检测框信息确定(方法参考步骤S110),因此例如,一个4帧的轨迹片段(包含4个检测框)将会对应4组多模态特征。
在一些实现方式中,可以根据这4组多模态特征计算轨迹片段的多模态特征:例如,可以取4组多模态特征的均值作为轨迹片段的多模态特征(对应项特征分别取均值,比如取4个检测框的均值作为轨迹片段对应的检测框),可以取4组多模态特征中的最后一组特征作为轨迹片段的多模态特征,可以取4组多模态特征中的最后K组(4>K>1)特征的均值作为轨迹片段的多模态特征,等等。
可见,要确定轨迹片段的多模态特征,关键是要确定该轨迹片段中的一个或多个检测框对应的多模态特征。例如,一个4帧的轨迹片段,假设其多模态特征直接采用其中的第4个检测框对应的多模态特征,关于该检测框对应的位置特征和表观特征,获取方式和前面介绍的类似,关于该检测框对应的运动特征,可以采用如下的计算方法:
分别取轨迹片段中第3个检测框和第4个检测框的中心,根据这两个中心的坐标可以计算出一个运动矢量,该运动矢量的方向角就是目标的运动角度,该运动矢量的模除以相邻两帧之间的间隔时间就是目标的运动速度。
当然,该检测框对应的运动特征还存在其他计算方式:比如,分别取轨迹片段中第1个检测框和4个检测框的中心,根据这两个中心的坐标可以计算出一个运动矢量,该运动矢量的方向角就是目标的运动角度,该运动矢量的模除以第1帧和第4帧之间的间隔时间就是目标的运动速度。
又比如,分别取轨迹片段中第1~4个检测框的中心,根据其中任意两个相邻中心的坐标可以计算出一个运动矢量(方法如前所述),这样一共可以算出3个运动矢量,可以计算这3个运动矢量的平均矢量,该平均矢量的方向角就是目标的运动角度,该平均矢量的模除以相邻两帧之间的间隔时间就是目标的运动速度。
由于对每一帧都会执行目标跟踪方法(严格来说第一帧未执行,但可以将第一帧的目标检测结果视为目标跟踪结果),所以在处理当前帧之前,已经形成了若干条轨迹,目标跟踪的核心操作就是要设法将当前帧中的目标(代表当前检测到的目标)和这些轨迹(代表历史检测到的目标)进行关联,从而拓展轨迹的长度。关联的基本方法是评估当前帧中的目标和轨迹之间的特征相似度(即当前帧中的目标的特征和轨迹的特征之间的相似程度),然而,一条轨迹可能会持续很长时间,这可能会导致评估相似度所需的运算量过大,并且在一些场景中,目标在太早之前的状态对当前帧的目标跟踪也起不到多大的帮助,所以可以对上述基本方法进行简化,只需评估当前帧中的目标和当前可用的轨迹片段之间的特征相似度(即当前帧中的目标的特征和当前可用的轨迹片段的特征之间的相似程度)即可。
在一些实施例中,当前可用的轨迹片段可以这样理解:这些轨迹片段的最后一帧一直持续到当前帧的前一帧或者距离当前帧很近的位置(是否“很近”可以通过阈值判断),也就是说这些轨迹片段代表的目标近期仍然位于画面中并处于可见状态,从而可以和当前帧中的目标进行关联。否则,比如一条轨迹持续到第20帧就结束了,而当前帧是第100帧,则大概率该轨迹所对应的目标已经不在画面中或者已经被完全遮挡住,所以没有必要将这条轨迹与当前帧中的目标进行关联,这条轨迹中也不包含任何当前可用的轨迹片段。
参照图2,当前帧为第t+1帧,可以设定一个截断阈值k(k>1),对于在第1~t帧中已经跟踪到的所有轨迹,截取其位于第t-k~t帧之间的部分作为当前可用的轨迹片段。例如,假定t=50,k=3,轨迹L1持续的帧数为第21~49帧,则轨迹L1中可以截取出一个当前可用的轨迹片段L1[47:49],简记为t1,如图2所示(一个圆圈表示一帧);轨迹L2持续的帧数为第35~50帧,则轨迹L2中可以截取出一个当前可用的轨迹片段L2[47:50],简记为t2,如图2所示;轨迹L3持续的帧数为第15~30帧,则轨迹L3中无法截取出当前可用的轨迹片段。
图2中得到的当前可用的轨迹片段,其最后一帧与当前帧之间的距离不超过k+1帧,且这些轨迹片段自身的长度也不超过k+1帧。可以理解的,当前可用的轨迹片段也可以通过其他方式截取得到:例如,对于在第1~t帧中已经跟踪到的所有轨迹,判断其是否存在位于第t-k~t帧之间的部分,若存在,就截取其末尾的k’帧(k’≥1)作为当前可用的轨迹片段。比如,仍然假定t=50,k=3,k’=5,轨迹L4持续的帧数为第21~47帧,则轨迹L4中可以截取出一个当前可用的轨迹片段L4[43:47];轨迹L5持续的帧数为第46~48帧,则轨迹L5中可以截取出一个当前可用的轨迹片段L4[46:48](轨迹L5目前的长度还不到k’,所以只能尽量截取)。
另外,上面在引出“当前可用的轨迹片段”这一概念时,预置了用完整轨迹评估相似度所需的运算量过大、目标在太早之前的状态对当前帧的目标跟踪也起不到多大的帮助等假设,但这些假设也并非总是成立,因此,也可以对“当前可用的轨迹片段”作更宽泛的理解,凡是按照既定逻辑可以参与步骤S120中的匹配操作的轨迹片段都属于“当前可用的轨迹片段”,例如,可以将当前已经跟踪到的所有完整轨迹都认为是“当前可用的轨迹片段”(根据前文阐述,轨迹自身也可以视为一个轨迹片段);又例如,对于当前已经跟踪到的所有完整轨迹,从每条轨迹中一个轨迹片段(无论该轨迹片段是否接近当前帧)作为“当前可用的轨迹片段”,等等。
上面已经介绍了如何计算当前帧中的目标的多模态特征(运动特征的计算暂未介绍)以及如何计算轨迹片段的多模态特征,而当前可用的轨迹片段只不过是一种特殊的轨迹片段,要计算其多模态特征,只需先获得轨迹片段中的一个或多个检测框对应的多模态特征,而根据前文可知,针对待处理视频的每一帧至少都会执行步骤S110,所以每一帧中的所有检测框对应的多模态特征都是可以获得的,所以当前可用的轨迹片段的多模态特征是可以计算的。既然当前帧中的目标的多模态特征和当前可用的轨迹片段的多模态特征都能够计算,所以在二者之间进行特征相似度的评估也是可行的。
将一个当前帧中的目标和一个当前可用的轨迹片段定义为一个组合,若当前帧中的目标有M个(M≥1),当前可用的轨迹片段有N个(N≥1),则可能产生的组合共有M×N个。例如,在图2中,M=3,N=2。一个组合中的目标和轨迹片段之间的特征相似度可以进行量化表示,例如,可以为区间[0,1]中的数值,相似度越大,表示二者的特征相似程度越高,二者越有可能对应的是同一个目标。
在一些实现方式中,当前帧对应的所有组合的相似度排列后可以形成一个矩阵,称为相似性矩阵,例如,在图2中,矩阵的每一行对应一个当前可用的轨迹片段,矩阵的每一列对应一个当前帧中的目标,矩阵的每个元素为其所在行列对应的组合的相似度。在定义了相似性矩阵以后,评估当前帧中的目标和当前可用的轨迹片段之间的特征相似度就可以等价于计算当前帧对应的相似性矩阵。
应当理解,当前帧中的每个组合的相似度在计算完成后并不一定要排列为相似性矩阵的形式,但在后文中为简单起见,主要以相似度排列为相似性矩阵为的情况例,因为某些匹配算法(例如,后文会提到的匈牙利匹配算法)在矩阵上应用起来会比较方便。后文中有关计算相似度矩阵的方法,对于相似度不排列为矩阵的情况也是同样适用的。
在一些实现方式中,计算相似性矩阵可以利用机器学习模型,所谓机器学习模型可以定义为能够在训练过程中自主学习训练数据中所蕴含的规律的模型,其具体是何种模型不作限定,例如,可以是后文提到的决策树模型、图神经网络模型,也可以是支持向量机模型、多层感知机等。应当理解,在执行步骤S120之前,机器学习模型已经训练好,关于机器学习模型的训练,后文再详细阐述。
利用机器学习模型计算相似性矩阵至少有两种方式:第一种方式是将当前帧中的目标的多模态特征和当前可用的轨迹片段的多模态特征直接或进行某些处理后输入机器学习模型,利用机器学习模型每次计算一个组合的相似度,直至计算完当前帧可能产生的所有组合的相似度;第二种方式是将当前帧中的目标的多模态特征和当前可用的轨迹片段的多模态特征直接或进行某些处理后输入机器学习模型,利用机器学习模型直接计算出整个相似性矩阵(即当前帧可能产生的所有组合的相似度)。在后文中,主要介绍第一种方式。
需要注意的是,虽然一个相似度代表一个组合中的目标和轨迹片段之间的特征相似程度,但一个相似度并不一定仅根据其对应的目标的多模态特征和轨迹片段的多模态特征进行计算,这取决于所采用的机器学习模型。通过后文内容可知,在采用决策树模型时,一个相似度确实仅根据其对应的目标的多模态特征和轨迹片段的多模态特征就可以计算,但在采用图神经网络模型时,一个相似度则要利用当前帧中所有目标的多模态特征,以及所有当前可用的轨迹片段的多模态特征才能计算。
在另一些实现方式中,计算相似性矩阵也可以不使用机器学习模型,而改为使用预设的计算规则,其计算效率会比较高。例如,已知一个组合中目标的多模态特征和轨迹片段的多模态特征,计算目标的每项特征和轨迹片段的对应项特征之间的相似性分数(计算方式参考后文步骤A1),然后对这些相似性分数进行加权求和,就可以得到该组合对应的相似度。在计算相似度之前,还有一个遗留问题需要解决,即步骤S110中计算当前帧中的目标的运动特征的问题,一种可能的计算方式如下:
对于待计算的目标,取其在当前帧中对应的检测框的中心,再取某个当前可用的轨迹片段中最后一个检测框的中心,根据这两个中心的坐标可以计算出一个运动矢量,该运动矢量的方向角就是目标的运动角度,该运动矢量的模除以两个检测框所在帧之间的间隔时间就是目标的运动速度。
不难看出,当前帧中的目标的运动特征在计算方式上和前面介绍的轨迹片段中的检测框对应的运动特征非常相似。从而,对于运动特征的其他计算方式,可以参考前文,不再详细说明。
特别地,对于待处理视频的第一帧中的目标,无法利用上述方法计算运动特征,其运动特征可以取默认值,例如,目标的运动速度为0,目标的运动角度为0度。
需要注意,上面的计算过程并未明确到底选择哪个当前可用的轨迹片段,这其实和计算相似度的方法有关。以采用机器学习模型计算目标和轨迹片段之间的相似度的情况为例,若机器学习模型采用决策树模型,则需要选择所有当前可用的轨迹片段,并分别在当前帧中的每个目标与这些轨迹片段之间计算运动特征;若机器学习模型采用图神经网络模型,则不需要计算当前帧中的目标的运动特征,详见后文阐述。
可以理解的,由于在执行步骤S120时并不知道当前帧中的目标到底和哪个当前可用的轨迹片段对应同一目标,所以并不能保证恰好选出对应于同一目标的轨迹片段用于运动特征的计算。换句话说,选择不同的轨迹片段,计算出的当前帧中的目标的运动特征也不同,但这种差异性恰好在一定程度上为判断目标和轨迹片段在特征上是否相似提供了依据。
步骤S120中的所谓匹配,就是要将当前帧中的所有目标与当前可用的所有轨迹片段进行配对(这里的一对就是指前面提到的一个组合),步骤S120并不限定进行匹配的方法:
例如,可以按照如下匹配条件进行匹配:使匹配后所产生的各个组合的相似度之和最大,比如在图2中,通过对相似性矩阵应用匈牙利算法进行匹配,检测框D1与轨迹片段t2匹配、检测框D3与轨迹片段t1匹配可满足上述匹配条件。上述匈牙利算法还可以替换为穷举法、贪婪算法、图算法等(匹配条件也可以相应调整)。
又例如,可以对上面例子中的匹配条件施加进一步限定:直接匹配所产生的组合的相似度必须达到或超过某一阈值才算匹配成功,等等。
根据匹配结果,可以执行以下处理逻辑以确定当前帧的目标跟踪结果:
若一个当前帧中的目标与一个当前可用的轨迹片段匹配,则表明二者对应于同一目标(指按照本方法的逻辑对应于同一目标,不代表真实情况),从而可以将该目标对应的检测框加入到该轨迹片段所在的轨迹中(例如,为该目标对应的检测框分配一个与轨迹片段相同的目标ID),以实现当前帧中的目标与已有轨迹的关联。其中,更新后的轨迹可视为当前帧的目标跟踪结果。
若一个当前帧中的目标与所有当前可用的轨迹片段都不匹配,则表明该目标是当前帧新出现的,需要为其创建一条新的轨迹(例如,为该目标对应的检测框分配一个新的目标ID),并将该检测框作为该新轨迹中的第一个检测框。其中,新创建的轨迹可视为当前帧的目标跟踪结果。例如,图2中的当前帧包括3个目标,但当前可用的轨迹片段只有2个,必然会产生一个无法匹配成功的目标,假设是目标D2,则可针对目标D2创建一条新的轨迹。
可以理解的,根据匹配结果还可以执行其他处理逻辑以得到当前帧的目标跟踪结果,这里不再逐一举例说明。
另外,上面在介绍步骤S120时,默认了先要计算当前帧中对应的所有组合的相似度,才能对当前帧中的所有目标与当前可用的所有轨迹片段进行匹配。然而,也存在其他的实现方式,只需要计算当前帧中对应的部分组合的相似度即可完成后续的匹配操作:例如,若通过预设的规则判断出某些组合中的目标和轨迹片段明显无法形成配对(比如,在某个组合中,目标对应的检测框尺寸很大,但轨迹片段对应的检测框尺寸却很小),则这样的组合无需计算相似度,也无需参与后续的匹配。
简单总结上述目标跟踪方法:在上述方法中,基于当前帧中的目标的多模态特征和当前可用的轨迹片段的多模态特征,对当前帧中的目标和当前可用的轨迹片段进行匹配,由于多模态特征从不同的角度对目标的属性进行了描述,因此可以更好地表达不同目标之间的区别以及同一目标之间的相似性,从而利用多模态特征进行目标匹配可以提高多目标跟踪的性能。
进一步的,该方法的某些实现方式使用机器学习模型来预测当前帧中的目标和当前可用的轨迹片段之间的相似度,进而根据由相似度构成的相似性矩阵将前帧中的目标和当前可用的轨迹片段匹配起来,由于机器学习模型的参数是从训练数据中学习得到的,并且机器学习模型具有良好的泛化能力,所以其对于相似度的预测具有较高的精度,进而可以显著提高多目标跟踪的性能。
下面,在以上实施例的基础上,分别介绍在机器学习模型为决策树模型和图神经网络模型时,如何实现步骤S120,并默认在步骤S120中会计算相似性矩阵。在阐述时为简单起见,默认在没有特别说明时,“目标”均指当前帧中的目标,“轨迹片段”均指当前可用的轨迹片段:
A.机器学习模型为决策树模型
步骤S120可以实现为一个迭代过程,即遍历当前帧对应的所有组合(包括一个目标和一个轨迹片段),对于每个组合执行以下步骤:
步骤A1:计算组合中的目标的每项特征和轨迹片段的对应项特征之间的相似性分数,得到由全部的相似性分数构成的相似性向量。
步骤A2:将相似性向量输入决策树模型,得到组合中的目标和轨迹片段之间的相似度。
遍历完成后,相似性矩阵中的相似度也就计算完毕了。可选的,相似性分数、相似度均可以为区间[0,1]中的数值。
上述步骤A1和步骤A2可以参考图3的上部,多模态特征包括两项,分别是F1和F2,从而对于组合(D1,t1),利用目标D1的F1和轨迹片段t1的F1可以计算出一个相似性分数0.2,利用目标D1的F2和轨迹片段t1的F2可以计算出另一个相似性分数0.3,进而得到相似性向量(0.2,0.3),将该相似性向量输入决策树模型,可以得到决策树模型输出的相似度0.3。类似的,对于图2中可能产生的组合(D1,t2)、(D2,t1)、(D2,t2)、(D3,t1)、(D3,t2),利用决策树模型可以分别计算出相似度0.6、0.5、0.4、0.8、0.1,这些相似度即可构成图2所示的相似性矩阵。图4的上部示出了另一个多模态特征包括F1~F4共四项的例子,不再重复阐述。
对于步骤A1,例如,多模态特征包括检测框、ReID特征、运动角度共三项特征,则可以计算出三个相似性分数,进而得到一个三维的相似性向量。其中,对于组合中的目标对应的检测框和轨迹片段的对应的检测框,可以将两个矩形框的交并比(Intersection overUnion,简称IoU)作为相似性分数;对于组合中的目标的ReID特征和轨迹片段的ReID特征,可以将两个特征向量的余弦值作为相似性分数;对于组合中的目标的运动角度和轨迹片段的运动角度,可以将两个角度所形成的夹角的余弦值作为相似性分数。针对其余特征的相似性分数可以采用类似的计算方法,不再逐一说明。
需要指出的是,之前在介绍步骤S120时,曾经提到过目标的运动特征的计算问题,并指出要计算目标的运动特征需要先选定一个与目标对应的轨迹片段。对于机器学习模型采用决策树模型的方案,由于每次根据一个组合中的多模态特征计算相似性向量,所以相当于为目标选定了一个与其对应的轨迹片段,从而可以应用之前介绍的方法计算目标的运动特征。
对于步骤A2,决策树模型可以定义为至少包括一棵决策树的模型,但不排除决策树模型中还包含有除决策树以外的其他组件。决策树从其用途上来说可以分为分类树和回归树两类,分类树的输出是离散的数值(代表类别),而回归树的输出是连续的数值,不妨以相似度是连续的数值的情况为例,此时决策树模型中可以采用回归树。模型中决策树的结构和参数在训练阶段均已确定,关于决策树模型的训练可以参考后文阐述。
下面分别阐述决策树模型仅包含一棵决策树与包含多棵决策树时的实现方式:
(1)决策树模型仅包含一棵决策树
若步骤A1得到的相似性向量为n维向量(n>1),则该向量属于一个n维空间V,决策树的根节点根据其训练得到的参数对空间V进行划分,划分得到的每个子空间对应根节点的一棵子树,每棵子树的根节点继续根据其训练得到的参数对该子树对应的子空间进行划分,以此类推,决策树的每个非叶子节点都根据其训练得到的参数进行子空间划分,直至在抵达决策树的叶子节点时停止划分。决策树的所有叶子节点构成了决策树对空间V的最终划分结果,即每个叶子节点对应V的一个子空间,这些子空间相互之间不重叠。并且,决策树的每个叶子节点还对应一个输出数值,该数值可以在决策树的训练阶段根据训练样本进行计算。例如,在决策树的训练阶段,可以对所有落入某个叶子节点对应的子空间的相似性向量计算均值或加权均值,并将最终得到一个数值作为该叶子节点对应的输出数值。
不妨以决策树采用二叉树的情况为例,参照图3,图3中n=2,2维空间V(即平面V)的两个维度分别用变量x1和x2表示,图3下部右侧为所构建的决策树,左侧为该决策树对平面V的划分情况,具体为:
节点1根据其针对x1的参数0.35将平面V划分为2个区域,分别是对应左子树的区域V{x1≤0.35},对应右子树的区域V{x1>0.35};
节点2根据其针对x2的参数0.5将区域V{x1≤0.35}划分为2个区域,分别是对应左子树(即节点4)的区域R1=V{x1≤0.35,x2≤0.5},对应右子树(即节点5)的区域R2=V{x1≤0.35,x2>0.5};
节点3根据其针对x1的参数0.5将区域V{x1>0.35}划分为2个区域,分别是对应左子树(即节点6)的区域R3=V{0.35<x1≤0.5},对应右子树的区域V{x1>0.5};
节点7根据其针对x2的参数0.72将区域V{x1>0.5}划分为2个区域,分别是对应左子树(即节点8)的区域R4=V{x1>0.5,x2≤0.72},对应右子树(即节点9)的区域R5=V{x1>0.5,x2>0.72}。
最终,平面V被决策树划分为5个不重叠的区域R1~R5,并且每个区域对应一个相似度,分别是0.3、0.41、0.44、0.58、0.86。
在使用决策树时,只需从根节点开始,将相似性向量中各维度的数值不断地与决策树中非叶子节点的参数进行比较,并根据比较结果确定相似性向量属于非叶子节点所划分出的哪个子空间,进而找到该子空间对应的子树递归地进行比较,直至相似性向量落入决策树的某个叶子节点所对应的子空间时停止比较,该叶子节点对应的输出数值就是决策树针对相似性向量输出的相似度。其中,将相似性向量与决策树中非叶子节点的参数进行比较的过程决定了要沿着决策树中的哪条路径到达决策树的哪个叶子节点,从而也就是决策树的决策过程。
仍然参考图3,若步骤A1中算出的相似性向量为(0.2,0.3),则首先将0.2与节点1针对x1的参数0.35比较,由于0.2<0.35,所以相似性向量属于区域V{x1≤0.35},该区域对应节点1的左子树,树根为节点2;继续将0.3与节点2针对x2的参数0.5比较,由于0.3<0.5,所以相似性向量属于区域V{x1≤0.35,x2≤0.5},也就是R1,该区域对应叶子节点4,从而决策树此时的输出为0.3。
(2)决策树模型包含多棵决策树
不妨假设决策树共有m棵(m>1),这m棵树是有序的,按照编号1~m的顺序依次排列,如图4下部所示。每一颗决策树的结构与上面介绍的类似。其中仅有决策树1用于直接预测组合的相似度,决策树2~m均用于预测排列顺序在自身之前的所有决策树输出的预测结果之和与真实相似度的残差:例如,决策树2用于预测决策树1输出的预测结果与真实相似度的残差,决策树3用于预测决策树1、2输出的预测结果之和与真实相似度的残差,以此类推。其中,对于一个组合中的目标和轨迹片段,若二者对应于同一目标,则真实相似度可以取1,否则真实相似度可以取0。根据这m棵决策树的构造方式可知,m棵决策树的预测结果之和也是对真实相似度的预测。
对于由m棵决策树构成的决策树模型,在步骤A2中可以将相似性向量分别输入到每棵决策树模型中,分别得到决策树模型的输出的预测结果,在图4中表示为Y1~Ym,将这些预测结果相加就可以得到要计算的相似度,例如在图4中,对于组合(D1,t1)算出的相似度为0.3。
下面简单总结决策树模型的作用:步骤A1计算出的相似性向量虽然在某种程度上也描述了目标与轨迹片段之间的特征相似程度,但这种描述是粗浅的,在步骤A2中利用决策树模型,根据相似性向量的各个维度的数值进行综合决策,最终预测出的相似度才能够比较准确地表达目标与轨迹片段之间的特征相似程度。并且,由于决策树采用的判断规则并非人为制定,而是从训练数据中学习得到的,从而其对于相似度的预测具有较高的精度,进而有利于提高多目标跟踪的性能。
比较决策树模型的(1)(2)两种实现方式,采用单棵决策树逻辑更简单,执行效率也更高。但采用多棵决策树代替单棵决策树进行学习,然后将多棵决策树的学习结果组合起来进行相似度的预测,一方面降低了单棵树学习的难度,一方面也有利于提高相似度的预测精度,至于决策树的数量可以根据某些算法事先确定好。
B.机器学习模型为图神经网络模型
图神经网络模型是指至少包括一个图神经网络的模型,当然图神经网络模型还可以包括其他组件,例如后面会提到的多层感知机、边特征分类器等。参照图5,图神经网络模型从总体上可以分为两部分,其中第一部分用于执行下面的步骤B1,第二部分用于执行下面的步骤B2~B4,第一部分可以采用图神经网络也可以不采用图神经网络,第二部分则需要采用图神经网络。下面具体介绍步骤S120可以进一步包括的三个子步骤:
步骤B1:分别对每个目标的多模态特征进行融合,得到每个目标的特征向量,以及,分别对每个轨迹片段的多模态特征进行融合,得到每个轨迹片段的特征向量。
其中,融合泛指对多项特征(即多模态特征)进行某种将其整合为特征向量的操作,特征的融合有利于增强特征的表达能力,并简化特征的表达形式。例如,直接将一个目标的多项特征拼接为一个特征向量也是一种融合操作,但这种融合方式比较生硬,融合后的特征向量中各项特征仍然是孤立的,并未发生任何交互,所以此种融合虽然可行,但效果一般。
为简单起见,下面在阐述步骤B1时不妨认为每个目标进行特征融合的方式都相同,并且每个轨迹片段进行特征融合的方式都相同,并且目标的特征融合方式与轨迹片段的特征融合方式也相同(具体实施时都可以不同),从而,只需要介绍对一个目标如何进行特征融合就可以了。
下面先介绍如何利用局部图神经网络和多层感知机实现一个目标的特征融合,再说明步骤B1中可能采用的其他特征融合方式。参照图5,局部图神经网络和多层感知机都属于图神经网络模型的第一部分。步骤B1可以进一步包括:
步骤B11:将目标的每项特征作为局部图神经网络中对应节点的初始特征,利用局部图神经网络的特征更新函数对节点的特征以及节点之间的边的特征进行迭代更新,得到局部图神经网络中节点的最终特征。
本申请实施例中使用的图神经网络主要包括两部分:一部分是图结构,图结构中包括节点和连接节点的边,节点和边都具有自己的特征;另一部分是特征更新函数,特征更新函数中包含可学习的参数,特征更新函数负责对节点的特征和边的特征进行更新,这种更新是迭代执行的,开始迭代之前节点具有的特征称为节点的初始特征、边具有的特征称为边的初始特征,迭代结束之后节点具有的特征称为节点的最终特征、边具有的特征称为边的最终特征。
步骤B11中提到的局部图神经网络以及后文将会介绍的全局图神经网络都符合上面对图神经网络的描述,只是局部图神经网络处理的对象是单个的目标或轨迹片段,全局图神经网络处理的对象是所有的目标和所有的轨迹片段。
局部图神经网络的图结构包括:对应于目标的每项特征的节点以及任意两个节点之间的边。例如,参照图5,目标D1的多模态特征共有4项(D2、D3、t1、t2也是一样),分别是F1~F4,因此局部图神经网络的图结构也相应地包括4个节点,这4个节点之间的任意两个节点之间都连接有边,即它们是全连接的,这些节点之间的边建模了不同模态的特征之间的关联关系。
应当理解,目标的多模态特征中包括几项特征是可以事先确定下来的,所以局部图神经网络的图结构也可以在执行步骤B11之前就构建好并且一直使用,不用每进行一个目标或者轨迹片段的特征融合就执行一次。
可以直接将目标的每项特征作为局部图神经网络中对应节点的初始特征,但考虑到目标的每项特征可能具有不同的维度(例如,目标这项特征可能包含4个数值,目标朝向这项特征可能只包含1个数值),所以也可以先通过一个映射函数G将各项特征对齐后,再将对齐后的特征作为局部图神经网络中对应节点的初始特征。例如,参照图5,对齐后的特征hi和原始的特征Fi的关系可以是hi=G(Fi)(i=1,2,3,4),对齐后的特征h1~h4分别作为了局部图神经网络中的4个节点的初始特征。
不过需要指出,由于局部图神经网络单独处理每个目标或轨迹片段,而非处理目标和轨迹片段的组合,所以无法采用之前在介绍步骤S120时提到的方法计算目标的运动特征,可以直接将目标的运动特征取0或者其他默认值,但轨迹片段的运动特征仍然可以正常计算。或者,也可以采取其他处理方式:例如,在融合目标和轨迹片段的特征时都不考虑运动特征;又例如,对于目标进行特征融合不考虑运动特征,对于轨迹片段进行特征融合考虑运动特征,比如,若F4是运动特征,则可以设置两个局部图神经网络,一个只有3个节点,专门针对目标的特征融合,一个有4个节点,专门针对轨迹片段的特征融合。
在一些实现方式中,步骤B11中的特征更新函数可以包括边特征更新函数和节点特征更新函数,分别用于更新边的特征和节点的特征,此时步骤B11中的迭代更新过程可以进一步包括:
步骤B11a:针对局部图神经网络中的每条边,基于该条边的当前特征以及该条边连接的节点的当前特征,利用边特征更新函数计算该条边的新特征。
步骤B11b:针对局部图神经网络中的每个节点,基于该节点的当前特征以及以该节点为端点的所有边的新特征,利用节点特征更新函数计算该节点的新特征。
注意,步骤B11a和步骤B11b是一轮迭代中边特征和节点特征更新的两个子步骤,其中的“当前”可以理解为本轮迭代开始的时刻,和当前帧中的“当前”无关,这样的迭代会反复执行多轮才会终止,具体迭代总轮数可以事先设定好。下面通过一个例子对步骤B11a和步骤B11b进行具体说明:
例如,将边特征更新函数记为fe,节点特征更新函数记为fv,则步骤B11a可以用公式表示为:
其中,i、j表示局部图神经网络中任意两个不同的节点编号,由于局部图神经网络中的节点之间是全连接的,所以节点i和节点j之间必然存在边,将二者之间的边记为(i,j),l、l+1表示迭代意义上的两个相邻的时刻(也可以认为是两个相邻的迭代轮次),分别表示第l、l+1时刻的边(i,j)的特征,和分别表示节点i在l时刻的特征以及节点j在l时刻的特征,fe表示边特征更新函数(其包含的可学习参数未示出)。l可以从0开始取值,分别表示节点i和节点j的初始特征,表示边(i,j)的初始特征,关于节点的初始特征的获取方式前面已经阐述,边的初始特征则可以采用默认值或者通过初始化算法计算得到。
步骤B11b可以用公式表示为:
其中,与步骤B11a的公式中类似的符号不再说明,fv表示节点特征更新函数(其包含的可学习参数未示出),Ni表示与节点i相邻的所有节点编号的集合。
借助于上述的公式可以看出,在步骤B11a和步骤B11b中,边特征的更新依赖于节点特征,节点特征的更新也依赖于边特征,从而通过迭代可以促进特征之间的深层次融合,最终得到表达能力更强的特征。
对于步骤B11a和步骤B11b,还有几点需要注意:
其一,采用步骤B11a和步骤B11b不仅会得到每个节点的最终特征,也会得到每条边的最终特征,但由于在步骤B12中可以只使用节点的最终特征进行拼接(详见后文),所以在步骤B11的叙述中并未提到边的最终特征。
其二,步骤B11a和步骤B11b的实现方式不限于上面的两个公式:例如,在步骤B11b的公式中,某个节点的特征只和该节点自身以及与该节点直接相邻的边的特征有关,在替代方法中某个节点的特征也可能和该节点自身、与该节点直接相邻的边的特征、与该节点直接相邻的节点的特征、甚至更远处的边与节点的特征有关;又例如步骤B11b的公式中的直接求和运算(Σ)也可能被替换为其他运算或者加权求和运算。
其三,步骤B11未必一定要通过步骤B11a和步骤B11b描述的方式来实现特征更新,例如,也可以只设置一个特征更新函数,同时对节点的特征和边的特征进行更新。
在图5中,对于局部图神经网络,若节点的初始特征记为hi,则节点的最终特征记为hi’,其中i=1,2,3,4。
步骤B12:对所有节点的最终特征进行拼接,得到拼接特征。
例如,在图5中,对4个节点的最终特征h1’~h4’进行了拼接,得到拼接特征。并且,不排除在某些实现方式中,步骤B12中还有可能拼接更多的特征,例如将部分或全部的边的最终特征也拼接进来。
需要指出,步骤B12中的拼接操作也可以视为图神经网络模型的一部分,例如可以在局部图神经网络和多层感知机(见步骤B13)之间设置一个拼接层。
步骤B13:将拼接特征输入多层感知机,得到目标的特征向量。
步骤B12中的拼接特征虽然也可以视为融合了不同节点的最终特征,但这种融合方式比较生硬,融合后的特征向量中各个节点的特征仍然是孤立的,并未发生任何交互,所以在步骤B13中利用多层感知机对拼接特征进行进一步融合,多层感知机具有可学习的参数,在训练过程中会自主学习如何融合各节点的最终特征。
简单总结步骤B11~B13,同一个目标或轨迹片段的不同模态的特征之间是存在关联关系的,因为这些特征不过是从不同的角度在描述同一个目标,它们共同构成了将当前目标与其他目标进行区分的要素。步骤B11~B13的关键在于利用局部图神经网络中的边将这种关联关系切实地进行了建模,从而通过这些建模好的边,使得不同节点的特征信息在特征迭代更新的过程中可以相互传递(可以参照步骤B11a、B11b中的公式进行理解)、充分融合,并且局部图神经网络在训练时还学习到了这些特征之间的融合策略,因此迭代所得到的节点的最终特征也就能够比较全面地表达当前目标与其他目标的区别,再进一步运算得到的特征向量也就能够很好地代表目标或轨迹片段对应的目标,进而有利于提高多目标跟踪的性能。
前文已经提到,步骤B1并非一定要通过局部图神经网络和多层感知机来实现特征融合:例如,直接将步骤B12中的拼接向量作为目标的特征向量也不失为一种可行的实现方式,此时不需要使用多层感知机;又例如,也可以不使用局部图神经网络,而是直接将目标的多模态特征进行拼接后通过多层感知机来计算目标的特征向量(类似于省略步骤B11只执行步骤B12和步骤B13)。
步骤B2:根据目标和轨迹片段构建全局图神经网络的图结构。
其中,全局图神经网络的图结构包括:对应于当前帧中的每个目标的节点、对应于当前可用的每个轨迹片段的节点以及对应于每个目标的节点和对应于每个轨迹片段的节点之间的边。
例如,参照图5,全局图神经网络的图结构包括对应于目标D1~D3的3个节点以及对应于轨迹片段t1~t2的2个节点,并在对应于目标的节点与对应于轨迹片段的节点之间形成了3×2=6条边。
需要注意的是,与局部图神经网络不同,全局图神经网络的节点并不是全连接的,比如目标D1与D2必然对应不同的目标,所以没必要对二者之间的关联关系进行建模,而对于目标D1与轨迹片段t2,目前还不清楚二者之间是否对应同一目标,因此它们之间可能存在关联关系,可以用一条边建模这种关联关系。
对于待处理视频中不同的帧,所包含的目标的数量不一定相同,所对应的轨迹片段的数量也不一定相同,因此在将不同的帧作为当前帧时,全局图神经网络的图结构可能会发生变化,所以原则上在对不同的帧进行目标跟踪时,全局图神经网络都要重新构建(当然,如果目标和轨迹片段的数量相较于上一帧未发生变化,不重新构建也是可以的),这一点与局部图神经网络是不同的(如前所述,局部图神经网络的图结构可以不用每帧都重新构建)。
步骤B3:将每个特征向量作为全局图神经网络中对应节点的初始特征,利用全局图神经网络的特征更新函数对节点的特征以及节点之间的边的特征进行迭代更新,得到全局图神经网络中边的最终特征。
在全局图神经网络的图结构中,节点的初始特征就是步骤B1计算出的特征向量,边的初始特征和局部图神经网络类似,可以采用默认值或者通过初始化算法计算得到。
步骤B3的实现方式和前面的步骤B11类似,其中的特征更新函数也可以采用步骤B11中提到的特征更新函数(例如,fe和fv),重复的内容不再阐述。注意,步骤B3在进行特征的迭代更新后,不仅会得到每条边的最终特征,也会得到每个节点的最终特征,但由于在步骤B4中可以只使用边的最终特征进行概率计算,所以在步骤B3的叙述中并未提到节点的最终特征。
在图5中,H(1,1)’表示节点D1(即目标D1对应的节点)和节点t1(即轨迹片段t1对应的节点)之间的边的最终特征,H(1,2)’表示节点D2和节点t1之间的边的最终特征,以此类推。
步骤B4:分别将每条边的最终特征输入边特征分类器,得到每条边表征的连接关系真实存在的概率。
边特征分类器可以实现为一个多层感知机,当然也可以采用其他模型,边特征分类器具有可学习的参数,在训练过程中会自主学习如何基于输入特征进行分类。这里的所谓分类,并不是直接输出离散的类别,而是输出边(指输入特征对应的边)所表征的连接关系真实存在的概率。
如果进一步设定一个阈值,将计算出的概率与该阈值比较,大于阈值则判定边所表征的连接关系存在,不大于阈值则判定边所表征的连接关系不存在,这样就实现了基于边的最终特征进行二分类。其中,边所表征的连接关系存在,也就是说该边所连接的节点对应的目标和轨迹片段属于同一个目标;边所表征的连接关系不存在,也就是说该边所连接的节点对应的目标和轨迹片段不属于同一个目标。
当然,上面的阐述仅仅是为了说明一下“分类器”的含义,在步骤B4中实际上没有必要设定阈值进行分类,只需要利用边分类器计算出概率值就可以了,此概率值就是边所连接的节点对应的目标的和轨迹片段在相似性矩阵中的相似度。由于当前帧对应的每个组合在全局图神经网络中都有一条相应的边,所以针对与每个组合相应的边,利用边特征分类器都可以算出一个相似度,从而在遍历完所有的边后,相似性矩阵也就计算好了。
例如,参照图5,将边的最终特征H(1,1)’输入到边特征分类器可以得到节点D1与节点t1之间存在真实连接关系的概率0.3,同时也就是目标D1与轨迹片段t1之间的相似度0.3。
进一步的,一些实现方式在将边的最终特征输入边分类器时,还可以同时将该条边所连接的节点的最终特征也输入边特征分类器(输入时可先拼接这三项信息),相当于边特征分类器在预测概率值时,既考虑了目标和轨迹片段之间的关系,又考虑了二者本身的特征,从而有利于提高对概率值的预测精度。
例如,在将边的最终特征H(1,1)’输入到边特征分类器时,也可以同时将节点D1的最终特征与节点t1的最终特征输入边特征分类器。节点D1的最终特征与节点t1的最终特征都是在全局图神经网络进行特征更新的过程中算出的。
简单总结步骤B2~B4,这些步骤利用全局图神经网络对目标和轨迹片段之间的关系进行了建模,由于全局图神经网络在训练时可以自主学习各目标特征之间的融合策略,因此使得利用全局图神经网络回归出的边的最终特征能够很好地表达目标和轨迹片段之间的关系,进而再经过边特征分类器就可以预测出比较精确的概率值(相似度),有利于提高多目标跟踪的性能。
无论是局部图神经网络还是全局图神经网络,其关键点都在于利用一个恰当的图结构对所要分析的实体(不同模态的特征、目标、轨迹片段)以及实体之间的关系(不同模态的特征之间的关系,目标和轨迹片段之间的关系)进行了建模,使得对这些实体及关系进行量化计算成为了可能。
经大量实验证实,本申请实施例中的目标跟踪方法对于目标轨迹的连接精度具有显著的提升,能够有效避免轨迹片段分裂和目标ID切换的问题。其中,轨迹片段分裂问题,例如,正确结果是待处理视频中的1-100帧均为目标a,实际跟踪到50帧之前,都输出目标a,到第50帧开始,直至第100帧都输出目标b;目标ID切换问题,例如,正确结果是待处理视频的1-100帧中前50帧是目标a,后50帧是目标b,实际跟踪100帧全部输出目标a。
图6示出了本申请实施例提供的一种模型训练方法,该方法可用于训练本申请实施例中的目标跟踪方法所要使用的机器学习模型,该方法的执行时机可以在利用机器学习模型计算当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度之前。需要注意,根据前文内容,目标跟踪方法也可以不依赖于机器学习模型实现,因此图6中的模型训练方法只针对要使用机器学习模型的那些实现方式。图6中的方法可以但不限于由图11示出的电子设备执行,关于该电子设备的具体结构可以参考后文的阐述。参照图6,该目标跟踪方法包括:
步骤S210:获取训练视频以及训练视频的第一标注信息。
训练视频是指用于训练机器学习模型的视频,训练视频可以有一个或多个,对于训练视频有多个的情况,对每个训练视频的处理方式是类似的,所以仅以一个训练视频为例。训练视频由有序的多帧图像构成。
训练视频带有必要的标注信息,从而可以对机器学习模型进行有监督的训练,原始的标注信息可由人工标注产生,称为第一标注信息。第一标注信息至少包括训练视频中的真实框以及真实框对应的目标ID。其中,所谓真实框就是训练视频的每帧中目标的真实位置,真实框可以是矩形框;所谓真实框对应的目标ID就是目标的正确编号,同属一个目标的真实框应具有相同的目标ID,属于不同目标的真实框应具有不同的目标ID。例如,训练视频中ID=3的所有真实框就构成了3号目标的真实轨迹。
步骤S220:根据训练视频确定第二标注信息中的每个框对应的多模态特征,并结合第二标注信息中每个框对应的目标ID,得到训练视频的轨迹信息。
步骤S220中的第二标注信息是根据第一标注信息确定的,其至少包括以下两种产生方式:
(1)直接将第一标注信息作为第二标注信息。
(2)对第一标注信息进行处理后得到第二标注信息。具体处理方式如下:
首先,对训练视频中的每帧进行目标检测,得到其中包含的检测框。
然后,对于训练视频的每一帧,将得到的检测框与该帧包含的真实框进行匹配,得到匹配结果。所采用的匹配算法不限,例如,可以计算任一检测框与任一真实框之间的IOU,形成一个IOU矩阵,然后在该IOU矩阵上应用匈牙利算法进行匹配,匹配条件设置为:使匹配后所产生的匹配对的IOU之和最大,这一过程和图2中对相似性矩阵应用匈牙利算法类似。
最后,遍历第一标准信息中的所有真实框,根据匹配结果进行如下框替换操作:若一个真实框与同帧中的一个检测框匹配,则将第一标注信息中的该真实框替换为与其匹配的检测框,同时该真实框对应的目标ID维持不变;若一个真实框与同帧中的任何检测框都不匹配,则不对该真实框及其对应的目标ID进行任何处理。将部分或全部的真实框被替换后的第一标注信息称为第二标注信息。
得到第二标注信息后,可以根据第二标注信息中的框(可能是真实框,也可能被替换成了检测框),并结合训练视频,确定每个框对应的多模态特征,其做法类似于步骤S110中确定当前帧中的目标的多模态特征,不再详细阐述。特别地,对于框对应的运动特征,若机器学习模型采用决策树模型,可以等到确定样本时再计算(根据后文可知,确定样本时会确定了一个框和一个轨迹片段的组合),若机器学习模型采用图神经网络模型,则可以不计算。
得到每个框对应的多模态特征后,再结合第二标注信息中的目标ID,就可以得到训练视频的轨迹信息。换个角度来看,轨迹信息仅仅是比第二标注信息多出了每个框对应的多模态特征(除框本身这项特征之外,因为第二标注信息中也包含了框本身这项特征)。
对比步骤S220中产生第二标注信息的两种方式,方式(1)比方式(2)逻辑更简单,但方式(2)也有自身的优势,分析如下:
根据轨迹信息可以生成训练样本(详细方法见步骤S230),从而如果轨迹信息中包含的全是真实框对应的多模态特征,那么在机器学习模型的训练阶段(即执行模型训练方法时),生成的样本中包含的也全是真实框对应的多模态特征,但在机器学习模型的推断阶段(即执行目标跟踪方法时),视频帧中的框是利用目标检测算法检测得到的,从而提取到的多模态特征也全部是基于检测框的,这样就会导致训练阶段和检测阶段的特征分布不一致,容易影响机器学习模型的泛化性能。方式(2)通过将检测框引入轨迹信息,这样生成的样本中将大量包含检测框对应的多模态特征,就可以使得训练阶段和检测阶段的特征分布更加相似,从而可以改善模型的泛化性能。
步骤S230:根据轨迹信息生成训练样本。
对应于机器学习模型的不同实现方式,生成样本的方式也是不同的,下面分别进行介绍:
a.机器学习模型为决策树模型
为训练决策树模型,需要生成一定数量的正样本和一定数量的负样本,其中,正样本可以通过以下步骤生成:
步骤a11:根据轨迹信息确定一条轨迹X中的一个框A,框A所在的帧号为IA。
根据对步骤S220的阐述,轨迹信息中包含每个框对应的目标ID,不同的轨迹通过目标ID就可以进行区分,所以确定一个目标ID实际上也就是确定了一条轨迹,确定轨迹可以采用随机或非随机选择的方式,将所选中的轨迹记为X,符号X并不应理解为某条特定轨迹的标识,而仅仅是被选中轨迹的一个记号。
确定了轨迹X后,由于X中所有框对应的多模态特征也包含在轨迹信息中,并且框本身也是多模态特征中的一项,所以可以进行一步采用随机或非随机选择的方式从X中确定一个框,将所选中的框记为A,符号A并不应理解为某个特定的框的标识,而仅仅是被选中框的一个记号。
参照图7,被选中的轨迹X共有6帧,被选中的框A属于第5帧,即IA=5(假设轨迹X的首帧也是待处理视频的首帧)。
步骤a12:从轨迹X的帧号位于IA之前的部分中截取出一个可用的轨迹片段T1。
截取可用的轨迹片段T1的方式和前文介绍的截取当前可用的轨迹片段的方式是类似的,不再重复阐述,只是在步骤a2中可将帧号为IA的帧视为当前帧。
参照图7,截取了轨迹X的第2~4帧(位于第5帧之前)作为轨迹片段T1。应当理解,截取T1的方式多种多样,例如,也可以截取轨迹X的第2~3帧作为T1,等等。
步骤a13:将从轨迹信息中获取的框A对应的多模态特征和轨迹片段T1的多模态特征确定为一个正样本,并将正样本的标签设置为1。
框A对应的多模态特征是轨迹信息中本来就包含的,而轨迹片段T1的多模态特征可以根据轨迹片段T1中的各个框对应的多模态特征进行计算,计算方法在前文介绍步骤S120时已经介绍,不再重复。
由于框A和轨迹片段T1都来自轨迹X,即二者对应同一个目标,因此二者的多模态特征构成一个正样本,在图7中简记为(T1,A)。正样本的标签可以这样理解:若根据框A对应的多模态特征以及轨迹片段T1的多模态特征计算相似性向量,并将该相似性向量输入决策树模型,决策树模型所计算出的相似度在理想状况下应该等于1(二者完全相似)。然而,实际决策树模型基于该相似性向量算出的相似度大概率是小于1的,即与标签之间存在误差。
通过步骤a11~a13给出的方法,可以灵活、高效地大量生成训练决策树模型所需的正样本。首先,轨迹X可以灵活选择,选择不同的轨迹X就可以得到不同的正样本;其次,即使在轨迹X选定后,框A也可以灵活选择,选择不同的框A就可以得到不同的正样本;最后,即使轨迹X、框A都已经选定,轨迹片段T1也可以灵活选择,选择不同的轨迹片段T1就可以得到不同的正样本,例如,轨迹片段的长度可以不同、与IA的距离可以不同,等等。
负样本可以通过以下步骤生成:
步骤a21:根据轨迹信息确定一条轨迹Y中的一个框B,框B所在的帧号为IB。
步骤a21和步骤a11类似,不再重复阐述。注意,轨迹Y和轨迹X没有必然关系,二者可能是相同的轨迹,也可能是不同的轨迹。
参照图7,被选中的轨迹Y共有6帧,被选中的框B属于第5帧,即IB=5(假设轨迹Y的首帧也是待处理视频的首帧)。
步骤a22:从另一条轨迹Z的帧号位于IB之前的部分中截取出一个可用的轨迹片段T2。
步骤a22和步骤a12类似,只是截取轨迹片段的轨迹Z和框B所在的轨迹Y是不同的。
参照图7,截取了轨迹Z的第2~4帧(位于第5帧之前)作为轨迹片段T2。应当理解,截取T2的方式多种多样,例如,也可以截取轨迹Z的第2~3帧作为T2,等等。
步骤a23:将从轨迹信息中获取的框B对应的多模态特征和轨迹片段T2的多模态特征确定为一个负样本,并将负样本的标签设置为0。
框B对应的多模态特征是轨迹信息中本来就包含的,而轨迹片段T2的多模态特征可以根据轨迹片段T2中的各个框对应的多模态特征进行计算,计算方法在前文介绍步骤S120时已经介绍,不再重复。
由于框B和轨迹片段T2来自不同的轨迹,即二者对应不同的目标,因此二者的多模态特征构成一个负样本,在图7中简记为(T2,B)。负样本的标签可以这样理解:若根据框B对应的多模态特征以及轨迹片段T2的多模态特征计算相似性向量,并将该相似性向量输入决策树模型,决策树模型所计算出的相似度在理想状况下应该等于0(二者完全不相似)。然而,实际决策树模型基于该相似性向量算出的相似度大概率是大于0的,即与标签之间存在误差。
通过步骤a21~a23给出的方法,可以灵活、高效地大量生成训练决策树模型所需的负样本。首先,轨迹Y可以灵活选择,选择不同的轨迹Y就可以得到不同的负样本;其次,即使在轨迹Y选定后,框B也可以灵活选择,选择不同的框B就可以得到不同的负样本;再次,即使轨迹Y、框B都已经选定,轨迹Z也可以灵活选择,选择不同的轨迹Z就可以得到不同的负样本;最后,即使轨迹Y、轨迹Z、框B都已经选定,轨迹片段T2也可以灵活选择,选择不同的轨迹片段T2就可以得到不同的正样本,例如,轨迹片段的长度可以不同、与IB的距离可以不同,等等。
上面生成正负样本的步骤,可以同时实施,也可以只实施其中之一:例如,正样本按照上述步骤生成,负样本按照其他方式生成。对于一个训练视频,可以从其对应的轨迹信息中将所有存在的正负样本都提取出来,也可以只选择性地(例如,随机选择)提取其中的一部分。正负样本的数量可以满足一定的比例,例如,正样本:负样本=1:3等等。
b.机器学习模型为图神经网络模型
注意,此处的图神经网络模型要求必须包括全局图神经网络,但可以不包括局部图神经网络。为训练图神经网络模型,可以按照以下方式生成一定数量的样本:
步骤b1:确定轨迹信息中的一个帧号I0。
确定帧号I0可以采用随机或非随机选择的方式,将所选中的帧号记为I0,注意符号I0并不应理解为某个特定的帧号。
例如,参照图8,轨迹信息中共包含了3条轨迹U、V、W,假定这3条轨迹的首帧也是待处理视频的首帧,则I0=5。
步骤b2:确定轨迹信息中所在帧号为I0的所有框,并从轨迹信息中包含的所有轨迹的帧号位于I0之前的部分中截取可用的轨迹片段。
例如,参照图8,轨迹U中所在帧号为I0的框C以及轨迹V中所在帧号为I0的框D均被选中了,轨迹W由于不包含所在帧号为I0的框,所以也未从轨迹W中选择框。
步骤b2中截取可用的轨迹片段的方式和前文介绍的截取当前可用的轨迹片段的方式是类似的,不再重复阐述,只是在步骤b2中可将帧号为I0的帧视为当前帧。对于轨迹信息中包含的所有轨迹,如果能截取出可用的轨迹片段,都应进行截取,但每条轨迹中至多截取一个轨迹片段。例如,参照图8,截取方式为:从各条轨迹的帧号位于I0之前的3帧中截取轨迹片段,按照此截取方式,从轨迹U中可以截取出轨迹片段T3,从轨迹V中可以截取出轨迹片段T4,从轨迹W中可以截取出轨迹片段T5。
可以理解的是,并非轨迹信息中每条轨迹都一定可以截取出符合条件的轨迹片段,例如,某条轨迹的最后一帧位于I0之前的第10帧,则按照上面的例子中的截取方式无法截取出轨迹片段。
步骤b3:从轨迹信息中获取所在帧号为I0的每个框对应的多模态特征,以及截取到的每个轨迹片段的多模态特征。
例如,参照图8,框C、D的多模态特征是轨迹信息中本来就包含的,而轨迹片段T3、T4、T5的多模态特征可以根据轨迹片段T3、T4、T5中的各个框对应的多模态特征进行计算,计算方法在前文介绍步骤S120时已经介绍,不再重复。
步骤b4:将所在帧号为I0的所有框对应的多模态特征和截取到的所有轨迹片段的多模态特征确定为一个训练样本,并将训练样本的标签设置为真实相似性矩阵。
例如,参照图8,将框C、D的多模态特征以及轨迹片段T3、T4、T5的多模态特征确定为一个样本,简记为(T3,T4,T5,C,D)。
步骤b4中的真实相似性矩阵包括:所在帧号为I0的每个框和截取到的每个轨迹片段之间的真实相似度。例如,对于图8而言,C、D与T3、T4、T5两两组合就可以得到6个真实相似度。
其中,真实相似度可以采用如下定义:若所在帧号为I0的一个框和截取到的一个轨迹片段对应于同一目标(目标ID相同),则二者之间的真实相似度为1(二者完全相似),否则二者之间的真实相似度为0(二者完全不相似)。
结合图8,样本的标签可以这样理解:若利用图神经网络模型的第一部分对框C、D对应的多模态特征以及轨迹片段T3、T4、T5的多模态特征进行融合,得到各自对应的特征向量,再用图神经网络模型的第二部分(包括全局图神经网络和边特征分类器),基于框C、D以及轨迹片段T3、T4、T5对应的特征向量预测6个相似度,这些相似度所组成相似性矩阵在理想状况下应该等于样本(T3,T4,T5,C,D)的真实相似性矩阵。然而,实际图神经网络模型计算出的相似性矩阵大概率和真实相似性矩阵是不等的,即与标签之间存在误差。
通过步骤b1~b4给出的方法,可以灵活、高效地大量生成训练图神经网络模型所需的样本。首先,帧号I0可以灵活选择,选择不同的帧号I0就可以得到不同的样本;其次,即使帧号I0已经选定,截取轨迹片段的方式也可以灵活设置,选择不同的轨迹片段就可以得到不同的样本。
对于机器学习模型采用其他模型的情况,可以采用类似的方式生成样本,不再详细说明。另外需要注意,步骤S230在生成样本时可以只使用轨迹信息,而不再依赖于训练视频本身。
步骤S240:根据训练样本训练本申请实施例的目标跟踪方法中使用的机器学习模型。
例如,对于机器学习模型为决策树模型的情况,可以根据步骤S230中得到的训练样本计算相似性向量,然后将相似性向量输入决策树模型,得到模型输出的相似度,最后再根据该相似度、样本标签(真实相似度)以及设定好的损失函数进行损失值计算,并基于计算出的损失值更新决策树模型的参数。
又例如,对于机器学习模型为图神经网络模型的情况,可以根据步骤S230中得到的训练样本计算框和轨迹片段的特征向量(模型的第一部分),然后再根据特征向量计算框和轨迹片段之间的相似性矩阵(模型的第二部分),最后再根据该相似性矩阵、样本标签(真实相似性矩阵)以及设定好的损失函数进行损失值计算,并基于计算出的损失值更新图神经网络模型的参数。注意,图神经网络模型的两部分可以一起训练,无需单独训练。
对于机器学习模型采用其他模型的情况,可以采用类似的方式进行训练,不再详细说明。
下面,在以上实施例的基础上,继续介绍训练样本的增广:
由于机器学习模型是从训练样本中进行参数学习,所以模型的性能很大程度上取决于训练样本,而更丰富的训练样本,能够显著提高训练得到的模型的性能。此处的“丰富”至少表达两方面的含义:一方面是指样本的数量充足,使得模型有足够多的数据可以学习;一方面是指训练样本覆盖了不同的跟踪场景(例如,目标出现、目标消失、目标被遮挡等),从而训练出的模型就能够在不同的场景下有效地执行目标跟踪,即具有较强的泛化能力。
然而在实际中,出于成本等因素的限制,所能收集到的训练样本的数量往往有限,覆盖的场景也比较少,对机器学习模型的性能提升十分不利。所谓训练样本的增广,就是要利用已有的、十分有限的训练样本生成新的、更丰富的训练样本,进而利用增广后的训练样本去训练机器学习模型,就可以改善其性能。
下面以机器学习模型采用图神经网络模型,且图神经网络模型中包括全局图神经网络的情况为例,介绍两种样本增广的方案:
方案1
在执行上述步骤b2之后,以及在执行上述步骤b3之前,针对步骤b2中得到的框和轨迹片段执行至少一次增广操作,每次增广操作包括以下三种增广处理中的至少一种:
(1)删除所在帧号为I0的至少一个框。
(2)删除截取到的至少一个轨迹片段。
(3)删除截取到的至少一个轨迹片段中的至少一个框。
其中,第(1)项处理用于模拟目标在I0(指帧号为I0的帧)中消失(或者检测失败)的场景,每个删掉的框代表一个消失的目标。选择要删除的框可以采用随机或非随机的方式,但注意至少应保留一个所在帧号为I0的框。另外,由于I0并不代表特定的某一帧,此项处理具有普遍性。
第(2)项处理用于模拟I0中出现了新的目标的场景,每个删掉的轨迹片段表明I0中新出现了一个目标,选择要删除的轨迹片段可以采用随机或非随机的方式,但注意至少应保留一个截取到的轨迹片段。
第(3)项处理用于模拟目标遮挡(或者检测失败)的场景,每删除一个框表明在对应的一帧中目标被遮挡住了(因此检测不到框)。选择要删除框的轨迹片段可以采用随机或非随机的方式,进一步选择被选中的轨迹片段中需要删除的框也可以采用随机或非随机的方式,但注意每个轨迹片段中至少应保留一个框。
将步骤b2中得到的所有框称为原始框集合,将步骤b2中得到的所有轨迹片段称为原始轨迹片段集合,根据步骤b3、步骤b4可知,原始框集合与原始轨迹片段集合可以产生一个训练样本,不妨称为原始样本。
对原始框集合与原始轨迹片段集合执行一次上述的增广操作(包含至少一项增广处理)后,得到处理后的框集合与处理后的轨迹片段集合,对这两个集合也执行步骤b3和步骤b4,可以产生一个新的训练样本,不妨称为增广样本。
从而,对原始框集合与原始轨迹片段集合多次执行不同的增广操作,就可以得到多个增广样本,可以将原始样本与增广样本合在一起作为图神经网络模型的训练集。由于增广操作可以产生多样化的训练样本,因此可以提高图神经网络模型的性能,特别是模型的泛化能力。
方案1之所以要将增广操作放在步骤b2和步骤b3之间执行,是因为在步骤b2中才确定了所有的框和轨迹片段,因此在步骤b2之后才便于进行框或者轨迹片段的删除,而步骤b3中会获取多模态特征,其中可能涉及特征之间的运算(例如,计算轨迹片段的多模态特征),因此在执行步骤b3之前,所有的框和轨迹片段最好已经确定下来,这样可以避免进行不必要的运算(例如,算出某个轨迹片段的多模态特征后,该轨迹片段又因上述第(2)项处理被删除,导致这种运算显得不必要)。
可以理解的,将增广操作放在其他时机执行也是可能的,但操作所包含的增广处理可能需要相应地调整。例如,将增广操作放在步骤b3之后再执行,则由于步骤b3中已经获取到了检测框对应的多模态特征,所以上述第(1)项处理需要调整为:删除所在帧号为I0的至少一个框对应的多模态特征。
另外,方案1还存在一些等价形式:例如,在步骤b2中不要选择所在帧号为I0的所有框,而是只选择其中的部分框,就等价于执行了上述第(1)项处理;又例如,在步骤b2中不要从所有的轨迹中截取轨迹片段,而是只选择其中的部分轨迹用于截取轨迹片段,就等价于执行了上述第(2)项处理;又例如,在步骤b3中计算轨迹片段的多模态特征时,故意忽略轨迹片段中的某些检测框对应的多模态特征,就等价于执行了上述第(3)项处理。
方案2
在执行步骤S240时,类似于模型的推断阶段,会根据训练样本中的检测框和轨迹片段构建全局图神经网络的图结构,构建方式可以参考前文对步骤B2的阐述,不再重复。
图结构构建好后,针对该图结构执行至少一次增广操作,每次增广操作包括以下三种增广处理中的至少一种:
(1)删除至少一个表示框的节点;
(2)删除至少一个表示轨迹片段的节点;
(3)删除至少一条边。
其中,第(1)项处理用于模拟当前帧(这里指样本中检测框所在的帧)目标消失(或者检测失败)的场景,每个删掉的节点代表一个消失的目标。选择要删除的节点可以采用随机或非随机的方式,但注意至少应保留一个表示框的节点。
第(2)项处理用于模拟当前帧(这里指样本中检测框所在的帧)出现了新的目标的场景,每个删掉的节点表明当前帧中新出现了一个目标,选择要删除的节点可以采用随机或非随机的方式,但注意至少应保留一个表示轨迹片段的节点。
第(3)项处理用于模拟检测框和轨迹片段之间明显无关联的场景。每条删掉的边表明该条边对应的检测框和轨迹片段之间不存在关联关系,选择要删除的边可以采用随机或非随机的方式,但注意每个节点至少应保留一条边与其他节点连接。
通过增广操作得到新的图结构以后,可以继续执行步骤S240的训练流程:基于新的全局图神经网络(指包含新的图结构的全局图神经网络)计算相似性矩阵,并根据相似性矩阵、样本标签以及设定好的损失函数进行损失值计算,并根据损失值更新新的图神经网络模型(指包含新的全局图神经网络的图神经网络模型)的参数。
由于增广操作实际上改变了全局图神经网络的拓扑结构,因此每执行一次增广操作就等效于根据一个新的训练样本来构建全局图神经网络的图结构,若将此新的样本视为增广样本,则此种操作本质上仍然可以视为对训练样本的增广行为。
例如,一个训练样本本来包括3个检测框和2个轨迹片段,从而构建出的图结构中包括3个对应检测框的结点和2个对应轨迹片段的节点,现在执行第(1)项处理删掉一个对应检测框的节点,还剩2个对应检测框的结点和2个对应轨迹片段的节点,就等价于基于一个包括2个检测框和2个轨迹片段的新样本(增广样本)构建全局图神经网络的图结构并执行后续的训练流程。
从而,对基于原始样本构建的图结构多次执行不同的增广操作,就等价于得到了除原始样本之外的多个增广样本,这些多样化的训练样本共同用于图神经网络模型的训练,可以提高模型的性能,特别是模型的泛化能力。
可以理解的,对于训练样本的增广,还存在其他方案,不再逐一举例。
图9示出了本申请实施例提供的目标跟踪装置300的功能模块图。参照图9,目标跟踪装置300包括:
特征提取模块310,用于对待处理视频的当前帧进行目标检测,并根据得到的检测框确定所述当前帧中的每个目标的多模态特征;其中,所述多模态特征包括位置特征、表观特征以及运动特征中的至少一类特征;
轨迹匹配模块320,用于根据所述当前帧中的每个目标的多模态特征和所述待处理视频当前可用的每个轨迹片段的多模态特征,对所述当前帧中的所有目标和所有当前可用的轨迹片段进行匹配;其中,若所述当前帧中的一个目标与当前可用的一个轨迹片段匹配,则表明该目标与该轨迹片段对应的目标为同一目标。
在目标跟踪装置300的一种实现方式中,轨迹匹配模块320根据所述当前帧中的每个目标的多模态特征和所述待处理视频当前可用的每个轨迹片段的多模态特征,对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配,包括:根据所述当前帧中的每个目标的多模态特征和当前可用的每个轨迹片段的多模态特征,分别计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度;根据计算得到的相似度对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配。
在目标跟踪装置300的一种实现方式中,轨迹匹配模块320根据所述当前帧中的每个目标的多模态特征和当前可用的每个轨迹片段的多模态特征,分别计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度,包括:根据所述当前帧中的每个目标的多模态特征和当前可用的每个轨迹片段的多模态特征,利用机器学习模型计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度。
在目标跟踪装置300的一种实现方式中,所述机器学习模型为决策树模型,轨迹匹配模块320利用机器学习模型计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度,包括:遍历由所述当前帧中的一个目标和当前可用的一个轨迹片段构成的组合,对于每个组合执行以下步骤:计算所述组合中的目标的每项特征和轨迹片段的对应项特征之间的相似性分数,得到由全部的相似性分数构成的相似性向量;将所述相似性向量输入所述决策树模型,得到所述组合中的目标和轨迹片段之间的相似度。
在目标跟踪装置300的一种实现方式中,所述决策树模型包括有序排列的多棵决策树,其中的第一棵决策树用于直接预测所述组合中的目标和轨迹片段之间的相似度,其他任意一棵决策树用于预测排列顺序在自身之前的所有决策树输出的预测结果之和与真实相似度的残差;轨迹匹配模块320将所述相似性向量输入决策树模型,得到所述组合中的目标和轨迹片段之间的相似度,包括:将所述相似性向量分别输入所述决策树模型中的每棵决策树,并将每棵决策树输出的预测结果之和作为所述组合中的目标和轨迹片段之间的相似度。
在目标跟踪装置300的一种实现方式中,所述机器学习模型为图神经网络模型,所述图神经网络模型包括全局图神经网络和边特征分类器;轨迹匹配模块320利用机器学习模型计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度,包括:分别对所述当前帧中的每个目标的多模态特征进行融合,得到每个目标的特征向量,以及,分别对当前可用的每个轨迹片段的多模态特征进行融合,得到每个轨迹片段的特征向量;根据所述当前帧中的所有目标和当前可用的所有轨迹片段构建所述全局图神经网络的图结构;其中,所述全局图神经网络的图结构包括:对应于所述当前帧中的每个目标的节点、对应于当前可用的每个轨迹片段的节点、以及对应于所述当前帧中的每个目标的节点和对应于当前可用的每个轨迹片段的节点之间的边;将每个特征向量作为所述全局图神经网络中对应节点的初始特征,利用所述全局图神经网络的特征更新函数对节点的特征以及节点之间的边的特征进行迭代更新,得到所述全局图神经网络中边的最终特征;分别将每条边的最终特征输入所述边特征分类器,得到每条边表征的连接关系真实存在的概率;其中,所述概率为该条边连接的节点对应的目标和轨迹片段之间的相似度。
在目标跟踪装置300的一种实现方式中,所述特征更新函数包括边特征更新函数和节点特征更新函数,轨迹匹配模块320利用所述全局图神经网络的特征更新函数对节点的特征以及节点之间的边的特征进行迭代更新,包括:迭代执行以下步骤对节点的特征以及边的特征进行更新:针对所述全局图神经网络中的每条边,基于该条边的当前特征以及该条边连接的节点的当前特征,利用所述边特征更新函数计算该条边的新特征;针对所述全局图神经网络中的每个节点,基于该节点的当前特征以及以该节点为端点的所有边的新特征,利用所述节点特征更新函数计算该节点的新特征。
在目标跟踪装置300的一种实现方式中,轨迹匹配模块320利用所述特征更新函数对节点的特征以及边的特征进行迭代更新,还得到所述全局图神经网络中节点的最终特征,轨迹匹配模块320分别将每条边的最终特征输入至边特征分类器,得到每条边表征的连接关系真实存在的概率,包括:针对每条边,将该条边的最终特征以及该条边连接的节点的最终特征输入至所述边特征分类器,得到该条边表征的连接关系真实存在的概率。
在目标跟踪装置300的一种实现方式中,所述图神经网络模型还包括局部图神经网络和多层感知机;轨迹匹配模块320分别对所述当前帧中的每个目标的多模态特征进行融合,得到每个目标的特征向量,包括:针对所述当前帧中的每个目标执行以下步骤:将所述目标的每项特征作为所述局部图神经网络中对应节点的初始特征,利用所述局部图神经网络的特征更新函数对节点的特征以及节点之间的边的特征进行迭代更新,得到所述局部图神经网络中节点的最终特征;其中,所述局部图神经网络的图结构包括:对应于每项特征的节点以及任意两个节点之间的边;对所有节点的最终特征进行拼接,得到拼接特征;将所述拼接特征输入所述多层感知机,得到所述目标的特征向量。
在目标跟踪装置300的一种实现方式中,轨迹匹配模块320根据计算得到的相似度对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配,包括:根据计算得到的相似度,按照匹配条件对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配;其中,所述匹配条件包括:使匹配后所产生的各个组合对应的相似度之和最大,每个组合由所述当前帧中的一个目标和当前可用的一个轨迹片段构成。
在目标跟踪装置300的一种实现方式中,轨迹匹配模块320还用于:在所述当前帧中的一个目标与当前可用的所有轨迹片段均不匹配时,针对该目标创建一条新的轨迹。
本申请实施例提供的目标跟踪装置300,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
图10示出了本申请实施例提供的模型训练装置400的功能模块图。参照图10,模型训练装置400包括:
视频数据获取模块410,用于获取训练视频以及所述训练视频的第一标注信息;其中,所述第一标注信息包括:所述训练视频中的真实框以及所述真实框对应的目标ID;
轨迹信息获取模块420,用于根据所述训练视频确定第二标注信息中的每个框对应的多模态特征,并结合所述第二标注信息中每个框对应的目标ID,得到所述训练视频的轨迹信息;其中,所述第二标注信息为所述第一标注信息,或者,通过执行以下步骤确定所述第二标注信息:对所述训练视频中的每帧进行目标检测,并将得到的检测框与该帧包含的真实框进行匹配,对于该帧中的每个真实框,若其与一个检测框匹配,则将所述第一标注信息中的该真实框替换为与其匹配的检测框,在处理完所有的帧后,得到所述第二标注信息;
样本生成模块430,用于根据所述轨迹信息生成训练样本;
模型训练模块440,用于根据所述训练样本训练本申请实施例提供的目标跟踪方法中使用的机器学习模型。
在模型训练装置400的一种实现方式中,所述机器学习模型为决策树模型,样本生成模块430根据所述轨迹信息生成训练样本,包括:执行以下步骤生成一个正样本:根据所述轨迹信息确定一条轨迹X中的一个框A,其中,框A所在的帧号为IA;从轨迹X的帧号位于IA之前的部分中截取出一个可用的轨迹片段T1;将从所述轨迹信息中获取的框A对应的多模态特征和轨迹片段T1的多模态特征确定为一个正样本,并将所述正样本的标签设置为1;和/或,执行以下步骤生成一个负样本:根据所述轨迹信息确定一条轨迹Y中的一个框B,其中,框B所在的帧号为IB;从另一条轨迹Z的帧号位于IB之前的部分中截取出一个可用的轨迹片段T2;将从所述轨迹信息中获取的框B对应的多模态特征和轨迹片段T2的多模态特征确定为一个负样本,并将所述负样本的标签设置为0。
在模型训练装置400的一种实现方式中,所述机器学习模型为图神经网络模型,所述图神经网络模型包括全局图神经网络,样本生成模块430根据所述轨迹信息生成训练样本,包括:确定所述轨迹信息中的一个帧号I0;确定所述轨迹信息中所在帧号为I0的所有框,并从所述轨迹信息中包含的所有轨迹的帧号位于I0之前的部分中截取可用的轨迹片段;从所述轨迹信息中获取所在帧号为I0的每个框对应的多模态特征以及截取到的每个轨迹片段的多模态特征;将所在帧号为I0的所有框对应的多模态特征和截取到的所有轨迹片段的多模态特征确定为一个训练样本,并将所述训练样本的标签设置为:所在帧号为I0的每个框和截取到的每个轨迹片段之间的真实相似度;其中,若所在帧号为I0的一个框和截取到的一个轨迹片段对应于的目标ID相同,则二者之间的真实相似度为1,否则二者之间的真实相似度为0。
在模型训练装置400的一种实现方式中,样本生成模块430还用于:在从所述轨迹信息中包含的至少一条轨迹的帧号位于I0之前的部分中截取轨迹片段之后,以及在从所述轨迹信息中获取所在帧号为I0的每个框对应的多模态特征以及截取到的每个轨迹片段的多模态特征之前,执行以下三种增广处理中的至少一种:删除所在帧号为I0的至少一个框;删除截取到的至少一个轨迹片段;删除截取到的至少一个轨迹片段中的至少一个框。
在模型训练装置400的一种实现方式中,模型训练模块440根据所述训练样本训练所述图神经网络模型,包括:根据所述训练样本中的框和轨迹片段构建所述全局图神经网络的图结构;其中,所述全局图神经的图结构包括:对应于每个框的节点、对应于每个轨迹片段的节点以及对应于每个框的节点和对应于每个轨迹片段的节点之间的边;按照以下至少一种方式对所述全局图神经网络的图结构进行增广处理,得到新的全局图神经网络:删除至少一个表示框的节点;删除至少一个表示轨迹片段的节点;删除至少一条边;根据所述训练样本对新的图神经网络模型进行训练;其中,所述新的图神经网络模型包括所述新的全局图神经网络。
本申请实施例提供的模型训练装置400,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
图11示出了本申请实施例提供的电子设备500的一种可能的结构。参照图11,电子设备500包括:处理器510、存储器520以及通信接口530,这些组件通过通信总线540和/或其他形式的连接机构(未示出)互连并相互通讯。
其中,处理器510包括一个或多个,其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器510可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(NetworkProcessor,简称NP)或者其他常规处理器;还可以是专用处理器,包括神经网络处理器(Neural-network Processing Unit,简称NPU)、图形处理器(Graphics Processing Unit,简称GPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器510为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
存储器520包括一个或多个,其可以是,但不限于,随机存取存储器(RandomAccess Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(ElectricErasable Programmable Read-Only Memory,简称EEPROM)等。
处理器510以及其他可能的组件可对存储器520进行访问,读和/或写其中的数据。特别地,在存储器520中可以存储一个或多个计算机程序指令,处理器510可以读取并运行这些计算机程序指令,以实现本申请实施例提供的目标跟踪方法和/或模型训练方法。
通信接口530包括一个或多个,可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。通信接口530可以包括进行有线和/或无线通信的接口。若无需与其他设备通信,则电子设备500可以不设置通信接口530。
可以理解,图11所示的结构仅为示意,电子设备500还可以包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。图11中所示的各组件可以采用硬件、软件或其组合实现。电子设备500可能是实体设备,例如服务器、PC机、平板电脑、笔记本电脑、手机、摄像机、照相机、无人机、可穿戴设备、机器人等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。并且,电子设备500也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,这些计算机程序指令被处理器读取并运行时,执行本申请实施例提供的目标跟踪方法。例如,计算机可读存储介质可以实现为图11中电子设备500中的存储器520。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序指令,这些计算机程序指令被处理器读取并运行时,执行本申请实施例提供的目标跟踪方法和/或模型训练方法。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种目标跟踪方法,其特征在于,包括:
对待处理视频的当前帧进行目标检测,并根据得到的检测框确定所述当前帧中的每个目标的多模态特征;其中,所述多模态特征包括位置特征、表观特征以及运动特征中的至少一类特征;
根据所述当前帧中的每个目标的多模态特征和所述待处理视频当前可用的每个轨迹片段的多模态特征,对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配;其中,若所述当前帧中的一个目标与当前可用的一个轨迹片段匹配,则表明该目标与该轨迹片段对应的目标为同一目标。
2.根据权利要求1所述的目标跟踪方法,其特征在于,所述根据所述当前帧中的每个目标的多模态特征和所述待处理视频当前可用的每个轨迹片段的多模态特征,对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配,包括:
根据所述当前帧中的每个目标的多模态特征和当前可用的每个轨迹片段的多模态特征,分别计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度;
根据计算得到的相似度对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配。
3.根据权利要求2所述的目标跟踪方法,其特征在于,所述根据所述当前帧中的每个目标的多模态特征和当前可用的每个轨迹片段的多模态特征,分别计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度,包括:
根据所述当前帧中的每个目标的多模态特征和当前可用的每个轨迹片段的多模态特征,利用机器学习模型计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度。
4.根据权利要求3所述的目标跟踪方法,其特征在于,所述机器学习模型为决策树模型,所述利用机器学习模型计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度,包括:
遍历由所述当前帧中的一个目标和当前可用的一个轨迹片段构成的组合,对于每个组合执行以下步骤:
计算所述组合中的目标的每项特征和轨迹片段的对应项特征之间的相似性分数,得到由全部的相似性分数构成的相似性向量;
将所述相似性向量输入所述决策树模型,得到所述组合中的目标和轨迹片段之间的相似度。
5.根据权利要求4所述的目标跟踪方法,其特征在于,所述决策树模型包括有序排列的多棵决策树,其中的第一棵决策树用于直接预测所述组合中的目标和轨迹片段之间的相似度,其他任意一棵决策树用于预测排列顺序在自身之前的所有决策树输出的预测结果之和与真实相似度的残差;
所述将所述相似性向量输入决策树模型,得到所述组合中的目标和轨迹片段之间的相似度,包括:
将所述相似性向量分别输入所述决策树模型中的每棵决策树,并将每棵决策树输出的预测结果之和作为所述组合中的目标和轨迹片段之间的相似度。
6.根据权利要求3所述的目标跟踪方法,其特征在于,所述机器学习模型为图神经网络模型,所述图神经网络模型包括全局图神经网络和边特征分类器;
所述利用机器学习模型计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度,包括:
分别对所述当前帧中的每个目标的多模态特征进行融合,得到每个目标的特征向量,以及,分别对当前可用的每个轨迹片段的多模态特征进行融合,得到每个轨迹片段的特征向量;
根据所述当前帧中的所有目标和当前可用的所有轨迹片段构建所述全局图神经网络的图结构;其中,所述全局图神经网络的图结构包括:对应于所述当前帧中的每个目标的节点、对应于当前可用的每个轨迹片段的节点、以及对应于所述当前帧中的每个目标的节点和对应于当前可用的每个轨迹片段的节点之间的边;
将每个特征向量作为所述全局图神经网络中对应节点的初始特征,利用所述全局图神经网络的特征更新函数对节点的特征以及节点之间的边的特征进行迭代更新,得到所述全局图神经网络中边的最终特征;
分别将每条边的最终特征输入所述边特征分类器,得到每条边表征的连接关系真实存在的概率;其中,所述概率为该条边连接的节点对应的目标和轨迹片段之间的相似度。
7.根据权利要求6所述的目标跟踪方法,其特征在于,所述特征更新函数包括边特征更新函数和节点特征更新函数,所述利用所述全局图神经网络的特征更新函数对节点的特征以及节点之间的边的特征进行迭代更新,包括:
迭代执行以下步骤对节点的特征以及边的特征进行更新:
针对所述全局图神经网络中的每条边,基于该条边的当前特征以及该条边连接的节点的当前特征,利用所述边特征更新函数计算该条边的新特征;
针对所述全局图神经网络中的每个节点,基于该节点的当前特征以及以该节点为端点的所有边的新特征,利用所述节点特征更新函数计算该节点的新特征。
8.根据权利要求6或7所述的目标跟踪方法,其特征在于,所述图神经网络模型还包括局部图神经网络和多层感知机;
所述分别对所述当前帧中的每个目标的多模态特征进行融合,得到每个目标的特征向量,包括:
针对所述当前帧中的每个目标执行以下步骤:
将所述目标的每项特征作为所述局部图神经网络中对应节点的初始特征,利用所述局部图神经网络的特征更新函数对节点的特征以及节点之间的边的特征进行迭代更新,得到所述局部图神经网络中节点的最终特征;其中,所述局部图神经网络的图结构包括:对应于每项特征的节点以及任意两个节点之间的边;
对所有节点的最终特征进行拼接,得到拼接特征;
将所述拼接特征输入所述多层感知机,得到所述目标的特征向量。
9.根据权利要求2-8中任一项所述的目标跟踪方法,其特征在于,所述根据计算得到的相似度对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配,包括:
根据计算得到的相似度,按照匹配条件对所述当前帧中的所有目标和当前可用的所有轨迹片段进行匹配;
其中,所述匹配条件包括:使匹配后所产生的各个组合对应的相似度之和最大,每个组合由所述当前帧中的一个目标和当前可用的一个轨迹片段构成。
10.根据权利要求1-9中任一项所述的目标跟踪方法,其特征在于,所述方法还包括:
若所述当前帧中的一个目标与当前可用的所有轨迹片段均不匹配,则针对该目标创建一条新的轨迹。
11.根据权利要求3-8中任一项所述的目标跟踪方法,其特征在于,在所述利用机器学习模型计算所述当前帧中的每个目标与当前可用的每个当轨迹片段之间的相似度之前,所述方法还包括:
获取训练视频以及所述训练视频的第一标注信息;其中,所述第一标注信息包括:所述训练视频中的真实框以及所述真实框对应的目标ID;
根据所述训练视频确定第二标注信息中的每个框对应的多模态特征,并结合所述第二标注信息中每个框对应的目标ID,得到所述训练视频的轨迹信息;其中,所述第二标注信息为所述第一标注信息,或者,通过执行以下步骤确定所述第二标注信息:对所述训练视频中的每帧进行目标检测,并将得到的检测框与该帧包含的真实框进行匹配,对于该帧中的每个真实框,若其与一个检测框匹配,则将所述第一标注信息中的该真实框替换为与其匹配的检测框,在处理完所有的帧后,得到所述第二标注信息;
根据所述轨迹信息生成训练样本;
根据所述训练样本训练所述机器学习模型。
12.一种计算机程序产品,其特征在于,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-11中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-11中任一项所述的方法。
14.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111666704.9A CN114387304A (zh) | 2021-12-31 | 2021-12-31 | 目标跟踪方法、计算机程序产品、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111666704.9A CN114387304A (zh) | 2021-12-31 | 2021-12-31 | 目标跟踪方法、计算机程序产品、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114387304A true CN114387304A (zh) | 2022-04-22 |
Family
ID=81200829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111666704.9A Pending CN114387304A (zh) | 2021-12-31 | 2021-12-31 | 目标跟踪方法、计算机程序产品、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114387304A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115601686A (zh) * | 2022-12-09 | 2023-01-13 | 浙江莲荷科技有限公司(Cn) | 物品交付确认的方法、装置和系统 |
CN116883686A (zh) * | 2023-07-26 | 2023-10-13 | 东方空间技术(山东)有限公司 | 一种火箭回收子级空中识别与追踪方法、设备及存储介质 |
-
2021
- 2021-12-31 CN CN202111666704.9A patent/CN114387304A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115601686A (zh) * | 2022-12-09 | 2023-01-13 | 浙江莲荷科技有限公司(Cn) | 物品交付确认的方法、装置和系统 |
CN116883686A (zh) * | 2023-07-26 | 2023-10-13 | 东方空间技术(山东)有限公司 | 一种火箭回收子级空中识别与追踪方法、设备及存储介质 |
CN116883686B (zh) * | 2023-07-26 | 2024-03-12 | 东方空间技术(山东)有限公司 | 一种火箭回收子级空中识别与追踪方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Overview and methods of correlation filter algorithms in object tracking | |
Yang et al. | Uncertainty-guided transformer reasoning for camouflaged object detection | |
Jain et al. | Hybrid deep neural networks for face emotion recognition | |
Lian et al. | Road extraction methods in high-resolution remote sensing images: A comprehensive review | |
Bideau et al. | It’s moving! a probabilistic model for causal motion segmentation in moving camera videos | |
Yang et al. | Temporal dynamic appearance modeling for online multi-person tracking | |
JP2022501740A (ja) | ポイントクラウドセグメンテーション方法、コンピュータプログラム及びコンピュータ機器 | |
CN107145862B (zh) | 一种基于霍夫森林的多特征匹配多目标跟踪方法 | |
Yoon et al. | Oneshotda: Online multi-object tracker with one-shot-learning-based data association | |
Piniés et al. | CI‐Graph simultaneous localization and mapping for three‐dimensional reconstruction of large and complex environments using a multicamera system | |
CN114387304A (zh) | 目标跟踪方法、计算机程序产品、存储介质及电子设备 | |
Li et al. | Hierarchical semantic parsing for object pose estimation in densely cluttered scenes | |
Rabiee et al. | Crowd behavior representation: an attribute-based approach | |
Chang et al. | Fast Random‐Forest‐Based Human Pose Estimation Using a Multi‐scale and Cascade Approach | |
CN111428619A (zh) | 基于有序回归和软标签的三维点云头部姿态估计系统和方法 | |
CN113591529A (zh) | 动作分割模型的处理方法、装置、计算机设备和存储介质 | |
Kuai et al. | Masked and dynamic Siamese network for robust visual tracking | |
Munoz | Inference Machines Parsing Scenes via Iterated Predictions | |
Spencer et al. | Scale-adaptive neural dense features: Learning via hierarchical context aggregation | |
CN110992404A (zh) | 目标跟踪方法、装置和系统及存储介质 | |
CN114764870A (zh) | 对象定位模型处理、对象定位方法、装置及计算机设备 | |
CN113762041A (zh) | 视频分类方法、装置、计算机设备和存储介质 | |
CN113705293A (zh) | 图像场景的识别方法、装置、设备及可读存储介质 | |
CN114792401A (zh) | 行为识别模型的训练方法、装置、设备及存储介质 | |
Shamsafar et al. | Uniting holistic and part-based attitudes for accurate and robust deep human pose estimation |
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 |