MBMD(MobileNet-based tracking by detection algorithm)作者答疑
If you fail to install and run this tracker, please email me (zhangyunhua@mail.dlut.edu.cn)
Introduction
This repository includes tensorflow code of MBMD (MobileNet-based tracking by detection algorithm) for VOT2018 Long-Term Challenge. The corresponding arxiv paper has been drafted on Arxiv. Learning regression and verification networks for long-term visual tracking. Yunhua Zhang, Dong Wang, Lijun Wang, Jinqing Qi, Huchuan Lu
Prerequisites
python 2.7 ubuntu 14.04 cuda-8.0 cudnn-6.0.21 Tensorflow-1.3-gpu NVIDIA TITAN X GPU
Pretrained model
The bounding box regression's architecture is MobileNet, and the verifier's architecture is VGGM. The pre-trained model can be downloaded at https://drive.google.com/open?id=1g3aMRi6CWK88FOEYoQjqs61fY6QvGW1Z. Then you should copy the two files to the folder of our code.
Integrate into VOT-2018
The interface for integrating the tracker into the vot evaluation tool kit is implemented in the module python_long_MBMD.py
. The script tracker_MBMD.m
is needed to be copied to vot-tookit.
CPU manner
If you want to run this code on CPU, you need to just set os.environ ["CUDA_VISIBLE_DEVICES"]="" in the begin of python_long_MBMD.py
MobileNet based tracking by detection algorithm(MBMD)
大家好,在今年德国慕尼黑召开的ECCV Visual Object Tracking Workshop上,我们的算法有幸在SiameseRPN的巨大压力下,获得了Long-term Challenge的冠军。代码已开源在xiaobai1217/MBMD,训练和测试代码未来将在VOT2018官方网站上发布。
Visual-Object-Tracking Challenge (VOT) 是当前国际上在线目标跟踪领域最权威的测评平台,由伯明翰大学、卢布尔雅那大学、布拉格捷克技术大学、奥地利科技学院联合创办,旨在评测在复杂场景下单目标跟踪的算法性能。今年的VOT2018比赛中引入了Long-term Challenge:每个视频在2000帧至2万帧左右,被跟踪目标频繁离开视野,然后再次出现。因此,要求跟踪算法必须具有判断目标是否在当前帧出现和全图搜索目标的能力。Long-term比赛有两个任务,分别是长时跟踪(Long-term Tracking)和全图检测(Re-detection Experiment)。
方案简介:
Motivation: 匹配网络通过预训练能够适应在线跟踪时目标外观的变化,但是对干扰物区分度不够;分类网络能够很好地区分出干扰物,却很难适应目标外观的变化。如果用单一网络(匹配或分类),很难通过网络输出判断目标是否出现在当前帧,并执行全图搜索。如下图:
Algorithm: 如下图所示,我们的算法由两部分组成,一个基于匹配的回归网络和一个基于分类的验证网络。
算法框架
回归网络有两个输入,分别是局部搜索区域和目标图像块。局部搜索区域以上一帧目标位置为中心,四倍目标大小在当前帧裁得。在每一帧,回归网络在搜索区域内提出一些和目标相似的候选框,每个候选框都有一个描述相似度的分值。验证网络在线学习一个分类器,它首先检验和目标最像的候选框是否是目标,若是,则此目标框为当前帧跟踪结果。如果最像的候选框被验证网络分为背景,则验证网络将从候选框中选择一个分类为前景的作为当前帧跟踪结果。如果两个网络均找不到一个候选框既与目标相似又被分类为前景,那么Tracker将开启全图搜索模式,即从图片左上角开始,裁出一个局部搜索区域,依次搜索全图,横向步长为目标长的一半,纵向步长为目标宽的一半。
匹配网络通过离线训练而具备在一个区域内定位相似物体的能力。它采用SSD检测框架和MobileNets结构作为特征提取部分,使用了ILSVRC2014 Object Localization Dataset 和ILSVRC2015 Video Object Detection Dataset两个数据集。预训练时不使用任何类别标签信息。上支路输入为局部搜索区域,输出两种尺寸的特征图(1919和1010)。我们采用两种尺度来处理目标大小剧烈变化。下支路输入目标图像块(第一帧给定的待追踪目标),输出一个特征向量。两路的特征图经过融合得到的特征图输入到后面的候选区域生成网络(Region Proposal Network,RPN),并由RPN模块输出编码了候选框信息的特征图,随后送入到非极大值抑制模块(Non-Maximum-Suppression)得到最终候选框。融合过程如下图所示(以19*19尺寸为例):
验证网络和MDNet的结构相似(VGGM结构),输入一个107*107的图片块,输出一个二维向量,分别是前景和背景的概率。我们加载VGGM在ImageNet Classification任务中预训练的参数,而不额外在Video数据集上训练。为了有效地滤掉干扰物,在线跟踪过程中,我们更新网络后三层来训练一个强分类器。
Performance: 在VOT2018 长时跟踪任务中,我们的F-score为0.61,AUC为0.81。
欢迎大家交流和cite:
@inproceedings{LRVNT,
title={Learning regression and verification networks for long-term visual tracking},
author={Yunhua Zhang, Dong Wang, Lijun Wang, Jinqing Qi, Huchuan Lu},
booktitle={arXiv preprint arXiv:1809.04320},
year={2018}
}
用siamRPN的proposal来做reid
SiamRPN+MDNet,proposal+verification的想法没优化的Code在2fps左右;image-wide detection部分很耗时间,未来要考虑重点加速。这个算法的核心思想是一个快速的较为精确的proposal机制(和SiamRPN结构类似,但train的没哪个好)和一个外观刻画能力强但确只需要处理少量样本的验证机制(所以就看上MDNet了,其实上看上VGG-M了,我们实验发现不用Video Training的VGG-M很牛)。
验证网络特征用cnn,分类有没有尝试过简单的线性之类的?
记得其他学生尝试过,可以使用VGG-M后面加逻辑回归或SVM之类的,效果会略差些。主要是VGG-M的特征会比较好,其实VGG-16更好(但是考虑到精度和速度平衡目前感觉现场网络中VGG-M是个不错的选择,目前基于VGG-M的代码优化好,是可能达到实时的)。
我想问一下为什么会考虑把correlation之后的结果和broadcast之后的template concat在一起呢?原版siamRPN应该是只使用了前者对吧,你们这样做的考虑和实际效果是怎样的呢?在paper里没有看到对应的ablation study。
concat主要是想为后面的RPN提供目标的信息,对应的ablation study会在第二版论文中补充进去
我测试了下您github上公开的代码,对于相似物体的跟踪容易出现错跟的情况,就拿vot2016数据集中ball来说,明明需要跟踪小伙踢球的那个球,但后面跟踪到了旁边的球上,出现了错跟的情况,这个有好的解决办法吗?
这个Long-Term跟踪代码很难处理你提出的这个问题。个人见解,目前大多数Tracker都没从原理上解决这个问题,现在能处理的大部分视频靠的是运气。想要解决,可能有两种不同的思路:(1)更加细粒度的模型来区分相似目标;(2)利用局部多目标思想来处理相似目标的单目标跟踪问题。我们也正在尝试对于这个问题想出个好的方案。但感觉和长时跟踪有点矛盾,比如几个相似的目标都出镜,然后再回来,跟踪器无法肯定地跟踪到之前的目标了。
你好,我想问一下您在进行RPN之前将模板特征复制到与搜索区域维度相同做点乘然后与模板特征cancat这样做的意义是什么呢?因为SiameseRPN和之前的siamfc都是直接做卷积的,这样做会有什么优势吗?
您好,不知道您有没有训练过siamesefc,siamesefc的卷积方式是比较难训练的,难用于深层网络中(目前都是AlexNet),而我们采用了比较深层的mobilenet,所以没有采用卷积的方式。点乘是为了highlight相似的区域,得到相似性信息,concat模板特征是为了给rpn网络提供更多的目标信息,利于目标框的回归。
MBMD(MobileNet-based tracking by detection algorithm)作者答疑的更多相关文章
- Global Contrast based Salient Region Detection (Ming ming Cheng)
abstract: Automatic estimation of salient object regions across images, without any prior assumption ...
- anomaly detection algorithm
anomaly detection algorithm 以上就是异常监测算法流程
- [Object Tracking] Contour Detection through OpenCV
利用OpenCV检测图像中的长方形画布或纸张并提取图像内容 - 阅读笔记 相对来说,如下链接是此文的高阶方案版本,做对比是极好的. [Object Tracking] Contour Detectio ...
- Floyd判圈算法 Floyd Cycle Detection Algorithm
2018-01-13 20:55:56 Floyd判圈算法(Floyd Cycle Detection Algorithm),又称龟兔赛跑算法(Tortoise and Hare Algorithm) ...
- Floyd's Cycle Detection Algorithm
Floyd's Cycle Detection Algorithm http://www.siafoo.net/algorithm/10 改进版: http://www.siafoo.net/algo ...
- CVPR 2011 Global contrast based salient region detection
Two salient region detection methods are proposed in this paper: HC AND RC HC: Histogram based contr ...
- [Object Tracking] Contour Detection through Tensorflow running on smartphone
From: 手机端运行卷积神经网络的一次实践 -- 基于 TensorFlow 和 OpenCV 实现文档检测功能 貌似不错的东西:移动端视觉识别模型:MobileNets Holistically- ...
- [SimHash] the Hash-based Similarity Detection Algorithm
The current information explosion has resulted in an increasing number of applications that need to ...
- 从时序异常检测(Time series anomaly detection algorithm)算法原理讨论到时序异常检测应用的思考
1. 主要观点总结 0x1:什么场景下应用时序算法有效 历史数据可以被用来预测未来数据,对于一些周期性或者趋势性较强的时间序列领域问题,时序分解和时序预测算法可以发挥较好的作用,例如: 四季与天气的关 ...
随机推荐
- Matlab学习过程中的一些小问题
1.Overload your functions by having variable number of input and output argumernt.Not only can we ov ...
- AcWing 251. 小Z的袜子| 分块+莫队
传送门 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿. 终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命. 具体来说,小Z把这N只袜子从 ...
- wannafly camp day4
2088: 电音之王 描述 题目描述: 终于活成了自己讨厌的样子. 听说多听电音能加快程序运行的速度. 定义一个数列,告诉你a0,a1,m0,m1,ca\_0,a\_1,m\_0,m\_1,ca0, ...
- struts2学习第一天
Stuts2是基于MVC设计模式成熟的Web应用框架.不仅仅是Struts1的下一个版本,是一个全新的Struts架构.由WebWork社区跟Strut社区联手打造的.(教程来自W3Cschool) ...
- JMeter——聚合报告
AggregateReport 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”. 对于每个请求,它统计响应信息并提供请求数,平均值,最大,最小值,错误率,大约吞吐量(以请 ...
- SVN打patch,某Java文件提示svn:mime-type = application/octet-stream的问题
在使用SVN合版本时发现某文件有冲突,正常冲突文件是可以编辑修改的,但是该文件无法编辑,我只好选择后续修改选项,问题好诡异啊!!!在解决完其他冲突后,我选择了在eclipse开发工具内将修改的代码调整 ...
- chrome清除缓存快捷键
CTRL+SHIFT+DEL:直接进入“清除浏览数据”页面,包括清除浏览历史记录.清空缓存.删除Cookie等. 进入开发者模式settings
- SSM框架整合中,不报错,数据库只能存ID进去问题解决
嗯,这个错误其实不能算错误,是粗心造成的,在配置文件中对于传递的参数没有写#字符,直接写的的属性名.居然错了两次,哎!!! 嗯,还有一个问题,在动态SQL中,if标签中test属性中判断时,不能用大写 ...
- 【Vue】强化表单的9个Vue输入库
一个设计不当的表单可能会使用户远离你的网站.幸运的是,对Vue开发者,有大量可用的Vue输入库让你轻松整理表单. 拥有直观而且对用户友好的表单有诸多好处,比如: 更高的转化率 更好的用户体验 更专业的 ...
- scikit-learn基础
一.scikit-learn基础 sklearn.ensemble模块有两种基于决策树的算法----随机森林和极端随机树