点击我爱计算机视觉标星,更快获取CVML新技术


用更小更快的模型达到state-of-the-art效果的多任务学习

今天跟大家分享几天前arXiv上的一篇兼顾模型速度与性能的论文《Real-Time Joint Semantic Segmentation and Depth Estimation Using Asymmetric Annotations》,来自阿德莱德大学和墨尔本大学的研究人员在该文解决了在计算受限的设备上部署多任务模型的问题,取得了又好(达到state-of-the-art效果)又快(17毫秒每帧)同时实现语义分割与深度估计的效果。
作者信息:

在机器人上部署深度学习模型提取环境信息是一项艰巨的任务,即使是使用强大的通用的GPU。在这篇论文中,作者希望将语义分割与深度估计两个感知任务部署到机器人中,其主要解决了三个问题:
1)单模型多任务,在同一个深度学习网络中同时实现语义分割与深度估计;
2)实时计算;
3)非对称的标注数据,即并不是所有标注数据既有语义标注又有深度标注。

网络架构与算法设计思想

1)骨干网选择和改进:
作者使用构建于MobileNet-v2分类网络上的Light-Weight RefineNet(BMVC2018论文提出的)作为骨干网,该网络在输入图像大小为640 × 480时计算量14 GFLOPs,为进一步降低计算量,作者将最后的CRP block中的1*1卷积替换为分组卷积(grouped convolution),使其降低为6.5 GFLOPs。
2)语义分割与深度估计联合学习:
在上述Light-Weight RefineNet结构之后,网络分成两个预测任务,分别使1*1的depthwise卷积和3*3的普通的卷积。
其损失函数:
3)知识蒸馏用于非对称标注数据的专家标注:
这一步是重点!对于多任务模型,需要标注的数据含有每种任务的标签才能训练。对于两种任务T1和T2,假设只有少部分数据被标注了两种标签,对于样本数量更多的只有其中一类标签的数据,引入一个更加强大的专家模型,计算其在另一任务中的预测结果作为合成ground truth数据。
训练的时候,使用合成ground truth数据先预训练网络,然后再使用拥有两种真实标签的ground truth对网络fine-tune。

实验结果
作者使用的机器配置和软件版本24GB RAM,Intel i5-7600 处理器,一块GT1080Ti GPU,CUDA9.0,CuDNN7.0。
1)NYUDv2数据集实验
作者首先在NYUDv2数据集上做了实验,其含有1449图像同时含有语义和深度标注(795幅训练集,654幅验证集),同时又有超过300000幅图像有深度标注。
作者引入的专家模型是Light-Weight RefineNet-152 语义分割模型,其在验证集上的精度是44.4% mean iou。
制作完合成语义标注后,使用大的含有合成标注的数据集预训练,然后在795图像的小数据集上fine-tune。
结果如下:

参数量仅3.07M,打败了多个大型网络模型,预测性能几乎都接近最好的结果,计算时间仅需要12.8ms。
下图是深度估计的精度进一步比较:
接近大型网络的结果,甚至在某些指标下超越了大型网络的结果。
预测结果示例:

作者同时比较了在小数据集上的单任务模型,和其他文献中使用合成标签训练的预测结果,表明该文方法取得了明显的优势。

2)KITTI数据集实验
KITTI数据集仅含有146幅图像有语义标注(100幅训练46幅测试),同时含有20697幅图像有深度标注(20000幅训练,697幅测试),他们之间没有同时被标注了语义和深度的数据。
作者使用在CityScapes数据集上训练的ResNet-38模型作为语义专家模型给20000仅有深度标注的图像预测语义标签,使用本文提出的网络架构在20000幅具有深度标注的图像上训练的深度估计模型,然后给100幅仅有语义标注的图像预测深度标签。
按照上面的方法,现在大库上预训练,再在100幅图像的小库上fine-tune,结果如下:

比较有意思的是,这两个任务甚至比目前state-of-the-art的大型网络都达到了更好的结果。参数量仅2.99M,而且在1200*350的图像上一帧计算时间仅需要16.9毫秒。
更细节的分类比较:
预测示例:

3)更多扩展

作者又研究了扩展到单网络三种任务(Single Model – Three Tasks)、单网络两个数据集两种任务(Single Model – Two Datasets, Two Tasks)和集成到Dense Semantic SLAM,都取得了又快又好地结果。

很可惜,该文目前并无开源代码。

论文地址:
https://arxiv.org/abs/1809.04766

论文下载:
在“我爱计算机视觉”公众号对话界面回复“17ms”,即可收到该文及Light-Weight RefineNet论文的百度云下载地址。


长按关注我爱计算机视觉

【点赞与转发】就是一种鼓励

17毫秒每帧!实时语义分割与深度估计相关推荐

  1. 行车环境实时语义分割与深度估计

    向AI转型的程序员都关注了这个号

  2. 新开源!实时语义分割算法Light-Weight RefineNet

    点击我爱计算机视觉标星,更快获取CVML新技术 前几日52CV君分享了论文<Real-Time Joint Semantic Segmentation and Depth Estimation ...

  3. 实时语义分割算法大盘点

    本文转载自计算机视觉工坊 语义分割论文 语义图像分割是计算机视觉中发展最快的领域之一,有着广泛的应用.在许多领域,如机器人和自动驾驶汽车,语义图像分割是至关重要的,因为它提供了必要的上下文,以采取行动 ...

  4. 用于道路场景实时准确语义分割的深度双分辨率网络

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家 ...

  5. BCPNet:用于实时语义分割的双向上下文传播网络

    论文地址:https://arxiv.org/pdf/2005.11034.pdf 代码地址:暂无 空间细节和上下文相关性是语义分割的两类关键信息.一般来说,空间细节最可能存在于浅层,而上下文关联最可 ...

  6. BiSeNet:用于实时语义分割的双边分割网络-7min精简论文阅读系列-Leon

    BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation BiSeNet:用于实时语义分割的双边分割网络 ...

  7. ICNet图像实时语义分割

    Image Cascade Network (ICNet) Image Cascade Network(ICNet)主要用于图像实时语义分割.相较于其他压缩算法的方法,ICNet即考虑了速度,也考虑了 ...

  8. 实时语义分割脉络梳理

    作为计算机视觉中的一个经典的问题,语义分割已经受到了学界的广泛关注.语义分割是针对输入的图像的每个像素,预测出该像素属于何种类别.这种相对于目标检测提供边界框信息而言,能够产生更加稠密的预测,因此提供 ...

  9. 轻量化实时语义分割LiteSeg——从算法原理到模型训练与部署

    前言 1 . LiteSeg 是实时语义分割算法,论文参见 :DICTA 2019 LiteSeg: A Novel Lightweight ConvNet for Semantic Segmenta ...

最新文章

  1. javascript中的表结构
  2. 计算2个时间之间经过多少Ticks
  3. 6/100. Invert Binary Tree
  4. 只能计算机论文,谈计算机及人工智能技术发展-人工智能论文-计算机论文.docx...
  5. java8 默认方法_如何不使用Java 8默认方法
  6. 爬动的蠕虫(C++)
  7. python需要什么包装_python学习之包装与授权
  8. 老罗Android开发视频教程( android解析json数据 )4集集合
  9. AttributeError: module 'pymysql' has no attribute 'escape' 错误的出现以及解决
  10. jdbc显示mysql的数据_JDBC链接mysql插入数据后显示问号的原因及解决办法
  11. Katta:基于Lucene可伸缩分布式实时搜索方案
  12. P. Laguna/Evaluation of an Automatic Threshold Based Detector of Waveform Limits in Holter ECG
  13. 货币基金新规将出,限制T+0提现及支付额度
  14. 总结嵌入式C语言知识点
  15. 数字图像相关-高斯分布散斑图生成MATLAB代码
  16. css实现边框阴影效果的方法(含兼容)
  17. 笔记本电脑的触摸区域操作
  18. 管道的故事(一)管道的故事
  19. jsp学生考勤信息系统
  20. Unraid搭建gitlab

热门文章

  1. 从0开始详解 Johnson 全源最短路(P5905 【模板】Johnson 全源最短路)
  2. [Editor][002][Emacs] 从零到高级的进阶 - 实践开发 - 帮助菜单主页
  3. php调用谷歌翻译,PHP调用谷歌翻译 | 学步园
  4. python旋转矩阵_python – 来自两个3D点的Euler角度和旋转矩阵
  5. 线程 sleep 取消_Java面试集锦:25道线程类相关面试题与答案(下)
  6. oracle 添加服务命名空间,c# – 找不到类型或命名空间名称“OracleConnection”
  7. anaconda和python都有_Anaconda和python有什么区别-Anaconda和python区别介绍
  8. ubuntu重命名移动硬盘
  9. Java程序中fix time_Java Position.setFixTime方法代码示例
  10. java c混合编程 linux_linux下C与C++混合编程