目录

 

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。每行一个标注,代表一个检测物体

格式为:

, , <bb_left>, <bb_top>, <bb_width>, <bb_height>, , , ,

  • :第几帧(可以看到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

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

deep sort的更多相关文章

  1. 多目标跟踪(MOT)论文随笔-SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC (Deep SORT)

    网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是tracking by detection 方法进行多目标跟踪的文章,在SORT的基础 ...

  2. 《deep sort》复现过程

    目录 1. 准备代码与数据 deep_sort开源代码 克隆到本地服务器 git clone https://github.com/nwojke/deep_sort.git 下载MOT16数据集(MO ...

  3. 多目标跟踪(MOT)论文随笔-SIMPLE ONLINE AND REALTIME TRACKING (SORT)

    网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是使用 tracking by detection 方法进行多目标跟踪的文章,是后续de ...

  4. 多目标跟踪(MOT)论文随笔-POI: Multiple Object Tracking with High Performance Detection and Appearance Feature

    网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是tracking by detection 方法进行多目标跟踪的文章,最大的特点是使用 ...

  5. 2019 AI CITY CHALLENGE

    官网:    https://www.aicitychallenge.org/ 基于来自交通,信号系统,基础设施和运输的传感器数据,存在使运输系统更智能的巨大机会.不幸的是,由于几个原因,进展受到限制 ...

  6. 无根树同构_hash

    先贴上地址 https://vjudge.net/problem/HDU-5732 判断有根树同构: 1. 直接用括号最小表示法 2. 利用括号最小表示法的思想进行hash 判断无根树同构: 1. 找 ...

  7. (9-4 )deepsort在ubuntu1604下配置

    Deep Sort with PyTorch YOLO https://github.com/ZQPei/deep_sort_pytorch 查看python版本 python3 --version ...

  8. 多目标跟踪MOT综述

    https://blog.csdn.net/u012435142/article/details/85255005 多目标跟踪MOT 1评价指标 https://www.cnblogs.com/YiX ...

  9. 【NOIP2016提高A组模拟8.15】Throw

    题目 分析 首先对于一个状态(a,b,c),假定a<=b<=c: 现在考虑一下这个状态,的转移方案: \[1,中间向两边跳(a,b,c)-->(a*2-b,a,c).(a,b,c)- ...

随机推荐

  1. vue2.0和animate.css的结合使用

    animate.css是一款前端动画库,相似的有velocity-animate. 上述是一个完整的结构.其中重要的几个点用箭头表示出来.首先在transition组件内部,需要定义两个基本的clas ...

  2. 用Python获取黄石市近7天天气预报

    首先,我们打开中国天气网,找到黄石市近7天天气的网页.http://www.weather.com.cn/weather/101200601.shtml 然后按F12开始分析网页结构,找到各个标签,并 ...

  3. 解决IDEA提示Untrusted Server's certificate 证书不可用( Server's certificate is not trusted )

    Untrusted Server's certificate 如果你用的是Intellij系列IDE(GoLand, PHPStorm, WebStorm, IDEA),突然弹出个提示『Untrust ...

  4. asterisk搭建goip

    利用asterisk来搭建goip使用,步骤如下: 第一步:先需要搭建centos服务器并优化 搭建centos服务器就省略: 优化centos服务器,进行如下步骤: 关闭防火墙:systemctl ...

  5. 作业九——DFA最小化

    1.将DFA最小化:教材P65 第9题 I {1, 2, 3, 4, 5} {6, 7} {1, 2}b->{1, 2, 3, 4, 5} {3, 4}b->{6, 7} {5}b-> ...

  6. Python&Selenium智能等待方法封装

    摘要:本篇博文用几行代码展示Python和Selenium做自动化测试时常见的显示等待和封装 # 用于实现智能等待页面元素的出现 # encoding = utf-8 ""&quo ...

  7. 如何处理请求返回的二进制数据流转化成xlsx文件?

    /* fileName : 文件名 res:二进制流 */ function getOutExcel(fileName, res) { let blob = new Blob([res], { typ ...

  8. linux自由软件安装 ./config, make的理解

    在linux系统中安装软件的其中一种:源码安装的方法是,先输入./configure,然后输入make,最后make install.或许有人留意到没有,这些软件的根目录中开始是没有Makefile的 ...

  9. hg如何回退到某个版本

    hg 如何回退 hg ... ? ? ?

  10. HashMap源码分析二

    jdk1.2中HashMap的源码和jdk1.3中HashMap的源码基本上没变.在上篇中,我纠结的那个11和101的问题,在这边中找到答案了.   jdk1.2   public HashMap() ...