发明内容
为解决现有存在的技术问题,本发明实施例提供一种跟踪方法和装置、存储介质。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种跟踪方法,所述方法包括:
采集第i帧扫描数据,i为正整数,所述第i帧扫描数据中包括至少一个待识别目标;
对所述至少一个待识别目标进行识别,得到至少一个识别对象;
获得所述至少一个识别对象的观测位置信息;
获得历史跟踪目标信息;
基于所述至少一个识别对象的观测位置信息和历史跟踪目标信息,确定在第i帧扫描数据下的跟踪目标,以对所述跟踪目标进行跟踪。
上述方案中,
基于历史跟踪目标信息,对各个历史跟踪目标在第i时刻的位置进行预测,得到各个历史跟踪目标的预测位置信息;
基于所述各个历史跟踪目标的预测位置信息和所述至少一个识别对象的观测位置信息,确定在第i帧扫描数据下的跟踪目标。
上述方案中,
在第i帧扫描数据为非第1帧扫描数据的情况下,针对所述至少一个识别对象,
存在有一个识别对象、所述识别对象出现在所述历史跟踪目标信息中且基于历史跟踪目标信息得到的该识别对象的预测位置与观测位置之间的距离小于等于预定第一阈值,则确定该识别对象为基于第i帧扫描数据而得到的跟踪目标;
当各个识别对象的观测位置信息中存在有一个识别对象其观测位置与所述历史跟踪目标信息中的各个历史跟踪目标的预测位置之间的距离均大于预定的第二阈值,则确定该识别对象为在第i帧扫描数据中出现的新的跟踪目标;
在历史跟踪目标信息中存在有一个历史跟踪目标、未出现在所述至少一个识别对象中,则确定该历史跟踪目标为在第i帧扫描数据中被跟踪丢失的目标。
上述方案中,
确定基于第i帧扫描数据得到的各个跟踪目标在第i帧扫描数据下的位置最优估计值;
依据各个跟踪目标的位置最优估计值,确定各个跟踪目标的跟踪数据以对所述各个跟踪目标进行跟踪。
上述方案中,
至少将基于第i帧扫描数据得到的各个跟踪目标的标识、及在位置最优估计值添加至历史轨迹集合中。
上述方案中,
确定基于第i帧扫描数据得到的各个跟踪目标的位置最优估计值与历史轨迹集合中同一跟踪目标在第i-1帧扫描数据下得到的位置最优估计值进行距离的运算,如果距离差超出设定的第二阈值,则标记所述相同跟踪目标基于第i帧数据而得到的估计位置为异常位置。
本发明实施例提供一种跟踪装置,所述装置包括:
采集单元,用于采集第i帧扫描数据,i为正整数,所述第i帧扫描数据中包括至少一个待识别目标;
识别单元,用于对所述至少一个待识别目标进行识别,得到至少一个识别对象;
第一获取单元,用于获得所述至少一个识别对象的观测位置信息;
第二获取单元,用于获得历史跟踪目标信息;
确定单元,用于基于所述至少一个识别对象的观测位置信息和历史跟踪目标信息,确定在第i帧扫描数据下的跟踪目标,以对所述跟踪目标进行跟踪。
上述方案中,
所述确定单元,还用于基于历史跟踪目标信息,对各个历史跟踪目标在第i时刻的位置进行预测,得到各个历史跟踪目标的预测位置信息;
基于所述各个历史跟踪目标的预测位置信息和所述至少一个识别对象的观测位置信息,确定在第i帧扫描数据下的跟踪目标。
上述方案中,
在第i帧扫描数据为非第1帧扫描数据的情况下,针对所述至少一个识别对象,
所述确定单元,还用于:
存在有一个识别对象、所述识别对象出现在所述历史跟踪目标信息中且基于历史跟踪目标信息得到的该识别对象的预测位置与观测位置之间的距离小于等于预定第一阈值,则确定该识别对象为基于第i帧扫描数据而得到的跟踪目标;
当各个识别对象的观测位置信息中存在有一个识别对象其观测位置与所述历史跟踪目标信息中的各个历史跟踪目标的预测位置之间的距离均大于预定的第二阈值,则确定该识别对象为在第i帧扫描数据中出现的新的跟踪目标;
在历史跟踪目标信息中存在有一个历史跟踪目标、未出现在所述至少一个识别对象中,则确定该历史跟踪目标为在第i帧扫描数据中被跟踪丢失的目标。
上述方案中,
所述确定单元,还用于确定基于第i帧扫描数据得到的各个跟踪目标在第i帧扫描数据下的位置最优估计值;
依据各个跟踪目标的位置最优估计值,确定各个跟踪目标的跟踪数据以对所述各个跟踪目标进行跟踪。
上述方案中,
添加单元,用于至少将基于第i帧扫描数据得到的各个跟踪目标的标识、及在位置最优估计值添加至历史轨迹集合中。
上述方案中,
所述确定单元,还用于确定基于第i帧扫描数据得到的各个跟踪目标的位置最优估计值与历史轨迹集合中同一跟踪目标在第i-1帧扫描数据下得到的位置最优估计值进行距离的运算,如果距离差超出设定的第二阈值,则标记所述相同跟踪目标基于第i帧数据而得到的估计位置为异常位置。
本发明实施例提供一种存储介质,用于存储计算机程序,该计算机程序被执行时至少执行前述的跟踪方法。
本发明实施例提供一种跟踪装置,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储介质,
其中,所述处理器用于运行所述计算机程序时,至少执行前述的跟踪方法的步骤。
本发明实施例提供的跟踪方法和装置、存储介质,其中,所述方法包括:采集第i帧扫描数据,i为正整数,所述第i帧扫描数据中包括至少一个待识别目标;对所述至少一个待识别目标进行识别,得到至少一个识别对象;获得所述至少一个识别对象的观测位置信息;获得历史跟踪目标信息;基于所述至少一个识别对象的观测位置信息和历史跟踪目标信息,确定在第i帧扫描数据下的跟踪目标,以对所述跟踪目标进行跟踪。
本申请实施例中,基于识别对象的观测位置信息和历史跟踪目标信息,确定在第i帧扫描数据下的跟踪目标,使得跟踪目标确定的更为准确,可提高确定跟踪目标的准确性。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请提供跟踪方法的一实施例,如图1所示,所述方法包括:
步骤101:采集第i帧扫描数据,i为正整数,所述第i帧扫描数据中包括至少一个待识别目标;
步骤102:对所述至少一个待识别目标进行识别,得到至少一个识别对象;
步骤103:获得所述至少一个识别对象的观测位置信息;
步骤104:获得历史跟踪目标信息;
步骤105:基于所述至少一个识别对象的观测位置信息和历史跟踪目标信息,确定在第i帧扫描数据下的跟踪目标,以对所述跟踪目标进行跟踪。
前述方案中,基于识别对象的观测位置信息和历史跟踪目标信息,确定在第i帧扫描数据下的跟踪目标,使得跟踪目标确定的更为准确,可提高确定跟踪目标的准确性。
在一个可选的实施例中,所述方法还包括:
基于历史跟踪目标信息,对各个历史跟踪目标在第i时刻的位置进行预测,得到各个历史跟踪目标的预测位置信息;
基于所述各个历史跟踪目标的预测位置信息和所述至少一个识别对象的观测位置信息,确定在第i帧扫描数据下的跟踪目标。
前述方案中,结合识别对象的观测位置信息和观测位置信息,确定在第i帧扫描数据下的跟踪目标,可保证确定跟踪目标的准确性。
在一个可选的实施例中,
在第i帧扫描数据为非第1帧扫描数据的情况下,针对所述至少一个识别对象,
存在有一个识别对象、所述识别对象出现在所述历史跟踪目标信息中且基于历史跟踪目标信息得到的该识别对象的预测位置与观测位置之间的距离小于等于预定第一阈值,则确定该识别对象为基于第i帧扫描数据而得到的跟踪目标;
当各个识别对象的观测位置信息中存在有一个识别对象其观测位置与所述历史跟踪目标信息中的各个历史跟踪目标的预测位置之间的距离均大于预定的第二阈值,则确定该识别对象为在第i帧扫描数据中出现的新的跟踪目标;
在历史跟踪目标信息中存在有一个历史跟踪目标、未出现在所述至少一个识别对象中,则确定该历史跟踪目标为在第i帧扫描数据中被跟踪丢失的目标。
前述方案中,结合识别对象的观测位置信息和观测位置信息,确定在第i帧扫描数据下真正需要跟踪的目标,以避免跟踪目标出错导致的跟踪资源浪费的问题。
在一个可选的实施例中,所述方法还包括:
确定基于第i帧扫描数据得到的各个跟踪目标在第i帧扫描数据下的位置最优估计值;依据各个跟踪目标的位置最优估计值,确定各个跟踪目标的跟踪数据以对所述各个跟踪目标进行跟踪。此处,在确定好跟踪目标后,获得跟踪目标的最优跟踪值(位置最优估计值),并利用最优跟踪值对目标进行跟踪,可保证跟踪的正确性,实现更完美的跟踪如实时跟踪。
在一个可选的实施例中,所述方法包括:
至少将基于第i帧扫描数据得到的各个跟踪目标的标识、及在位置最优估计值添加至历史轨迹集合中,以便基于对历史轨迹集合的使用准确确定后续帧的跟踪目标。
在一个可选的实施例中,所述方法还包括:
确定基于第i帧扫描数据得到的各个跟踪目标的位置最优估计值与历史轨迹集合中同一跟踪目标在第i-1帧扫描数据下得到的位置最优估计值进行距离的运算,如果距离差超出设定的第二阈值,则标记所述相同跟踪目标基于第i帧数据而得到的估计位置为异常位置。当连续M4帧均出现该跟踪目标的异常位置的情况,则清空历史轨迹集合中该跟踪目标的跟踪轨迹,并以正确位置为初始位置,继续进行跟踪。以完善对目标的准确跟踪。
下面对本申请实施例中涉及的技术术语进行说明:
1)点云数据:还可称为激光点云数据。是利用激光在同一空间参考系下获取的物体表面的每个采样点的空间坐标,即得到的是一系列表达目标空间分布和目标表面特性的海量点的集合。这个点的集合就称之为“点云”(Point Cloud)。
2)结构化点云数据:与非结构化点云数据相对而言,存在一定的存储结构/格式,例如,以矩阵的形式进行数据的存储。非结构化点云数据量大、无点云拓扑信息、特征点检测容易受噪声影响;而结构化的点云数据与非结构化点云数据相比,数据量较小,鲁棒性强,特征点检测不易受到噪声影响。
3)目标或待识别目标:可以是目标识别过程中出现的任何合理的物体,如在军事领域中可以为作战飞机、轮船、汽车等供给的对象。在民用领域中,例如在物流配送中可以是无人配送车、无人配送机、配送机器人等在行进过程中遇到的任何障碍物或建筑,如行进过程中遇到的公交车、私家车、大楼、树木等。
本申请提供跟踪方法的第二实施例,如图2所示,所述方法包括:
步骤201:采集第i帧扫描数据,所述第i帧扫描数据中包括至少一个待识别目标;
步骤202:基于第i帧扫描数据,得到至少一个待识别目标的点云数据;
步骤203:基于所述至少一个待识别目标的点云数据,对所述至少一个待识别目标进行识别,得到至少一个识别对象;
步骤204:获得所述至少一个识别对象的观测位置信息;
步骤205:获取基于至少一个第m帧扫描数据而得到的至少一个历史跟踪目标的历史轨迹集合,m为正整数且小于等于i;
步骤206:基于历史轨迹集合,获得历史跟踪目标信息;
步骤207:基于所述至少一个识别对象的观测位置信息和历史跟踪目标信息,确定在第i帧扫描数据下的跟踪目标;
步骤208:确定基于第i帧扫描数据得到的各个跟踪目标在第i帧扫描数据下的位置最优估计值;依据各个跟踪目标的位置最优估计值,确定各个跟踪目标的跟踪数据以对所述各个跟踪目标进行跟踪。
在上述方案中,本领域技术人员应该理解,本申请实施例中的方案在本质上可划分为两大部分:目标识别和目标跟踪。其中,步骤201~203可视为目标识别阶段。步骤204~208可视为跟踪目标的确定阶段以及跟踪阶段。其中,目标识别的基础数据为采集到的点云数据,点云数据具有一定的数据存储格式,例如以矩阵的形式进行存储,与没有存储格式的采集数据相比,点云数据可加快对目标的识别过程,使得目标的识别速度与目标跟踪的速度能够匹配上,不至于因为目标识别速度过慢而导致的目标跟踪算法中没有检测到要跟踪的目标,进而可保证识别与跟踪的实时性。点云数据为目标的识别提供了准确的基础数据,可保证目标识别的准确性。结合观测位置信息和历史跟踪目标信息,对第i帧扫描数据的跟踪目标进行确定,可大大提高跟踪目标的准确性。
在一个可选的方案中,所述第i帧扫描数据通过激光雷达对各个待识别目标的扫描而得到;所述激光雷达包括多个激光传感器,所述多个激光传感器设置在激光雷达的不同位置上;各个激光传感器在激光雷达的各自位置处进行多个角度的旋转,得到各个激光传感器的各个扫描角度;在每个扫描角度处至少对各个待识别目标的位置信息进行扫描,得到所述第i帧扫描数据。其中,激光雷达中的各个激光传感器可进行多角度的旋转,进而可在多个角度进行待识别目标的扫描,如此,可保证扫描数据的多角度性、完整性。
在一个可选的方案中,所述方法包括:所得到的针对所述至少一个待识别目标的点云数据为结构化点云数据,基于所述至少一个待识别目标的结构化点云数据,对所述至少一个待识别目标进行识别;当得到的针对所述至少一个待识别目标的点云数据为非结构化点云数据时,对非结构化点云数据进行处理得到结构化点云数据,基于所述至少一个待识别目标的结构化点云数据,对所述至少一个待识别目标进行识别。其中,结构化的点云数据可加快对目标的识别过程,使得目标的识别速度与目标跟踪的速度能够匹配上,可保证识别与跟踪的实时性。此外,结构化的点云数据为目标的识别提供了准确的基础数据,可保证目标识别的准确性。
在一个可选的方案中,所述基于所述至少一个待识别目标的点云数据,对所述至少一个待识别目标进行识别,包括:所述结构化点云数据至少表征为各个待识别目标在各个激光传感器的不同扫描角度下的位置信息;至少基于各个位置信息与预定点之间的距离和/或角度,对表征为相同待识别目标的点云数据进行聚类,依据表征为相同待识别目标的点云数据,得到各个目标当前所处的位置。
在一个可选的方案中,所述方法包括:
对所述至少一个待识别目标进行识别,得到各个识别对象;
对各个识别目标进行标识。
上述方案中,在识别出对象时,为方便对识别对象的管理,对各个识别对象进行标识信息的构建,该标识信息至少包括各个识别对象的编号。标识信息方便后续对跟踪目标的跟踪。
下面结合图3所示的应用场景示意图,对本申请实施例的技术方案做进一步说明。需要说明的是,本方案是以一帧(单帧)数据作为基准运算量,每一帧数据均需要执行以下流程,至少能够得到在对应帧下需要跟踪的目标。
以图3所示的无人配送车为例。无人配送车在行进过程中遇到的物体如人、鼓及垃圾桶均可视为待识别目标。
步骤301:在第i时刻,激光雷达上的各个激光传感器从各自的扫描角度对待识别目标进行扫描,得到第i帧扫描数据。
针对无人配送车行进的情形,在一定时刻需要对无人配送车及其行进环境进行数据感知。感知时刻可以依据具体情况而设定,如30s感知一次,3分钟感知一次等。这里的数据感知主要依据激光雷达来完成。在一辆无人配送车上,对其进行数据感知的激光雷达的数量可以为多个也可以为一个。每个激光雷达上设置有2n线(个)激光传感器,n为大于等于4的正整数,例如16个、32个、64个等。各个激光传感器均可以进行0~360°中任一角度的旋转(具有多个旋转角度)。因为激光传感器的可旋转特性,各个激光传感器可以在不同旋转角度上对无人配送车的行进环境进行感知。
激光雷达采集到的数据为点云数据,考虑到点云数据的格式具有两类:结构化点云与非结构化点云。为了提高数据处理效率,本步骤中初始化点云结构,将采集到的非结构化点云数据处理为结构化点云,即将点云数据以矩阵的形式储存。点云数据的结构化可显著提升识别速度。
以激光雷达上的激光传感器的数量为16,均可进行360度旋转为例,点云数据的矩阵的行数等于激光传感器的数量16,列数可以等于激光雷达旋转一周时单个激光传感器采集到的所有点个数。例如,假定所有激光传感器均可进行360°的旋转,360°的旋转视为一周旋转,在旋转一周时各个激光传感器采集到的所有点的个数相同,旋转360度每个激光传感器采集到的点个数为1800,则列数等于1800。当然,矩阵中的一行元素代表着同一激光传感器在不同旋转角度下对第i时刻的行进环境进行扫描而得到的待识别目标的各个采样点的坐标数据。矩阵中的一列元素代表着16个激光传感器在同一旋转角度下对第i时刻的行进环境进行扫描而得到的待识别目标的各个采样点的坐标数据。
步骤302:基于结构化点云数据,对属于同一待识别目标的激光点进行聚类,得到各个识别对象。
考虑到在行进环境中,待识别目标可以是车辆、行人、树木等物体。步骤201中的矩阵中的元素是能够表征为这些物体的激光点数据,本步骤中的聚类可以视为从矩阵中的所有元素中确定出属于同一待识别目标的激光点数据。
考虑到无人配送车的硬件条件与感知需求,采用基于几何特征的递归泛洪聚类算法进行同一待识别目标的激光点数据的聚类。具体的,以某点为中心,寻找四邻域内与之属于同一目标的激光点,以此作为中心利用递归泛洪聚类算法进行递归,直到找到属于同一目标的所有激光点数据。判断两激光点数据是属于同一目标的依据是二者的位置与角度均在阈值范围内。经过一次递归泛洪聚类算法的遍历即可完成所有目标的聚类以及各个目标的激光点数据的计数。
在具体实现上,以激光传感器的轴心所在的坐标为原点,以矩阵中的其中一个元素代表的坐标如坐标1为中心,计算坐标1与原点坐标之间的距离和/或计算坐标1与坐标原点之间的角度,计算其它元素代表的坐标如坐标2与原点坐标之间的距离和/或计算坐标2与坐标原点之间的角度,如果计算出的坐标1与原点坐标之间的距离与坐标2与原点坐标之间的距离的差值位于预定的距离阈值内,和/或坐标1与坐标原点之间的角度和坐标2与坐标原点之间的角度的差值在预定的角度阈值内,则认为坐标1和坐标2所代表的这两个激光点数据是属于同一目标的激光点数据。至此,结构化点云数据中属于同一目标的激光点数据均被查找出。
其中,预定的距离阈值和角度阈值根据实际使用的采集激光点数据的激光雷达的精密性而定。
由于步骤302中将同一目标的激光点数据均可查找出,且激光点数据即为目标上各个采集点的坐标信息,基于各个目标的采样点的坐标信息,计算出各个目标在第i时刻所处的观测位置信息。
步骤303:构建各个识别对象的标识信息,所述标识信息至少包括各个识别对象的标识;
此步骤作为前述的对待识别目标进行识别,得到各个识别对象,并对各个识别对象进行标识。
在步骤302中依据结构化点云数据的矩阵,将同一目标的激光点数据查找出,进而识别出无人配送车在第i时刻的行进环境中存在几个物体,即存在几个目标。步骤303中使用标识信息将各个识别对象标识出,并构建每个识别对象的标识信息。每个识别对象的标识信息至少包含:目标编号、代表该目标的激光点数据、包围框、朝向、中心点、目标尺寸等。其中,包围框指的是在图像上以矩形框的形式圈出要跟踪的目标,矩形框的移动代表着位于矩形框内的目标的移动。朝向指的是矩形框的行进方向也即矩形框圈出的要跟踪的识别对象的行进方向。中心点指的是矩形框的中心点。目标尺寸指的是矩形框的尺寸。也即上述方案中,将要跟踪的目标用矩形框来圈出,后续通过图像显示的识别对象的跟踪可通过对矩形框的跟踪来观看,以避免跟踪目标较小而导致的无法观看到跟踪目标情况的出现。
上述方案中,计算激光点数据是否属于同一目标使用的坐标系并非是大地坐标系。为了在后续跟踪过程中得到每个目标的速度为绝对速度(绝对速度为相对于大地坐标系的速度),本步骤中,还可以将在空间上将每个目标进行旋转-平移变换,将目标的坐标点变换到里程计坐标系(Odom坐标系)下(为大地坐标系的一种具体实现)。转换过程所需的旋转平移矩阵实际使用的无人配送车的定位模块来提供,此处不再赘述。
在步骤301~303中完成了对每一帧(当前第i帧)采集到的点云数据进行目标聚类以及对每个识别对象的识别及其标识信息的构建,接下来进行跟踪目标的确定以及对跟踪目标进行跟踪,如以下步骤所示。
步骤304:读取存储的基于至少一个第m帧扫描数据而得到的至少一个历史跟踪目标的历史轨迹集合;
也即读取在第i时刻之前的基于至少一个其它采集时刻采集到的扫描数据而得到的跟踪目标信息,如跟踪目标的标识和在各个采集时刻的位置信息、运动轨迹等信息。
这里,在对每帧扫描数据进行如上方法的识别与如下方法的跟踪之后,均在每帧下得到的跟踪目标的位置信息。可以理解,多帧扫描数据下来,将同一跟踪目标的在多帧扫描数据(多个扫描/采集时刻)下的位置存储下来,是必形成了该跟踪目标的跟踪轨迹。各个跟踪目标的跟踪轨迹的集合(历史轨迹集合)即为所述至少一个目标的轨迹集合。可以理解,跟踪目标的历史轨迹集合即基于第i帧之前的至少一个帧扫描数据而得到的跟踪目标的位置的最优估计值的集合。也即跟踪目标的历史轨迹集合即基于第i时刻之前的至少一个扫描/采集时刻而得到的跟踪目标的位置的最优估计值的集合。
这里,考虑到当前帧即第i帧可能为第1帧也可以不为第1帧;
其中,针对第i帧为第1帧的情形,
所述历史轨迹集合为空、还未形成,这种情况下,视第1帧检测到的所有目标均为新目标,并为每个目标构建目标的跟踪轨迹,并将各个新目标及其跟踪轨迹对应记录在历史轨迹集合中。由于本方案的跟踪过程采用了卡尔曼滤波算法,为方便后续帧的使用,为每个目标初始化卡尔曼滤波器参数和卡尔曼滤波器跟踪过程中使用到的跟踪常数等。
其中,当第i帧不是第1帧的情形,执行步骤305:
步骤305:依据存储的至少一个历史跟踪目标的历史轨迹,对所述至少一个历史跟踪目标的位置进行预测,得到各个历史跟踪目标的预测位置;
针对第i帧不是第1帧的情形,所述历史轨迹集合中不为空,存在有由第i帧之前的至少一帧确定出的跟踪目标(历史跟踪目标)与历史跟踪目标的跟踪轨迹(历史轨迹)。读取所有历史跟踪目标的跟踪轨迹,视该跟踪轨迹为轨迹集合T,轨迹集合T记载有跟踪目标及其对应的历史轨迹等信息。
采用预测模型进行历史跟踪目标的下一次位置和速度的预测。具体的,针对轨迹集合T中的第p(p为正整数)个目标的历史轨迹tp与为该目标设定的卡尔曼滤波器参数,预测第p个目标的轨迹状态,包括第p个目标沿着历史轨迹行进在第i时刻可能所处的位置(预测位置)和速度(预测速度)。其中,预测模型为线性模型,即假设目标以上一帧的速度做匀速直线运动。
步骤306:基于各个历史跟踪目标的预测位置及各个识别对象的观测位置,至少得到三种目标确定结果;
这里,基于前述的预测模型可以预测出历史轨迹集合中记载的每个历史跟踪目标在第i时刻的预测位置。同时,由前述方案可以获知在当前帧(第i帧)的扫描数据下得到的目标在第i时刻(当前时刻)所处的位置信息。将历史跟踪目标在第i时刻得到的目标的预测位置和基于当前帧的扫描数据下得到的各个目标在第i时刻所处的观测位置信息作为输入,输入至匹配算法,匹配算法由Kuhn–Munkres算法和匈牙利算法来实现。
其中,本领域技术人员应该理解:匹配过程中采用的匈牙利算法是一种在多项式时间内求解分配问题的组合优化算法,由目标的预测位置与目标的观测位置计算相似度矩阵A。其中行数代表轨迹个数,列数代表基于当前帧的扫描数据而得到的检测到的目标个数。相似度矩阵A中的每个元素aij表示目标的预测位置与目标的观测位置的相似度,取值范围为[0,1]。计算相似度时,考虑两个目标的位置、大小、点的个数、外观特征等因素,其加权和为最终的相似度值。
通过位置信息之间的相似度的计算,而得到以下三种目标确定结果:
第一种,观测位置信息中存在有一个识别对象其当前所处的观测位置与所述各个历史跟踪目标的预测位置信息(根据历史轨迹集合而得到)中该识别对象的预测位置之间的距离小于等于预定第一阈值,则视该目标基于第i帧扫描数据得到的跟踪目标。也即历史跟踪目标中至少有部分历史跟踪目标为需要在第i时刻进行跟踪的目标。
第二种,在当前第i帧扫描数据中出现了一个新的目标,该目标在历史轨迹集合T中并没有记载,但在第i帧扫描数据中也是需要被跟踪的目标。
也就是说,当各个识别对象的观测位置信息中存在有一个识别对象其观测位置与所述历史跟踪目标信息中的各个历史跟踪目标的预测位置之间的距离均大于预定的第二阈值,则确定该识别对象为在第i帧扫描数据中出现的新的跟踪目标。
第三种,历史跟踪目标中存在有目标被跟踪丢失。也就是说,在历史跟踪目标信息中存在有一个历史跟踪目标、未出现在所述至少一个识别对象中,则确定该历史跟踪目标为在第i帧扫描数据中被跟踪丢失的目标。
步骤307:基于三种目标确定结果,得到基于第i帧扫描数据而得到的跟踪目标在第i帧扫描数据下的位置的最优估计值;
步骤308:基于最优估计值确定跟踪目标的跟踪数据,并依据跟踪数据对目标进行跟踪,并对跟踪结果进行输出。
在步骤307和308中,主要基于卡尔曼滤波(Kalman)算法而实现。
针对前面描述的三种目标确定结果中的第一种结果,也即针对第i帧出现的与历史轨迹集合T中出现的同一目标(跟踪目标),将跟踪目标的预测位置值与观测位置值作为Kalman滤波器的输入得到输出,该输出为该跟踪目标在第i帧扫描数据下(第i时刻)得到的位置的最优估计值,为方便后续帧的使用,将该最优估计值添加到历史轨迹集合T中。同时,更新卡尔曼增益矩阵、协方差矩阵等Kalman参数,以便后续帧的使用。
针对前面描述的三种目标确定结果中的第二种结果,对于第i帧新出现的目标,将当前帧中为该新目标计算出的观测位置作为在当前帧的位置估计值,并利用位置估计值为该新目标构建跟踪轨迹,并将各个新目标及其跟踪轨迹对应记录在历史轨迹集合T中。
针对前面描述的三种目标确定结果中的第三种结果,对于第i帧跟踪丢的目标,若目标已丢失,则以预测位置作为该目标的在当前帧的位置估计值。如果在后续帧中,该目标仍然是被跟踪丢的目标,则在目标均被跟踪丢失的多帧中,如果帧数达到一定阈值则在之前存储的轨迹集合中删除该目标的轨迹集合。
可以看出,本步骤中,只有三种目标确定结果中的第一种跟踪目标有资格进行卡尔曼滤波。并基于卡尔曼滤波算法,对跟踪目标的目标跟踪的结果进行输出。在图像上,至少对跟踪目标的跟踪输出可以显示为对跟踪目标的包围框进行跟踪并输出。
除了可以输出跟踪目标的包围框,还可以输出跟踪目标的编号、轨迹编号、跟踪目标的跟踪速度、历史位置、连续跟踪时间、目标锚点等与轨迹相关的轨迹参数。其中,跟踪目标的跟踪数据可以以上可以需要的信息中的至少一种。其中,跟踪目标的跟踪速度根据位置的最优估计值与两帧之间的时间差相除以而得到。
上述方案中,目标识别的基础数据为采集到的点云数据,并对点云数据进行结构化处理得到结构化点云数据,结构化点云数据可加快对目标的识别过程,使得目标的识别速度与目标跟踪的速度能够匹配上,不至于因为目标识别速度过慢而导致的目标跟踪算法中没有检测到要跟踪的目标,进而可保证识别与跟踪的实时性。点云数据为目标的识别提供了准确的基础数据,可保证目标识别的准确性。此外,在各个采集时刻如第i(采集)时刻均基于识别对象的观测位置和历史待跟踪目标的预测位置进行跟踪目标的最终确定,这种确定跟踪目标的方式,与相关技术中的直接将识别出的对象作为跟踪目标相比,至少可保证跟踪目标的确定准确性,以及避免由于跟踪目标出错而导致的跟踪资源的不必要浪费。具体的跟踪算法采用Kalman算法,Kalman算法具有运算速度快的特点,进而使得对跟踪目标的跟踪较为及时、可大大避免不及时跟踪情况的发生。
上述方案为本申请实施例基于单帧扫描数据而执行的算法。考虑到方案的准确性,规定:
跟踪目标被成功跟踪的判定:将连续跟踪M1帧及以上的目标视为稳定的跟踪目标;
跟踪目标被丢失的判定:如果连续M2帧同一跟踪目标均丢失,则确定该跟踪目标为已丢失目标,并删除历史轨迹集合中该跟踪目标的跟踪轨迹(在至少一个时刻而得到的位置的最优估计值);
静止目标的判定:将连续M3帧、计算速度为0的跟踪目标视为静止目标,并加标志位标识。同样,将从静止状态连续5帧计算速度大于0的跟踪目标,视为运动目标,并加标志位标识;
速度平滑滤波:本方案中引入一阶惯性滤波对检测到的跟踪目标的跟踪速度进行平滑以消除速度抖动;
跟踪目标的异常位置的判定:将某个跟踪目标在当前帧扫描数据下的位置的最优估计值与历史轨迹集合中该跟踪目标的在前一帧扫描数据下得到的位置的最优估计值进行距离差的运算,如果距离差较大例如距离差大于设定的第二阈值,则标记在当前帧下的得到的估计位置(当前帧下的位置的最优估计值指示的位置)为异常位置。当连续M4帧均出现该跟踪目标的异常位置,则清空历史轨迹集合中该跟踪目标的跟踪轨迹,并以正确位置为初始位置,继续进行跟踪。其中,所述阈值根据实际使用情况而灵活设定,此处不赘述。上述方案中,M1、M2、M3均为正整数,M1、M2、M3、第一阈值和第二阈值均可根据实际使用情况而灵活设定。
基于前述的目标识别与跟踪方法,本申请实施例还提供一种目标识别与跟踪设备。如图4所示,所述设备包括:采集单元400、识别单元401、第一获取单元402、第二获取单元403和确定单元404;其中,
采集单元400,用于采集第i帧扫描数据,i为正整数,所述第i帧扫描数据中包括至少一个待识别目标;
识别单元401,用于对所述至少一个待识别目标进行识别,得到至少一个识别对象;
第一获取单元402,用于获得所述至少一个识别对象的观测位置信息;
第二获取单元403,用于获得历史跟踪目标信息;
确定单元404,用于基于所述至少一个识别对象的观测位置信息和历史跟踪目标信息,确定在第i帧扫描数据下的跟踪目标,以对所述跟踪目标进行跟踪。
在一个可选的实施例中,
所述确定单元404,还用于基于历史跟踪目标信息,对各个历史跟踪目标在第i时刻的位置进行预测,得到各个历史跟踪目标的预测位置信息;
基于所述各个历史跟踪目标的预测位置信息和所述至少一个识别对象的观测位置信息,确定在第i帧扫描数据下的跟踪目标。
在一个可选的实施例中,
在第i帧扫描数据为非第1帧扫描数据的情况下,针对所述至少一个识别对象,
所述确定单元404,还用于:
存在有一个识别对象、所述识别对象出现在所述历史跟踪目标信息中且基于历史跟踪目标信息得到的该识别对象的预测位置与观测位置之间的距离小于等于预定第一阈值,则确定该识别对象为基于第i帧扫描数据而得到的跟踪目标;
当各个识别对象的观测位置信息中存在有一个识别对象其观测位置与所述历史跟踪目标信息中的各个历史跟踪目标的预测位置之间的距离均大于预定的第二阈值,则确定该识别对象为在第i帧扫描数据中出现的新的跟踪目标;
在历史跟踪目标信息中存在有一个历史跟踪目标、未出现在所述至少一个识别对象中,则确定该历史跟踪目标为在第i帧扫描数据中被跟踪丢失的目标。
在一个可选的实施例中,
所述确定单元404,还用于确定基于第i帧扫描数据得到的各个跟踪目标在第i帧扫描数据下的位置最优估计值;
依据各个跟踪目标的位置最优估计值,确定各个跟踪目标的跟踪数据以对所述各个跟踪目标进行跟踪。
在一个可选的实施例中,所述装置包括:
添加单元,用于至少将基于第i帧扫描数据得到的各个跟踪目标的标识、及在位置最优估计值添加至历史轨迹集合中。
在一个可选的实施例中,
所述确定单元404,还用于确定基于第i帧扫描数据得到的各个跟踪目标的位置最优估计值与历史轨迹集合中同一跟踪目标在第i-1帧扫描数据下得到的位置最优估计值进行距离的运算,如果距离差超出设定的第二阈值,则标记所述相同跟踪目标基于第i帧数据而得到的估计位置为异常位置。
前述的跟踪装置可以应用到作战飞机、轮船、汽车等军用设备中,还可以应用到无人配送车、无人配送机器人、无人配送飞机等民用设备中。
需要说明的是,本发明实施例的跟踪装置,由于该装置解决问题的原理与前述的跟踪方法相似,因此,装置的实施过程及实施原理均可以参见前述方法的实施过程及实施原理描述,重复之处不再赘述。
本发明实施例还提供一种跟踪装置,包括处理器和用于存储能够在处理器上运行的计算机程序的存储介质,其中,所述处理器用于运行所述计算机程序时,至少执行图1和/或图2的跟踪方法。
本发明实施例还提供一种存储介质,该存储介质用于存储计算机程序,其中,上述程序被运行时至少执行图1和/或图2的跟踪方法。
本发明实施例还提供一种处理器,该处理器用于运行计算机程序,其中,该程序被处理器运行时至少执行图1和/或图2的跟踪方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、 RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。