首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自动驾驶关键技术之目标跟踪

版权声明:本文为IND4汽车人版权所有,未经网站官方许可严禁转载

汽车自动驾驶过程中,通过对车道线、前后方车辆、行人等目标的准确识别,为更高级的行为选择、障碍物规避以及路径规划功能提供了基础,但是这其中仍旧有一项关键技术直接影响着高阶算法的效果,那就是目标跟踪,这篇文章我们就来讲讲目标跟踪算法。

什么是目标跟踪?我们此次讲的目标跟踪算法依旧基于计算机视觉。算法的目的在于在一段视频序列中对所框定的目标进行持久的鲁棒性追踪。对人眼而言,持续地盯着一个移动目标不是太大的难事,但是对机器而言并非如此,更有甚者还会出现很多影响跟踪效果的因素。跟踪算法公认的几大难点就包括:外观变形,光照变化,快速运动和运动模糊,背景相似干扰、平面外旋转,平面内旋转,尺度变化,遮挡和出视野等情况,如下图所示。

由此可见,想让计算机在如此多种干扰的情况下做到完美地跟踪目标并非易事。国际上每年也都在举行这针对目标目标跟踪算法的比赛——VOT。

目标跟踪算法的方法许多,但是大家公认的主要分为两大类:生成式和判别式。生成式方法的主要原理是在当前帧对目标区域进行建模,然后在下一帧寻找与模型最相似的区域即是预测位置,比较著名的生产式方法有卡尔曼滤波,粒子滤波,mean-shift等。举个例子,算法从当前帧知道了目标区域80%是红色,20%是绿色,在下一帧,搜索算法就会像无头苍蝇,到处去找最符合这个颜色比例的区域。判别式方法的经典套路是图像特征+机器学习,在当前帧中以目标区域为正样本,背景区域为负样本,通过机器学习方法训练分类器,在下一帧中用训练好的分类器找最优区域。与生成类方法最大的区别,是分类器训练过程中用到了背景信息,这样分类器就能专注区分前景和背景,所以判别类方法普遍都比生成类好。举个例子,在训练时告诉tracker目标80%是红色,20%是绿色,还告诉它背景中有橘红色,要格外注意别搞错了,这样的分类器知道更多信息,效果也肯定更好。

我们这里就讲讲VOT2016冠军TCNN。TCNN的paper链接:https://arxiv.org/pdf/1608.07242.pdf。 TCNN即CNNs in a Tree Structure。文章最重要的出发点是模型的可靠性问题(reliability),大部分现有的跟踪算法默认Model是可靠的,就是说模型一直随着目标的变化而稳定变化,这样就有一个问题,当目标被遮挡,或者说在跟丢了情况下,再更新的模型其实已经被污染了,可靠性很低,其实是不能用这样的模型进行后续的跟踪的。

TCNN用了很多个CNN的模型,并构建成一棵树的结构,如图所示。

红色的框越粗说明对应的CNN模型的可靠性(reliability)越高。连接的红色的线越粗,说明两个CNN之间的相关性越高(affinity)。黑色的箭头越粗表示对应的CNN模型对目标估计的权重越高。TCNN的每个CNN网络(如图所示)都是训练好的VGG-M网络,前面的卷积层的参数共享,后面的全连接层是作者自己设计加上的,在第一帧的时候对全链接层的参数随机初始化、卷积层参数保持不变进行迭代训练,后面每次更新的时候都只更新全连接层的参数。

在对视频的每一帧进行检测时,每个CNN都会产生大量的候选区域,对每一个区域都提取特征显然有着巨大的计算量,于是作者对每一个候选区,在用一个CNN提取特征时将第三层卷积层(conv3)的特征拿出来共享,使得每个CNN其实都只需要保存全连接层的参数即可,也即conv3的特征的提取只需要进行一次,所有的CNN都用同样的conv3的特征,不同的是他们的全连接层。这样便大大减小了计算cost。模型通过树形结构的最后一层节点CNN5来对从上层各个父节点CNN网络中得到的候选区域得分进行衡量,选择可靠性高的CNN来实现准确的目标查找。

你以为就这样结束了吗?当然还没有!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171230G032D400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券