• A Baseline for 3D Multi-odject Tracking:多目标跟踪方法


    ref: https://zhuanlan.zhihu.com/p/80993033

    流程

    使用PointRCNN的目标检测结果来跟踪;

    使用卡尔曼滤波器跟踪;

    使用匈牙利算法匹配前后帧的对象。

    特点:

    使用了3D的卡尔曼滤波器

    优点:

    简单快速效果好

    使用的特征和状态转移模型?

    10-dimensional vector T = (x, y, z, θ, l, w, h, vx, vy, vz) ,没有使用角速度,加入后效果不好;

    状态转移方程是恒定速率模型

    论文的结果表显示使用2D的卡尔曼效果也还挺好,MOTA 仅仅降低了一个百分点左右;

    匈牙利匹配的cost matrix 是什么?

    是跟踪器预测的3D box 和 检测的3D box的 3dIOU矩阵;

    怎么创建跟踪器跟踪器的? 怎么销毁的?

    至少3帧发现同一个物体,才会创建跟踪器(Fmin)

    丢失物体的跟踪器,还会继续检测2帧(age)

    为什么有一个把x,y,z,alpha,l,w,h 的顺序调换的步骤,后续又换回来了?

    这里 pointRCNN 给出的结果顺序是反的,代码里面只是把它重新调整回来而已。

    状态转移矩阵为什么要加3个1,恒速率模型怎么得到它的?

    因为 下一时刻距离=上一时刻距离+速度,所以三个方向的速度要加1,但是实际上这里有个问题,每个时刻的间隔不一定是1秒,这样算会带来误差。

    使用数据集

    kitti MOT 数据集;

    这么快的原因?

    使用了numba 加速

    Total Tracking took: 98.099 for 8008 frames or 81.6 FPS

    没有使用 numba 加速

    Total Tracking took: 145.496 for 8008 frames or 55.0 FPS

    可以得出,不使用 numba 加速的话,速度降低了 32%;

    匈牙利算法和NN、 GNN方法有什么区别?

    没有很大的差别,都是用于求解指派问题的方法,NN是局部最优,GNN和匈牙利是全局最优;

    可以做的改进:

    1 把 KF 改为 UKF、EKF效果应该更好吧;

    2 使用循环计算 3D IOU 应该是比较慢的,这里其实可以使用2D IOU,并且可以使用 cython 的计算过程来进一步加速。



    天雨虽宽,不润无根之草。 佛门虽广,不渡无缘之人。
  • 相关阅读:
    HashMap和Hashtable的区别
    java倒计时三种简单实现方式
    AngularJS---基本操作
    AngularJS---认识AngularJS
    Java线程面试题
    JAVA中高访问量高并发的问题怎么解决?
    Java高并发,如何解决,什么方式解决
    Map总结
    Github
    反射
  • 原文地址:https://www.cnblogs.com/ariel-dreamland/p/13344762.html
Copyright © 2020-2023  润新知