• 《deep sort》复现过程


    1. 准备代码与数据

    deep_sort开源代码

    克隆到本地服务器

    git clone https://github.com/nwojke/deep_sort.git

    下载MOT16数据集(MOT:Multi-Object Tracking, 16的意思是相比MOT15多了更多的细节信息)
    MOT16数据集

    预训练权重下载

    1.1 数据集介绍

    该数据集分为了test和train,每个文件夹有7个子文件夹。

    ./MOT16/train

    以训练集中的MOT16-02为例,探究数据数据集格式
    MOT16-02下包含三个四个子文件:det、gt、img1、seqinfo.ini

    1.1.1 det:

    det下只有一个文件,det.txt。每行一个标注,代表一个检测物体

    格式为:

    , , , , , , , , ,
    • :第几帧(可以看到img1中共600帧图)
    • :目标运动轨迹编号(在目标文件中都为-1)
    • <bb_* >:bbox的坐标尺寸
    • : 分类的置信度分数
    • <x, y, z> :用于3D检测,2D检测总是为1
    1.1.2 img1

    这个目录就是把视频一帧帧抽取出来的图片,总共600张。文件命名从000001.jpg到000600.jpg。

    1.1.3 gt

    gt文件夹下只有一个文件,gt.txt

    第1个值:视频帧号
    第2个值:目标运动轨迹的ID号
    第3-6值:bbox坐标(x, y, w, h)
    第7个值:目标轨迹是否进入考虑范围(0:忽略, 1:active)
    第8个值:该轨迹对应的目标种类

    第9个值:
    box的visibility ratio,表示目标运动时被其他目标box包含/覆盖或者目标之间box边缘裁剪情况。

    1.1.4 seqinfo.ini文件


    视频的基本信息介绍


    2. 运行目标跟踪器

    python deep_sort_app.py 
    --sequence_dir=./MOT16/test/MOT16-06 
    --detection_file=./resources/detections/MOT16_POI_test/MOT16-06.npy 
    --min_confidence=0.3 
    --nn_budget=100 
    --display=True
    
    #在自己生成的feature运行tracker
    python deep_sort_app.py 
    --sequence_dir=./MOT16/test/MOT16-01 
    --detection_file=./resources/detections/wemo_test/MOT16-01.npy 
    --min_confidence=0.3 
    --nn_budget=100 
    --display=True
    

    可选参数解释:
    --sequence_dir:视频切成图片序列的文件夹,包含帧序列,每一帧的帧号、目标的bbox、
    --detection_file:检测的权重文件 .npy
    --output_file:输出类似于gt.txt的文件格式,轨迹不再是默认-1,发生变化
    --min_confidence:检测结果阈值。低于这个阈值的检测结果将会被忽略
    --nms_max_overlap:非极大抑制的阈值
    --max_cosine_distance:余弦距离的控制阈值
    --nn_budget:描述的区域的最大值
    --display:显示目标追踪结果

    3. generating detections

    generate features for persons re-identification.

    python tools/generate_detections.py 
        --model=resources/networks/mars-small128.pb 
        --mot_dir=./MOT16/train 
        --output_dir=./resources/detections/MOT16_train
    
    #自定义生成feature
    python tools/generate_detections.py 
        --model=resources/networks/mars-small128.pb 
        --mot_dir=./MOT16/test 
        --output_dir=./resources/detections/wemo_test
    

    --model:是模型框架的权重参数文件
    输入

    输出

    4. 如何在自己的数据上运行deep_sort,实现目标追踪?

    4.1 test
    1. 需要视频文件
    2. 需要目标检测detection的权重文件(npy 文件)(ps:目标检测框架和deep_sort框架应该一致)

    效果:直观来看还不错,当然这是基于目标检测的检测的结果,如果检测不到目标,tracking也无法做。当人行走过程中,被遮挡之后再次出现,目标ID还是维持不变。(思考:这里人一般是直线前行,如果目标在遮挡之后,掉头再出现,可能ID就会变化)。

    很大的问题:生成的视频帧率很低,不到30FPS,肉眼能看出明显卡顿。(网上说通过优化可以达到高帧率,具体待查)

    4.2 train

    如何训练?
    余弦度量学习方法

  • 相关阅读:
    Codeforces Round #246 (Div. 2):B. Football Kit
    iOS8使用TouchID
    HDU 1796 How many integers can you find(容斥原理+二进制/DFS)
    MapReduce的Reduce side Join
    Android入门级编译错误汇总
    当往事已随风
    静态链表的C++实现
    《跨界杂谈》企业商业模式(三):集约
    C
    Android插屏动画效果
  • 原文地址:https://www.cnblogs.com/wemo/p/10600454.html
Copyright © 2020-2023  润新知