语义分割中微观(细节)信息和宏观信息都很重要,一般浅层网络能够提取微观信息,而宏观信息提取需要很深的网络。这两个需求是相反的,如果设计成同一个网络可能会相互影响,纠缠不清,于是提出了一种双边网络,各自独立提取特征。

Detail Branch : 提取微观特征。关注图像细节。

Semantic Branch : 提取宏观特征。相当于将图像大致分块。

通常语义分割都是encode-decode结构,encode主要就是特征提取,特征融合,decode主要就是将特征重新映射回原图大小,得到语义分割后的结果图。

decode网络细节

r:重复的次数

Stem Block:

卷积层设置stride=2也可以起到跟pooling类似的下采样的作用,但是卷积层下采样跟pooling下采样还是很不一样。

pooling操作可以起到平移不变性,比较粗暴,可能将有用的信息滤掉,但也可以大致保留输入feature-map的特征,比如如果是Max-pooling,它就会直接copy输入feature-map的最大像素值。pooling不占用额外参数。

卷积下采样可以降维,也可以提取一些特征,这些提取到的输出feature-map与输入feature-map像素值可能很不一样。

个人认为Stem Block合并这两种下采样的结果既可以保留部分原始图信息,又可以提取一些特征。

Context Embedding Block

使用了全局平均池化核残差连接。GAPooling可以减少参数数量,减少计算量,减少过拟合。那里3X3 GAPooling应该是写错了,GAPooling为全局平均池化,每个feature-map只会生成一个值,GAPooling是没有核大小的。

BN ReLu Broadcast在pytorch或者python里面就是两个维度不同的数据相加就可以实现,比如上面1x1xC + HxWxC

Broadcast实现机制可以参考下图:

Gatherand-Expansion Layer:

姑且叫做聚集膨胀层吧,论文里面把下图中(b)和(c)都叫做Gather-and-Expansion Layer。

下图中(a)是MobileNet v2论文中提出的结构,即Inverted Bottleneck Conv。

这个GEBlock没有什么很复杂或者特殊的结构,主要就是卷积,深度可分离卷积以及Bottleneck结构。

这里顺便学习下Bottleneck结构,先看ResNet论文中的一张图:

上图中左边是不带Bottleneck的Block,右边就是带Bottleneck的Block。Bottleneck就是右图那里一开始接一个1x1的卷积层,把256的通道降为64的通道,然后再做卷积,再通过一个1x1的卷积层将64的通道升为256。通常1x1 filters 可以起到一个改变输出维数(channels)的作用。这里两个1x1的卷积层先降维后升维,就像两个瓶颈一样,先上宽下窄,然后再上窄下宽。这样做相对于左图那个没有Bottleneck的好处在于,第一个1x1的卷积层先对输入特征通道进行压缩,第二个1x1的卷积层对特征通道进行恢复,中间那个3x3就可以只用很少的数据量就能提取很关键的特征,bottleneck的motivation就是减小参数量和计算开支。如果上图右边不是Bottleneck,就是直接输入256通道,然后接3x3卷积,再输出256通道,如下图第一种:

上图第一种参数量为:256×3×3×256 = 589824。而第二种参数量为: 256×1×1×64 + 64×3×3×64 + 64×1×1×256 = 69632。可以明显看到采用Bottleneck参数量减少很多。

Bottleneck运算速度更快且不影响效果也可以这样理解,上图中第一种和第二种结构的对应的输入和输出信息流(可以把它想象成流过水管的水流)的量(可以想象成水流的体积)都是一样的,第二种结构相当于先缩小了信息流的长度,但是相应的横截面会增大(因为信息流的体积一直不变),这就像是同样体积的水,用粗的水管当然会传输的更快一些。

上面介绍的结构主要是特征提取模块,不含特征融合部分,下面要介绍的Aggregation Layer就包含特征融合和decode模块。

Aggregation Layer (聚合层)

       Detail Branch和Semantic Branch是两个独立的网络分别提取的特征,一个是低级特征,一个是高级的特征,如果简单把Semantic Branch的特征图4 × 4 Upsample再与Detail Branch合并在一起,这样的组合就太简单了,于是论文提出了一种双边引导的聚合层(Bilateral Guided Aggregation Layer)来融合两个独立网络提取的特征。如下图所示,表示element-wise product,就是两个等大的矩阵对应元素分别相乘。

这个特征融合层也是本文的一个创新点,很多语义分割的特征融合只是简单的concat一下,可以以后设计新网络的时候模仿一下这种融合方式。此外,个人认为这种特征融合方式提供了丰富的特征组合方式,其中应该就包含直接concat融合。假如这个融合层里面所有的conv参数都为1的话,可能跟concat融合差不多吧。

另外下面这张图的右侧那个和Sum连接的这条路上应该还缺一个4 × 4 Upsample。不然的话经过右侧那个,右侧特征图大小为

BiSeNet V2网络结构详解相关推荐

  1. AlexNet网络结构详解与代码复现

    参考内容来自up:3.1 AlexNet网络结构详解与花分类数据集下载_哔哩哔哩_bilibili up主的CSDN博客:太阳花的小绿豆的博客_CSDN博客-深度学习,软件安装,Tensorflow领 ...

  2. U-Net网络结构详解

    U-Net网络结构详解 U-Net网络结构是对称的,由于网络结构像U型,所以被命名为U-Net.整体而言,U-Net是一个Encoder-Decoder(编码器-解码器)的结构,这一点是与FCN的结构 ...

  3. pytorch图像分类篇:6. ResNet网络结构详解与迁移学习简介

    前言 最近在b站发现了一个非常好的 计算机视觉 + pytorch 的教程,相见恨晚,能让初学者少走很多弯路. 因此决定按着up给的教程路线:图像分类→目标检测→-一步步学习用pytorch实现深度学 ...

  4. 深度学习之目标检测(五)-- RetinaNet网络结构详解

    深度学习之目标检测(五)-- RetinaNet网络结构详解 深度学习之目标检测(五)RetinaNet网络结构详解 1. RetinaNet 1.1 backbone 部分 1.2 预测器部分 1. ...

  5. MobileNet网络结构详解

    下图展示了传统卷积与DW卷积的差异,在传统卷积中,每个卷积核的channel与输入特征矩阵的channel相等(每个卷积核都会与输入特征矩阵的每一个维度进行卷积运算).而在DW卷积中,每个卷积核的ch ...

  6. AlexNet网络结构详解(含各层维度大小计算过程)与PyTorch实现

    AlexNet网络结构详解(含各层维度大小计算过程)与PyTorch实现 1.AlexNet之前的思考 2.AlexNet网络结构 3.AlexNet网络结构的主要贡献 4.PyTorch实现     ...

  7. st-link v2怎么连接_深度学习之 YOLO v1,v2,v3详解 - 一杯清酒邀明月

    (写在前面:如果你想 run 起来,立马想看看效果,那就直接跳转到最后一张,动手实践,看了结果再来往前看吧,开始吧······) 一.YOLOv1 简介 这里不再赘述,之前的我的一个 GitChat ...

  8. 深度学习之---yolov1,v2,v3详解

    (写在前面:如果你想 run 起来,立马想看看效果,那就直接跳转到最后一张,动手实践,看了结果再来往前看吧,开始吧······) 一.YOLOv1 简介 这里不再赘述,之前的我的一个 GitChat ...

  9. 基于CIFAR100的VGG网络结构详解

    基于CIFAR100的VGG网络详解 码字不易,点赞收藏 1 数据集概况 1.1 CIFAR100 cifar100包含20个大类,共100类,train集50000张图片,test集10000张图片 ...

最新文章

  1. 谷歌是 CNCF 开源项目最大贡献者,红帽次之
  2. 小学计算机课评课用语,信息技术评课心得
  3. Pytest之pytest.assume用例中断言1失败会继续执行后续代码断言2
  4. 超松弛迭代法(C语言实现)
  5. mysql 数据库自动备份(bat+计划任务方式)--亲测备份及还原成功
  6. 1月3日 接触ROS
  7. 数据结构试卷及答案(一)
  8. php遍历桌面上的记事本,电脑桌面显示记事本便签内容要怎么设置一直锁定在桌面?...
  9. hp打印机没有右键扫描_win7右键点击打印机图标没有扫描选项怎么解决
  10. 如何用计算机函数来求加权总分,根据等级加权计算总分--SUMPRODUCT和LOOKUP函数的组合...
  11. gitlab-ci配置
  12. java poi 导出excel加密
  13. python 实现任务管理清单案例
  14. 请不要在Java项目中乱打印日志了,这才是正确姿势,非常实用!
  15. Python分析那些“标题党”文章
  16. java long 变date_long类型转换成日期 LongToDate
  17. 如何为Apache JMeter开发插件(三)——冲破图片验证码的束缚
  18. 2021年6月PMP考试内容介绍
  19. Spring注解大全详情,
  20. 纯javescript制作随机生成象数块小案例

热门文章

  1. 关于物联网通信协议(接入协议)
  2. Android Preference详解
  3. 幸福公开课字幕 中英文全
  4. 高校社团管理系统jsp和javabean开发
  5. 电机控制方案用哪家芯片比较好?
  6. 【Linux】之【网络】相关的命令及解析[ethtool、nload、nethogs、iftop、iptraf、ifstat]
  7. samba更改其他端口,如何与windows共享文件夹
  8. python文本字符分析
  9. JNLP文件具体说明编辑
  10. python下的一个好用的日历库,支持农历和公历互转,四柱反查等功能