1.一种基于单次多框检测器与卡尔曼滤波的实时多目标跟踪方法,其特征在于,包括如下步骤:步骤A,读取视频流;
步骤B,调用SSD目标检测算法模型对视频帧进行检测,得到第i个物体的检测框中心点为(dx,dy);
步骤C,用卡尔曼滤波算法对检测结果进行预测,并将预测框坐标更新到跟踪框中,得到第i个物体的预测的跟踪框中心点为(d’x,d’y);
步骤D,对检测框与跟踪框的结果进行配对;
步骤D-1:计算检测框与跟踪框中心点之间的欧氏距离
步骤D-2:计算检测框与跟踪框各自区域内的HSV颜色直方图,对二者进行直方图相似性匹配;
步骤D-3:当h大于70且匹配结果大于0.7时,才认为检测框与跟踪框配对成功;
步骤E,分别更新配对成功与配对未成功的跟踪,删除不满足新式双判定条件的跟踪;
步骤F,对目标进行计数与画轨迹;
所述步骤F中的画轨迹包括:
步骤F-1,首先建立一个数组Pt,共有20个元素,每一个元素又都是一个Point类型的向量,即Pt[i][j],其中i∈(0,1,2...,19),j∈(0,1,2,3......),初始化其元素为Pt[i][0].x=0,Pt[i][0].y=0,其中Pt[i][0].x代表ID编号,Pt[i][0].y代表是否有更新的Flag;
步骤F-2,进行判定,假设某跟踪边框的ID号为T,则判断Pt[i][0].x是否等于T,如果等于,则令Pt[i][0].y=1,同时将该边框的中心坐标(tx,ty),赋值给Pt[i][k],即Pt[i][k]=(tx,ty),k∈(1,2,3...),如果不等于,则寻找一个Pt[i][0].x=0的Pt[i]向量,令Pt[i][0].x=T,Pt[i][0].y=1,同时将该边框的中心坐标(tx,ty),赋值给Pt[i][k],即Pt[i][k]=(tx,ty),k∈(1,2,3...);
步骤F-3,进行判定,如果Pt[i][0].x不等于0,同时Pt[i][0].y等于0,则对Pt[i]进行清空,同时对Pt[i]进行步骤F-1的初始化,以供其他新出现的ID使用,如果Pt[i][0].x不等于
0,同时Pt[i][0].y不等于0,则令Pt[i][0].y=0;
步骤F-4,根据上述步骤F-1到F-3,同一ID编号下的所有中心点坐标依次赋值到Pt[i][k],k∈(1,2,3...),把所有点的中心坐标连起来则为轨迹线。
2.根据权利要求1所述的一种基于单次多框检测器与卡尔曼滤波的实时多目标跟踪方法,其特征在于,所述方法将SSD目标检测算法与卡尔曼滤波跟踪算法应用于windows系统。
3.根据权利要求1所述的一种基于单次多框检测器与卡尔曼滤波的实时多目标跟踪方法,其特征在于,所述步骤E中删除不满足新式双判定条件的跟踪步骤如下:步骤E-1,判断目标是否被SSD目标检测算法连续两帧及多帧检测到,如果成立,则进行步骤E-2;否则进行步骤E-5;
步骤E-2,调用卡尔曼滤波算法对目标连续预测20帧;
步骤E-3,判断在步骤E-2预测的20帧内,目标是否被再次检测到,如果成立,则进行步骤E-4;否则进行步骤E-5;
步骤E-4,用其检测框代替预测框,然后依次进行步骤E-2与E-3;
步骤E-5,删除目标的跟踪ID号。