一种多目标跟踪方法与系统与流程

    专利2022-07-08  211


    本发明属于目标跟踪技术领域,具体涉及一种多目标跟踪方法与系统。



    背景技术:

    现如今,智能安防系统广泛部署于室内场所中,确保商场、银行、火车站等室内场所的人员安全。多目标跟踪方法作为智能安防系统的重要组成部分,近期受到了众多研究人员的关注。

    在对视频中的某一类目标进行跟踪时,该类目标在场景中的数量会影响跟踪算法的精度。(当该类目标在场景中的数量较多时,该类目标间易相互遮挡导致跟踪算法发生跟踪偏移或失败的问题)。场景中跟踪目标数量的不同将导致跟踪算法结果的不同,这直接决定了多目标跟踪算法跟踪精度的高低。因此根据场景中的目标数量设置不同的跟踪策略是十分重要的。

    场景中的目标数量可根据目标检测算法输出的目标数量得到。本发明提出的多目标跟踪方法可依据上述步骤获取得到的目标数量设置最优的跟踪策略。

    近年来,大量多目标跟踪方法被研究人员提出,其中主要以sort、deepsort为代表性的逐帧检测类多目标跟踪方法。该类方法将目标跟踪任务转化为目标检测任务和目标关联任务,该类方法的具体步骤、来源其原理可参见以下论文:

    bewleya,gez,ottl,etal.simpleonlineandrealtimetracking[c]//2016ieeeinternationalconferenceonimageprocessing(icip).ieee,2016:3464-3468.

    wojken,bewleya,paulusd.simpleonlineandrealtimetrackingwithadeepassociationmetric[c]//2017ieeeinternationalconferenceonimageprocessing(icip).ieee,2017:3645-3649.

    但是,上述方法的跟踪质量十分依靠目标检测算法的精度。在目标数量较多的跟踪场景中,目标间的相互遮挡情况会导致目标检测方法出现漏检或误检问题,该问题会导致上述多目标跟踪方法输出的轨迹出现轨迹断连或轨迹偏移问题。

    为解决上述问题,部分研究学者提出将多目标跟踪任务转化为目标检测任务和多个单目标跟踪任务。该类方法将目标检测结果和多个目标的轨迹进行结合,当目标相互遮挡导致目标检测算法出现漏检或误检问题时,他们通过单目标跟踪方法估算目标的运动轨迹,确保多目标跟踪算法可以输出较为完整的轨迹,避免多目标跟踪方法输出的轨迹出现轨迹断连或轨迹偏移问题。

    现有代表性技术如下:

    相关发明1:基于孪生网络和长短期线索的在线多目标跟踪方法和系统(申请号:202010404941.7)

    本发明公开了基于孪生网络和长短期线索的在线多目标跟踪方法和系统,属于多目标跟踪领域。包括:孪生网络模块,用于将跟踪目标模板与搜索区域进行互相关得到响应图,获取初步预测的每个目标的跟踪轨迹;校正模块,用于将初步轨迹和观测框组合在一起,通过行人回归网络修正行人框;数据关联模块,用于计算跟踪轨迹和观测行人的相似度,通过分别提取跟踪轨迹和观测行人的长短期线索并将其进行融合,进而计算其相似度,为每个跟踪轨迹分配对应的观测行人框;轨迹后处理模块,用于对跟踪轨迹进行更新、补充和删减,完成当前帧的跟踪。本发明完善了多目标跟踪任务中表观特征融合及行人交互遮挡,大尺度变化问题,提升准确度,缓解特征不对齐的问题。该发明的具体步骤如图2所示,其中专利的改进之处已使用颜色进行标注。

    该发明利用基于孪生网络的单目标跟踪算法跟踪场景中的目标。首先,为解决现有逐帧检测类多目标跟踪算法因目标检测模块发生漏检或误检错误导致轨迹频繁中断的问题,该发明整合目标检测结果和目标跟踪结果,在一定程度上减少了轨迹的中断次数。其次,为解决行人交互遮挡导致轨迹身份信息错误转换的问题,该发明提取并融合目标的长短期线索以提升跟踪算法的目标辨别能力。

    但是,该发明仍存在一些问题还未得到妥善解决。该发明包含多次特征提取步骤,存在计算复杂度高的问题。具体的,该发明在视频序列每一帧中均需要重复提取三次目标的外观特征,分别位于目标检测子模块、基于孪生网络的目标跟踪子模块以及re-id特征相似度计算子模块。

    相关发明2:一种结合单目标轨迹的多目标跟踪方法(申请号:201911055886.9)

    本发明公开了一种结合单目标轨迹的多目标跟踪方法,涉及目标跟踪技术领域。包括以下步骤:获取第t 1帧图像;对该第t 1帧图像进行多目标检测,构建第一目标位置集;对第t帧图像进行单目标跟踪,预测该目标在第t 1帧图像中的位置,构建第二目标位置集;将第一目标位置集和第二目标位置集进行合并,得到新目标位置集;将新目标与现有的单目标轨迹进行匹配,将新目标分配给匹配度最高的单目标轨迹中。本发明提高了轨迹分配的准确性,减少了目标漏检的情况发生。该发明的具体步骤如图3所示,其中专利的改进之处已使用颜色进行标注。

    该发明利用单目标跟踪方法(siamfc)跟踪场景中的目标,同时该发明利用轨迹间的位置关系和直方图特征,设计了目标轨迹关联模块以避免该发明输出过多重复轨迹,提升轨迹质量。

    但是,该发明仍存在一些问题还未得到妥善解决。首先,该发明在跟踪视频序列中的目标时,需要在视频序列每一帧中同时进行目标检测和目标跟踪两项任务,加大了该发明的计算复杂度。其次,直方图特征作为低级语义特征难以有效区分相互遮挡的目标身份信息。当跟踪目标的数量较多且其外观信息高度相似时(例如人员头部),这些轨迹对应图像区域的颜色分布趋势大致相同(人员头部具有相似的发色、肤色)。相应的,这些目标运动轨迹的直方图特征差异较小,无法作为区分目标轨迹身份信息的依据。



    技术实现要素:

    本发明要解决的技术问题如下:

    (1)现有多目标跟踪方法无法自动根据场景的目标数量进行针对性调整。当场景内目标数量较多时,现有方法输出的目标轨迹易发生偏移、重复等问题。与相关专利相比,本发明设计了待跟踪数据预处理模块,该模块能够根据场景内的待跟踪目标数量自动设置最佳的跟踪策略,降低了目标轨迹发生偏移、重复问题的次数。

    (2)现有多目标跟踪方法存在计算冗余问题。现有方法需要在视频序列每一帧图像上进行二至三次特征提取任务,存在计算复杂度过高问题。与相关专利相比,本发明改进了目标轨迹生成模块。具体的,本发明将该模块的输入数据由一张图像数据更换为视频子序列数据。同时,本发明还设计了跟踪任务判断子模块。该模块有效减少冗余的特征提取过程,降低了跟踪方法的计算量。

    (3)现有多目标跟踪方法的目标轨迹质量判断方式准确度较差,难以根据目标轨迹质量优化输出结果。当场景内存在大量外观特征相似的目标时,现有方法的目标轨迹质量判断方式的准确度不足,容易输出大量低质量的轨迹。与相关专利相比,本发明改进了目标轨迹关联模块。具体的,本发明在轨迹关联子模块后设计了基于时序信息的轨迹分析子模块,该模块能够借助时序上下文信息识别不同质量的目标轨迹,并对不同质量的目标轨迹自动优化,从而提升输出的目标轨迹质量。

    本发明实现了一种多目标跟踪方法,所述方法包括读取待跟踪数据、预处理待跟踪数据、生成目标轨迹以及关联目标轨迹。

    本发明采用的技术方案为一种多目标跟踪方法,包括以下步骤:

    步骤1,读取待跟踪数据。

    从摄像装置或存储设备中读取得到待跟踪数据,判断待跟踪数据类型并根据其数据类型使用不同的方法将得到的待跟踪数据以图像形式保存在计算机存储设备中。保存得到的视频序列将作为步骤2的输入。读取待跟踪数据的步骤如下:

    步骤1.1,读取摄像装置或存储设备中的待跟踪数据,判断待跟踪数据类型。若待跟踪数据类型为视频类型,则进行步骤1.2;若待跟踪数据类型为图像类型,则进行步骤1.3。

    步骤1.2,若待跟踪数据为视频数据,则对视频数据进行分帧处理。具体的,首先将视频数据转换为图像数据,随后将转化后得到的图像数据保存在计算机或存储设备中。

    步骤1.3,若待跟踪数据为图像数据,则将读取得到的图像数据保存在计算机或存储设备中。

    步骤2,预处理待跟踪数据。

    将步骤1中输出的待跟踪图像序列和步骤4中输出的k-1th跟踪轨迹数量num作为输入。首先,根据k-1th跟踪轨迹数量num设置当前场景跟踪轨迹数量n。随后,根据当前场景跟踪轨迹数量n设置视频子序列长度l。最后,按照设置视频子序列长度l切分待跟踪图像序列。切分后的视频子序列将作为步骤3的输入。预处理待跟踪数据的步骤如下:

    步骤2.1,读取步骤1输出的待跟踪图像序列和步骤4中输出的k-1th跟踪轨迹数量num。判断是否存在步骤4输出的k-1th跟踪轨迹数量num。若不存在k-1th跟踪轨迹数量num,则进行步骤2.2;若存在k-1th跟踪轨迹数量num,则进行步骤2.3。

    步骤2.2,若不存在k-1th跟踪轨迹数量num,则设置当前场景跟踪轨迹数量n=0。

    步骤2.3,若存在k-1th跟踪轨迹数量num,则设置当前场景跟踪轨迹数量n=num。

    步骤2.4,读取步骤2.2或步骤2.3输出的当前场景跟踪轨迹数量n,并根据当前场景跟踪轨迹数量n设置视频子序列长度l。

    步骤2.5,读取步骤2.4输出的视频子序列长度l,并根据视频子序列长度l切分并保存视频子序列。

    步骤3,生成目标轨迹。

    将步骤2中输出的kth视频子序列作为输入。首先,逐帧读取kth视频子序列图像。随后,判断当前读取的图像是否为视频子序列的第一帧图像,并根据判断结果设置跟踪任务标志flag。若跟踪任务flag=1,则当前图像仅进行目标检测任务,并将目标检测任务结果作为步骤4的输入;若flag=2,则当前图像仅进行目标跟踪任务。当kth视频子序列中的所有图像被处理完毕后,整合kth视频子序列中所有的目标跟踪结果,并将目标跟踪任务结果作为步骤4的输入。生成目标轨迹的步骤如下:

    步骤3.1,读取步骤2输出的kth视频子序列。按顺序读取视频子序列中的图像。

    步骤3.2,读取步骤3.1读取的图像,判断该帧图像是否为视频子序列的第一帧图像。若该帧图像是kth视频子序列的第一帧图像,则进行步骤3.3;若该帧图像不是kth视频子序列的第一帧图像,则进行步骤3.5.

    步骤3.3,若步骤3.1读取的图像是kth视频子序列的第一帧图像,则设置跟踪任务标志flag=1.

    步骤3.4,根据跟踪任务标志flag状态(flag=1),读取步骤3.1读取的图像,并使用目标检测算法对场景内的目标进行检测,目标检测结果将传入步骤4中。

    步骤3.5,若步骤3.1读取的图像不是kth视频子序列的第一帧图像,则设置跟踪任务标志flag=2.

    步骤3.6,根据跟踪任务标志flag状态(flag=2),读取步骤3.1读取的图像,使用单目标跟踪算法对场景中的每一个目标进行迭代跟踪。

    步骤3.7,读取步骤3.1读取的图像,判断该帧图像是否为视频子序列的最后一帧图像。若该帧图像是kth视频子序列的最后一帧图像,则进行步骤3.8;若该帧图像不是kth视频子序列的最后一帧图像,则重复进行步骤3.1.

    步骤3.8,若步骤3.7读取的图像是kth视频子序列的最后一帧图像,则整合场景内现有目标的运动轨迹片段,目标运动轨迹片段将作为目标跟踪结果传入至步骤4中。

    步骤4,关联目标轨迹。

    将步骤3中输出的k-1th视频子序列的目标跟踪结果和kth视频子序列的目标检测结果作为输入。首先,计算目标跟踪结果中的轨迹位置与目标检测结果中的目标位置的交并比iou,并根据iou计算损失矩阵m。随后,将损失矩阵m输入至匈牙利算法中进行线性关联匹配。然后,根据k-2th、k-1th以及kth视频子序列的时序信息分析kth视频子序列中的所有目标轨迹种类,并根据轨迹种类进行优化。最后,整合优化后的所有目标轨迹,将整合后的视频子序列的目标轨迹个数作为步骤2的输入。关联目标轨迹的步骤如下:

    步骤4.1,读取步骤3输出的k-1th视频子序列的目标跟踪结果和kth视频子序列的目标检测结果。根据目标跟踪结果中轨迹的最后位置a和目标检测结果中的目标位置b,根据公式计算二者间的交并比iou,并将iou数值填入损失矩阵m中。

    步骤4.2,读取步骤4.1输出的损失矩阵m,并将其作为匈牙利算法的输入,得到关联匹配结果,形成目标轨迹集t。

    步骤4.3,根据传入k-2th、k-1th以及kth三段视频子序列的目标轨迹关联结果,分析kth视频子序列的目标轨迹种类,并将上述目标轨迹逐个传入步骤4.4。目标轨迹种类判断步骤如下:

    步骤4.3.1,读取步骤4.3传入的k-2th、k-1th以及kth三段视频子序列中该条目标轨迹关联结果,判断三段视频子序列中该条目标轨迹是否均成功关联。若三段视频子序列中该条目标轨迹均成功关联,则进行步骤4.3.2;若三段视频子序列中该条目标轨迹未全部成功关联,则进行步骤4.3.3。

    步骤4.3.2,若三段视频子序列中该条目标轨迹均成功关联,则标注该条轨迹为高质量轨迹。

    步骤4.3.3,判断k-2th、k-1th和kth三段视频子序列中该条目标轨迹是否有两段视频子序列成功关联。若k-2th、k-1th和kth三段视频子序列中该条目标轨迹有两段视频子序列成功关联,则进行步骤4.3.4;若k-2th、k-1th和kth三段视频子序列中该条目标轨迹没有两段视频子序列成功关联,则进行步骤4.3.5。

    步骤4.3.4,若k-2th、k-1th和kth三段视频子序列中该条目标轨迹有两段视频子序列成功关联,则标注该条轨迹为低质量轨迹。

    步骤4.3.5,若k-2th、k-1th和kth三段视频子序列中该条目标轨迹,没有两段视频子序列成功关联,则标注该条轨迹为错误/消失轨迹。

    步骤4.4,读取步骤4.3传入的目标轨迹,判断该条轨迹是否为错误/消失轨迹。若该条轨迹是错误/消失轨迹,则进行步骤4.5;若该条轨迹不是错误/消失轨迹,则进行步骤4.6。

    步骤4.5,若该条轨迹是错误/消失轨迹,则从现有目标轨迹集t中删去该条轨迹。

    步骤4.6,若该条轨迹是错误/消失轨迹,则判断该条轨迹是否为低质量轨迹。若该条轨迹是低质量轨迹,则进行步骤4.7;若该条轨迹不是低质量轨迹,则进行步骤4.8。

    步骤4.7,若该条轨迹是低质量轨迹,则在现有目标轨迹集t中标记该条轨迹为低质量轨迹。

    步骤4.8,判断所有轨迹是否分析处理完毕。若所有轨迹已经分析处理完毕,则进行步骤4.9;所有轨迹尚未分析处理完毕,则重复进行步骤4.4。

    步骤4.9,整合优化现有的目标轨迹集t,并将当前多目标跟踪方法输出的轨迹数量传入至步骤2中。具体的,针对标注为低质量轨迹的目标轨迹,多目标跟踪方法将不输出该条轨迹信息(不显示、不保存结果);针对未被标注为低质量轨迹的目标轨迹,多目标跟踪方法将输出该条轨迹信息(显示并保存结果)。

    本发明还提供了一种多目标跟踪系统,该系统包括待跟踪数据读取模块、待跟踪数据预处理模块、目标轨迹生成模块以及目标轨迹关联模块,其中:

    所述的待跟踪数据读取模块,用于从摄像装置或存储设备中读取得到待跟踪数据,并根据待跟踪数据类型使用不同的方法将读取得到的待跟踪数据转换为图像形式保存在计算机存储设备中。

    所述的待跟踪数据预处理模块,用于根据当前场景跟踪轨迹数量对数据读取模块保存的待跟踪图像进行预处理,形成多个长短不一的视频子序列,为目标轨迹的生成做准备。

    所述的目标轨迹生成模块,用于根据待跟踪数据预处理模块得到的视频子序列计算得到场景的目标检测结果及目标跟踪结果。

    所述的目标轨迹关联模块,用于将目标轨迹生成模块得到的目标跟踪结果和目标跟踪结果进行关联,形成完整的目标轨迹。同时,该模块还基于时序信息对现有目标轨迹质量进行判断,优化现有目标轨迹以提升跟踪质量。

    本发明原理是通过计算场景内的目标数量得到最适合此场景的视频子序列长度。随后将视频子序列输入至目标轨迹生成模块和目标轨迹关联模块中,形成高质量目标轨迹。

    与现有技术相比较,本发明提出的多目标跟踪方法可适应多种场景,不需要使用者根据场景手动调整视频子序列长度,并且本发明改进的目标轨迹生成模块减少了冗余的特征提取任务,减轻监控系统需要承担的计算量。另外,本发明改进的目标轨迹关联模块借助时序信息对目标轨迹质量进行判断,其判断过程计算简单,不会为监控系统增加过多的计算量。综上所述,本发明提出的多目标跟踪方法使用相对简便,具有良好的跟踪结果。

    附图说明

    图1本发明提出的一种多目标跟踪方法实施例的专利代表图。

    图2本发明引用的相关发明1的专利代表图

    图3本发明引用的相关发明2的专利代表图

    图4本发明提出的一种多目标跟踪方法实施例步骤s10的子流程图。

    图5本发明提出的一种多目标跟踪方法实施例步骤s20的子流程图。

    图6本发明提出的一种多目标跟踪方法实施例步骤s30的子流程图。

    图7本发明提出的一种多目标跟踪方法实施例步骤s40的子流程图。

    图8本发明提出的一种多目标跟踪方法实施例步骤s430的子流程图。

    图9本发明提出的一种多目标跟踪系统实施例的组成框图。

    具体实施方式

    为了能够更加清楚的说明本发明的方法流程,下面结合具体实施例进行进一步描述,所说明的实施例仅用于说明本发明的技术方案,实施例设置的参数数值并非限定本发明。

    本发明实施方式的专利代表图如图1所示,包括以下步骤:

    步骤s10,读取待跟踪数据;

    步骤s20,预处理待跟踪数据;

    步骤s30,生成目标轨迹;

    步骤s40,关联目标轨迹。

    实施方式的读取待跟踪数据步骤s10还包括以下步骤,实施步骤如图4所示:

    步骤s110,读取摄像装置或存储设备中的待跟踪数据,判断待跟踪数据类型。若待跟踪数据类型为视频类型,则进行步骤s120;若待跟踪数据类型为图像类型,则进行步骤s130。

    步骤s120,若待跟踪数据为视频数据,则对视频数据进行分帧处理。具体的,首先将视频数据转换为图像数据,随后将转化后得到的图像数据保存在计算机或存储设备中。

    步骤s130,若待跟踪数据为图像数据,则将读取得到的图像数据保存在计算机或存储设备中。

    实施方式的预处理待跟踪数据步骤s20还包括以下步骤,实施步骤如图5所示:

    步骤s210,读取步骤s10输出的待跟踪图像序列和步骤s40中输出的k-1th跟踪轨迹数量num。判断是否存在步骤s40输出的k-1th跟踪轨迹数量num。若不存在k-1th跟踪轨迹数量num,则进行步骤s220;若存在k-1th跟踪轨迹数量num,则进行步骤s230。

    步骤s220,若不存在k-1th跟踪轨迹数量num,则设置当前场景跟踪轨迹数量n=0。

    步骤s230,若存在k-1th跟踪轨迹数量num,则设置当前场景跟踪轨迹数量n=num。

    步骤s240,读取步骤s220或步骤s230输出的当前场景跟踪轨迹数量n,并根据当前场景跟踪轨迹数量n设置视频子序列长度l。本实施例中,当n>10时,视频子序列长度l设置为5;当5≤n≤10时,视频子序列长度l设置为7;当n<5时,视频子序列长度l设置为9。

    步骤s250,读取步骤s240输出的视频子序列长度l,并根据视频子序列长度l切分并保存视频子序列。

    实施方式的生成目标轨迹调整步骤s30还包括以下步骤,实施步骤如图6所示:

    步骤s310,读取步骤s20输出的kth视频子序列。按顺序读取视频子序列中的图像。

    步骤s320,读取步骤s310读取的图像,判断该帧图像是否为视频子序列的第一帧图像。若该帧图像是kth视频子序列的第一帧图像,则进行步骤s330;若该帧图像不是kth视频子序列的第一帧图像,则进行步骤s350.

    步骤s330,若步骤s310读取的图像是kth视频子序列的第一帧图像,则设置跟踪任务标志flag=1.

    步骤s340,根据跟踪任务标志flag状态(flag=1),读取步骤s310读取的图像,并使用目标检测算法对场景内的目标进行检测,目标检测结果将传入步骤s40中。

    步骤s350,若步骤s310读取的图像不是kth视频子序列的第一帧图像,则设置跟踪任务标志flag=2.

    步骤s360,根据跟踪任务标志flag状态(flag=2),读取步骤s310读取的图像,使用单目标跟踪算法对场景中的每一个目标进行迭代跟踪。

    步骤s370,读取步骤s310读取的图像,判断该帧图像是否为视频子序列的最后一帧图像。若该帧图像是kth视频子序列的最后一帧图像,则进行步骤s380;若该帧图像不是kth视频子序列的最后一帧图像,则重复进行步骤s310.

    步骤s380,若步骤s370读取的图像是kth视频子序列的最后一帧图像,则整合场景内现有目标的运动轨迹片段,目标运动轨迹片段将作为目标跟踪结果传入至步骤s40中。

    实施方式的关联目标轨迹调整步骤s40还包括以下步骤,实施步骤如图7所示:

    步骤s410,读取步骤s30输出的k-1th视频子序列的目标跟踪结果和kth视频子序列的目标检测结果。根据目标跟踪结果中轨迹的最后位置a和目标检测结果中的目标位置b,计算二者间的交并比iou,并将iou数值填入损失矩阵m中。iou的计算方式如公式(1)所示:

    步骤s420,读取步骤s410输出的损失矩阵m,并将其作为匈牙利算法的输入,得到关联匹配结果,形成目标轨迹集t。

    步骤s430,根据传入k-1th和kth两段视频子序列轨迹关联结果,分析上述两段视频子序列的目标轨迹种类,并将上述目标轨迹逐个传入步骤s440。目标轨迹种类判断实施步骤如图8所示:

    步骤s4310,读取步骤s430传入的k-2th、k-1th以及kth三段视频子序列中该条目标轨迹关联结果,判断三段视频子序列中该条目标轨迹是否均成功关联。若三段视频子序列中该条目标轨迹均成功关联,则进行步骤s4320;若三段视频子序列中该条目标轨迹未全部成功关联,则进行步骤s4330。

    步骤s4320,若三段视频子序列中该条目标轨迹均成功关联,则标注该条轨迹为高质量轨迹。

    步骤s4330,判断k-2th、k-1th和kth三段视频子序列中该条目标轨迹是否有两段视频子序列成功关联。若k-2th、k-1th和kth三段视频子序列中该条目标轨迹有两段视频子序列成功关联,则进行步骤s4340;若k-2th、k-1th和kth三段视频子序列中该条目标轨迹没有两段视频子序列成功关联,则进行步骤s4350。

    步骤s4340,若k-2th、k-1th和kth三段视频子序列中该条目标轨迹有两段视频子序列成功关联,则标注该条轨迹为低质量轨迹。

    步骤s4350,若k-2th、k-1th和kth三段视频子序列中该条目标轨迹,没有两段视频子序列成功关联,则标注该条轨迹为错误/消失轨迹。

    步骤s440,读取步骤s430传入的目标轨迹,判断该条轨迹是否为错误/消失轨迹。若该条轨迹是错误/消失轨迹,则进行步骤s450;若该条轨迹不是错误/消失轨迹,则进行步骤s460。

    步骤s450,若该条轨迹是错误/消失轨迹,则从现有目标轨迹集t中删去该条轨迹。

    步骤s460,若该条轨迹是错误/消失轨迹,则判断该条轨迹是否为低质量轨迹。若该条轨迹是低质量轨迹,则进行步骤s470;若该条轨迹不是低质量轨迹,则进行步骤s480。

    步骤s470,若该条轨迹是低质量轨迹,则在现有目标轨迹集t中标记该条轨迹为低质量轨迹。

    步骤s480,判断所有轨迹是否分析处理完毕。若所有轨迹已经分析处理完毕,则进行步骤s490;所有轨迹尚未分析处理完毕,则重复进行步骤s440。

    步骤s490,整合优化现有的目标轨迹集t,并将当前多目标跟踪方法输出的轨迹数量传入至步骤s20中。具体的,针对标注为低质量轨迹的目标轨迹,多目标跟踪方法将不输出该条轨迹信息(不显示、不保存结果);针对未被标注为低质量轨迹的目标轨迹,多目标跟踪方法将输出该条轨迹信息(显示并保存结果)。

    上述多目标跟踪方法流程是本发明给出的方法实施例,相应地,本发明还给出了多目标跟踪系统实施例。参见附图9,本系统500实施例包括:待跟踪数据读取模块510、待跟踪数据预处理模块520、目标轨迹生成模块530和目标轨迹关联模块540,其中:

    待跟踪数据读取模块510,用于从摄像装置或存储设备中读取得到待跟踪数据,并根据待跟踪数据类型使用不同的方法将读取得到的待跟踪数据转换为图像数据保存在计算机存储设备中。

    待跟踪数据预处理模块520,用于根据当前场景跟踪轨迹数量对数据读取模块保存的待跟踪图像进行预处理,形成多个长短不一的视频子序列,为目标轨迹的生成做准备。

    目标轨迹生成模块530,用于根据待跟踪数据预处理模块得到的视频子序列计算得到场景的目标检测结果及目标跟踪结果。

    目标轨迹关联模块540,用于将目标轨迹生成模块得到的目标跟踪结果和目标跟踪结果进行关联,形成完整的目标轨迹。同时,该模块还基于时序信息对现有目标轨迹质量进行判断,优化现有目标轨迹以提升跟踪质量。

    上述系统实施例500的工作过程是:

    首先,待跟踪数据读取模块510读取摄像装置或存储设备中的待跟踪数据,并根据待跟踪数据类型使用不同的方法将读取得到的待跟踪数据转换为图像数据保存在计算机存储设备中,随后将保存的图像数据传输给待跟踪数据预处理模块520。

    然后,待跟踪数据预处理模块520根据当前场景跟踪轨迹数量对待跟踪数据读取模块510保存的待跟踪图像进行预处理,形成多个长短不一的视频子序列。待跟踪数据预处理模块520生成的多个视频子序列将传输至目标轨迹生成模块530。

    随后,目标轨迹生成模块530先读取待跟踪数据预处理模块520输出的视频子序列,然后通过目标检测子模块和目标跟踪子模块生成该条视频子序列的目标检测结果及目标跟踪结果。上述结果将传输至目标轨迹关联模块540。

    最后,目标轨迹关联模块540接收目标轨迹生成模块530得到的目标检测结果及目标跟踪结果,首先计算目标检测结果与目标跟踪结果间的损失矩阵并将其输入至匈牙利算法中已得到轨迹关联结果。然后,根据时序信息对现有轨迹质量进行判断,优化现有目标轨迹以提升跟踪质量。

    该系统实施例同样取得了上述方法实施例的技术效果,为避免重复,此处不再赘述。

    以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在发明的保护范围之内。


    技术特征:

    1.一种多目标跟踪方法,其特征在于:所述方法包括读取待跟踪数据、预处理待跟踪数据、生成目标轨迹以及关联目标轨迹;包括以下步骤:

    步骤1,读取待跟踪数据;

    从摄像装置或存储设备中读取得到待跟踪数据,判断待跟踪数据类型并根据其数据类型使用不同的方法将得到的待跟踪数据以图像形式保存在计算机存储设备中;保存得到的视频序列将作为步骤2的输入;

    步骤2,预处理待跟踪数据;

    将步骤1中输出的待跟踪图像序列和步骤4中输出的k-1th跟踪轨迹数量num作为输入;首先,根据k-1th跟踪轨迹数量num设置当前场景跟踪轨迹数量n;随后,根据当前场景跟踪轨迹数量n设置视频子序列长度l;最后,按照设置视频子序列长度l切分待跟踪图像序列;切分后的视频子序列将作为步骤3的输入;

    步骤3,生成目标轨迹;

    将步骤2中输出的kth视频子序列作为输入;首先,逐帧读取kth视频子序列图像;随后,判断当前读取的图像是否为视频子序列的第一帧图像,并根据判断结果设置跟踪任务标志flag;若跟踪任务flag=1,则当前图像仅进行目标检测任务,并将目标检测任务结果作为步骤4的输入;若flag=2,则当前图像仅进行目标跟踪任务;当kth视频子序列中的所有图像被处理完毕后,整合kth视频子序列中所有的目标跟踪结果,并将目标跟踪任务结果作为步骤4的输入;

    步骤4,关联目标轨迹;

    将步骤3中输出的k-1th视频子序列的目标跟踪结果和kth视频子序列的目标检测结果作为输入;首先,计算目标跟踪结果中的轨迹位置与目标检测结果中的目标位置的交并比iou,并根据iou计算损失矩阵m;随后,将损失矩阵m输入至匈牙利算法中进行线性关联匹配;然后,根据k-2th、k-1th以及kth视频子序列的时序信息分析kth视频子序列中的所有目标轨迹种类,并根据轨迹种类进行优化;最后,整合优化后的所有目标轨迹,将整合后的视频子序列的目标轨迹个数作为步骤2的输入。

    2.根据权利要求1所述的一种多目标跟踪方法,其特征在于:步骤1中,读取待跟踪数据的步骤如下:

    步骤1.1,读取摄像装置或存储设备中的待跟踪数据,判断待跟踪数据类型;若待跟踪数据类型为视频类型,则进行步骤1.2;若待跟踪数据类型为图像类型,则进行步骤1.3;

    步骤1.2,若待跟踪数据为视频数据,则对视频数据进行分帧处理;具体的,首先将视频数据转换为图像数据,随后将转化后得到的图像数据保存在计算机或存储设备中;

    步骤1.3,若待跟踪数据为图像数据,则将读取得到的图像数据保存在计算机或存储设备中。

    3.根据权利要求1所述的一种多目标跟踪方法,其特征在于:步骤2中,预处理待跟踪数据的步骤如下:

    步骤2.1,读取步骤1输出的待跟踪图像序列和步骤4中输出的k-1th跟踪轨迹数量num;判断是否存在步骤4输出的k-1th跟踪轨迹数量num;若不存在k-1th跟踪轨迹数量num,则进行步骤2.2;若存在k-1th跟踪轨迹数量num,则进行步骤2.3;

    步骤2.2,若不存在k-1th跟踪轨迹数量num,则设置当前场景跟踪轨迹数量n=0;

    步骤2.3,若存在k-1th跟踪轨迹数量num,则设置当前场景跟踪轨迹数量n=num;

    步骤2.4,读取步骤2.2或步骤2.3输出的当前场景跟踪轨迹数量n,并根据当前场景跟踪轨迹数量n设置视频子序列长度l;

    步骤2.5,读取步骤2.4输出的视频子序列长度l,并根据视频子序列长度l切分并保存视频子序列。

    4.根据权利要求1所述的一种多目标跟踪方法,其特征在于:步骤3中,生成目标轨迹的步骤如下:

    步骤3.1,读取步骤2输出的kth视频子序列;按顺序读取视频子序列中的图像;

    步骤3.2,读取步骤3.1读取的图像,判断该帧图像是否为视频子序列的第一帧图像;若该帧图像是kth视频子序列的第一帧图像,则进行步骤3.3;若该帧图像不是kth视频子序列的第一帧图像,则进行步骤3.5.

    步骤3.3,若步骤3.1读取的图像是kth视频子序列的第一帧图像,则设置跟踪任务标志flag=1.

    步骤3.4,根据跟踪任务标志flag状态,读取步骤3.1读取的图像,并使用目标检测算法对场景内的目标进行检测,目标检测结果将传入步骤4中;

    步骤3.5,若步骤3.1读取的图像不是kth视频子序列的第一帧图像,则设置跟踪任务标志flag=2.

    步骤3.6,根据跟踪任务标志flag状态,读取步骤3.1读取的图像,使用单目标跟踪算法对场景中的每一个目标进行迭代跟踪;

    步骤3.7,读取步骤3.1读取的图像,判断该帧图像是否为视频子序列的最后一帧图像;若该帧图像是kth视频子序列的最后一帧图像,则进行步骤3.8;若该帧图像不是kth视频子序列的最后一帧图像,则重复进行步骤3.1;

    步骤3.8,若步骤3.7读取的图像是kth视频子序列的最后一帧图像,则整合场景内现有目标的运动轨迹片段,目标运动轨迹片段将作为目标跟踪结果传入至步骤4中。

    5.根据权利要求1所述的一种多目标跟踪方法,其特征在于:步骤4中,关联目标轨迹的步骤如下:

    步骤4.1,读取步骤3输出的k-1th视频子序列的目标跟踪结果和kth视频子序列的目标检测结果;根据目标跟踪结果中轨迹的最后位置a和目标检测结果中的目标位置b,根据公式计算二者间的交并比iou,并将iou数值填入损失矩阵m中;

    步骤4.2,读取步骤4.1输出的损失矩阵m,并将其作为匈牙利算法的输入,得到关联匹配结果,形成目标轨迹集t;

    步骤4.3,根据传入k-2th、k-1th以及kth三段视频子序列的目标轨迹关联结果,分析kth视频子序列的目标轨迹种类,并将上述目标轨迹逐个传入步骤4.4;目标轨迹种类判断步骤如下:

    步骤4.4,读取步骤4.3传入的目标轨迹,判断该条轨迹是否为错误/消失轨迹;若该条轨迹是错误/消失轨迹,则进行步骤4.5;若该条轨迹不是错误/消失轨迹,则进行步骤4.6;

    步骤4.5,若该条轨迹是错误/消失轨迹,则从现有目标轨迹集t中删去该条轨迹;

    步骤4.6,若该条轨迹是错误/消失轨迹,则判断该条轨迹是否为低质量轨迹;若该条轨迹是低质量轨迹,则进行步骤4.7;若该条轨迹不是低质量轨迹,则进行步骤4.8;

    步骤4.7,若该条轨迹是低质量轨迹,则在现有目标轨迹集t中标记该条轨迹为低质量轨迹;

    步骤4.8,判断所有轨迹是否分析处理完毕;若所有轨迹已经分析处理完毕,则进行步骤4.9;所有轨迹尚未分析处理完毕,则重复进行步骤4.4;

    步骤4.9,整合优化现有的目标轨迹集t,并将当前多目标跟踪方法输出的轨迹数量传入至步骤2中;针对标注为低质量轨迹的目标轨迹,多目标跟踪方法将不输出该条轨迹信息;针对未被标注为低质量轨迹的目标轨迹,多目标跟踪方法将输出该条轨迹信息。

    6.根据权利要求5所述的一种多目标跟踪方法,其特征在于:步骤4.3中,步骤4.3.1,读取步骤4.3传入的k-2th、k-1th以及kth三段视频子序列中该条目标轨迹关联结果,判断三段视频子序列中该条目标轨迹是否均成功关联;若三段视频子序列中该条目标轨迹均成功关联,则进行步骤4.3.2;若三段视频子序列中该条目标轨迹未全部成功关联,则进行步骤4.3.3;

    步骤4.3.2,若三段视频子序列中该条目标轨迹均成功关联,则标注该条轨迹为高质量轨迹;

    步骤4.3.3,判断k-2th、k-1th和kth三段视频子序列中该条目标轨迹是否有两段视频子序列成功关联;若k-2th、k-1th和kth三段视频子序列中该条目标轨迹有两段视频子序列成功关联,则进行步骤4.3.4;若k-2th、k-1th和kth三段视频子序列中该条目标轨迹没有两段视频子序列成功关联,则进行步骤4.3.5;

    步骤4.3.4,若k-2th、k-1th和kth三段视频子序列中该条目标轨迹有两段视频子序列成功关联,则标注该条轨迹为低质量轨迹;

    步骤4.3.5,若k-2th、k-1th和kth三段视频子序列中该条目标轨迹,没有两段视频子序列成功关联,则标注该条轨迹为错误/消失轨迹。

    7.利用权利要求1-6任意所述方法的一种多目标跟踪系统,其特征在于:该系统包括待跟踪数据读取模块、待跟踪数据预处理模块、目标轨迹生成模块以及目标轨迹关联模块,其中:

    所述的待跟踪数据读取模块,用于从摄像装置或存储设备中读取得到待跟踪数据,并根据待跟踪数据类型使用不同的方法将读取得到的待跟踪数据转换为图像形式保存在计算机存储设备中;

    所述的待跟踪数据预处理模块,用于根据当前场景跟踪轨迹数量对数据读取模块保存的待跟踪图像进行预处理,形成多个长短不一的视频子序列,为目标轨迹的生成做准备;

    所述的目标轨迹生成模块,用于根据待跟踪数据预处理模块得到的视频子序列计算得到场景的目标检测结果及目标跟踪结果;

    所述的目标轨迹关联模块,用于将目标轨迹生成模块得到的目标跟踪结果和目标跟踪结果进行关联,形成完整的目标轨迹;基于时序信息对现有目标轨迹质量进行判断,优化现有目标轨迹以提升跟踪质量。

    技术总结
    本发明公开了一种多目标跟踪方法与系统,所述方法包括读取待跟踪数据、预处理待跟踪数据、生成目标轨迹以及关联目标轨迹。本发明提出的多目标跟踪可适应多种场景,不需要使用者根据场景手动调整视频子序列长度,并且本发明改进的目标轨迹生成模块减少了冗余的特征提取任务,减轻监控系统需要承担的计算量。另外,本发明改进的目标轨迹关联模块借助时序信息对目标轨迹质量进行判断,其判断过程计算简单,不会为监控系统增加过多的计算量。综上所述,本发明提出的多目标跟踪方法使用相对简便,具有良好的跟踪结果。

    技术研发人员:张文利;杨堃;辛宜桃;赵庭松
    受保护的技术使用者:北京工业大学
    技术研发日:2020.12.06
    技术公布日:2021.03.12

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

    最新回复(0)