语义分割Analysis of efficient CNN design techniques for semantic segmentation论文解读

论文链接

http://openaccess.thecvf.com/content_cvpr_2018_workshops/papers/w12/Briot_Analysis_of_Efficient_CVPR_2018_paper.pdf

动机

目前有许多关于如何设计高效网络结构的研究,涉及到各种不同的技巧,但是对高效的网络结构设计技巧没有系统性的总结

贡献

对语义分割领域的网络设计方法技巧进行总结

网络结构设计

  1. 编码器-译码器结构
    语义分割Analysis of efficient CNN design techniques for semantic segmentation论文解读_第1张图片
  2. Baseline FCN(最简单的编码器)
    语义分割Analysis of efficient CNN design techniques for semantic segmentation论文解读_第2张图片
  3. Cross channel filters
  4. Cross layer connections
  5. Wider bank of filters
  6. Split branching and summation joining
    语义分割Analysis of efficient CNN design techniques for semantic segmentation论文解读_第3张图片
  7. Handling scale of objects
    空洞卷积
    语义分割Analysis of efficient CNN design techniques for semantic segmentation论文解读_第4张图片

计算量优化技巧

量化:

  1. 使用tensorflow或Nvidia TensorRT将神经网络的float32类型计算量化为int8类型的计算,实现加速
  2. 直接用int8类型计算对神经网络进行训练

高效结构设计原则

  1. 通过约束结构超参数平衡模型大小和准确率:增加网络深度,减少每一个卷积层输入的通道数,减小输入图片的分辨率
  2. 减少冗余的卷积核:卷积核分解(一个7x7卷积层分解为3个3x3卷积层, kxk卷积层分解为1xk卷积层和kx1卷积层)
  3. 通过激活函数校准卷积核(CReLU)
  4. 使用对称性校准卷积核(G-CNN)

卷积设计

  1. 1x1卷积降维,减少卷积的输入通道数
  2. Group convolution
  3. Depth-wise Separable convolution

模型压缩

  1. 权重剪枝:将训练的模型的权重值较小的不重要的连接都去掉,然后再对权重剪枝后的模型进行微调
  2. 滤波器剪枝
  3. 网络蒸馏(teacher-student训练模式)

硬件加速

1.GPU
2. ASICs
3. FPGA
4. SIMD结构

语义分割案例分析

数据集

CamVid

评价指标

Runtime(s), mIoU, per-class IoU

结果

语义分割Analysis of efficient CNN design techniques for semantic segmentation论文解读_第5张图片

反思

该论文在深度学习相关应用的落地方面能够提供很多思路。特别是当下神经网络越做越大,落地时对于推理速度的要求难以满足,必须寻找合适的方法对网络推理进行加速,达到实时推理的效果。使用Nvidia TensorRT、FPGA等都是很好的落地策略

你可能感兴趣的:(语义分割)