zoukankan      html  css  js  c++  java
  • 《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

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

  • 相关阅读:
    BZOJ 2034 【2009国家集训队】 最大收益
    vijos P1780 【NOIP2012】 开车旅行
    BZOJ 2115 【WC2011】 Xor
    BZOJ 3631 【JLOI2014】 松鼠的新家
    BZOJ 4717 改装
    BZOJ 2957 楼房重建
    BZOJ 4034 【HAOI2015】 T2
    BZOJ 1834 【ZJOI2010】 network 网络扩容
    BZOJ 2440 【中山市选2011】 完全平方数
    BZOJ 2733 【HNOI2012】 永无乡
  • 原文地址:https://www.cnblogs.com/wemo/p/10600454.html
Copyright © 2011-2022 走看看