开山作-FCN
论文:Fully Convolutional Networks for Semantic Segmentation 2015CVPR
链接:https://arxiv.org/abs/1411.4038
FCN是语义分割开山之作。
主要思想就是把分类网络的最后池化和全连接层去掉,再对8X,16X,32X的FeatureMap反卷积放大以及融合。end2end 全卷积 反卷积 跳跃结构。这个框架是后面很多语义分割论文的基础。
Unet系列
Unet结构也是语义分割里常用的框架。
论文:U-Net: Convolutional Networks for Biomedical Image Segmentation 2015
链接:https://arxiv.org/pdf/1505.04597.pdf
常见的Unet框架,先下采样,再上采样,中间同尺寸FM会有concat操作。
论文:Learning deconvolution netword for semantic segmentation 2015
链接:http://cvlab.postech.ac.kr/research/deconvnet/
也是Unet结构的,在放大缩小使用的pooling和uppooling
论文:SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation 2016
链接: https://arxiv.org/pdf/1511.00561.pdf
同样是Unet结构,提出了加BN层,upsampling使用的反卷积。
这个系列属于比较早期的语义分割论文,就不详细介绍了。现在看起来虽然简单,但是后面很多思路都有借鉴。
deeplab系列
deepLabV1
论文:semantic image segmentation with deep convolutional nets and fully connected crfs--ICLR2015
链接:https://arxiv.org/pdf/1412.7062.pdf
V1的最大贡献提出空洞卷积,使用不同的rate得到不同感受野的卷积核
deepLabV2
论文:lDeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs 2017
链接:https://arxiv.org/pdf/1606.00915.pdf
V2最大贡献提出了ASPP(Atrous spatial Pyramid pooling).在一个FM上通过不同rate的空洞卷积核感受不同大小视野,再把信息concat补充信息
deepLabV3
论文:Rethinking Atrous Convolution for Semantic Image Segmentation 2017
链接: https://arxiv.org/pdf/1706.05587.pdf
V3提出了更通用的分割框架,基础网络使用的resnet,在ASPP结构中加了使用了BN,另外加了1*1卷积和image pooling。
PSPnet
提到ASPP就要提一下PSP,很多论文在做对比时总会把这两个一起说。
论文:Pyramid Scene Parsing Network CVPR2017
链接:https://arxiv.org/abs/1612.01105
和ASPP结构有点像,目的也一样就是想融合不同尺度的信息(好像语义分割很多改造网络都是这个目的,把不同感受野信息融合,底层细节信息高层全局信息。。)
ASPP是通过卷积核大小的改变扩大感受野,PSP是不同FM卷积后通过up后concat。
多尺度融合系列
以上一直提不同尺度信息的融合,再来看几篇多尺度融合的结构
RefineNet
论文:Multi-Path Refinement Networks for High-Resolution Semantic Segmentation CVPR2017
链接:https://arxiv.org/pdf/1611.06612.pdf
这个框架就是看起来就很复杂,看着就不敢往工程上上的网络图,但是里面的思想我们可以借鉴。论文中multi-path就是指,输入可以是多个不同尺度的FM,然后通过refinenet融合。
refinenet中RCU就是一个残差结构,然后不同尺度的进行放大再融合。最后对统一尺寸的FM再来个链式残差。
ICNet
论文:ICNet for Real-Time Semantic Segmentation on High-Resolution Images ECCV2017
链接:https://arxiv.org/pdf/1704.08545.pdf
refinenet是在FM做文章,ICNet是对不同尺度的原图来做级联。
另外在训练时会多出三个分支loss,后面会进行加权一起训练。
ICNet利用低分辨率的高效处理,高分辨率的高推理质量,再通过图片级联组成一个分割框架。看起来结构很复杂,但实际只有低分辨率贯穿了整个网络,高分辨率只有前面来辅助和补充信息让网络学的更好。
旷视系列
旷视出了很多关于语义分割的论文而且被CVPR收录,我们选几篇学习下
GCN
论文:Large Kernel Matters —— Improve Semantic Segmentation by Global Convolutional Network CVPR2017
链接:https://arxiv.org/pdf/1703.02719.pdf
作者论文提出语义分割的任务实际可以分解为两个主要项:分类和分割,分类需要看全局信息,分割更多看局部信息。分类任务需要对形变不敏感,但是分割任务对变换是很敏感的。如果要把两个任务很好的结合,就需要更大的卷积核。。。。。。。。。。好有道理。
主框架其实还是Unet框架,在每个尺度FM间加了GCN和BR组件。GCN是用1*N N*1的大核进行卷积。
DFN
论文:Learning a Discriminative Feature Network for Semantic Segmentation CVPR2018
链接: https://arxiv.org/pdf/1804.09337.pdf
论文先提出了语义分割的“通病”
intra-class 类内不一致
inter-class 类间无差别
论文的判别特征网络可以去除类间不一致性,增加类间差别性。。感觉好厉害
上图,论文是作为多任务的,左边BN是通过边缘信息知道学习,为了帮助类间区别,需要
先通过分割的gt通过canny算子提取边缘。 右边SN就是为了学习类间的一致性,通过残差block,多尺度融合以及CAB,仔细看看CAB结构是否很熟悉。。嗯,通道attention,可以理解为和自己一样类别的你就多关注点。。
这篇论文结构挺好的,提出问题类间和类内,再针对问题提出方案,多任务学习,对类间提出了通过边缘辅助学习,感觉思路挺棒的。
BiSeNet
论文:BiSeNet:Bilateral Segmentation Network for Real-time Semantic Segmentation 2018
链接:https://arxiv.org/pdf/1808.00897.pdf
同样先提出各种常用框架的问题
因为分割模型是像素级别的,通常为了性能需要进行优化处理
(1)裁剪或者resize分辨率,但是这样会让精度尤其是边界精度下降(图a左)
(2)裁剪网络,但是这样如果参数不够会弱化我们的网络表达
(3)丢弃掉下采样的层数,但是这样视野不够,对大目标影响大(图a右)
(4)Unet结构可以增加空间信息,但是Unet比较慢,而且由于下采样我们在高层语义
上已经丢失的信息,想通过引入浅层信息的融合可能无法轻易的复原。(图b)
图C其实还是在说要走两条路,一条路我们要学底层空间信息,一条路我们要学高层语义信息。直接看网络结构
两个骨干网络,两条支路,一条学习空间细节信息,一条视野大学习高层语义信息,再融合。其中结合了atttention和fusion.
DFANet
论文:Deep Feature Aggregation for Real-Time Semantic Segmentation 2019
链接:https://arxiv.org/abs/1904.02216v1CVPR
图C其实还是在说要走两条路,一条路我们要学底层空间信息,一条路我们要学高层语义信息。直接看网络结构
两个骨干网络,两条支路,一条学习空间细节信息,一条视野大学习高层语义信息,再融合。其中结合了atttention和fusion.
DFANet
论文:Deep Feature Aggregation for Real-Time Semantic Segmentation 2019
链接:https://arxiv.org/abs/1904.02216v1CVPR
DFANet 整合了两个优点:
1)通过深度多层聚合(DeepFeature Aggregation)结构充分利用网络的高层特征信息
多层:骨干网络,开除分支,分支再开出分支,前面层权重复用。
2)通过 DFA轻量级特征聚合结构让轻量级编码器获取更多信息
融合:主干FM语义信息会往分支网络中融合。
Decoder部分,不同尺度的FM也会通过up后融合。
因为这种多层结构,分支的FM都很小,所以虽然网络看起来复杂,计算量和参数都不大
看到这个结构可以回忆下多尺度融合系列的一些思想,比如ICnet以及RefineNet的链式残差池化层,网络结构看起来不一样,但是思想上有感觉是一样的。。。
OCP的思想就是self_attention,对FM加了一个selfattention再concat.这个思想和DANet感觉是一致的,另外还结合的ASPP和PSP OCP的框架结构。
OCR
论文:Object-Contextual Representations for Semantic Segmentation 2019
链接:https://arxiv.org/pdf/1909.11065.pdf
这篇论文的思想很新颖,虽然还是借助selfattention,但是他借助了object的信息,学出soft object regions,通过和gt得到loss把各个object信息学到,再用attentoin机制得到object的表达,于pixel region信息结合。
另外论文也提出了和ASPP通过改变视野来学习,OCR能得到更好的分割效果。
其他
论文:Decoders matter for semantic segmentation:data-dependent decoding enables flexible feature aggregation CVPR2019
链接:https://arxiv.org/pdf/1903.02120.pdf
常用的Encoder-Decoder框架(以DeepLabV3 为例)
OCP的思想就是self_attention,对FM加了一个selfattention再concat.这个思想和DANet感觉是一致的,另外还结合的ASPP和PSP OCP的框架结构。
OCR
论文:Object-Contextual Representations for Semantic Segmentation 2019
链接:https://arxiv.org/pdf/1909.11065.pdf
这篇论文的思想很新颖,虽然还是借助selfattention,但是他借助了object的信息,学出soft object regions,通过和gt得到loss把各个object信息学到,再用attentoin机制得到object的表达,于pixel region信息结合。
另外论文也提出了和ASPP通过改变视野来学习,OCR能得到更好的分割效果。