简介
Auxiliary tasks 可以看作是regularization,使main tasks的performance更好。这篇论文选择road scene understanding(RSU) 作为例子。还提供了多任务的dataset,synMT
。
很多CV的应用都需要单一任务的组合,例如single-image depth estimation(SIDE)、semantic segmentation、图像分类等。合起来解决时,可以提升性能,还能节省训练和推断时间。
main tasks是最终需要输出的tasks。auxiliary tasks则是为了能学到更robust、common的representation。这篇论文认为auxiliary tasks是似乎与main tasks不相关但实际上用了相似feature的tasks。
自动驾驶中,需要注意的有交通标志、地标和其他行人车辆等。还要考虑物体距离和时间等。
这个model把SIDE当作main tasks,预测时间和天气情况作为auxiliary tasks。
主要贡献:使用似乎不相关的auxiliary task作为regularization、对vision-based multi-task RSU的实现和研究、合成的dataset、多任务CNN架构。
在MTL中引入Auxiliary Tasks
MTL在网络的前几层找到common representation,各个任务在后几层解决各自的任务,即encoder-decoder结构。Auxiliary tasks应该容易学并且label很容易得到的。Loss function:
其中, 为可以学习的网络参数。同时,也需要regularization term.
最终的loss function为:
实验和结果
合成的dataset
使用合成的dataset,ground-truth labels有pixel-wise depth maps和semantic masks,还有时间和天气。
网络结构
将SIDE和semantic segmentation作为main tasks。SIDE的很多方法都利用了图像gradient作为feature。加入了时间回归作为auxiliary task,将光线造成的gradient和地形上造成的区隔开。预测天气情况作为第二个auxiliary task可以帮助semantic segmentation区隔雨滴、雪花或者小物体。
encoder的部分使用pre-train的model,DeepLabv3(使用ResNet和ASPP)。实作这个model,使用pre-trained的ResNet50,把1×1的convolution换成特定task的decoder。
天气分类的分支包含5×5 conv、3×3 conv 、2个3×3 conv(stride=3)、1×1conv、fc-11。使用softmax loss。
时间回归的分支除了第一个max pool,size 5×5 ,stride 5,其他相似,最后的fc-1。使用MSE loss。
因为分析交通场景中,近距离的物体更有意义,因此,相对距离为
mapping之后,原来1m到1km变为[0,1]。将d<1变为0,d>1000变为1。
时间上,考虑到24小时周期性,t的单位为分钟,则squared cyclic time difference为
这个loss为:
其中,mini-batch size为b,10^(-5)是为了scale。刚开始c_\tau为0.25。b=4,lr=1e-5,使用Adam作为optimizer。
结果如下:
在single-task的情况下,auxiliary task的结果最好。因为auxiliary task只是用来support main task的。当四个任务一起时,每个都还不错。