0

0

【第五期论文复现赛-语义分割】BiSeNet

P粉084495128

P粉084495128

发布时间:2025-07-23 09:34:27

|

692人浏览过

|

来源于php中文网

原创

BiSeNet是实时语义分割网络,针对常见加速方法损失空间信息等问题,提出双路径结构:Spatial Path保留高分辨率特征图,Context Path通过下采样增感受野,结合特征融合模块融合特征。在Cityscapes数据集复现中,以特定配置达75.19% mIoU,兼顾速度与性能。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

【第五期论文复现赛-语义分割】bisenet - php中文网

【第五期论文复现赛-语义分割】BiSeNet-实时语义分割网络

语义分割任务需要丰富的空间信息和大的感受野,大部分模型都通过降低特征图的分辨率来加快推理速度,特征图分辨率的降低会导致模型性能的下降。为了兼顾推理速度的同时保留大的特征图分辨率,作者提出了BiSeNet,引入Spatial Path和Context Path,Spatial Path中步长较小来得到高分辨率的特征图,Context Path引入快速的下采样机制来增加感受野,最后使用特征融合模块将Spatial Path和Context Path的特征图进行有效融合。
论文:BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation
官方repo:https://github.com/CoinCheung/BiSeNet
复现repo:https://github.com/justld/BisNetV1_paddle

一、引言

为了使模型达到实时分割的效果,常常用3种方法对模型进行加速:

1、限制输入尺寸。通过resize或者crop来限制模型输入的大小,从而减少计算量;

2、裁剪网络的通道数。降低模型的通道(尤其是靠输入的层)能够减小计算量,但是弱化模型的空间表达能力;

3、ENet减少了下采样比率(抛弃了Encoder的低分辨率的层),从而导致模型的感受野降低,对大物体的分割效果不好。

为了弥补上述方法中的空间信息损失,研究者们使用U型的结构利用高分辨率的特征图来补充下采样时丢失的细节。但是这样的方法也有缺点:

1、高分辨率特征图的引入导致计算量增加,从而降低了模型运行速度;

LongCat AI
LongCat AI

美团推出的AI对话问答工具

下载

2、网络浅层通道裁剪导致丢失的空间信息损失不容易被修复。

基于以上,作者提出了BiSeNet,Spatial Path的输出是1/8特征图,保留了丰富的空间信息;在Context Path最后添加了全局平均池化层,使得Context Path特征图的感受野为全局。

二、网络结构

Spatial Path的输出是1/8特征图,保留了丰富的空间信息;在Context Path最后添加了全局平均池化层,使得Context Path特征图的感受野为全局;Attention Refinement Module和Feature Fusion Module模块都引入了注意力机制。需要注意图(a)中右下角的白色方框表示global average pooling层。 【第五期论文复现赛-语义分割】BiSeNet - php中文网        

三、实验结果

BiSeNet在Cityscapes数据集上的实验结果如图所示,fps在显卡NVIDIA Titan XP上计算。 【第五期论文复现赛-语义分割】BiSeNet - php中文网        

四、复现环境

paddlepaddle=2.2.2
tesla V100 * 4

五、复现结果

NetWork steps opt image_size batch_size dataset memory card mIou config weight log
BiSeNet 160K SGD 1024x512 4 CityScapes 32G 4 75.19 bisenetv1_cityscapes_1024x512_160k.yml link log

六、快速体验

按照以下步骤即可快速体验BiSeNet训练验证过程。(想要复现完整的训练过程请使用脚本任务)

In [ ]
# step 1: git clone-已包含文件,无需clone# !git clone https://github.com/justld/BisNetV1_paddle.git
   
In [ ]
# step 2: unzip data%cd ~/data/data64550
!tar -xf cityscapes.tar
%cd ~/
   
In [ ]
# step 3: training%cd ~/BisNetV1_paddle/
!python train.py --config configs/bisenetv1/bisenetv1_cityscapes_1024x512_160k.yml --num_workers 4 --do_eval --use_vdl --log_iter 20 --save_interval 2000
   
In [12]
# step 4: val%cd ~/BisNetV1_paddle/
!python val.py --config configs/bisenetv1/bisenetv1_cityscapes_1024x512_160k.yml --model_path output/best_model/model.pdparams
       
/home/aistudio/BisNetV1_paddle
2022-03-11 16:09:12 [INFO]
---------------Config Information---------------
batch_size: 4
iters: 160000
loss:
  coef:
  - 1
  - 1
  - 1
  types:
  - type: OhemCrossEntropyLoss
  - type: OhemCrossEntropyLoss
  - type: OhemCrossEntropyLoss
lr_scheduler:
  end_lr: 0.0
  learning_rate: 0.01
  power: 0.9
  type: PolynomialDecay
model:
  backbone:
    output_stride: 8
    type: ResNet18_vd
  type: BiseNetV1
optimizer:
  momentum: 0.9
  type: sgd
  weight_decay: 0.0005
train_dataset:
  dataset_root: /home/aistudio/data/data64550/cityscapes
  mode: train
  transforms:
  - max_scale_factor: 2.0
    min_scale_factor: 0.5
    scale_step_size: 0.25
    type: ResizeStepScaling
  - crop_size:
    - 1024
    - 512
    type: RandomPaddingCrop
  - type: RandomHorizontalFlip
  - brightness_range: 0.4
    contrast_range: 0.4
    saturation_range: 0.4
    type: RandomDistort
  - type: Normalize
  type: Cityscapes
val_dataset:
  dataset_root: /home/aistudio/data/data64550/cityscapes
  mode: val
  transforms:
  - type: Normalize
  type: Cityscapes
------------------------------------------------
W0311 16:09:12.629894  2833 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1
W0311 16:09:12.629941  2833 device_context.cc:465] device: 0, cuDNN Version: 7.6.
2022-03-11 16:09:16 [INFO]	No pretrained model to load, ResNet_vd will be trained from scratch.
2022-03-11 16:09:16 [INFO]	Loading pretrained model from output/best_model/model.pdparams
2022-03-11 16:09:16 [INFO]	There are 206/206 variables loaded into BiseNetV1.
2022-03-11 16:09:16 [INFO]	Loaded trained params of model successfully
2022-03-11 16:09:16 [INFO]	Start evaluating (total_samples: 500, total_iters: 500)...
500/500 [==============================] - 81s 161ms/step - batch_cost: 0.1608 - reader cost: 0.1314
2022-03-11 16:10:37 [INFO]	[EVAL] #Images: 500 mIoU: 0.7519 Acc: 0.9572 Kappa: 0.9445 
2022-03-11 16:10:37 [INFO]	[EVAL] Class IoU: 
[0.9796 0.8391 0.9183 0.4422 0.5683 0.6251 0.703  0.7758 0.92   0.6217
 0.9425 0.8053 0.5925 0.9467 0.7111 0.8287 0.7332 0.5678 0.7654]
2022-03-11 16:10:37 [INFO]	[EVAL] Class Acc: 
[0.9883 0.9169 0.9508 0.8329 0.8072 0.7926 0.8402 0.8981 0.9518 0.8052
 0.9601 0.8769 0.7613 0.9691 0.9346 0.9342 0.9139 0.7919 0.8579]
       

七、复现经验

1、如果复现的精度未达到要求,且与目标精度差距不大,可以尝试增加训练次数,若与目标精度相差较大,需要检查网络、预处理过程等是否有误;
2、优先使用PaddleSeg框架复现论文,可以节省大量的时间,同时能够在PR时提高效率。

相关专题

更多
http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1998

2024.08.16

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

19

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

61

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

87

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

19

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

160

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 8.6万人学习

Django 教程
Django 教程

共28课时 | 3.3万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号