本发明涉及计算机技术领域,具体而言,涉及目标关联方法、存储设备、直录播互动终端。
背景技术:
目前,对多目标进行跟踪大都采用单目摄像机进行跟踪,跟踪多采用雷达波的原理,从空域上对目标进行距离关联,此类技术如jpda。基双目摄像机的目标检测技术可以定位运动目标的三维坐标,但在多目标下如何确定同一目标并判断目标是否交叉重叠是急需解决的问题。
技术实现要素:
有鉴于此,根据本发明实施例的一个方面,提供了一种基于双目摄像机的目标关联方法,包括:生成多个跟踪目标的运动轨迹;根据多个所述跟踪目标的运动轨迹确定多个所述跟踪目标是否交叉遮挡。
根据本发明实施例的另一方面,还提出了一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行,包括:生成多个跟踪目标的运动轨迹;根据多个所述跟踪目标的运动轨迹确定多个所述跟踪目标是否交叉遮挡。
根据本发明实施例的另一方面,还提供了一种直录播互动终端,包括:处理器,适于实现各指令;存储设备,适于存储多条指令,所述指令适于由所述处理器加载并执行:生成多个跟踪目标的运动轨迹;根据多个所述跟踪目标的运动轨迹确定多个所述跟踪目标是否交叉遮挡。
在检测范围中出现多目标时,基于双目摄像机的跟踪系统需精确定位并解决目标交叉重叠的问题,本发明实施例能够生成多个跟踪目标的运动轨迹,并根据多个跟踪目标的运动轨迹确定多个跟踪目标是否交叉遮挡,即在多目标情况,精确定位每个目标,并判断各目标之间是否交叉遮挡,以为后续服务提供精准数据支持。
附图说明
图1示出了根据本发明的一个实施例的基于双目摄像机的目标关联方法的流程图;
图2示出了根据本发明的一个实施例的运动轨迹状态转换图;
图3示出了根据本发明的一个实施例的轨迹点关联示意图;
图4示出了根据本发明的一个实施例的直录播互动终端的框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的一个实施例的基于双目摄像机的目标关联方法的流程图。
如图1所示,根据本发明实施例的一种基于双目摄像机的目标关联方法,包括以下步骤:
步骤102,生成多个跟踪目标的运动轨迹。
步骤104,根据多个所述跟踪目标的运动轨迹确定多个所述跟踪目标是否交叉遮挡。
在多目标情况下,准确生成多个跟踪目标的运动轨迹,在得到各跟踪目标的运动轨迹后,判断跟踪目标是否交叉遮挡,从而为后续措施提供数据支持。
在上述步骤102中,生成多个跟踪目标的运动轨迹,包括:
通过双目摄像机采集的图像检测出多个运动目标;
根据多个所述运动目标的运动轨迹状态筛选出若干个运动目标的运动轨迹确定为所述跟踪目标的运动轨迹。
运动轨迹状态体现了运动目标在一定图像帧数过程中或一段时间中的运动状态,是真实目标的运动状态,还是假目标的状态。因此根据运动轨迹状态可确定最终的跟踪目标的运动轨迹。
在一实施例中,根据多个所述运动目标的运动轨迹状态筛选出若干个运动目标的运动轨迹确定为所述跟踪目标的运动轨迹,包括:
所述运动轨迹状态包括激活状态、抑制状态、临时状态和终止状态;
检测到的所有运动目标的运动轨迹在初始时都具备临时状态;
监控各运动目标在连续图像帧中的匹配度数据;
若匹配度数据满足第一预设条件,则将所述运动目标的运动轨迹状态从临时状态切换为激活状态或从抑制状态切换为激活状态;
若所述匹配度数据不满足所述第一预设条件且满足第二预设条件,则将所述运动目标的运动轨迹状态从激活状态切换为抑制状态;
若所述匹配度数据同时不满足所述第一预设条件和所述第二预设条件,则将所述运动目标的运动轨迹状态从抑制状态切换为终止状态;
将具备激活状态或抑制状态的运动目标的运动轨迹确定为所述跟踪目标的运动轨迹。
如图2所示,运动轨迹状态可以有以下四种状态:
临时状态:temp表示目标的初始状态,此时不启动目标跟踪;目标生命周期赋值为1,目标队列中添加该目标。
激活状态:active表示目标处于跟踪状态,当目标的生命周期达到激活阈值acthr时,目标从temp状态转向active状态,生命周期赋值为fulthr。
抑制状态:inactive表示目标处于不活跃状态,仍继续跟踪,当目标生命周期达到抑制阈值inacthr(inacthr<acthr)时,目标从active状态转向inactive状态。
终止状态:dead表示目标消亡,需要从跟踪队列中删除该目标,当目标生命周期低于deadthr时目标消亡。
所述匹配度数据是在所述连续图像帧中呈现所述运动目标的匹配值总和与系数的乘积,所述第一预设条件是所述匹配度数据大于等于第一预设值且与所述运动目标冲突的其他运动目标的运动轨迹状态是终止状态,所述第二预设条件是所述匹配度数据大于等于第二预设值且小于所述第一预设值,且与所述运动目标冲突的其他运动目标的运动轨迹状态是终止状态,其中,所述第一预设值大于所述第二预设值。
其中,每一运动目标的标识信息至少包括全局标识,左摄像机标识,右摄像机标识,左本地标识、右本地标识。若两个运动目标的左摄像机标识相同或右摄像机标识相同,则所述两个运动目标相互冲突。
其中,根据运动目标的速度大小匹配度、速度方向误差度、距离匹配度和\或所述运动目标对应的检测框重叠度确定所述运动目标呈现于相邻图像帧的匹配值;
所述匹配度数据m=q·d,d是所述轨迹惩罚系数,q是所述匹配值总和,若当前图像帧呈现所述运动目标,则d的值是1,若当前图像帧未呈现所述运动目标,则d是大于0小于1的常数。
将两帧图像中的目标进行匹配得到目标的匹配度数据,对于连续多帧图像,则对这些匹配值进行累加。若两个目标匹配为同一目标,则该两个目标可以关联,可以得到目标的轨迹。
对两个目标进行匹配可以采用多种方法,在本实施例中可采用下列方法来进行匹配。
轨迹关联规则:利用k-1时刻轨迹点a和预测k时刻轨迹点b为半径的圆来计算k时刻的轨迹匹配度,据此判断是否关联该轨迹点。预测点b可通过交互多模型imm滤波来产生,参考图3。
假设x[k]为k时刻待关联的轨迹点c,t[k-1]为上一帧目标的轨迹点a,p[k]为预测k时刻的轨迹点b。
轨迹t和轨迹点c的匹配度为matchscore:
1.计算量测速度大小匹配度
2.计算量测速度方向误差。ac和ab之间的夹角alpha
matchang=1-alpha/pi
3.计算量测2d矩形框重叠度
matchoverlap=overlap(rcl)×overlap(rcr);
待关联轨迹点c在c0和c1相机的分目标,overlap(rcl)表示在c0中的矩形框cl和al的重叠度;overlap(rcr)在c1中的矩形框cr和ar的重叠度。
matchscore=1/4exp(matchspeed×matchang×matchoverlap);
当matchscore大于一定阈值matchthr时,认定时刻k的轨迹点和轨迹关联,认定为同一目标进行跟踪,否则不关联。
如果关联点c和轨迹trail关联,则更新目标轨迹,目标生命周期加1,如果增加后生命周期超过fulthr,则赋值为fulthr;如果目标量测信息和已知目标轨迹不匹配,则建立新的目标轨迹;当有目标消失或跟丢时,则跟踪方案会根据轨迹生命周期低于一定deadthr时删除该目标。
例如,设一组相机为c0和c1,c0和c1在k时刻分别检测到n0个目标和n1个目标,分半给其赋予id:1-n0及n1个目标1-n1。trail的轨迹id为全局标识gid,在左右镜头中的id为lid;rid,以及在每帧图像中的locallid,localrid,在目标初配时会给予每个初配目标pretarget赋初始id:
pretarget.gid=0;
pretarget.lid=0;
pretarget.rid=0;
pretarget.locallid=i(i=1,2,3...n0);
pretarget.localrid=j(i=1,2,3...n1)。
如果在k时刻pretarget和一条轨迹trail0关联上,则更新trail轨迹点的轨迹,trail[0].target[k]=pretarget,id号继承k-1时刻的id:
trail[0].target[k].gid=trail[0].target[k-1].gid;
trail[0].target[k].lid=trail.[0]target[k-1].lid;
trail[0].target[k].rid=trail[0].target[k-1].rid;
trail[0].lifetime=trail[0].lifetime+1;
trail[0].qualityscore=trail[0].qualityscore+matchscore。
如果不关联,则向轨迹列表中新增加一个temp状态的轨迹:
trail.status=temp;
trail.target[k]=pretarget;
trail.target[k].gid=externgid=externid+1;externgid表示所有历史上记录过的轨迹id号。
trail.target[k].lid=externlid=externlid+1;externlid表示所有历史上在c0中的记录过的轨迹全局id号。
trail.target[k].rid=externrid=externrid+1;externrid表示所有历史上在c1中的记录过的轨迹全局id号。
trail.lifetime=1;
trail[0].qualityscore=matchscore。
如果某条轨迹当前没有被轨迹点关联上:
trail.lifetime=trail.lifetime-1;
trail[0].qualityscore=trail[0].qualityscore*lamda;lamda表示轨迹的损失率,为0-1之间的系数,这里取lamda=0.95,lamda即上述系数d;
上面说明了标识的形成过程,每一跟踪目标的运动轨迹的标识信息至少包括全局标识、左摄像机标识、右摄像机标识、左本地标识、右本地标识,所述左本地标识、右本地标识是所述跟踪目标在所述运动轨迹中最后一帧图像中的标识。根据多个所述跟踪目标的运动轨迹确定多个所述跟踪目标是否交叉遮挡的具体过程可以包括:
根据所述运动轨迹包含的标识信息确定多个所述跟踪目标是否交叉遮挡。
其中,若多个跟踪目标的运动轨迹中的左本地标识之间相同或者右本地标识之间相同,则确定发生跟踪目标在单目摄像机下的交叉重叠,即可能在某个角度下是遮挡的。
若多个跟踪目标的运动轨迹中的左本地标识之间相同且右本地标识之间相同,则确定发生跟踪目标在双目摄像机下的交叉重叠,即实际发生了遮挡。
但由于单目相机的视场限制,实际跟踪往往采用多个相机对目标进行跟踪,利用多个相机可以更好的解决目标交叉、遮挡,场景光照变化等复杂场景下的跟踪问题。
本发明实施例提供的一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行,包括:
生成多个跟踪目标的运动轨迹;
根据多个所述跟踪目标的运动轨迹确定多个所述跟踪目标是否交叉遮挡。
进一步地,生成多个跟踪目标的运动轨迹,包括:
通过双目摄像机采集的图像检测出多个运动目标;
根据多个所述运动目标的运动轨迹状态筛选出若干个运动目标的运动轨迹确定为所述跟踪目标的运动轨迹。
进一步地,根据多个所述运动目标的运动轨迹状态筛选出若干个运动目标的运动轨迹确定为所述跟踪目标的运动轨迹,包括:
所述运动轨迹状态包括激活状态、抑制状态、临时状态和终止状态;
检测到的所有运动目标的运动轨迹在初始时都具备临时状态;
监控各运动目标在连续图像帧中的匹配度数据;
若匹配度数据满足第一预设条件,则将所述运动目标的运动轨迹状态从临时状态切换为激活状态或从抑制状态切换为激活状态;
若所述匹配度数据不满足所述第一预设条件且满足第二预设条件,则将所述运动目标的运动轨迹状态从激活状态切换为抑制状态;
若所述匹配度数据同时不满足所述第一预设条件和所述第二预设条件,则将所述运动目标的运动轨迹状态从抑制状态切换为终止状态;
将具备激活状态或抑制状态的运动目标的运动轨迹确定为所述跟踪目标的运动轨迹。
进一步地,所述匹配度数据是在所述连续图像帧中呈现所述运动目标的匹配值总和与系数的乘积,所述第一预设条件是所述匹配度数据大于等于第一预设值且与所述运动目标冲突的其他运动目标的运动轨迹状态是终止状态,所述第二预设条件是所述匹配度数据大于等于第二预设值且小于所述第一预设值,且与所述运动目标冲突的其他运动目标的运动轨迹状态是终止状态,其中,所述第一预设值大于所述第二预设值。
进一步地,每一运动目标的标识信息至少包括全局标识,左摄像机标识,右摄像机标识,左本地标识、右本地标识;
若两个运动目标的左摄像机标识相同或右摄像机标识相同,则所述两个运动目标相互冲突。
进一步地,根据运动目标的速度大小匹配度、速度方向误差度、距离匹配度和\或所述运动目标对应的检测框重叠度确定所述运动目标呈现于相邻图像帧的匹配值;
所述匹配度数据m=q·d,d是所述轨迹惩罚系数,q是所述匹配值总和,若当前图像帧呈现所述运动目标,则d的值是1,若当前图像帧未呈现所述运动目标,则d是大于0小于1的常数。
假设在第3帧时,目标在前两帧中均出现了,第三帧图像中也出现了,则匹配度数据是a1+a2+a3,若第三帧图像中目标消失了,则匹配度数据是a1+a2+a3×d,轨迹惩罚系数d可以是0.95,若第四帧中目标又出现了,则匹配度数据是a1+a2+a3×d+a4。
进一步地,根据多个所述跟踪目标的运动轨迹确定多个所述跟踪目标是否交叉遮挡,包括:
根据所述运动轨迹包含的标识信息确定多个所述跟踪目标是否交叉遮挡。
其中,每一跟踪目标的运动轨迹的标识信息至少包括全局标识、左摄像机标识、右摄像机标识、左本地标识、右本地标识,所述左本地标识、右本地标识是所述跟踪目标在所述运动轨迹中最后一帧图像中的标识;
若多个跟踪目标的运动轨迹中的左本地标识之间相同或者右本地标识之间相同,则确定发生跟踪目标在单目摄像机下的交叉重叠;
若多个跟踪目标的运动轨迹中的左本地标识之间相同且右本地标识之间相同,则确定发生跟踪目标在双目摄像机下的交叉重叠。
如图4所示,本发明实施例还公开了一种直录播互动终端400可以包括:
处理器402,适于实现各指令;
存储设备404,适于存储多条指令,所述指令适于由所述处理器加载并执行:
生成多个跟踪目标的运动轨迹;
根据多个所述跟踪目标的运动轨迹确定多个所述跟踪目标是否交叉遮挡。
在检测范围中出现多目标时,基于双目摄像机的跟踪系统需精确定位并解决目标交叉重叠的问题,本发明实施例能够生成多个跟踪目标的运动轨迹,并根据多个跟踪目标的运动轨迹确定多个跟踪目标是否交叉遮挡,即在多目标情况,精确定位每个目标,并判断各目标之间是否交叉遮挡,以为后续服务提供精准数据支持。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。