IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【自动驾驶论文阅读笔记——精读RetinaTrack】 -> 正文阅读

[人工智能]【自动驾驶论文阅读笔记——精读RetinaTrack】

写在前面

本文提出了一种在RetinaNet上进行调整的多目标跟踪网络RetinaTrack,提出了“将检测和跟踪分离开来
是不必要,二者能相互促进”的观点。总体感觉和JDE比较像,主要的区别改进在于对FPN之后的网络结构的设计。

【论文】RetinaTrack: Online Single Stage Joint Detection and Tracking

1. Abstract

提出了一种专注于自动驾驶领域的多目标跟踪网络,RetinaTrack。该网络基于RetinaNet进行修改,以获得实例级的embedding向量,简洁但有效地将检测任务和跟踪(ReID)任务联合起来。最终,RetinaTrack在自动驾驶数据集Waymo Open上取得了SOTA的性能。

2. Introduction

本章主要讨论了两个问题:
1)联合模型: MOT中检测跟踪任务经常“手递手”连接且都依赖深度学习网络,但是却很少工作建立将二者联合的模型。作者认为这是由于MOT的主流benchmark,MOT Challenge为了“公平”人为地将两个任务分开了
2)领域选择: 作者选择了自动驾驶领域,因为检测和跟踪恰好都是该领域的重要任务,有意义。另外,在自动驾驶领域速度和精度同等重要。

3. RetinaTrack

在这里插入图片描述

3.1 Overview

RetinaTrack的整体结构如上图所示,整个网络的输出是检测结果(location+classfication)和跟踪结果(ReId embeddings)。其以目标检测网络RetinaNet为原型,其结构主要分为FPNpost-FPN部分,而本工作的主要改动在post-FPN部分,其改动的主要目的是能够适应跟踪任务的instance level embeddings形式的输出。

3.2 RetinaNet

首先,之所以选择RetinaNet作为基础进行改进,是因为RetinaNet网络本身适合自动驾驶场景下的多目标跟踪任务:1)满足实时性;2)精度达到SOTA;3)结构设计对小目标友好
在这里插入图片描述
RetinaNet的基本结构如图所示,原图先输入FPN中,提取不同的Feature Map层 F i F_i Fi?,每个 F i F_i Fi?输入进对应的post-FPN环节,存在两个并行的通道分别对class和boxes进行学习,每个任务有K组输出对应K个anchor。
公式如下:

Y i , k c l s ( F i ) = S i g m o i d ( C o n v ( C o n v ( 4 ) ( F i ; θ c l s ) ; ? k c l s ) ) ( 1 ) Y_{i,k}^{cls}(F_i) = Sigmoid(Conv(Conv^{(4)}(F^i;\theta^{cls});\phi_k^{cls})) (1) Yi,kcls?(Fi?)=Sigmoid(Conv(Conv(4)(Fi;θcls);?kcls?))(1)

Y i , k l o c ( F i ) = C o n v ( C o n v ( 4 ) ( F i ; θ l o c ) ; ? k l o c ) ( 2 ) Y_{i,k}^{loc}(F_i) = Conv(Conv^{(4)}(F^i;\theta^{loc});\phi_k^{loc})(2) Yi,kloc?(Fi?)=Conv(Conv(4)(Fi;θloc);?kloc?)(2)

其中, i i i代表FPN的不同层, k k k代表不同的anchor, θ , ? \theta, \phi θ,?表示网络的参数。
由公式可知:
1)两个子任务的参数是分离的,各自独立学习;
2)每个子任务各自的前4层( θ c l s , θ l o c \theta^{cls}, \theta^{loc} θcls,θloc)是共享参数的,最后一层( ? k c l s , ? k l o c \phi^{cls}_k, \phi^{loc}_k ?kcls?,?kloc?)不同的参数对应不同anchor;

3.3 Modifying: Per-Anchor + Embbeding-Branch

1. 问题提出
RetinaNet结构如3.2节所示,每个子任务中最后一层卷积之前,K个anchor对应的网络参数都是共享的。 这种设计导致最后一层之前,不同anchor对应的信息都混合在同一个特征图中,对于跟踪任务,需要产生实例级(instance-level)的embeddings的话,这种结构就会存在一些隐患:如下图中,如果检测到的两个目标对应的不同尺寸anchor对应同一个位置的grid,由于最后一层之前特征图都是没有分开的,所以是不利于获得Instance-level feature的。
在这里插入图片描述
2. 解决方案
重新设计的结构如下,主要的思想就是提前把不同尺寸(对应不同anchor)的特征分开表示。因此,在post-FPN环节提前分出K个分支(对应k个anchor),在分支的最后在最后分成三个子任务(对应class,bbox,embedding)。
在这里插入图片描述
调整结构并加入后的公式如下

F i , k = C o n v ( m 1 ) ( F i ; θ k ) F_{i,k} = Conv^{(m_1)}(F_i;\theta_k) Fi,k?=Conv(m1?)(Fi?;θk?)

Y i , k c l s = S i g m o i d ( C o n v ( C o n v ( m 2 ) ( F i , k ; θ c l s ) ; ? c l s ) ) Y_{i,k}^{cls} = Sigmoid(Conv(Conv^{(m_2)}(F_{i,k};\theta^{cls}); \phi^{cls})) Yi,kcls?=Sigmoid(Conv(Conv(m2?)(Fi,k?;θcls);?cls))

Y i , k l o c = C o n v ( C o n v ( m 2 ) ( F i , k ; θ l o c ) ; ? l o c ) Y_{i,k}^{loc} = Conv(Conv^{(m_2)}(F_{i,k};\theta^{loc}); \phi^{loc}) Yi,kloc?=Conv(Conv(m2?)(Fi,k?;θloc);?loc)

Y i , k e m b = C o n v ( m 3 ) ( F i , k ; θ e m b ) Y_{i,k}^{emb} = Conv^{(m_3)} (F_{i,k}; \theta^{emb}) Yi,kemb?=Conv(m3?)(Fi,k?;θemb)

由公式可知:
1)每个anchor建立一个分支,分别对第i层特征图进行 m 1 m_1 m1?次卷积,获得特征图 F i , k F_{i,k} Fi,k?,视作 “per-anchor instance-level features”,这部分每个分支参数独立,不共享(seperate)
2)在获得对应k个anchor的特征图 F i , k F_{i,k} Fi,k?后,再利用其完成三个子任务,分别进行 m 2 + 1 m_2 + 1 m2?+1 m 3 m_3 m3?次卷积,得到对应任务最终的输出结果。

3.4 Training Loss + Label Assign

1. Loss
检测部分: 使用RetinaNet提出的标准的Sigmoid Focal Loss(cls)和Huber Loss(reg)。
跟踪部分: Embeding使用BatchHard策略的Triplets Loss进行学习,公式如下:
L B H ( θ ; X ) = ∑ j = 1 A S o f t P l u s ( m + m a x D j p ? m i n D j l ) L_{BH}(\theta; X) = \sum_{j=1}^A SoftPlus(m + maxD_{jp}-minD_{jl}) LBH?(θ;X)=j=1A?SoftPlus(m+maxDjp??minDjl?)

2. Label Assign
检测部分: 通过 I O U > 0.5 IOU>0.5 IOU>0.5与否进行判别
跟踪部分: 通过 I O U > 0.7 IOU>0.7 IOU>0.7与否进行判别,要求高于检测,实验发现这样效果好。

3.5 Inference

这部分主要讲轨迹管理策略。建立一个track store,每次去检测评分最高的100个结果与轨迹进行匹配,匹配策略为贪心算法Greedy Bipartite Match,匹配依据为IOU+余弦距离。

4. Experiment

4.1 Architectual

在这里插入图片描述
从上表可以看出:
1) 按照anchor提前分支的设计确实对于Embbeding的生成更加友好,印证了第三章提出的问题与设计思路
2)引入Emb任务后,竟然在一定程度上可以提高检测任务的效果,按照作者的说法:

By including tracking losses, we are able to boost detection performance.

3)推理时间不可避免的增加了,因为这种设计明显增大了参数量

4.2 Compare with SOTA

在这里插入图片描述
由于本文选用的是自动驾驶领域数据集Waymo Open,很少有MOT算法在此benchmark上进行比较,以上算法均为作者自主复现的。从上图可以看出:
1)IOU baseline的效果已经很好了,而且在车辆慢速时更精准,这是因为检测环节很出色
2)Tracktor++速度很慢,因为CMC补偿太耗时了
3)RetinaTrack在检测和跟踪两个任务上都表现出色

5. Analysis

本工作主要的贡献在于,类似JDE网络,提出了一种基于RetinaNet的跟踪网络,并且主要改进了post-FPN的结构,使其对Embbeding的生成任务更加友好了,一定程度上环节了检测任务和Embbeding任务之间的矛盾,这是其他工作所没有考虑到的。所以,这是一个根据MOT实际任务特点做multi-task的尝试。另外,这篇工作也是将MOT的应用场景从比较主流的pedestrain转移到了autodrive上,比较有新意。

但是本文虽然声称是将Detect和Track进行融合,但是实际上是对Detect和REID进行融合,后面仍然使用常见的Association方式进行跟踪轨迹管理,可能仍然比较少的利用到了时序信息,车辆运动规律等先验?后续可以考虑在这些方向进行改进?

6. 一些其他思考——对比YOLOP

受到师兄启发,这一篇工作做和我上一篇整理的工作YOLOP,很相似,都是将目标检测中的经典网络迁移到自动驾驶领域进行改进的工作,但是我认为二者之间还是存在一些区别。

YOLOP只做到了将三个任务融合在一起,这本身对于自动驾驶来说就是一个有意义的工作,但是其各个任务并没有针对自动驾驶领域的特点做特定的改进或调整,比如车道线的几何约束?三个任务的目标之间的约束关系等?也就是说,单从结构和设计思路来看,YOLOP本身并不针对自动驾驶,而只是“恰好”应用在了这个领域
RetinaTrack也是将两个任务融合起来,不同的是,针对生成Embbeding的需要以及自动驾驶场景中车辆经常会重叠的实际情况,对原本的结构进行了有针对性的改进。因此最终的网络是更贴合自动驾驶领域的,因为其考虑到了这个场景下的实际情况并做出了调整

参考资料

[1] RetinaTrack方法论解析_是魏小白的博客-CSDN

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-11 23:59:55  更:2022-01-12 00:00:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 7:06:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码