运动目标的轨迹跟踪方法、装置、设备及存储介质
文献发布时间:2023-06-19 10:00:31
技术领域
本申请涉及智能视频监控领域,特别涉及一种运动目标的轨迹跟踪方法、装置、设备及存储介质。
背景技术
行人检测跟踪是计算机视觉领域中的一个基础性分支,也是智能视频监控的一个重要分支,其应用非常广泛,在机场、火车站、体育场、候车室和展览馆等大型公共场合均有应用。
在一个视频帧可以存在多个运动目标,可以采用一种基于多线程的单目标跟踪器的多目标跟踪算法,来对该视频帧中的多个运动目标进行运动轨迹跟踪,也即通过串联执行单目标跟踪器达到对多个运动目标进行轨迹跟踪的效果。
上述基于多线程的单目标跟踪器的多目标跟踪算法,在运动目标多的情况下需要消耗的硬件资源多,导致硬件资源的浪费。
发明内容
本申请实施例提供了一种运动目标的轨迹跟踪方法、装置、设备及存储介质,相对于多线程的单目标跟踪器的多目标跟踪算法,需要消耗的硬件资源大大地减少了。所述技术方案如下:
根据本申请的一方面,提供了一种运动目标的轨迹跟踪方法,该方法包括:
获取监控视频流中的第t个视频帧;
从第t个视频帧中提取出运动目标的检测框和运动目标的检测特征矩阵;
获取第t个视频帧之前的m个视频帧中原运动目标的n个跟踪状态;
基于每一个跟踪状态,预测原运动目标在第t个视频帧中的跟踪框,得到n个跟踪状态对应的n个预测跟踪框,跟踪状态包括原运动目标的跟踪特征矩阵;
当检测框与预测跟踪框之间的匹配距离小于距离阈值时,基于预测跟踪框对应的跟踪特征矩阵与检测特征矩阵,从原运动目标中匹配出运动目标;其中,t、m、n均为大于1的正整数,m小于或者等于n的正整数。
根据本申请的另一方面,提供了一种运动目标的轨迹跟踪装置,该装置包括:
获取模块,用于获取监控视频流中的第t个视频帧;
提取模块,用于从第t个视频帧中提取出运动目标的检测框和运动目标的检测特征矩阵;
获取模块,用于获取第t个视频帧之前的m个视频帧中原运动目标的n个跟踪状态;
预测模块,用于基于每一个跟踪状态,预测原运动目标在第t个视频帧中的跟踪框,得到n个跟踪状态对应的n个预测跟踪框,跟踪状态包括原运动目标的跟踪特征矩阵;
匹配模块,用于当检测框与预测跟踪框之间的匹配距离小于距离阈值时,基于预测跟踪框对应的跟踪特征矩阵与检测特征矩阵,从原运动目标中匹配出运动目标;其中,t、m、n均为大于1的正整数,m小于或者等于n的正整数。
根据本申请的另一方面,提供了一种计算机设备,上述计算机设备包括处理器和存储器,上述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,上述至少一条指令、至少一段程序、代码集或指令集由上述处理器加载并执行以实现如上述方面所述的运动目标的轨迹跟踪方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,上述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述方面所述的运动目标的轨迹跟踪方法。
根据本申请的另一方面,提供了一种计算机程序产品或计算机程序,上述计算机程序产品或计算机程序包括计算机指令,上述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行如上方面所述的运动目标的轨迹跟踪方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在对运动目标进行跟踪时,该方法先在第t个视频帧图像中检测出运动目标的检测框,再提取检测框内的图像的检测特征矩阵;之后,获取第t个视频帧之前的m个视频帧中原运动目标的n个跟踪状态,来预测运动目标在第t个视频帧中的跟踪框,跟踪状态中还包括原运动目标的跟踪特征矩阵;最终,基于跟踪特征矩阵和检测特征矩阵之间的匹配,从原运动目标中确定出运动目标,在上述运动目标的轨迹跟踪过程中,可以仅采用一个线程统一对多个运动目标进行轨迹跟踪,无需为每一个运动目标的轨迹跟踪均分配一个线程以及一个单目标跟踪器,大大减少了对硬件资源的消耗,提高了硬件资源的利用率。
另外,n为大于1的正整数,也就是说,上述检测特征矩阵会与第t个视频帧之前的多个视频帧对应的跟踪特征矩阵进行匹配,增加了从原运动目标中匹配到运动目标的概率,减少了因仅与相邻一帧视频中原运动目标进行匹配而导致的对原运动目标丢失跟踪的情况,即便是在外观变形、光照变化、快速运动以及运动模糊等场景下,也能够通过多次匹配提高从原运动目标匹配到运动目标的成功率,实现了对运动目标的准确跟踪。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的计算机系统的框架图;
图2是本申请一个示例性实施例提供的运动目标的轨迹跟踪方法的流程图;
图3是本申请一个示例性实施例提供的预测跟踪框的位置信息计算示意图;
图4是本申请另一个示例性实施例提供的运动目标的轨迹跟踪方法的流程图;
图5是本申请一个示例性实施例提供的ResNet50模型的结构示意图;
图6是本申请一个示例性实施例提供的Faster RCNN模型的结构框图;
图7是本申请一个示例性实施例提供的ResNet18模型的结构示意图;
图8是本申请另一个示例性实施例提供的运动目标的轨迹跟踪方法的流程图;
图9是本申请一个示例性实施例提供的IoU计算示意图;
图10是本申请一个示例性实施例提供的运动目标的轨迹跟踪示意图;
图11是本申请另一个示例性实施例提供的运动目标的轨迹跟踪示意图;
图12是本申请另一个示例性实施例提供的运动目标的轨迹跟踪的过程示意图;
图13是本申请一个示例性实施例提供的运动目标的轨迹跟踪装置的结构框图;
图14是本申请一个示例性实施例提供的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例涉及的名词进行介绍。
人工智能(Artificial Intelligence,AI),是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉(Computer Vision,CV)技术,是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、光学字符识别(Optical Character Recognition,OCR)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、三维(three-Dimensional,3D)技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
自动驾驶技术通常包括高精地图、环境感知、行为决策、路径规划、运动控制等技术,自定驾驶技术有着广泛的应用前景。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、智能监控等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例提供的运动目标的轨迹跟踪方法涉及人工智能的CV与机器学习等技术,可以应用于如下场景:
一、智能监控
在此应用场景下,监控系统可以采用本申请实施例提供的运动目标的轨迹跟踪方法,以对运动目标的运动轨迹进行跟踪监控。示例性的,监控系统获取监控视频流中的第t个视频帧,从第t个视频帧中提取出运动目标的检测框和运动目标的检测特征矩阵;之后基于上述检测特征矩阵,从第t个视频帧之前的m个视频帧中的原运动目标中匹配出运动目标,上述检测框即是运动目标在第t个视频帧中的跟踪框,继续采用该跟踪框对该运动目标进行跟踪监控。其中,每一个跟踪框都有一个身份标识(IDentity,ID),不同帧中采用相同ID的跟踪框进行轨迹跟踪的运动目标,是同一个运动目标。上述监控系统可以实现行人跟踪(Pedestrian Tracking);比如,在工业制造车间场景下,采用上述监控系统为每一个工人分配一个跟踪框,监控每一个工人的搬运物品、操作设备、检查车间安全等行动轨迹;在机场中,采用上述监控系统为每一个旅人分配一个跟踪框,监控每一个旅人的办理登机牌、候机、登机等行动轨迹。
二、自动驾驶
在此应用场景下,自动驾驶系统可以采用本申请实施例提供的运动目标的轨迹跟踪方法,进行智能车四周环境的运动目标的跟踪,以控制行驶的智能车及时避开运动目标。示例性的,自动驾驶系统包括摄像头,自动驾驶系统通过摄像头采集监控视频流,获取监控视频流中的第t个视频帧,从第t个视频帧中提取出运动目标的检测框和运动目标的检测特征矩阵像;之后基于上述检测特征矩阵,从第t个视频帧之前的m个视频帧中的原运动目标中匹配出运动目标,上述检测框即是运动目标在第t个视频帧中的跟踪框,继续采用该跟踪框对该运动目标进行跟踪监控,进一步地,控制自身所在智能车的行驶车速、行驶方向,以在行驶过程中避开该运动目标。比如,在工业制造车间场景下,采用自动驾驶系统控制智能叉车进行货物的运输,自动驾驶系统跟踪摄像头拍摄范围内的行人和其他叉车的运动轨迹,作为控制自身所在智能叉车的行驶速度、行驶方向的参考,以在行驶过程中避开行人和其他叉车;在公路上智能汽车行驶的场景下,采用自动驾驶系统控制智能汽车的行驶,自动驾驶系统跟踪摄像头拍摄范围内的行人和其他行驶车辆,作为控制自身所在智能汽车的行驶速度、行驶方向的参考,以在行驶过程中避开行人和其他行驶车辆。其中,m、t均为大于1的正整数。
上述仅以两种应用场景为例进行说明,本申请实施例提供的方法还可以应用于其他需要运动目标的轨迹跟踪的场景,比如,机器人引导参观者参观博物馆时对摄像头拍摄范围内其他机器人和其他参观者的轨迹跟踪等,本申请实施例并不对具体应用场景进行限定。
本申请实施例提供的运动目标的轨迹跟踪方法可以应用于具有较强的数据处理能力的计算机设备中。在一种可能的实施方式中,本申请实施例提供的运动目标的轨迹跟踪方法可以应用于个人计算机、工作站或服务器中,即可以通过个人计算机、工作站或服务器实现运动目标的轨迹跟踪。在一种可能的实施方式中,本申请实施例提供的运动目标的轨迹跟踪方法还可以应用于终端与服务器构建的计算机系统中,即可以通过终端与服务器之间协作实现运动目标的轨迹跟踪。其中,上述计算机设备自身设置有视频采集设备,或,与视频采集设备之间通过有线或者无线网络连接。
图1示出了本申请一个示例性实施例提供的计算机系统的示意图。该计算机系统100包括终端110、服务器120和视频采集设备130,其中,终端110与服务器120之间通过通信网络进行数据通信,服务器120与视频采集设备130之间通过通信网络进行数据通信。可选地,通信网络可以是有线网络或者无线网络。示例性的,该通信网络可以是局域网、城域网以及广域网中的至少一种。
终端110中安装有支持视频播放的应用程序,该应用程序可以是支持视频播放的虚拟现实(Virtual Reality,VR)应用程序、增强现实(Augmented Reality,AR)应用程序、游戏应用程序、图片相册应用程序、社交应用程序等,本申请实施例对此不作限定。可选的,终端110可以是智能手机、智能手表、平板电脑、膝上便携式笔记本电脑、智能机器人等移动终端,也可以是台式电脑、投影式电脑等终端,本申请实施例对计算机设备的类型不做限定。
服务器120可以实现为一台服务器,也可以实现为一组服务器构成的服务器集群,其可以是物理服务器,也可以实现为云服务器。在一种可能的实施方式中,服务器120是终端110中应用程序的后台服务器。
视频采集设备130可以是一个摄像头,也可以是一组摄像头。示例性的,上述摄像头可以夜视监控摄像头、防水监控摄像头、网络监控摄像头、数字监控摄像头、红外监控摄像头、防爆监控摄像头中的至少一类。
如图1所示,在一种可能实现的实施方式中,视频采集设备130不断向服务器120发送采集得到的监控视频;服务器120在接收到监控视频流之后,获取监控视频流中的第t个视频帧,从第t个视频帧中提取出运动目标的检测框和运动目标的检测特征矩阵;之后基于上述检测特征矩阵,从第t个视频帧之前的m个视频帧中的原运动目标中匹配出运动目标,上述检测框即是运动目标在第t个视频帧中的跟踪框,继续采用该跟踪框对该运动目标进行跟踪监控;服务器120还将标记有运动目标的跟踪框的视频帧发送至终端110,终端110上设置有显示设备,通过应用程序在显示设备上对上述视频帧进行展示。
还需要说明的是,终端110上还可以设置有摄像头,上述监控视频流还可以通过终端110上的摄像头采集得到。服务器120上还可以设置有显示设备,服务器120通过自身设置的显示设备直接显示标记有运动目标的跟踪框的视频帧。
为了方便表述,下述各个实施例以运动目标的轨迹跟踪方法由服务器执行为例进行说明。
图2示出了本申请一个示例性实施例提供的运动目标的轨迹跟踪方法的流程图。本实施例以该方法用于如图1所示的计算机系统100中的服务器120为例进行说明,该方法包括如下步骤:
步骤201,获取监控视频流中的第t个视频帧。
示例性的,服务器与视频采集设备之间通过有线网络或者无线网络连接,服务器接收视频采集设备发送的监控视频流,从监控视频流中获取第t个视频帧,t为大于1的正整数。其中,第t个视频帧中可以包括运动目标,还可以不包括运动目标。可选地,运动目标可以是行人、机器人、自动驾驶车辆中的至少一种。
示例性的,在对运动目标进行运动轨迹跟踪时,服务器可以在获得每一帧视频之后,首先基于视频帧进行运动目标的检测,在视频帧中对运动目标进行跟踪框的标记处理,生成处理后的视频帧,之后对处理后的视频帧进行显示,此时,该步骤中的第t个视频帧是未显示的视频帧;或者,服务器还可以在获得每一帧视频之后,对视频帧进行显示,还基于视频帧进行运动目标的检测,确定出视频帧中运动目标的跟踪框,将跟踪框显示到视频帧中,此时,该步骤中的第t个视频帧是已显示的视频帧。
步骤202,从第t个视频帧中提取出运动目标的检测框和运动目标的检测特征矩阵。
示例性的,第t个视频帧中存在运动目标;服务器对第t个视频帧进行目标检测,检测出运动目标的检测框,之后对检测框内的图像进行特征提取,得到该检测框内的特征图像,该特征图像以向量矩阵的形式表示,即为运动目标的检测特征矩阵。示例性的,第t个视频帧中存在至少两个运动目标,服务器对第t个视频帧进行目标检测,则可以确定出至少两个运动目标中每一个运动目标的检测框,之后针对每一个检测框中的图像进行特征提取,得到每一个运动目标的特征图像,该特征图像以向量矩阵的形式表示,即为运动目标的检测特征矩阵。
步骤203,获取第t个视频帧之前的m个视频帧中原运动目标的n个跟踪状态。
服务器中设置有运动目标的跟踪状态库;服务器从跟踪状态库中获取第t个视频帧之前的m个视频帧中原运动目标的n个跟踪状态,m、n均为大于1的正整数,m小于或者等于n。可选地,跟踪状态库中存储有m个视频帧中运动目标的n个跟踪状态。
可选地,上述计算机系统是监控系统,该监控系统包括至少两个摄像头,第t个视频帧是至少两个摄像头中第j个摄像头采集的视频帧,j为正整数;则上述n个跟踪状态包括至少两个摄像头的视频帧中运动目标的跟踪状态;或者,上述n个跟踪状态包括第j个摄像头采集的视频帧中运动目标的跟踪状态。
示例性的,上述n个跟踪状态对应的m个视频帧是由一个摄像头采集得到的;上述m个视频帧可以是第t个视频帧之前连续的m个视频帧,比如,m个视频帧包括第t-1个视频帧、第t-2个视频帧、……、以及第t-m个视频帧,即上述m个视频帧是与第t个视频帧相邻且连续的视频帧;或者,上述m个视频帧可以是第t个视频帧之前非连续的m个视频帧。
示例性的,上述n个跟踪状态对应的m个视频帧是由至少两个摄像头采集得到的;上述m个视频帧可以包括第t个视频帧之前第k个摄像头采集得到的连续的m_k个视频帧;或者,上述m个视频帧可以包括第t个视频帧之前第k个摄像头采集得到的非连续的m_k个视频帧;其中,上述至少两个摄像头对应的视频帧数总和为m,m_k为小于n的正整数,k为正整数。
上述m个视频帧中每一个视频帧中均存在至少一个运动目标,其中,上述m个视频帧中存在至少两个视频帧中的运动目标相同,或者,上述m个视频帧中存在至少两个视频帧中的运动目标不同。
步骤204,基于每一个跟踪状态,预测原运动目标在第t个视频帧中的跟踪框,得到n个跟踪状态对应的n个预测跟踪框;跟踪状态包括原运动目标的跟踪特征矩阵。
服务器基于每一个跟踪状态对原运动目标在第t个视频帧中的跟踪框进行预测,得到与n个跟踪状态一一对应的n个预测跟踪框。比如,跟踪状态库中存在行人甲在第t-2个视频帧中的一个跟踪状态,服务器基于该跟踪状态对行人甲在第t个视频帧中的跟踪框进行预测,得到该跟踪状态对应的一个预测跟踪框。
可选地,跟踪状态包括跟踪框的位置信息和移动速率;服务器基于每一个跟踪状态中的位置信息和移动速率,预测原运动目标在第t个视频帧中的跟踪框,得到n个跟踪状态对应的n个跟踪框。即服务器基于第t个视频帧之前的视频帧中原运动目标的跟踪框的位置信息和移动速率进行原运动目标的跟踪框的运动估计,得到原运动目标的跟踪框在第t个视频帧时的运动系统状态,运动系统状态包括跟踪框在第t个视频帧中的预测位置,该预测位置上即是预测跟踪框。
可选地,跟踪框的运动估计可以采用卡尔曼滤波模型(Kalman filter),则服务器基于每一个跟踪状态中的位置信息和移动速率,通过卡尔曼滤波模型对原运动目标在第t个视频帧中的跟踪框进行预测,得到n个跟踪状态对应的n个预测跟踪框。
示例性的,如图3,示出了采用卡尔曼滤波模型计算示意图,对跟踪框的运动系统状态进行预测,采用如下公式:
其中,
其中,P
在每一次预测运动系统状态之后,还对卡尔曼滤波模型中的预测参数进行更新,采用公式如下:
其中,K
步骤205,当检测框与预测跟踪框之间的匹配距离小于距离阈值时,基于预测跟踪框对应的跟踪特征矩阵与检测特征矩阵,从原运动目标中匹配出运动目标。
示例性的,服务器中设置有距离阈值;服务器首先计算检测框与预测跟踪框之间的匹配距离,确定出小于或者等于距离阈值的匹配距离对应的预测跟踪框,将确定出的每一个预测跟踪框对应的跟踪特征矩阵与检测特征矩阵进行匹配,进而从原运动目标中匹配出运动目标。其中,上述匹配距离用于表示检测框与预测跟踪框之间的匹配难度,且用于侧面反映检测特征矩阵与跟踪特征矩阵之间的匹配难度。
示例性的,若m个视频帧中存在至少一个视频帧中存在至少两个运动目标,相应地,该至少一个视频帧中每一个原运动目标对应一个跟踪状态,则m个视频帧对应n个跟踪状态,服务器针对n个跟踪状态进行原运动目标在所述第t个视频帧中的跟踪框预测,即得到n个预测跟踪框;服务器计算n个预测跟踪框中每一个预测跟踪框和检测框之间的匹配距离,确定出小于或者等于距离阈值的至少两个预测跟踪框,将每一个预测跟踪框对应的跟踪特征矩阵分别与检测特征矩阵进行匹配,进而从原运动目标中匹配出运动目标。
示例性的,每一个跟踪框具有唯一身份标识,即一个跟踪框在不同视频帧中的位置信息变化,身份标识唯一不变。
综上所述,本实施例提供的运动目标的轨迹跟踪方法,在对运动目标进行跟踪时,该方法先在第t个视频帧图像中检测出运动目标的检测框,再提取检测框内的图像的检测特征矩阵;之后,获取第t个视频帧之前的m个视频帧中原运动目标的n个跟踪状态,来预测运动目标在第t个视频帧中的跟踪框,跟踪状态中还包括原运动目标的跟踪特征矩阵;最终,基于跟踪特征矩阵和检测特征矩阵之间的匹配,从原运动目标中确定出运动目标,在上述运动目标的轨迹跟踪过程中,可以仅采用一个线程统一对多个运动目标进行轨迹跟踪,无需为每一个运动目标的轨迹跟踪均分配一个线程以及一个单目标跟踪器,大大减少了对硬件资源的消耗,提高了硬件资源的利用率。
另外,n为大于1的正整数,也就是说,上述检测特征矩阵会与第t个视频帧之前的多个视频帧对应的跟踪特征矩阵进行匹配,增加了从原运动目标中匹配到运动目标的概率,减少了因仅与相邻一帧视频中原运动目标进行匹配而导致的对原运动目标丢失跟踪的情况,即便是在外观变形、光照变化、快速运动以及运动模糊等场景下,也能够通过多次匹配提高从原运动目标匹配到运动目标的成功率,实现了对运动目标的准确跟踪。
由于监控图像中存在运动目标过小、模糊等情况,需要更精准的识别方式,以快速、准确地从监控视频帧中检测出运动目标,且提取出检测框内的图像的特征图像,因此,如图4,上述步骤202可以采用如下步骤实现:
步骤2021,调用第一特征提取模型对第t个视频帧进行特征提取,得到第t个视频帧的特征图像。
上述第一特征提取模块的输入数据是第t个视频帧,即以监控视频流的单帧图像作为输入数据,最终输出的是特征提取后的特征图像。由于考虑到视频帧中运动目标尺寸较小,需要更精细的特征来辅助对运动目标的检测框进行定位和提取,同时还需要兼顾实时性,因此,采用平衡的深度网络设置第一特征提取模型。
可选地,第一特征提取模型是由深度神经网络AlexNet(Alex Network)模型、可视化神经网络(Visual Geometry Group Network,VGGNet)模型、残差网络(ResidualNetwork,ResNet)模型中的至少一种训练得到的;其中,AlexNet模型是基于其设计者亚历克斯·克里日(Alex Krizh)的名字命名的。
示例性的,第一特征提取模型可以是基于历史视频帧对ResNet50模型训练得到的。如图5,示出了一个由ResNet50模型训练得到的第一特征提取模型,该第一特征提取模型包括50个层,首先输入224×224×3的视频帧,即3个通道,视频帧尺寸是224×224;上述视频帧进入第一个层(Conv1),Conv1包括卷积核大小为7×7的卷积层,卷积核个数为64,最终输出特征图像的尺寸为112×112;Conv1输出的特征图像输入第二个层(Conv2),Conv2包括串联的3个块(blocks),每一个block包括3个串联的卷积层,第一个卷积层是通过1×1的卷积对特征图像进行降维,其卷积核个数为64,第二个卷积层是通过3×3的卷积对降维后的特征图像进行卷积操作,其卷积核个数为64,第三个卷积层是通过1×1的卷积对卷积计算后的特征图像进行维度恢复,其卷积核个数为256,最终由Conv2输出尺寸为56×56的特征图像;
Conv2输出的特征图像输入第三个层(Conv3),Conv3包括串联的4个块(blocks),每一个block包括3个串联的卷积层,第一个卷积层是通过1×1的卷积对特征图像进行降维,其卷积核个数为128,第二个卷积层是通过3×3的卷积对降维后的特征图像进行卷积操作,其卷积核个数为128,第三个卷积层是通过1×1的卷积对卷积计算后的特征图像进行维度恢复,其卷积核个数为512,最终由Conv3输出尺寸为28×28的特征图像;Conv3输出的特征图像输入第四个层(Conv4),Conv4包括串联的6个块(blocks),每一个block包括3个串联的卷积层,第一个卷积层是通过1×1的卷积对特征图像进行降维,其卷积核个数为256,第二个卷积层是通过3×3的卷积对降维后的特征图像进行卷积操作,其卷积核个数为256,第三个卷积层是通过1×1的卷积对卷积计算后的特征图像进行维度恢复,其卷积核个数为1024,最终由Conv4输出尺寸为14×14的特征图像;
Conv4输出的特征图像输入第五个层(Conv5),Conv5包括串联的3个块(blocks),每一个block包括3个串联的卷积层,第一个卷积层是通过1×1的卷积对特征图像进行降维,其卷积核个数为512,第二个卷积层是通过3×3的卷积对降维后的特征图像进行卷积操作,其卷积核个数为512,第三个卷积层是通过1×1的卷积对卷积计算后的特征图像进行维度恢复,其卷积核个数为2048,最终由Conv5输出尺寸为7×7的特征图像;Conv4输出的特征图像输入全连接层(Fully Connected layers,FC),输出维度为1000的特征图像;上述FC与目标检测模型相连,上述FC输出的特征图像输入目标检测模型。其中,第三个层还可以表示为Res3d,第四个层还可以表示为Res4f,第五个层还可以表示为Res5c。示例性的,上述ResNet模型可以是采用特征金字塔(Feature Pyramid Networks,FPN)架构设计的。
步骤2022,调用目标检测模型对第t个视频帧的特征图像进行运动目标的检测,得到检测框。
服务器调用目标检测模型从第t个视频帧的特征图像中识别出具有运动目标的兴趣区域(Region Of Interest,ROI),之后对ROI进行选框的微调和运动目标的细节判断,最终确定出一个精确的运动目标的检测框。以运动目标为行人为例,服务器调用目标检测模型从第t个视频帧的特征图像中识别出具有行人的ROI,基于行人的像素点对ROI进行选框的微调,以及对行人的性别、年龄、人种等细节进行判断,进而确定出行人的检测框。
可选地,上述目标检测模型是由神经网络模型训练得到的,该神经网络模型包括快速区域卷积神经网络(Faster Region Convolutional Neural Networks,Faster RCNN)模型、YOLO(You Only Look Once)模型、RetinaNet(Retina Networks)模型、SSD(SingleShot MultiBox Detector)模型中的至少一种。其中,YOLO模型、RetinaNet模型以及SSD模型均是目标检测模型。
示例性的,为了能够将小尺寸的运动目标从复杂背景中框选处理,可以采用基于历史视频帧的特征图像对Faster RCNN模型训练得到的目标检测模型。如图6,示出了一个由Faster RCNN模型训练得到的目标检测模型,其中,该目标检测模型中由ROI对齐(ROIalign)层303代替了ROI池化(ROI pooling)层。该目标检测模型可以分为4个部分,包括区域生成网络(RegionProposal Network,RPN)301、区域位置层(Proposallayer)302、ROI对齐层303、以及分类网络(Classification)304;将步骤2021中获得的第t个视频帧的特征图像输入RPN 301,由RPN 301中一个3×3卷积层进行卷积计算,将得到的第一子特征图像分别输入两个1×1卷积层,其中一个1×1卷积层在对第一子特征图像进行卷积计算之后,将得到的第二子特征图像输入softmax函数以进行分类计算,另一个1×1卷积层在对第一子特征图像进行卷积计算之后,继续对第三子特征图像进行边界框回归(bounding boxregression)计算,将分类计算结果和边界框回归计算结果输入Proposallayer 302;通过Proposallayer 302对ROI的区域位置修正,得到精确的区域位置信息;之后将上述区域位置信息输入ROI align层303,ROI align层303结合第t个视频帧的特征图像(featuremaps)和区域位置信息(proposals)提取出区域特征图(proposal feature maps);分类网络304中设置有3组FC层,将区域特征图输入分类网络304之后,由一组FC层进行计算,计算结果分别输入其它两组FC层,由其它两组FC层分别进行分类与边界框回归计算,确定出区域位置(proposals)类别和检测框的精确位置。
步骤2023,调用第二特征提取模型对检测框内的图像进行特征提取,得到检测特征矩阵。
在对运动目标的跟踪过程中,需要进行框内图像的匹配,确定是否为同一运动目标,因此,还需要确定出检测框内的特征图像,考虑到运动目标的尺寸小,且轨迹跟踪的高实时性要求,这里可以采用轻量级别的网络进行特征提取。示例性的,上述第二特征提取模型可以是由ResNet模型或者特征检测(Histogram of Oriented Gridients,HOG)模型训练得到的。示例性的,上述第二特征提取模型基于历史视频帧的区域特征图对ResNet18模型训练得到的,如图7,示出了一个由ResNet18模型训练得到的第二特征提取模型,其由18个卷积层、平均池化(Avgpool)层和FC构成,最终由FC输出维度为10的检测特征矩阵;其中,“3×3conv,128,/2”表示3×3卷积核的卷积层,卷积核个数为128,步长为2;“32×32”表示图像尺寸为32×32;“3×3conv,64”表示3×3卷积核的卷积层,卷积核个数为64。
示例性的,上述第一特征提取模型、目标检测模型和第二特征提取模型是单独训练得到的。
综上所述,本实施例提供的运动目标的轨迹跟踪方法,在从第t个视频帧中提取出运动目标的检测框和运动目标的检测特征矩阵的过程中,采用了第一特征提取模型、目标检测模型和第二特征提取模型,也就是说,第t个视频帧的特征图像、检测框和检测特征矩阵的提取分别采用了独立的网络模型,网络结构明晰,特征提取功能分配清楚,针对各自的特征提取功能均有较好的泛化能力,各个模型也能够各自单独训练,减小了业务落地风险。
在一些实施例中,对于检测特征矩阵和跟踪特征矩阵的匹配,服务器还可以采用如下子步骤实现步骤205,如图8,如下所示:
步骤2051,当检测框与预测跟踪框之间的匹配距离小于距离阈值时,将至少两个预测跟踪框对应的原运动目标确定为待匹配运动目标。
服务器计算检测框与预测跟踪框之间的匹配距离,其中,匹配距离与匹配难度呈正相关,即匹配距离越大,匹配难度也越大;示例性的,匹配距离包括位置距离,服务器可以计算检测框与预测跟踪框之间的位置距离,将位置距离小于或者等于距离阈值的至少两个预测跟踪框对应的原运动目标确定为待匹配运动目标。
步骤2052,通过匈牙利算法对每一个待匹配运动目标的跟踪特征矩阵和检测特征矩阵进行匹配计算,从待匹配运动目标中匹配出运动目标。
上述匈牙利算法即是KM(Kuhn-Munkres)算法;示例性的,服务器采用KM算法对每一个待匹配运动目标的跟踪特征矩阵和检测特征矩阵进行匹配计算,进而从待匹配运动目标中匹配出运动目标。
可选地,服务器还基于每一个待匹配运动目标对应的视频帧与第t个视频帧之间的时间距离,确定每一个待匹配运动目标的跟踪特征矩阵与检测特征矩阵匹配时的优先级顺序;之后通过KM算法按照优先级顺序对每一个跟踪特征矩阵与检测特征矩阵进行匹配,从待匹配运动目标中确定出运动目标。
示例性的,在确定出待匹配运动目标之后,生成待匹配运动目标的跟踪特征矩阵与检测特征矩阵的矩阵对;其中,一个待匹配运动目标对应的视频帧与第t个视频帧之间的时间间隔越小,则该待匹配运动目标的矩阵对的匹配计算的优先级越高,比如,第t-1个视频帧比第t-3个视频帧对应的矩阵对的匹配计算的优先级高。
可选地,服务器首先基于匹配距离确定出待匹配运动目标对应的矩阵对进行匹配计算时的待定优先级顺序;之后基于每一个待匹配运动目标对应的视频帧与第t个视频帧之间的时间距离,对待定优先级顺序进行调整得到优先级顺序。示例性的,第t个视频帧中存在至少两个检测框,最后得到的优先级顺序可以是按照时间顺序排列的至少两组矩阵对,每一组中是按照匹配距离排列的至少两个矩阵对。
还需要说明的是,为了避免特征维度上存在与原运动目标漏匹配的情况,还可以采用区域交并比(Intersection-over-Union,IoU)对未匹配的原运动目标(即n个原运动目标中的非待匹配运动目标)的预测跟踪框与检测框进行匹配,如图9,示出了IoU计算示意图。服务器计算重叠区域(Area of Overlap)与并集区域(Area of Union)的比值,即得到IoU,上述重叠区域是预测跟踪框与检测框的重叠区域,上述并集区域是预测跟踪框与检测框的并集区域;若IoU大于IoU阈值,则生成未匹配的原运动目标的跟踪特征矩阵和检测特征矩阵的矩阵对,继而计算上述跟踪特征矩阵和检测特征矩阵之间的匹配距离,基于上述匹配距离确定出上述矩阵对的匹配计算的优先级顺序,之后通过KM算法对矩阵对进行匹配计算,从上述未匹配的原运动目标中查找运动目标。可选地,上述未匹配的原运动目标对应的视频帧与第t个视频帧相邻。
示例性的,如图10所示,服务器在获得第t-1个视频帧401,从第t-1个视频帧401中提取出行人的检测框402,之后确定出行人的跟踪框403;如图11所示,在第t个视频帧404中,跟踪框403仍对该行人进行轨迹跟踪。
还需要说明的是,服务器还对运动目标的跟踪框进行全局状态缓存,一旦视频流中某一帧发生丢失跟踪的情况,只有后续算法恢复跟踪,会通过状态恢复,将相同跟踪框ID的跟踪轨迹串联起来。
示例性的,如图12,对运动目标的整个跟踪过程进行说明,服务器在获取得到第t个视频帧时,首先进行第t个视频帧的特征提取501,得到第t个视频帧的特征图像;基于第t个视频帧的特征图像进行运动目标检测502,得到了检测框;获取检测框内图像503,进行检测框内图像的特征提取504,得到检测特征矩阵;之后服务器获取已缓存的n个跟踪状态505,基于跟踪状态进行原运动目标在第t个视频帧中的跟踪框预测,得到预测跟踪框;基于预测跟踪框和检测框确定出待匹配运动目标;基于跟踪状态中待匹配运动目标的跟踪特征矩阵与检测特征矩阵进行特征矩阵匹配506,从待匹配运动目标中匹配出运动目标;然后服务器还对未匹配到的运动目标再进行一次IoU匹配507,以从待匹配运动目标中匹配出更多的运动目标;最终,服务器还进行后处理508,示例性的,服务器进行后处理时将第t个视频帧中跟踪框对运动目标的跟踪状态存储至跟踪状态库中。
综上所述,本实施例提供的运动目标的轨迹跟踪方法,通过KM算法实现了对跟踪特征矩阵和检测特征矩阵的精准匹配。另外,该方法中还通过计算检测框与预测跟踪框之间的匹配距离,直接剔除了部分匹配难度过大的跟踪特征矩阵,也即剔除了部分大概率不是运动目标的原运动目标,减少了需要匹配的矩阵对,提高了两两矩阵的匹配效率,也减少了对机器计算量的占用。
图13是本申请一个示例性实施例提供的运动目标的轨迹跟踪装置的结构框图,该装置可以通过软件、硬件、或者二者结合的形式成为服务器的部分或者全部,该装置包括:
获取模块601,用于获取监控视频流中的第t个视频帧;
提取模块602,用于从第t个视频帧中提取出运动目标的检测框和运动目标的检测特征矩阵;
获取模块601,用于获取第t个视频帧之前的m个视频帧中原运动目标的n个跟踪状态;
预测模块603,用于基于每一个跟踪状态,预测原运动目标在第t个视频帧中的跟踪框,得到n个跟踪状态对应的n个预测跟踪框,跟踪状态包括原运动目标的跟踪特征矩阵;
匹配模块604,用于当检测框与预测跟踪框之间的匹配距离小于距离阈值时,基于预测跟踪框对应的跟踪特征矩阵与检测特征矩阵,从原运动目标中匹配出运动目标;其中,t、m、n均为大于1的正整数,m小于或者等于n的正整数。
在一些实施例中,跟踪状态包括跟踪框的位置信息和移动速率;
预测模块603,用于基于每一个跟踪状态中的位置信息和移动速率,预测原运动目标在第t个视频帧中的跟踪框,得到n个跟踪状态对应的n个预测跟踪框。
在一些实施例中,预测模块603,用于基于每一个跟踪状态中的位置信息和移动速率,通过卡尔曼滤波模型对原运动目标在第t个视频帧中的跟踪框进行预测,得到n个跟踪状态对应的n个预测跟踪框。
在一些实施例中,应用于监控系统中,监控系统包括至少两个摄像头,第t个视频帧是至少两个摄像头中第j个摄像头采集的视频帧,j为正整数;
n个跟踪状态包括至少两个摄像头采集的视频帧中原运动目标的跟踪状态;
或者,n个跟踪状态包括第j个摄像头采集的视频帧中原运动目标的跟踪状态。
在一些实施例中,提取模块602,用于调用第一特征提取模型对第t个视频帧进行特征提取,得到第t个视频帧的特征图像;调用目标检测模型对第t个视频帧的特征图像进行运动目标的检测,得到检测框;调用第二特征提取模型对检测框内的图像进行特征提取,得到检测特征矩阵。
在一些实施例中,匹配模块604,用于当检测框与预测跟踪框之间的匹配距离小于距离阈值时,将至少两个预测跟踪框对应的原运动目标确定为待匹配运动目标;通过匈牙利算法对每一个待匹配运动目标的跟踪特征矩阵和检测特征矩阵进行匹配计算,从待匹配运动目标中匹配出运动目标。
在一些实施例中,匹配模块604,用于基于每一个待匹配运动目标对应的视频帧与第t个视频帧之间的时间距离,确定每一个待匹配运动目标的跟踪特征矩阵与检测特征矩阵匹配时的优先级顺序;通过匈牙利算法按照优先级顺序对每一个跟踪特征矩阵与检测特征矩阵进行匹配,从待匹配运动目标中确定出运动目标。
综上所述,本实施例提供的运动目标的轨迹跟踪装置,在对运动目标进行跟踪时,先在第t个视频帧图像中检测出运动目标的检测框,再提取检测框内的图像的检测特征矩阵;之后,获取第t个视频帧之前的m个视频帧中原运动目标的n个跟踪状态,来预测运动目标在第t个视频帧中的跟踪框,跟踪状态中还包括原运动目标的跟踪特征矩阵;最终,基于跟踪特征矩阵和检测特征矩阵之间的匹配,从原运动目标中确定出运动目标,在上述运动目标的轨迹跟踪过程中,可以仅采用一个线程统一对多个运动目标进行轨迹跟踪,无需为每一个运动目标的轨迹跟踪均分配一个线程以及一个单目标跟踪器,大大减少了对硬件资源的消耗,提高了硬件资源的利用率。
另外,n为大于1的正整数,也就是说,上述检测特征矩阵会与第t个视频帧之前的多个视频帧对应的跟踪特征矩阵进行匹配,增加了从原运动目标中匹配到运动目标的概率,减少了因仅与相邻一帧视频中原运动目标进行匹配而导致的对原运动目标丢失跟踪的情况,即便是在外观变形、光照变化、快速运动以及运动模糊等场景下,也能够通过多次匹配提高从原运动目标匹配到运动目标的成功率,实现了对运动目标的准确跟踪。
图14示出了本申请一个示例性实施例提供的服务器的结构示意图。该服务器可以如图1所示的计算机系统中的服务器120。
服务器700包括中央处理单元(CPU,Central Processing Unit)701、包括随机存取存储器(RAM,Random Access Memory)702和只读存储器(ROM,Read Only Memory)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。服务器700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统,InputOutput System)706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。
基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。大容量存储设备707及其相关联的计算机可读介质为服务器700提供非易失性存储。也就是说,大容量存储设备707可以包括诸如硬盘或者紧凑型光盘只读存储器(CD-ROM,Compact Disc Read Only Memory)驱动器之类的计算机可读介质(未示出)。
计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read Only Memory)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(DVD,Digital Versatile Disc)或固态硬盘(SSD,Solid State Drives)、其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。
根据本申请的各种实施例,服务器700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器700可以通过连接在系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
在一个可选的实施例中,提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上所述的运动目标的轨迹跟踪方法。
在一个可选的实施例中,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上所述的运动目标的轨迹跟踪方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅为了描述,不代表实施例的优劣。
本申请实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如上方面所述的运动目标的轨迹跟踪方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 运动目标的轨迹跟踪方法、装置、设备及存储介质
- 运动目标的视觉跟踪方法、装置、电子设备及存储介质