ICNet for Real-Time Semantic Segmentation on High-Resolution Images

作者开源代码

特点

上图可以很好的说明ICNET的特点,它是第一个出现在上图右上角的方法,同时兼顾分割效果和处理速度。准确率超过70%,对于1024x2048的高分辨率输入,速度达到30FPS,虽然硬件条件也不低。

框架

论文分析了语义分割各个模块的对速度影响,得到提升速度的三个方法

  • 下采样输入图
  • 下采样特征图
  • 模型压缩

但是单独使用其中任何方法加速都会降低分割效果,本文提出如下框架,成功融合上述三个方法,兼顾分割效果和分割速度

自上而下依次是低分辨率,中分辨率和高分辨率。

  • 低分辨率
    输入图是原图1/4,输出的特征图尺寸是原图的1/32。采用的网络结构最为复杂,但因为输入图尺寸不大,速度也不会慢

  • 中分辨率
    输入图是原图的1/2,输出特征图尺寸是原图的1/16。因为低分辨率分支已经提取了大部分信息,这一个分支采用比较简单的卷积网络

  • 高分辨率
    输入图是原图,输出特征图尺寸是原图的1/8。同样因为只需要关注精细特征,依然采用轻量级的卷积网络,以节省计算量。

CFF模块(cascade feature fusion)负责融合两个相邻分支输出的特征图,从低分辨率到高分辨率逐次融合。

    Becuase weights and computation (in 17 layers) can be shared between low- and medium-branches, only 6ms is spent to construct the fusion map

原文中一句话,似乎分支间的一些层可以共享权重,进一步节省计算量,但是文中没看到更多细节,以后搞明白再补充。

Cascade Feature Fusion

CFF模块的输入有三个

  1. 低分辨率特征图
    Upsample 2x+空洞卷积,速度优于反卷积操作

  2. 高分辨率特征图
    1x1卷积调整通道数

  3. 对应高分辨率特征图的groundtruth(仅训练阶段需要)
    文中称为Cascade Label Guidance,对低通道特特征图上采样之后,和groundtruth比较,计算loss

CFF模块的输出是和高分辨特征图尺寸一样的新特征图

Cascade Label Guidance

框架中包括2个CFF模块,对应两个loss,高分辨率解码端1/4尺寸处也会输出一个loss。这三个loss描述的量是一样的,只是对应的尺寸不同,三者的加权平均就是训练阶段使用的目标loss

实验

硬件环境

* Maxwell TitanX GPU cards
* CUDA 7.5 CUDNNv5

三种单独的加速方法

本文作者同样是PSPNet的作者,以下实验主要是基于PSPNet进行的。

下采样输入图


随着输入图缩小,一些细小目标从分割结果中消失

下采样特征图


虽然分割效果比下采样输入图要好,但是速度提升不大
(译注:没太明白这种加速方法,如果是指输入原图,输出1/32尺寸的分割图,节省了更高尺寸的反卷积的计算量,感觉这种方法性价比还不错)

模型压缩


计算每层kernel filter的L1范数,保留范数比较大的kernel filter,表格中第一行表示保留的比例

对比ICNET三个分支


sub4是只是用ICNET低分辨率分支,sub24是融合中低分辨率的输出,sub124就是ICNET完整三个分支的输出

CFF的效果


第四行是ICNET的用法, 前三行和第四行比较,说明反卷积操作性价比低于 upsampling+dilated convolution。
最后一行和第四行比较,说明Cascade Label Guidance可以提升一个0.9%

和其他方法的对比

分支之间的视觉上对比

sub4是只是用ICNET低分辨率分支,sub24是融合中低分辨率的输出,sub124就是ICNET完整三个分支的输出

实时语义分割ICNET相关推荐

  1. 实时语义分割--ICNet for Real-Time Semantic Segmentation on High-Resolution Images

    ICNet for Real-Time Semantic Segmentation on High-Resolution Images https://hszhao.github.io/project ...

  2. ICNet图像实时语义分割

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

  3. 【语义分割系列】ICNET(实时语义分割)理论以及代码实现

    git地址:https://github.com/Tramac/awesome-semantic-segmentation-pytorch 包括: FCN ENet PSPNet ICNet Deep ...

  4. 轻量级实时语义分割:ICNet BiSeNet

    轻量级实时语义分割:ICNet & BiSeNet ICNet 贡献 Image Cascade Network Cascade Label Guidance Structure Compar ...

  5. Real_time实时语义分割网络 SegNet, ENet, ICNet, BiSeNet,ShelfNet

    1. SegNet 论文地址:A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation 本不应该将segnet作 ...

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

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

  7. 【论文阅读--实时语义分割】BiSeNet V2: Bilateral Network with Guided Aggregation

    摘要 低层细节和高层语义对于语义分割任务都是必不可少的.然而,为了加快模型推理的速度,目前的方法几乎总是牺牲低级细节,这导致了相当大的精度下降.我们建议将这些空间细节和分类语义分开处理,以实现高精度和 ...

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

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

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

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

最新文章

  1. .DLL文件是什么?
  2. layui动态生成的下拉框被遮住
  3. 深度学习之卷积神经网络 ResNet
  4. Flash 杂志《summer tree》 第七期发布
  5. 树莓派百度语音识别+图灵机器人对话聊天机器人
  6. 点击树形相应车型,置顶
  7. unbuntu20.04下载opencv4.5.2
  8. 科技周刊第十期:自顶向下还是自底向上?
  9. Mac 安装Gradle教程
  10. 三种免费批量下载QQ空间相册方法-2018.05.20亲测有效
  11. 【小5聊】sql server基础之查询经纬度范围,10公里范围的经纬度标注点
  12. OpenEmbedded 简介
  13. java实现微信服务(公众)号用户关注时,获取openid,安全模式下的加密解密实现
  14. hioki电阻测试仪3540软件,微电阻计/电阻测试仪/HIOKI 3540/HIOKI 3560/日置3540/日置3560...
  15. zoom如何使用网页版登录
  16. 谷歌移动UI框架Flutter教程之Widget
  17. 【WIN32APIDAPI】RegisterClass CreateWindowEx UpdateWindow
  18. 人民币贬值不是大问题
  19. c++多线程生产者与消费者问题代码
  20. 探索语言交互技术在政务数字化的应用

热门文章

  1. idea端口占用解决the port is used
  2. 微信小程序解决标签内文字因长度换行问题
  3. Solr教程--官方自带数据的三个练习及讨论翻译版本
  4. 在simulink生成代码时生成有关时间的全局变量
  5. java基础 唱歌比赛中,有6评委给选手打分
  6. DESeq2包的安装
  7. ConEmu配置及应用
  8. c/c++图形化(1)
  9. jsqlparser解析SQL工具类(转载)
  10. 斐讯AI音箱怎么绑定扫地机器人_《小米AI音箱“小爱同学”说明书plus:(二)自动控制扫地机器人》...