文章目录

  • 实时性本质:牺牲精度换取效率
  • 问题1:实时与经典分割算法区别
  • 模型1:ENet
    • 摘要概述
    • 引言概述
    • 相关工作概述
    • 算法模型
      • 模型细节
      • 在每个b中:
  • 模型2:LinkNet(未完)
    • 摘要概述
    • 引言&相关工作概述
      • Relu激活函数
    • 好文摘读
  • 模型3:BiSeNet
    • 分割常用损失函数
      • Dice Loss
      • IoU Loss
      • Jaccard系数
      • Tversky系数
      • Lovasz-Softmax Loss
      • BCE Loss + Dice Loss
      • Focal Loss + Dice Loss
      • 分类器的评价标准绝对不能只依靠准确率这一个指标
    • 摘要
    • 引言
      • 实时语义分割模型加速方法
      • 为了弥补空间细节的损失,许多人采用U-Shape
    • 算法架构
      • 算法主要包括三部分:Spatial Path、上下午分支、特征融合模块
    • 模型结果
  • 模型4:DFANet(未完)
  • 模型5:RedNet(未完)
  • 模型6:RDFNet(未完)

实时性本质:牺牲精度换取效率

问题1:实时与经典分割算法区别

(1)为什么提出实时性?
目前在深度学习领域,算法设计可分为两个派别 一派为学院派,研究强大复杂的模型网络和实验方法,为了追求更高的性能;另一派为工程派,旨在将算法更稳定高效的落地在硬件平台上,效率是其追求的目标复杂的模型固然具有更好的性能,但是高额的存储空间计算资源消耗是使其难以有效的应用在各硬件平台上的重要原因。(学院派以论文为导向,工程派以生产为导向)
(2)经典分割与实时分割
经典分割代表算法 :FCN、U-Net、DeepLab系列、RefineNet等
经典网络不考虑分割效率,只关注分割的准确度。因此,对于一些实时的分割任务来说,以上网络的可用性并不高。由于网络参数较大,对硬件的要求也很高,且会耗费大量时间
实时分割代表算法:ENet、LinkNet、BiSeNet、DFA等
随着分割任务存在的问题被逐个击破,一些网络开始关注分割模型的效率,力求将其用于嵌入式设备或实时的分割任务中。这些网络在保证分割准确性不会过低的前提下,尽可能的减少参数,压缩模型。因此,实时网络对硬件设备的要求不高且省时
(3)实时分割核心思想
替换主网络、减少通道数、减少卷积层、将卷积层替换为组卷积层或其他能减少计算量的卷积操作、增加前期数据处理、减少复杂融合方式、避免使用全连接
(4)实时性网络评价参数
1.ms:毫秒数
2.fps:画面每秒传输帧数,通俗来讲就是指动画或视频的画面数
3.FLOPs:每秒执行的浮点数运算次数(1. FLOPS:全大写,是floating point ope rations per second的缩写,意指每秒浮点运算次数,可以理解为计算速度。是一个衡量硬件性能的指标2. FLOPs:s小写,是floating point operations的缩写(s表复数),意指浮点运算数,可以理解为计算量。用来衡量算法或模型的复杂度 3. GFLOPs:1GFLOPs = 109FLOPs(10亿次))
4.Parameters:模型参数
5.Model size:模型大小

模型1:ENet

摘要概述

Ø 背景介绍:实时执行像素级语义分割的能力在移动应用程序中至关重要。最近的DCNN网络的缺点在于需要大量浮点运算,运行时间长,阻碍了语义分割的可用性
Ø 算法组成:提出了ENet,专门针对需要低延迟操作的任务
Ø 文章亮点:ENet与现存模型相比,速度提升了18倍,FLOPs减少了75倍,参数减少了79倍,并能保证不错的准确度
Ø 模型评估:在CamVid、Cityscapes和SUN RGBD数据集中均得到了不错的成绩

引言概述

  1. 可穿戴增强现实、家用自动化设备、自动驾驶这些应用都对能够在移动设备上实时运作的低功耗语义分割(或视觉场景理解)产生了大量的需求
  2. 像SegNet和FCN,这些网络虽然能够实现端到端的稠密像素分割,但是它们都是基于庞大的网
    络结构VGG16设计的,无法在大多数电池供电的移动设备上运作(要求达到10fps以上)
  3. 本文中提出了一个专为快速、高准确率推理设计的神经网络结构,本文工作中,选择不应用任何后处理步骤

相关工作概述

  1. 语义分割对于理解图像内容和查找目标物体非常重要,这项技术在诸如辅助驾驶、现实增强等应用领域中是最重要的
  2. 目前主流的神经网络结构都由两部分组成:编码器和解码器。但是这些方法由于网络结构复杂、参数众多,推理过程比较慢
  3. 其他现存结构使用更简单的分类器,然后用CRF作为后处理。如SegNet论文中提到的,这些方法需要繁重的后处理,且经常对那些在一帧中占据更少像素点个数的类别分类失败。尽管这可以通过结合CNN来实现精度的提升,但是这样做会导致速度的下降。另外,值得注意的是,RNN是可以作为后处理结合进任何一种方法的,包括本文提出的方法

算法模型


初始化模块为(a):并行执行步长为2的卷积和最大池化,完成对输入图片的下采样,可有效减少参数和计算量
bottleneck模块为(b):以残差结构为主,可衍生出五种形态,每个卷积层后均接BN和PReLU

  1. normal:无maxpooling和padding,conv为3×3卷积
  2. down sampling:有max pooling和padding,第一个1×1卷积替换为步长为2的2×2卷积
  3. dilated:为3×3卷积设置空洞率
  4. asymmetric:将3×3卷积替换为1×5和5×1的非对称卷积
  5. upsampling:将maxpooling替换为unpool

模型细节

输入尺寸:512X512
结构基础:ResNet

在每个b中:

第一个1X1目的:减少channels
conv是可变卷积:可分离、标准、带孔
第二个1X1目的:增加channels(可省略)
padding作用:保证并行时尺寸统一
没有使用bias

模型2:LinkNet(未完)

摘要概述

Ø 背景介绍:用于场景理解的像素级语义分割不仅需要准确度,还要保证高效性,才能应用在实时应用程序中
Ø 现有算法:现有算法虽然比较准确,但参数和计算量都比较庞大,因此速度很慢
Ø 本文算法:本文提出了一种新的DCNN网络,该体系结构使其无需增加大量参数即可进行学习
Ø 模型评估:在CamVid和Cityscapes数据集中均得到了不错的成绩

引言&相关工作概述

  1. 分割任务需要对每个像素进行标记,因此,空间信息的保留就比较重要,用于场景理解的分割网络一般都是以编码器-解码器作为主要网络结构
  2. state-of-the-art的分割网络大多使用ImageNet上的分类模型作为编码器部分,使用最大池化操作保留的索引或者反卷积等方式作为解码器部分
  3. 本文主要贡献是直接将编码器与解码器对应部分连接起来从而提高准确率,一定程度上减少了处理时间。通过这种方式,可以保留编码部分中不同层丢失的信息,在进行重新学习丢失的信息时并未增加额外的参数与操作

Relu激活函数

ReLu:ReLu可有效解决sigmoid带来的梯度消失问题,但存在“死区”(x<=0,y=0)
Leaky ReLu:ReLu是将所有的负值都设为零,相反,Leaky ReLU是给所有负值赋予一个非零斜率
PReLu:可以看作是Leaky ReLU的一个变体。在PReLU中,负值部分的斜率是根据数据来定的,而非预先定义的
激活函数的变更对整体网络的影响并不显著,一般都会选取Relu

好文摘读

Here the encoders information into feature space,and the decoder maps this information into spatial categorization to perform sementation.

模型3:BiSeNet

分割常用损失函数

交叉熵

优点:交叉熵Loss可以用在大多数语义分割场景中
缺点:对于只分割前景(正样本)和背景(负样本)时候(one-hot),当前景(y=1)像素的数量远小于背景像素(y=0)的数量时,损失函数中背景成分就会占据主导,使得模型严重偏向背景,导致效果不好
加权交叉熵

BCELoss(binary cross entropy)

特点:基本等价于而分类情况下的交叉熵,通常接sigmoid激活函数的输出
Focal Loss
源自目标检测方向,是对标准交叉熵的一种改进,主要解决难易样本(在进行目标检测的时候,可能有一些检测较为容易检测出来,比如样本比较醒目或是独立,反之,为难分样本)数量不平衡的问题。当正负样本数量不平衡时,可以通过在交叉熵中引入参数进行调节
虽然上述公式平衡了正负样本的数量,但是实际上,目标检测中大量的候选目标都是易分样本。这些样本的损失很低,但是由于数量级不平衡,易分样本的数量相对来讲太多,最终主导了总的损失。目前,Focal Loss 在分割方向主要适用于二分类问题。

总结:交叉熵解决正负样本不平衡问题,Focal Loss解决难易样本不平衡问题
因此,Focal Loss认为易分样本对模型的提升效果非常小,模型应该主要关注那些难分样本

参数
a和1-a来控制正负样本不平衡问题,pY和(1-p)Y控制难易样本不平衡问题
P:当P—>0时候,调制因子(1-P)—>1,损失不被影响;当P—>1时候,调制因子(1-P)—>0,从而减小易分样本对总Loss的贡献;
Y:当Y=0时候,Focal Loss 就是传统的交叉熵。当Y增加时,调制系数(p ^ Y和(1-p)^ Y)也会增加;当Y为非零定值时候,如2,易分样本(P=0.9)的Loss比标准的交叉熵小100+倍,当P=0.968时,要小1000+倍。但是对于难分样本(P<0.5),Loss最多小4倍。这样的话难分样本的权重相对提升了很多,从而增加了那些错误分类的重要性。实验表明,y = 2,a = 0.75时效果最好

Dice Loss

dice系数用来度量集合相似度的函数,通常用于计算两个样本之间的像素相似度
TP:真实为1,预测为1;FP:真实为0,预测为1
FN:真实为1,预测为0;TN:真实为0,预测为0

红色圆代表真实值,黄色圆代表预测值
TP:橙色即真正,预测为1,真实为1
FN:红色即假负,预测为0,真实为1
FP:黄色即假正,预测为1,真实为0
TN:白色即真负,预测为0,真实为0

Dice Loss适用于样本极度不均衡的情况,一般情况下使用Dice Loss会对反向传播有不利的影响,使得训练不稳定。

IoU Loss

Jaccard系数

定义为A与B交集的大小与A与B并集的大小的比值

Tversky系数

Dice和Jaccard系数的广义系数

当α和β均为0.5时,这个公式就是Dice系数,当α和β均为1时,这个公式就是 Jaccard系数 通过调整α和β这两个超参数可以控制这两者之间的权衡,进而 影响召回率等指标

Lovasz-Softmax Loss

对Jaccard进行扩展,表现更好(https://arxiv.org/pdf/1705.08790.pdf)

BCE Loss + Dice Loss

将BCE Loss和Dice Loss进行组合,在数据较为均衡的情况下有所改善,但是在数据极度不均衡的情况下交叉熵会在迭代几个Epoch之后远远小于Dice Loss,这个组合Loss会退化为Dice Loss

Focal Loss + Dice Loss

论文提出了使用Focal Loss和Dice Loss来处理小器官的分割问题(https://arxiv.org/pdf/1808.05238.pdf)

分类器的评价标准绝对不能只依靠准确率这一个指标

准确率/accuracy:accuracy = (TP+TN) / (TP+TN+FP+FN)
精确率/precision:P = TP / (TP+FP)
召回率/recall:R = TP / (TP+FN)
举个例子:一个分类器鉴别100个瓷器,其中80个是正品,20个是赝品鉴定结果是,错把3个赝品当成了正品,把5个正品当成了赝品即分类器的输出为78个正品,其中75个是真正品(TP),3个假正品(FP);22个赝品,其中17个真赝品(TN),5个假赝品(FN)
Acc=(75+17)/100=0.92代表分类器每做一个鉴定,有92%的概率鉴定正确
P=75/(75+3)=0.9615代表如果分类器鉴定为正品,有96.15%的概率确实为正品
R=75/(75+5)=0.9372代表如果一个瓷器为正品,有93.72%的概率被鉴定为正品

摘要

Ø 背景介绍:语义分割同时要求丰富的空间信息和相当大的感受野。然而,通常我们为了达到实时的推理速度,会降低图像的空间分辨率,从而导致效果很差。
Ø 算法组成:本文提出了双向的语义分割网络。首先,采用空间分支保持空间信息并生成高分辨率的特征图。其次,采用快速下采样策略的上下文分支去获得丰富的感受野。最后,引入了 特征融合模块结合两个分支的特征
Ø 模型评估:所提出的结构在兼顾速度的同时,在Cityscapes、CamVid、和COCO-Stuff数据集上取到了很好的性能。

引言

实时语义分割模型加速方法

1、通过crop或者resize来限定输入的图像大小,以此降低计算复杂度。尽管该方法简单有效,但是空间细节的损失严重,尤其是边界部分,会导致算法精度降低
2、通过减少网络channels加快处理速度,尤其是在骨干模型的早期阶段,但是会弱化spatial information。
3、为追求极其紧凑的框架而丢弃模型的最后阶段(diss ENet)。由于ENet抛弃了最后阶段的下采样,模型的感受野不足以涵盖大物体,导致判别能力差

为了弥补空间细节的损失,许多人采用U-Shape

1、U-Shape结构在高分辨率特征图上引入额外的计算,降低模型计算速度
2、丢失掉的空间信息无法通过引入浅层修复,因此性价比不高

算法架构

在追求更加高效的模型过程中,BiSeNet设计了两个路径Spatial Path 和 Context Path并联执行的方式,分别满足Semantic Segmentation的两个中药需求。并且研究了两个组件的融合,以及最后的预测结果优化,分别提出特征融合模块(Feature Fusion Module)和注意力优化模块(Attention Refinement Module)

算法主要包括三部分:Spatial Path、上下午分支、特征融合模块

1、Spatial Path
现有语义分割任务中,一些方法用空洞卷积(dilated)保留input的分辨率去编码足够的spatial information ;另外一些方法通过使用空间金字塔、ASPP或大的kernel_size捕捉丰富的receptive field,这些方法表明spatial resolution和receptive field对表达较高准确率是至关重要的。然而,很难同时满足两种要求,尤其是real-time的语义分割任务中。
BiSeNet提出Spatial Path,保留input的空间尺寸并编码丰富的空间信息。Spatial Path主要包括三层,每一层包括一个stride=2的3*3Conv、bn和ReLU。最终,Spatial Path得到的feature map是input的1/8。
2、Context Path
为了兼顾receptive field 的大小和实时性两个因素,Context Path采用轻量级模型和global average pooling来提供更大的感受野。轻量级模型可以快速的downsample从而获得更大的receptive field,来编码高级特征的Context;然后,使用globel average pooling提供具有全局上下文信息的最大感受野;最后,结合全局池化上采样输出的特征图和轻量级模型的特征图。为了改善特征,作者提出了ARM(Attention Refinement Module)。ARM使用全局平均池化去捕捉全局上下文并且计算一个注意力向量去引导特征学习。这个设计可以使特征图更加精细
3、Feature Fusion Module
Spatial Path和Context path提取的feature是不同level的,所以不能简单的把两者相加。Spatial Path捕捉空间信息编码更丰富的细节信息,Context Path 主要编码Context information。简而言之,Spatial Path的特征是低级特征的,而Context Path是高级特征,因此,BiSeNet提出专门的Feature Fusion Module。

模型结果

模型4:DFANet(未完)

模型5:RedNet(未完)

模型6:RDFNet(未完)

实时分割网络(持续更新)相关推荐

  1. 计算机网络(严伟 潘爱民)通过课后题总结学习网络 --持续更新

    第三章 拆分比特流 数据链路协议使用了下面的字符编码: A: 01000111; B: 11100011; FLAG: 01111110; ESC: 11100000 为了传输一个包含 个字符的帧: ...

  2. RGPNET: 复杂环境下实时通用语义分割网络

    作者:Tom Hardy Date:2020-02-09 来源:RGPNET: 复杂环境下实时通用语义分割网络

  3. 北航、旷视联合,打造最强实时语义分割网络

    来源:AI科技评论 编辑:Camel 导语:MSFNet在Cityscapes测试集上达到77.1%mIoU/41FPS(注意是1024*2048),在Camvid测试集上达到75.4 mIoU/97 ...

  4. 【NIPS2018】实时联合目标检测与语义分割网络

    本文发表于第32届神经信息处理系统会议(NIPS 2018),是法国汽车零部件供应商法雷奥集团(Valeo)研究提出的一种用于自动驾驶领域的多任务神经网络,可同时执行目标检测与语义分割任务. 代码开源 ...

  5. 详解ENet | CPU可以实时的道路分割网络

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前言 OpenCV DNN模块支持的图像语义分割网络FCN是基于V ...

  6. 实时语义分割网络 BiSeNet(附代码解读)

    实时语义分割网络 BiSeNet BiSeNet Contributions BackGround BiSeNet 结构 Loss function Experimental Results 采用数据 ...

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

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

  8. 【中创】壹起共享“免费”网络资源库-持续更新中

    想找资源又不知道在哪下载?今天整理分享16个可以免费下载的资源库, 从学习资源,电影,动漫,实用工具,大学考研,软件下载,素材资源,大学资源,网盘资源,网易,极客等...用到的各个类目的课件都能找到, ...

  9. Mysql知识网络(持续更新)

    Mysql知识网络(持续更新) 前言 好记性不如烂笔头.最近学习了MYSQL的相关知识,方便以后复习以及知识点查询,记录一些知识点.本文通过基础知识+mysql优化+实战经验进行总结.也会分享一些自己 ...

最新文章

  1. 换个角度看“Q币门”事件
  2. vim复制内容到系统剪贴板
  3. Java设计模式(十四):MVC设计模式
  4. Android5.0新特性-Material Design
  5. hdu 5617 Jam's maze(双线程dp)
  6. css 边框设置成不透明,css中如何设置半透明边框?
  7. sqlite 模糊匹配日期_sql模糊查询和根据日期筛选
  8. php去字符串空格,php怎么去掉字符串中空格
  9. Django 的cookie 与 session组件
  10. C4C微信集成 - agent在C4C系统回复,微信用户在微信端直接收到
  11. python实现自动打电话软件_全自动手势联系软件 让你轻轻松松打电话
  12. 训练日志 2019.3.10
  13. centos 7 firefox启用java_一文详解各种花里胡哨的Java调试技巧,多图预警,记得收藏...
  14. 学python需要什么软件-学python要准备什么软件-问答-阿里云开发者社区-阿里云
  15. C# 时时监听目录文件改动
  16. Peasy.NET学习之并发问题处理
  17. MUSIC算法---空间谱估计
  18. 数字化工厂-Process Simulate中的运动学定义
  19. 网络攻防技术——shellcode编写
  20. 勤哲web配置教程_勤哲Excel服务器新手教程

热门文章

  1. 【系统之家首发】10月最新GhostWin7_SP1旗舰版(64位)电脑公司装机版v2011.10
  2. 网络编程------IP地址,端口号,套接字,网络字节序
  3. 服务器多线程定时发送消息,C++Socket 多线程编程 定时和定量发送数据
  4. 《请别叫我奥特曼,我只是你望尘莫及的神话》
  5. Rocket MQ(四)Topic,Topic分片和Queue
  6. 无聊猿项目又遭受钓鱼攻击,网络钓鱼究竟是何方神圣
  7. xilinx芯片管脚使用限制_FPGA管脚分配时需注意的一些事项(以xilinx xc4vsx55为例)
  8. 未来科学大奖迎首位女性得主:密码学家王小云获百万美元奖金
  9. 2021年热门的10个IT技术职位以及如何招聘
  10. project子项目之间任务关联_任务关联的类型(Project)