deep sort
目录
1. 准备代码与数据
克隆到本地服务器
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
- 需要视频文件
- 需要目标检测detection的权重文件(npy 文件)(ps:目标检测框架和deep_sort框架应该一致)
效果:直观来看还不错,当然这是基于目标检测的检测的结果,如果检测不到目标,tracking也无法做。当人行走过程中,被遮挡之后再次出现,目标ID还是维持不变。(思考:这里人一般是直线前行,如果目标在遮挡之后,掉头再出现,可能ID就会变化)。
很大的问题:生成的视频帧率很低,不到30FPS,肉眼能看出明显卡顿。(网上说通过优化可以达到高帧率,具体待查)
4.2 train
如何训练?
余弦度量学习方法
deep sort的更多相关文章
- 多目标跟踪(MOT)论文随笔-SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC (Deep SORT)
网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是tracking by detection 方法进行多目标跟踪的文章,在SORT的基础 ...
- 《deep sort》复现过程
目录 1. 准备代码与数据 deep_sort开源代码 克隆到本地服务器 git clone https://github.com/nwojke/deep_sort.git 下载MOT16数据集(MO ...
- 多目标跟踪(MOT)论文随笔-SIMPLE ONLINE AND REALTIME TRACKING (SORT)
网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是使用 tracking by detection 方法进行多目标跟踪的文章,是后续de ...
- 多目标跟踪(MOT)论文随笔-POI: Multiple Object Tracking with High Performance Detection and Appearance Feature
网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是tracking by detection 方法进行多目标跟踪的文章,最大的特点是使用 ...
- 2019 AI CITY CHALLENGE
官网: https://www.aicitychallenge.org/ 基于来自交通,信号系统,基础设施和运输的传感器数据,存在使运输系统更智能的巨大机会.不幸的是,由于几个原因,进展受到限制 ...
- 无根树同构_hash
先贴上地址 https://vjudge.net/problem/HDU-5732 判断有根树同构: 1. 直接用括号最小表示法 2. 利用括号最小表示法的思想进行hash 判断无根树同构: 1. 找 ...
- (9-4 )deepsort在ubuntu1604下配置
Deep Sort with PyTorch YOLO https://github.com/ZQPei/deep_sort_pytorch 查看python版本 python3 --version ...
- 多目标跟踪MOT综述
https://blog.csdn.net/u012435142/article/details/85255005 多目标跟踪MOT 1评价指标 https://www.cnblogs.com/YiX ...
- 【NOIP2016提高A组模拟8.15】Throw
题目 分析 首先对于一个状态(a,b,c),假定a<=b<=c: 现在考虑一下这个状态,的转移方案: \[1,中间向两边跳(a,b,c)-->(a*2-b,a,c).(a,b,c)- ...
随机推荐
- select in关键字查询匹配多个字段
select id from table where (num,name) in ((num1,'name1'),(num2,'name2'))
- 开始学Python 啦 ,持续不断总结中。。(转)快捷键的使用
最重要的快捷键1. ctrl+shift+A:万能命令行2. shift两次:查看资源文件新建工程第一步操作1. module设置把空包分层去掉,compact empty middle packag ...
- Django多对多
表名小写+_set() 得到的是一个QuertSet集合,她的后面可以跟 .add() .remove() .update() .clear() models.py 文件 # 学生表 ...
- multer使用
使用multer 1. 在项目中下载multer操作模块 Npm install multer --save 前端代码: <form class="layui-form&q ...
- ASE19团队项目alpha阶段model组 scrum11 记录
本次会议于11月15日,19时整在微软北京西二号楼sky garden召开,持续5分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing W ...
- SpEL表达式总结
前言SpEL(Spring Expression Language),即Spring表达式语言,是比JSP的EL更强大的一种表达式语言.为什么要总结SpEL,因为它可以在运行时查询和操作数据,尤其是数 ...
- 【2017-05-30】WebForm文件上传。从服务端删除文件
用 FileUpload控件进行上传文件. <asp:FileUpload ID="FileUpload1" runat="server" /> ...
- Django_01_创建图书管理项目
在django中,项目的组织结构为一个项目包含多个应用,一个应用对应一个业务模块 示例:创建项目的名称为test1,完成“图书-英雄”信息的维护,创建应用名称为booktest 创建项目:首先进入到虚 ...
- <meta http-equiv="X-UA-Compatible" content="IE=edge">详解
X-UA-Compatible是针对IE8新加的一个设置,对于IE8之外的浏览器是不识别的. 这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...
- 数据结构课后练习题(练习三)7-5 Tree Traversals Again (25 分)
7-5 Tree Traversals Again (25 分) An inorder binary tree traversal can be implemented in a non-recu ...