如何训练一个100FPS的深度跟踪网络模型---GOTURN(附代码)

阅读更多,欢迎关注公众号:论文收割机(paper_reader)

原文链接:如何训练一个100FPS的深度跟踪模型(附代码)

Held, David, Sebastian Thrun, and Silvio Savarese. "Learning to track at 100 fps with deep regression networks." European Conference on Computer Vision. Springer, Cham, 2016.

 1 引言

目标跟踪是计算机视觉中的一个经典任务,通过跟踪一个目标时序场景下的移动,一方面是跟踪到关键目标,另一方面能够利用跟踪产生的结果来消除其他任务产生的错误信息,例如使用跟踪来抑制误检。

本篇将介绍如何使用深度回归网络来训练一个100FPS速度的跟踪器。之前大多数的跟踪算法是基于所需要跟踪目标的特征来定位关键bounding box,直接使用特征来识别速度快,但是准确率不高,而且随着时间的推移,容易跟丢。另一种思路是使用检测来进行跟踪,每一帧的图片都进行一次检测[1],使用检测来产生bounding box,时序上对同一个检测目标连续的bounding box,可以产生对该目标的跟踪。

本篇介绍的方法与前面的思路均不相同,本篇的思路是通过在连续帧之间的相关性,以及需要跟踪的目标的特征来训练一个深度回归跟踪网络,GOTURN模型。这个文章的方法,笔者也在真实数据集上进行了训练测试,跟踪的效果非常好,按照IOU作为阈值,在IOU=0.5的时候,能够达到0.95的准确率。Github代码:https://github.com/tangyuhao/GOTURN-Tensorflow

2 模型介绍

如何训练一个100FPS的深度跟踪网络模型---GOTURN(附代码)_第1张图片 图1 模型框架

整体的模型框架如图所示,输入是连续的两帧图片,上分支的当前帧,下分支是上一帧。上一帧的图片是有bounding box的,通过给定的bounding box来得到需要跟踪目标的特征,之后在当前帧上回归出来一个bounding box。Crop的含义是指使用bounding box来得到局部的特征,从而使特征能够更加丰富,类似于一个attention模型!(注:对当前帧的crop往往是直接在上一帧的bounding box之上外扩两倍,存在一个先验假设,跟踪目标不会移动太快)。

之后,在上一帧以及当前帧上crop出来的特征通过一个两路卷积神经网络,最后通过全连接层学习出当前帧的bounding box。该bounding box一方面是直接通过回归模型回归出来的,只有四个值,另一方面是连续帧之间的相关性得到的数值,具有很强的时序特性,所以可以作为很好的跟踪模型。该模型很小,而且深度较浅,再加上输入网络的是crop之后的图片特征,数据量较少,所以最终的计算速率很快,能够达到100FPS。

3 实验结果

如何训练一个100FPS的深度跟踪网络模型---GOTURN(附代码)_第2张图片 图2 GOTURN对比试验效果图

 

最终GOTURN模型的实验效果是比较好的,在保证了健壮性的同时又能够保证跟踪的准确率,能够很好的跟住目标。

如何训练一个100FPS的深度跟踪网络模型---GOTURN(附代码)_第3张图片

 

另外一组实验反映了使用了连续两帧图片来跟踪目标能够减少误差,同时,也反映了在不同条件改变下,会产生不同程度的误差。

4 总结

该论文的idea其实比较简单,通过连续两帧图片之间的关联性,加上crop的信息来只将局部的信息输入到神经网络中,从而能够更好的训练神经一个跟踪神经网络。一般跟踪,还有检测模型,往往会忽略时序特征,所以丢失了很强的关联信息。通过连续两帧的关联信息,既是很好的跟踪模型训练方法,也能够引用到其他的检测或者识别模型中来。

代码:

https://github.com/tangyuhao/GOTURN-Tensorflow

参考文献:

[1] SSD: Single Shot MultiBox Detector

[2] Learning to Track at 100 FPS with DeepRegression Networks

[3] https://github.com/tangyuhao/GOTURN-Tensorflow

阅读更多,欢迎关注公众号:论文收割机(paper_reader)

你可能感兴趣的:(deep,learning,tracking)