BiSeNet V2:Bilateral Network with Guided Aggregation for Real-Time Semantic Segmentation
BiSeNet的升级版,相比较BiSeNet,BiSeNetv2精度和速度均有大幅度提升
什么是 BiSeNetv2?
- BiSeNet的升级版,相比较BiSeNet,BiSeNetv2精度和速度均有大幅度提升
- Dilation Backbone:去掉了下采样和上采样 (因为会损失信息),而改为用步长大于1的卷积代替,同时不断加大通道数来维持高像素特征表示
- Encoder-Decoder:使用从上到下和跳跃连结的方式 (通常用下采样和上采样, 然后上采样后用对称的 Encoder 层中的特征图来补充损失的信息)
- BiSeNetv2 通过分开处理细节分支 (Detail Branch)、语义分支 (Semantic Branch),即保留细节也获得语义信息,包含前两者的优点
BiSeNetv2 的网络结构?
- Detail Branch:低层信息和高层语义对语义分割同样重要,然而两种信息对模型结构的要求不太一样。低层信息往往存在于网络的早期阶段,需要较高的分辨率和较大的通道数
- Semantic Branch:高层语义信息一般存在于网络后期阶段,分辨率较低,需要较深的层级来提取抽象信息
- Aggregation Layer:融合 Detail Branch 和 Semantic Branch 分支的特征
- Seg Head:对 Aggregation Layer 的输出直接上采样
BiSeNetv2 的 Semantic Branch 的设计?
- Stem Block:用于快速下采样
- Gather-and-Expansion Layer(GE Layer):用于卷积获取细节信息
- Context Embedding Block(CE Layer):用于嵌入上下文信息
BiSeNetv2 的 Aggregation Layer 的实现?
- 该层利用语义分支的上下文信息来指导细节分支的特征响应。通过不同的尺度指导,可以捕获不同的尺度特征表示。同时,与简单的组合方式相比,这种引导方式可以使两个分支之间进行有效的通信
- Aggregation Layer 的加入,相比较直接的 sum 或者 concate,其精度更高, BGA 即 Bilateral Guided Aggregation Layer