计算机视觉-论文阅读笔记-基于高性能检测器与表观特征的多目标跟踪

这篇笔记主要是对今年ECCV2016上的论文:POI:Multiple Object Tracking with High Performance Detection and Appearance Feature 进行整理. 这篇文章的基本思路是在每帧上用检测器检测行人位置,在每帧之前利用行人检测框的表观特征(Appearance Feature)进行前后帧行人框的匹配,从而实现对行人的跟踪.所以这篇文章的算法算是Tracking by Detection.这篇文章在行人检测器和表观特征提取两处均使用了基于深度学习的方法.并达到了较好的效果.作者给这个跟踪算法起了个叫POI:Person of Interest.

行人检测

一个准确的行人检测器对于跟踪有很大的帮助.POI中使用检测器信息如下:
* 模型:Faster RCNN
* 数据库:使用了多个数据库.包括ImageNet, ETHZ pedestrain dataset, Caltech pedestrain dataset 以及作者自己准备的数据集(接近40w个样本,但并没有公开).
* 策略:作者额外使用了skip pooling [参考文献1]和multi-region[参考文献2]这两个策略提高检测器的效果.

作者在MOT16 train set上对比了Faster RCNN 和 DPM的效果对比.其中添加了skip pooling和multi-region两个策略的Faster RCNN获得了最好的综合效果,如下图所示.

POI1.png

表观特征(Appearance Feature)

表观特征是用来计算行人图像框之间的相似度的.在用理想的表观特征计算时,来自相同个体的图像框的相似度应该很大,而来自不同个体的图像框的相似度应该很小.从而能够通过相似度确定图像框集合之间的对应关系.
* 模型:GoolgeNet的修改版本,输入尺寸为96 * 96,pool5的kernel size从7 * 7换成了3 * 3
* 训练数据:多个person re-id datasets:包括PRW,Market-1501,VIPeR,CUHK03. 包括来自19835个个体的119000对左右patches.
* 训练方法:同时使用softmax和triplet loss. softmax loss用来提高表观特征的区分度, triplet loss 用来保证同个个体的表观特征距离较小
* 相似度计算: 通过特征的余弦距离计算相似度, 余弦距离即计算两个向量夹角的余弦值.完全相关时为1,完全无关时为0

在线跟踪器(Online Tracker)

Online Tracker Algorithm

以上即为POI中在线跟踪器的算法,其中输入和输出为:
* 输入信息:t时刻的图像帧,t时刻图像帧上的检测框集合 Dt ,以及t-1时刻的跟踪框集合 Tt1
* 输出信息:t时刻的跟踪框集合 Tt
在Online Tracker中, POI使用Kalman Filter [参考文献3]做动作预测, Kuhn-Munkres 算法[参考文献4]做数据对应(即两个行人框集合之间的对应)

相似矩阵构建(Affinity Matrix Construction)

Kuhn-Munkres算法需要构建相似矩阵来进行两个集合之间的对应,相似矩阵中的元素即两个集合对应数据的相似度. POI中集合了运动,形状,表观特征来计算跟踪集和检测集之间的相似度.其中表观特征即上面讨论的用深度学习模型提取的特征.

affapp(trki,detj)=cosine(feattrki,featdetj)

affmot(trki,detj)=ew1((XtrkiXdetjWdetj)2+(YtrkiYdetjHdetj)2)

affshp(trki,detj)=ew2(|HtrkiHdetj|Htrki+Hdetj+|WtrkiWdetj|Wtrki+Wdetj)

affinity(trki,detj)=affapp(trki,detj)affmot(trki,detj)affshp(trki,detj)

affapp , affmot affshp 分别对应表观,运动和形状相似度. w1 w2 为权重参数.

数据对应(Data Association)

跟踪集和检测集的对应使用 Kuhn-Munkres 算法进行. 由于 Kuhn-Munkres 算法倾向于寻找全局最优结果, 因此当一些检测框缺失时可能会出现问题.所以POI算法中使用了两阶段方法, 将检测集合根据分数分为高质量和低质量两部分.先对高质量部分的跟踪框与检测框做对应.然后将成功对应的框对从跟踪和检测集合中去除出去,再对剩下的低质量部分进行对应.

跟踪质量评价标准(Tracking Quality Metric)

POI论文中使用以下公式定义跟踪的质量:

Quality(trackleti)=kcouples(trackleti)affinityklength(trackleti)(1ew3length(trackleti))

离线跟踪器(Offline Tracker)

Offline Tracker Algorithm
离线跟踪器即将整段视频作为输入,跟踪结果作为输出,具体而言:
* 输入信息:待处理视频以及其每帧上的检测框
* 输出信息:跟踪结果(即目标的轨迹)
POI中的离线跟踪器是 H2T 算法[参考文献]的改进. 由于我自己用不到离线跟踪器的算法,故这块没有细看,有兴趣的话可以看论文原文.

效果

从下表可以看出,POI的效果还是很好的
POI2.png

个人讨论-如何实现一个实时/准实时多目标跟踪器

这篇文章的主要的两块内容—高性能行人监测器和表观特征提取器都是可以替换的,可以通过改进这两个方面来提高算法速度(注:这样效果可能下降,但此处讨论均基于如何提高算法实时性进行)

行人检测器部分

文章中使用的是faster rcnn, 虽然faster rcnn 速度比fast rcnn提高了不少,但研究不能满足实时运行的需求.所以此处可以将检测器替换为300*300 的SSD[参考文献5]模型.可以达到30fps左右的速度.

表观特征部分

由于需要在每个检测框和跟踪框上提取表观特征,所以这部分的计算量是比较大的.此处我认为有两个途径:
1. 裁剪网络:在知乎上请教了一下作者,他表示通过裁剪网络,可以将单个图像框的处理时间降低到1ms以下,这个速度我觉得是可以满足需求的.具体方法是先裁剪网络并测试速度,待获得速度满足要求的网络后再开始训练模型.
2. 度量学习:特征方面直接使用简单的颜色直方图特征(或是HOG之类的).然后用度量学习的方法学习度量距离函数.这样做的速度应该会比深度学习方法快,但效果可能较差(猜测).

参考文献

[1] Bell, S., Zitnick, C.L., Bala, K., Girshick, R.B.: Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. CoRR (2015)
[2] Gidaris, S., Komodakis, N.: Object detection via a multi-region and semantic segmentation-aware CNN model. In: ICCV (2015)
[3] Kalman, R.E.: A new approach to linear filtering and prediction problems. Journal
of Basic Engineering (1960)

[4] Kuhn, H.W.: The hungarian method for the assignment problem. Naval research
logistics quarterly (1955)

[5] Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[J]. arXiv preprint arXiv:1512.02325, 2015.

猜你喜欢

转载自blog.csdn.net/wzmsltw/article/details/53691384