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:什么场景下应用时序算法有效 历史数据可以被用来预测未来数据,对于一些周期性或者趋势性较强的时间序列领域问题,时序分解和时序预测算法可以发挥较好的作用,例如: 四季与天气的关 ...
随机推荐
- 学会python正则表达式就是这么简单
一前言 本篇文章带大家快速入门正则表达式的使用,正则表达式的规则不仅适用python语言,基本大多数编程语言都适用,在日常使用中极为广泛,读者们有必要学好正则表达式.看完这篇文章,读者们要理解什么是正 ...
- 【阿里云IoT+YF3300】11.物联网多设备快速通信级联
我们见到的很多物联网设备,大都是“一跳”上网,所谓的“一跳”就是设备直接上网,内嵌物联网模块或者通过DTU直接上网.其实稍微复杂的物联网现场,往往网关下面连接若干物联网设备(如下图),并且这些物联网设 ...
- python检查是否是闰年
检查的依据: 闰年可以被4整除不能被100整除,或者可以被400整除. year = int(input("请输入年份:")) if year % 4 == 0 and year ...
- Ambari下安装oozieUI界面无法访问问题
前言: 其他集群管理工具安装oozie和手动编译安装oozie,关于oozie的UI界面无法访问的问题,大致和该方法类似. 找到下面4步骤里的视图显示的目录,有一个ext-2.2软链指向的路径 lrw ...
- Manacher 学习
推荐博客 :https://blog.csdn.net/zzkksunboy/article/details/72600679 作用 线性时间解决最长回文子串问题. 思想 Manacher充分利用了回 ...
- React Context 的用法
在React的官方文档中,Context被归类为高级部分(Advanced),属于React的高级API,但官方并不建议在稳定版的App中使用Context. The vast majority of ...
- 归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)
博主学习的源头,感谢!https://www.jianshu.com/p/95a8f035c86c 归一化 (Normalization).标准化 (Standardization)和中心化/零均值化 ...
- python 进程信号量
1.概念 信号量和锁相似,锁同一时间只允许一个对象(进程)通过,信号量同一时间允许多个对象(进程)通过 2.应用场景 多线程,并规定数量 3.格式: 导入信号量模块 实例化信号量对象,可以规定信号量的 ...
- 用tensorflow的Eager执行模式
一.即时执行模式 import tensorflow as tfimport tensorflow.contrib.eager as tfetfe.enable_eager_execution() a ...
- vwmare 十月第 1 弹
step one 不管 是 ubuntu 还是 win vm tools 都是需要在虚拟的系统里面的去安装的. 这一点是相同的.