【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割

本文介绍基于ADE20K数据集,用PaddleSeg工具进行场景解析的过程。先解压相关套件与数据集,加载并预处理数据。选用GCnet模型,其简化注意力机制高效,还提及KNet等其他算法及两种分割方式的优劣。训练后,GCnet在mIoU、耗时和模型大小上优于Upernet,最后分享了调参等经验。

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

【ai达人特训营第三期】:paddleseg助力自动驾驶场景分割 - 创想鸟

一、项目背景介绍

ADE20K数据集来源

场景解析是将图像分割并解析为与语义类别相关联的不同图像区域,例如天空、道路、人和床。MIT Scene Parsing Benchmark (SceneParse150) 为场景解析算法提供了一个标准的训练和评估平台。本次基准测试的数据来自ADE20K Dataset 其中包含超过 20K 个以场景为中心的图像,并用对象和对象部分进行了详尽的注释。具体来说,基准分为 20K 图像用于训练,2K 图像用于验证,以及另一批留出图像用于测试。共有 150 个语义类别用于评估,其中包括天空、道路、草地以及人、车、床等离散对象。请注意,图像中出现的对象分布不均匀,模仿了日常场景中更自然的对象出现。

对于每张图像,分割算法将生成一个语义分割掩码,预测图像中每个像素的语义类别。算法的性能将根据像素精度的平均值和所有 150 个语义类别的平均交并比 (IoU) 进行评估。

基准中的数据已被用于与ILSVRC’16联合举办的Scene Parsing Challenge 2016和与 COCO Challenge 联合举办的Places Challenge 2017 。场景解析演示可用。场景解析的预训练模型和demo代码发布。

二、准备工作

2.1、使用paddleseg配置文件开发

参考:20分钟快速上手PaddleSeg

也可参考官方aistudio:10分钟上手PaddleSeg

In [1]

# 这里准备好了paddleseg套件,直接解压即可!unzip -oq /home/aistudio/data/data201976/PaddleSeg.zip -d /home/aistudio/work/

   

2.2、解压数据集

In [2]

!unzip -oq /home/aistudio/data/data26423/ade20k.zip -d /home/aistudio/work/dataset/

   

2.3、加载数据集

由于peddseg封装的非常完美,使得我们可以简单快速高效地在低代码下进行数据的加载、模型训练和模型验证等,只需修改好相关配置文件就行

数据集的加载和预处理在/home/aistudio/work/PaddleSeg/configs/base/ade20k.yml

【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割 - 创想鸟        

三、模型训练

3.1、模型和backbone的选取

这里选用的模型是GCnet

一张图片中各个像素点间的关系,特别是长距离像素点间的关系对各种视觉任务非常重要。这种关系可以通过传统的堆叠卷积层的方法获得,但是往往效率低下。Non-local网络通过自注意力机制解决了这个问题。但是对于图片来说,作者通过实验发现,每个像素点的全局特征图基本都是一样的,如图1所示,其中红点是要计算的目标点。基于此,就没有必要计算每个点的全局特征图了。所以,作者就提出了一种比non-local的方法效果好但是计算量小的多的简化的注意力机制模块。

【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割 - 创想鸟            

图1 non-local方法计算的红色点的注意力特征图

Non-local的计算方法有多种,包括高斯、嵌入式高斯、点积和拼接。GCNet采用了嵌入式高斯的方法,这也是通常使用的方法。GCNet模块的实现细节示意图如图2所示。其中,图2中的a表示GCNet模块的流程图,图2中的b表示简化版的non-local模块示意图,图2中的c表示GCNet模块示意图。可以看出,GCNet模块是简化版的non-local和SE模块机制的结合。

【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割 - 创想鸟            

图2 GCNet模块实现细节示意图

详细模型信息可前往/home/aistudio/work/PaddleSeg/models/gcnet.py查看代码细节

配置文件为/home/aistudio/work/PaddleSeg/configs/gcnet/gcnet_resnet50_os8_voc12aug_512x512_40k.yml

backbone为经典的resnet50_vd

【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割 - 创想鸟        

在paperwithcode网站上,可看出gcnet在Instance Segmentation on COCO test-dev上mask_AP高达45.4,算是比较不错的算法

【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割 - 创想鸟        

3.2、浅谈一下其他算法

3.2.1、KNet:

KNet 是基于卷积神经网络的语义分割算法,它使用了 U-Net 架构,并添加了 skip connections 和 deep supervision。KNet 的输入是一张图像,输出是该图像中每个像素的类别标签。KNet 的训练过程通常采用交叉熵损失函数和随机梯度下降优化算法。

优点:KNet 具有较高的准确性,尤其是在处理小物体和复杂背景时表现出色。 KNet 的架构设计简单明了,易于理解和实现。 KNet 适用于不同的图像分割任务,包括医学图像分割、自然图像分割等。

缺点:KNet 的计算复杂度较高,需要较多的计算资源。 KNet 对输入图像的大小和分辨率较为敏感,需要进行图像尺度归一化等预处理操作。 KNet 在处理遮挡、遮蔽和不规则形状等问题时可能会出现误差。

3.2.2、MaskFormer:

MaskFormer 是一种基于 Transformer 的语义分割算法,它使用自注意力机制来捕捉图像中的长距离依赖关系,并将它们与局部特征结合起来。MaskFormer 的输入是一张图像,输出是该图像中每个像素的掩码。MaskFormer 的训练过程通常采用二进制交叉熵损失函数和 Adam 优化算法。

优点:MaskFormer 具有很高的准确性,并且在处理遮挡、遮蔽和不规则形状等问题时表现出色。 MaskFormer 的训练速度比较快,可以在大规模数据集上进行训练。 MaskFormer 的掩码输出可以用于不同的分割任务,包括实例分割和语义分割等。

缺点:MaskFormer 的计算复杂度较高,需要更多的计算资源。 MaskFormer 对输入图像的大小和分辨率较为敏感,需要进行图像尺度归一化等预处理操作。

3.2.3、UperNet:

UperNet 是一种基于 Encoder-Decoder 结构的语义分割算法,它使用多尺度特征融合来提高分割的准确性。UperNet 的输入是一张图像,输出是该图像中每个像素的类别标签。UperNet 的训练过程通常采用交叉熵损失函数和随机梯降优化算法。

优点:UperNet 具有较高的准确性,并且在处理遮挡和不规则形状等问题时表现出色。 UperNet 的计算复杂度较低,速度相对较快。 UperNet 的架构设计灵活多样,可以通过增加或减少层数、调整通道数等方式进行优化。

缺点:UperNet 在处理大量遮挡和遮蔽等问题时可能会出现误差。 UperNet 的特征融合过程可能导致信息损失,影响分割准确性。 UperNet 的多尺度特征融合需要对输入图像进行多次下采样和上采样,会降低分辨率和精度。

综上所述,KNet、MaskFormer 和 UperNet 都是在图像分割任务中广泛应用的算法,每种算法都有自己的优点和缺点。选择合适的算法应该考虑具体的应用场景和任务需求,以达到最佳的分割效果和性能。

3.2.4、逐像素分割和逐 mask分割各自优缺点

逐像素分割和逐 mask 分割是两种常用的图像分割方法。

逐像素分割,也称为全像素分割,是将图像中的每个像素点分配到不同的目标类别中,即对于每个像素点都需要进行分类,得到像素级别的分割结果。逐像素分割的优点在于可以获取像素级别的分割结果,可以更精细地刻画目标的形状和轮廓,对于目标尺寸小、形状复杂的情况有较好的表现。但是逐像素分割也有缺点,首先是计算复杂度较高,需要处理大量的像素点;其次是容易受到噪声的干扰,对噪声敏感,因此需要进行去噪等预处理。

逐 mask 分割,也称为实例分割,是将图像中的每个目标实例分配到不同的目标类别中,即将同一目标的所有像素点分配到同一个类别中,得到实例级别的分割结果。逐 mask 分割的优点在于可以获取目标实例级别的分割结果,对于目标尺寸较大、形状简单的情况有较好的表现,同时也不容易受到噪声的影响。但是逐 mask 分割也有缺点,首先是无法区分同一类别中的不同实例,其次是无法捕捉目标的细节信息,对于目标尺寸小、形状复杂的情况表现较差。

综上所述,逐像素分割和逐 mask 分割各自有其优点和缺点,选择合适的分割方法需要考虑目标尺寸、形状、数量、噪声等因素,以及任务的具体需求,如是否需要实例级别的分割结果。

3.2.5、总体而言

选择适合特定应用场景的分割算法非常重要。如果需要高准确性且有足够的计算资源,则 KNet 和 MaskFormer 是不错的选择。如果需要在时间和计算资源上更加高效,则可以选择 UperNet。另外,如果处理的图像中包含大量的遮挡、遮蔽或不规则形状,则 MaskFormer 可能是更好的选择。

在逐像素分割和逐 mask 分割方面,逐像素分割通常更加准确,但计算复杂度和速度较慢。逐 mask 分割可以更好地区分不同的实例,但可能会存在实例重叠的情况,且由于需要生成掩码,速度也会较慢。

综上所述,应根据具体的应用场景和需求来选择适合的分割算法和分割方式。

3.3、开始训练

In [ ]

%cd /home/aistudio/work/PaddleSeg!python train.py        --config configs/gcnet/gcnet_resnet50_os8_voc12aug_512x512_40k.yml        --do_eval        --use_vdl        --save_interval 1000        --save_dir output1# --config指定配置文件。# --save_interval指定每训练特定轮数后,就进行一次模型保存或者评估(如果开启模型评估)。# --do_eval开启模型评估。具体而言,在训练save_interval指定的轮数后,会进行模型评估。# --use_vdl开启写入VisualDL日志信息,用于VisualDL可视化训练过程。# --save_dir指定模型和visualdl日志文件的保存根路径。

   

3.4、数据模型可视化

【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割 - 创想鸟【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割 - 创想鸟【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割 - 创想鸟        

3.5、补充一下Upernet模型

In [ ]

%cd /home/aistudio/work/PaddleSeg!python train.py        --config configs/upernet/upernet_resnet101_os8_cityscapes_512x1024_40k.yml        --do_eval        --use_vdl        --save_interval 1000        --save_dir output2     #    --resume_model output2/iter_8000  # --resume_model 恢复训练# 配置文件位置为/home/aistudio/work/PaddleSeg/configs/upernet/upernet_resnet101_os8_cityscapes_512x1024_40k.yml

   

Upernet训练过程可视化

【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割 - 创想鸟        

四、模型验证

笔者在/home/aistudio/work/PaddleSeg/output1/best_model下准备了GCNet的best_model,直接运行以下代码块即可查看效果

In [2]

%cd /home/aistudio/work/PaddleSeg!python val.py        --config configs/gcnet/gcnet_resnet50_os8_voc12aug_512x512_40k.yml        --model_path output1/best_model/model.pdparams 

       

/home/aistudio/work/PaddleSeg2023-03-24 08:26:55 [INFO]---------------Config Information---------------batch_size: 13iters: 20000loss:  coef:  - 1  - 0.4  types:  - type: CrossEntropyLosslr_scheduler:  decay_steps: 10000  end_lr: 1.0e-06  learning_rate: 0.0001  power: 0.9  type: PolynomialDecay  warmup_iters: 50  warmup_start_lr: 1.6e-06model:  align_corners: false  backbone:    output_stride: 8    pretrained: https://bj.bcebos.com/paddleseg/dygraph/resnet50_vd_ssld_v2.tar.gz    type: ResNet50_vd  enable_auxiliary_loss: true  gc_channels: 512  pretrained: null  ratio: 0.25  type: GCNetoptimizer:  beta1: 0.9  beta2: 0.999  type: AdamW  weight_decay: 0.05train_dataset:  dataset_root: /home/aistudio/work/dataset/ADEChallengeData2016/  mode: train  transforms:  - max_scale_factor: 2.0    min_scale_factor: 0.5    scale_step_size: 0.25    type: ResizeStepScaling  - crop_size:    - 512    - 512    type: RandomPaddingCrop  - type: RandomHorizontalFlip  - brightness_range: 0.4    contrast_range: 0.4    saturation_range: 0.4    type: RandomDistort  - type: Normalize  type: ADE20Kval_dataset:  dataset_root: /home/aistudio/work/dataset/ADEChallengeData2016/  mode: val  transforms:  - type: Normalize  type: ADE20K------------------------------------------------W0324 08:26:55.128404  3109 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 11.2W0324 08:26:55.128458  3109 gpu_resources.cc:91] device: 0, cuDNN Version: 8.2.2023-03-24 08:26:56 [INFO]Loading pretrained model from https://bj.bcebos.com/paddleseg/dygraph/resnet50_vd_ssld_v2.tar.gzConnecting to https://bj.bcebos.com/paddleseg/dygraph/resnet50_vd_ssld_v2.tar.gzDownloading resnet50_vd_ssld_v2.tar.gz[==================================================] 100.00%Uncompress resnet50_vd_ssld_v2.tar.gz[==================================================] 100.00%2023-03-24 08:27:06 [INFO]There are 275/275 variables loaded into ResNet_vd.2023-03-24 08:27:06 [INFO]Loading pretrained model from output1/best_model/model.pdparams2023-03-24 08:27:06 [INFO]There are 311/311 variables loaded into GCNet.2023-03-24 08:27:06 [INFO]Loaded trained params of model successfully2023-03-24 08:27:06 [INFO]Start evaluating (total_samples: 2000, total_iters: 2000)...2000/2000 [==============================] - 150s 75ms/step - batch_cost: 0.0749 - reader cost: 2.2674e-042023-03-24 08:29:37 [INFO][EVAL] #Images: 2000 mIoU: 0.4060 Acc: 0.7891 Kappa: 0.7733 Dice: 0.54502023-03-24 08:29:37 [INFO][EVAL] Class IoU: [0.7124 0.8008 0.9313 0.7649 0.7004 0.7802 0.7785 0.8228 0.5516 0.6548 0.5171 0.5712 0.7614 0.3339 0.3057 0.4794 0.5427 0.4586 0.6691 0.4856 0.8022 0.4848 0.598  0.5627 0.3497 0.4863 0.4897 0.4337 0.4701 0.2799 0.347  0.5287 0.3518 0.3859 0.42   0.3769 0.5323 0.6636 0.2801 0.4832 0.1924 0.1725 0.4099 0.3104 0.3519 0.2163 0.3782 0.6042 0.539  0.6257 0.5381 0.401  0.1217 0.2473 0.6241 0.4786 0.8794 0.458  0.4401 0.2717 0.1967 0.5515 0.2755 0.2419 0.4676 0.758  0.2995 0.3691 0.05   0.3994 0.4922 0.6181 0.4712 0.2761 0.5462 0.3593 0.4183 0.4103 0.5348 0.3811 0.6988 0.5173 0.3753 0.1949 0.3953 0.5977 0.171  0.1695 0.2836 0.6271 0.5258 0.0745 0.3111 0.1573 0.0004 0.0924 0.2422 0.3383 0.19   0.4618 0.0716 0.0486 0.3279 0.6406 0.2951 0.5686 0.1721 0.6494 0.2546 0.4074 0.3229 0.1346 0.2477 0.5765 0.8193 0.1123 0.601  0.7063 0.2151 0.3593 0.5408 0.0423 0.2745 0.1847 0.4372 0.2888 0.512  0.4712 0.0009 0.4836 0.6393 0.0429 0.3087 0.3261 0.1744 0.2856 0.2329 0.0178 0.3722 0.4944 0.4709 0.0724 0.444  0.021  0.4145 0.0017 0.4981 0.1145 0.1682 0.2814]2023-03-24 08:29:37 [INFO][EVAL] Class Precision: [0.8119 0.8695 0.962  0.8547 0.7814 0.8793 0.8997 0.8753 0.7011 0.7864 0.7353 0.6727 0.8435 0.5302 0.6102 0.6638 0.7082 0.7214 0.7994 0.6683 0.8769 0.6835 0.7093 0.6884 0.5274 0.6138 0.5585 0.6761 0.7636 0.393 0.5105 0.6331 0.5877 0.5448 0.5405 0.4941 0.7326 0.7843 0.4651 0.6829 0.359  0.4159 0.6445 0.567  0.5198 0.5016 0.5896 0.7959 0.6443 0.7543 0.6547 0.444  0.3063 0.599  0.6497 0.5739 0.9083 0.7014 0.5525 0.4622 0.3538 0.684  0.4142 0.688  0.5741 0.8462 0.5175 0.5607 0.1598 0.6991 0.6164 0.7631 0.6411 0.3225 0.7192 0.4976 0.5331 0.6106 0.7578 0.542 0.7403 0.7045 0.7159 0.3659 0.753  0.7415 0.4658 0.443  0.6463 0.753 0.7322 0.1231 0.513  0.4166 0.0036 0.3219 0.5174 0.5526 0.4577 0.6989 0.3567 0.0755 0.6647 0.7321 0.721  0.6855 0.3575 0.9111 0.4424 0.5729 0.6351 0.1438 0.49   0.629  0.8332 0.436  0.746  0.7556 0.3095 0.4968 0.7359 0.3707 0.7468 0.6528 0.8193 0.6748 0.8287 0.6061 0.0664 0.645 0.7521 0.4227 0.5671 0.7565 0.6982 0.4636 0.4544 0.1138 0.5872 0.6711 0.6449 0.0955 0.6682 0.2432 0.6712 0.0112 0.8014 0.5777 0.4641 0.6835]2023-03-24 08:29:37 [INFO][EVAL] Class Recall: [0.8531 0.9103 0.9668 0.8792 0.871  0.8739 0.8525 0.9321 0.7212 0.7964 0.6354 0.791  0.8867 0.4742 0.38   0.6331 0.6991 0.5574 0.804  0.6397 0.904  0.6252 0.7922 0.7549 0.5092 0.7007 0.7988 0.5474 0.5502 0.493 0.52   0.7623 0.4671 0.5695 0.6534 0.6139 0.6606 0.8117 0.4132 0.623 0.2931 0.2276 0.5298 0.4069 0.5214 0.2755 0.5134 0.715  0.7672 0.7858 0.7512 0.8054 0.1679 0.2964 0.9406 0.7424 0.9651 0.569  0.684  0.3973 0.3069 0.74   0.4515 0.2717 0.7159 0.8791 0.4155 0.5193 0.0678 0.4824 0.7096 0.7648 0.6399 0.6571 0.6943 0.5639 0.66   0.5558 0.6451 0.5622 0.9258 0.6606 0.441  0.2942 0.4542 0.755  0.2127 0.2154 0.3357 0.7894 0.6509 0.1586 0.4415 0.2017 0.0004 0.1147 0.3129 0.4659 0.2452 0.5765 0.0822 0.1199 0.3929 0.8367 0.3332 0.7692 0.2492 0.6933 0.375  0.5852 0.3965 0.6772 0.3337 0.8734 0.98   0.1314 0.7557 0.9155 0.4136 0.5649 0.6711 0.0456 0.3027 0.2048 0.4839 0.3355 0.5727 0.6792 0.0009 0.659 0.81   0.0456 0.4039 0.3644 0.1886 0.4266 0.3233 0.0207 0.5042 0.6526 0.6357 0.2303 0.5697 0.0225 0.5201 0.0019 0.5683 0.125  0.2087 0.3236]

       

笔者在/home/aistudio/work/PaddleSeg/output2/best_model下准备了Upernet的best_model,直接运行以下代码块即可查看效果

In [3]

%cd /home/aistudio/work/PaddleSeg!python val.py        --config configs/upernet/upernet_resnet101_os8_cityscapes_512x1024_40k.yml        --model_path output2/best_model/model.pdparams 

       

/home/aistudio/work/PaddleSeg2023-03-24 08:53:26 [INFO]---------------Config Information---------------batch_size: 8iters: 40000loss:  coef:  - 1  - 0.4  types:  - type: CrossEntropyLosslr_scheduler:  decay_steps: 20000  end_lr: 1.0e-06  learning_rate: 0.001  power: 1.5  type: PolynomialDecay  warmup_iters: 150  warmup_start_lr: 1.6e-06model:  backbone:    output_stride: 8    pretrained: https://bj.bcebos.com/paddleseg/dygraph/resnet101_vd_ssld.tar.gz    type: ResNet101_vd  backbone_indices:  - 0  - 1  - 2  - 3  channels: 512  dropout_prob: 0.1  enable_auxiliary_loss: true  type: UPerNetoptimizer:  type: sgd  weight_decay: 0.0005train_dataset:  dataset_root: /home/aistudio/work/dataset/ADEChallengeData2016/  mode: train  transforms:  - max_scale_factor: 2.0    min_scale_factor: 0.5    scale_step_size: 0.25    type: ResizeStepScaling  - crop_size:    - 512    - 512    type: RandomPaddingCrop  - type: RandomHorizontalFlip  - brightness_range: 0.4    contrast_range: 0.4    saturation_range: 0.4    type: RandomDistort  - type: Normalize  type: ADE20Kval_dataset:  dataset_root: /home/aistudio/work/dataset/ADEChallengeData2016/  mode: val  transforms:  - type: Normalize  type: ADE20K------------------------------------------------W0324 08:53:26.108537  7681 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 11.2W0324 08:53:26.108594  7681 gpu_resources.cc:91] device: 0, cuDNN Version: 8.2.2023-03-24 08:53:27 [INFO]Loading pretrained model from https://bj.bcebos.com/paddleseg/dygraph/resnet101_vd_ssld.tar.gz2023-03-24 08:53:29 [INFO]There are 530/530 variables loaded into ResNet_vd.2023-03-24 08:53:29 [INFO]Loading pretrained model from output2/best_model/model.pdparams2023-03-24 08:53:30 [INFO]There are 616/616 variables loaded into UPerNet.2023-03-24 08:53:30 [INFO]Loaded trained params of model successfully2023-03-24 08:53:30 [INFO]Start evaluating (total_samples: 2000, total_iters: 2000)...2000/2000 [==============================] - 230s 115ms/step - batch_cost: 0.1149 - reader cost: 2.6253e-042023-03-24 08:57:20 [INFO][EVAL] #Images: 2000 mIoU: 0.3909 Acc: 0.7868 Kappa: 0.7713 Dice: 0.52922023-03-24 08:57:20 [INFO][EVAL] Class IoU: [0.7115 0.8011 0.9314 0.7647 0.7042 0.787  0.8049 0.84   0.5649 0.6462 0.5362 0.5995 0.7441 0.3094 0.3554 0.4754 0.536  0.4481 0.6626 0.4777 0.8098 0.4829 0.6057 0.5982 0.3838 0.4725 0.5459 0.496  0.491  0.2577 0.356  0.533  0.3685 0.3815 0.4109 0.3827 0.5311 0.6146 0.3125 0.4607 0.2319 0.1872 0.4051 0.3083 0.3786 0.3747 0.2756 0.5684 0.5776 0.5924 0.5052 0.3146 0.1775 0.1849 0.6592 0.4048 0.8408 0.4871 0.4102 0.2576 0.118  0.4577 0.3204 0.2345 0.4711 0.7338 0.2616 0.4106 0.0548 0.3417 0.4774 0.5949 0.4258 0.2156 0.4975 0.3868 0.39   0.3472 0.5401 0.3453 0.5822 0.4809 0.3615 0.2809 0.2508 0.5794 0.1629 0.1485 0.2743 0.6273 0.4158 0.0254 0.1913 0.0738 0.0096 0.0065 0.2471 0.3797 0.2024 0.4278 0.1038 0.0625 0.2214 0.643  0.4732 0.3105 0.1562 0.516  0.2314 0.3265 0.2965 0.0689 0.2294 0.5552 0.5121 0.0194 0.6406 0.6248 0.1877 0.3104 0.5239 0.0125 0.2889 0.211  0.5088 0.2775 0.5669 0.4562 0.0099 0.4972 0.5025 0.0066 0.3107 0.3572 0.1159 0.2616 0.2058 0.0123 0.343  0.4589 0.3581 0.0646 0.4363 0.2756 0.374  0.     0.4782 0.087  0.1422 0.3191]2023-03-24 08:57:21 [INFO][EVAL] Class Precision: [0.8287 0.8841 0.9687 0.8747 0.7825 0.8856 0.9059 0.8874 0.7003 0.801 0.7608 0.7409 0.8732 0.5617 0.6384 0.6547 0.7048 0.7229 0.8222 0.6973 0.883  0.6961 0.7002 0.6883 0.531  0.5755 0.6419 0.6524 0.7158 0.3307 0.5137 0.5957 0.5923 0.5299 0.4938 0.4602 0.7291 0.6983 0.5043 0.7226 0.3873 0.3407 0.5983 0.5291 0.6176 0.611  0.4069 0.8419 0.6112 0.645 0.5909 0.336  0.3525 0.6151 0.6872 0.4666 0.8622 0.7264 0.4477 0.3868 0.171  0.4977 0.4181 0.6474 0.5378 0.807  0.3646 0.5995 0.1186 0.5065 0.6388 0.7217 0.5087 0.2645 0.6051 0.4658 0.4694 0.6118 0.6464 0.6077 0.6045 0.6908 0.7662 0.536  0.4042 0.7233 0.5561 0.361  0.4804 0.7987 0.5181 0.0578 0.2771 0.3427 0.1093 0.0297 0.3534 0.6737 0.5066 0.5739 0.3667 0.0786 0.5355 0.6774 0.8164 0.3551 0.4044 0.5904 0.4412 0.3715 0.6888 0.0715 0.4757 0.6028 0.5123 0.2882 0.7996 0.636  0.2419 0.3764 0.6865 0.3466 0.4599 0.6474 0.7609 0.7099 0.8262 0.5613 0.0392 0.7182 0.5333 0.0976 0.464  0.675  0.6291 0.4505 0.3991 0.0596 0.7079 0.63 0.4212 0.1156 0.6099 0.5317 0.7055 0.0002 0.7177 0.6002 0.7423 0.7913]2023-03-24 08:57:21 [INFO][EVAL] Class Recall: [0.8341 0.8951 0.9604 0.8587 0.8757 0.876  0.8783 0.9402 0.745  0.7698 0.6449 0.7585 0.8343 0.408  0.445  0.6346 0.6911 0.5411 0.7734 0.6026 0.9071 0.6118 0.8178 0.8204 0.5808 0.7254 0.785  0.6742 0.6099 0.5387 0.5371 0.835  0.4938 0.5767 0.71   0.6946 0.6616 0.8369 0.4509 0.5597 0.3663 0.2936 0.5564 0.4249 0.4945 0.4921 0.4605 0.6363 0.9129 0.8789 0.7769 0.8319 0.2634 0.209  0.9419 0.7533 0.9713 0.5966 0.8307 0.4353 0.2759 0.8507 0.5785 0.2688 0.7914 0.89   0.481  0.5658 0.0925 0.5122 0.6539 0.772  0.7231 0.5384 0.7368 0.6954 0.6975 0.4454 0.7666 0.4444 0.9404 0.6128 0.4063 0.3712 0.3978 0.7444 0.1872 0.2014 0.39   0.745 0.678  0.0432 0.382  0.086  0.0104 0.0082 0.451  0.4653 0.2521 0.6268 0.1264 0.2341 0.274  0.9267 0.5296 0.7119 0.2028 0.8036 0.3274 0.7295 0.3424 0.6512 0.3069 0.8755 0.9995 0.0204 0.7632 0.9726 0.4559 0.639 0.6886 0.0128 0.4371 0.2384 0.6056 0.313  0.6437 0.7089 0.0131 0.6177 0.8969 0.007  0.4847 0.4314 0.1244 0.3841 0.2983 0.0152 0.3996 0.6282 0.705  0.1277 0.6051 0.364  0.4432 0.     0.5889 0.0924 0.1496 0.3485]

       

五、模型预测

笔者在/home/aistudio/work/PaddleSeg/output1/best_model下准备了GCNet的best_model,直接运行以下代码块即可查看ade20k数据集中测试集的效果

In [ ]

%cd /home/aistudio/work/PaddleSeg!python predict.py        --config configs/gcnet/gcnet_resnet50_os8_voc12aug_512x512_40k.yml        --model_path output1/best_model/model.pdparams        --image_path /home/aistudio/work/dataset/ADEChallengeData2016/images/testing        --save_dir output1/result# --image_path 可以是一个图片路径,也可以是一个目录。如果是一个目录,将对目录内的所有图片进行预测并保存可视化结果图。# --save_dir 在路径/home/aistudio/work/PaddleSeg/output1/result下保存预测结果图。如果路径不存在,会自动创建目录。

   

笔者在/home/aistudio/work/PaddleSeg/output2/best_model下准备了Upernet的best_model,直接运行以下代码块即可查看ade20k数据集中测试集的效果

In [ ]

%cd /home/aistudio/work/PaddleSeg!python predict.py        --config configs/upernet/upernet_resnet101_os8_cityscapes_512x1024_40k.yml        --model_path output2/best_model/model.pdparams        --image_path /home/aistudio/work/dataset/ADEChallengeData2016/images/testing        --save_dir output2/result# --image_path 可以是一个图片路径,也可以是一个目录。如果是一个目录,将对目录内的所有图片进行预测并保存可视化结果图。# --save_dir 在路径/home/aistudio/work/PaddleSeg/output2/result下保存预测结果图。如果路径不存在,会自动创建目录。

   

六、对比与总结

模型1 backbone 验证集miou 验证耗时 模型文件大小

GCnetresnet50_vd0.4060150s 75ms/step190MB

模型2 backbone 验证集miou 验证耗时 模型文件大小

UpernetResNet101_vd0.3909230s 115ms/step390.5MB

通过对比可以看出:GCnet优于Upernet

总结:

这个数据集跑通并不是很难,但要得到一个好的miou却是比较困难的,炼丹量有点大,不仅仅是要选择合适的算法,还要选择好合适的参数

除此之外,我还跑过setr_mla_large算法,这个算法使用的backbone是ViT_large_patch26_384(配置文件的路径为/home/aistudio/work/PaddleSeg/configs/setr/setr_mla_large_cityscapes_769x769_40k.yml),可以肯定的是这个效果会比gcnet更好,但训练时验证非常慢,至少5个半小时,这是vit的通病,于是放弃了。

经验分享:配置文件我比较不满意的地方就是学习率策略、优化器和损失函数的选择,在GitHub里paddleseg参考文档里描述相对较少,只是写了参考paddle的API文档,所以认真看paddle框架的API文档非常重要,对你调参非常有帮助。当我选择自适应学习策略时,苦于不知道怎么在配置文件中给自适应学习策略传入验证集的损失,有方法是看源码可以解决。

以上就是【AI达人特训营第三期】:PaddleSeg助力自动驾驶场景分割的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/61571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月11日 01:40:23
下一篇 2025年11月11日 01:57:34

相关推荐

  • Merlin Chain(MERL)将于11月19日解锁3614万枚MERL,占总供应量1.72%

    Merlin Chain(MERL)将于 2025年11月19日 解锁约 3614万枚MERL,占总供应量的 1.72%。此次解锁可能对短期市场流动性和价格形成影响,因此投资者需要关注交易动态并做好风险管理。 MERL 解锁对市场的影响 解锁释放的 MERL 代币将增加市场可流通供应,可能导致短期抛…

    2025年12月11日
    000
  • Filecoin全新Onchain Cloud发布:测试网开启,主网将于2026年1月上线

    Filecoin 宣布推出全新 Onchain Cloud 服务,测试网已正式开启,预计主网将于 2026年1月 上线。此项目旨在进一步拓展去中心化存储能力,为开发者和企业提供高效、安全的链上存储解决方案。 Onchain Cloud 功能及优势 Filecoin Onchain Cloud 的主要…

    2025年12月11日
    000
  • 币安Binance官网账户注册入口 币安交易平台最新APP下载路径

    币安(binance) 是全球领先的数字资产交易平台之一,提供现货、合约、理财和质押等丰富服务。下面为你介绍 binance 官网的账户注册入口 以及其 最新 app 下载路径,帮助你安全快速开始使用。 Binance 官网注册入口 访问 Binance 官方中文版网站:— 在页面右上角可以看到“注…

    2025年12月11日
    000
  • 什么是创作者经济(Creator Economy)?Web3和NFT将如何赋予创作者更多权力?

    创作者经济让个体通过数字内容直接盈利,Web3与NFT技术强化其自主权。依托去中心化架构,创作者摆脱平台束缚,数据上链确保所有权与交易透明;智能合约实现收益自动分配。NFT为作品提供唯一认证,将其转化为可交易资产,创作者可通过加密货币收款,并在二级市场转售中持续获得版税收入。 2025主流数字货币交…

    2025年12月11日
    000
  • 如何利用斐波那契回撤找到关键的支撑位和阻力位?

    首先确定价格趋势的显著高低点,再用斐波那契工具绘制回撤线,识别38.2%、50%、61.8%等关键位,并结合历史支撑阻力、K线形态与均线等信号验证,以提高交易决策准确性。 利用斐波那契回撤工具,通过识别价格趋势的高低点来定位潜在的支撑与阻力区域。 为了方便新手快速上手币圈交易并实时查看市场数据,可通…

    2025年12月11日
    000
  • 一文读懂:泰达币和以太坊区别是什么?分别在哪里能获取到?

    泰达币(usdt)和以太坊(eth)是数字资产领域两个截然不同的核心角色。简单来说,usdt是一种价值稳定的数字美元,主要用于交易和保值;而eth则是驱动整个以太坊生态系统的燃料和基础资产,其价值会随市场波动。它们都可以通过主流的数字资产服务平台获取。 一、核心属性:稳定挂钩 vs 价值浮动 1、泰…

    2025年12月11日
    000
  • 以太坊爆仓实时数据在哪看?以太坊实时行情软件推荐

    对于关注数字资产市场波动的用户而言,实时掌握以太坊的清算数据和行情动态至关重要。本文将为您介绍几个主流且功能强大的数据平台和软件,帮助您更便捷、高效地获取市场关键信息。 一、专业清算数据查询平台 1、Coinglass:这是一个功能非常全面的合约市场数据网站。它不仅提供实时的爆仓数据统计,还包括持仓…

    2025年12月11日
    000
  • 均线黄金交叉和死亡交叉是什么?如何判断?金叉与死叉的实战操作策略

    Binance币安 欧易OKX ️ Huobi火币️ 均线黄金交叉/死亡交叉是什么? 在技​​术指标中,黄金交叉/死亡交叉是许多投资者用来判断趋势及进场点的方式之一,移动平均线也不例外,在均线中是利用短期均线是否穿越长期均线判断是否形成有效的金叉、死叉。 短、​​长期均线的概念及金叉、死叉形成条件 …

    2025年12月11日 好文分享
    000
  • DePIN赛道入门:它如何将区块链与现实世界基础设施结合?

    DePIN通过代币激励连接物理设备与区块链,实现去中心化基础设施建设。1、项目方设计通证模型,用户接入设备后由智能合约按贡献分配奖励。2、无线网络方案中,用户部署热点设备并共享带宽,系统依信号强度与连接数发放代币。3、分布式存储利用闲置硬盘,通过Filecoin等协议提供空间,定期验证数据完整性获取…

    2025年12月11日
    000
  • 比特币合约ai预测工具有哪些? 比特币合约ai预测工具APP大全

    在瞬息万变的数字资产市场中,利用人工智能(AI)进行合约交易预测已成为一种高效的辅助手段。这些工具通过复杂的算法分析海量数据,帮助交易者洞察市场趋势,从而做出更为明智的决策。本文将为您介绍几款备受关注的比特币合约AI预测工具及应用。 binance币安交易所 Binance币安注册入口: Binan…

    2025年12月11日
    000
  • 1比特币=多少usdt

    binance币安交易所 Binance币安注册入口: Binance币安APP下载: 欧易OKX交易所 欧易(OKX)注册入口: 欧易(OKX)注册APP下载: 火币HTX交易所: 注册入口: APP下载: 想要快速准确地了解一个比特币(BTC)能够兑换多少泰达币(USDT)吗?实时汇率是市场参与…

    2025年12月11日
    000
  • 币安如何进行双重身份验证?币安启用谷歌身份验证器(Google Authenticator)的图文设置

    在加密货币领域,保障数字资产安全是每个用户的核心关切。面对日益复杂的网络威胁,双因素身份验证(2fa)已成为防御账户被盗的关键防线。 Binance币安 欧易OKX ️ Huobi火币️ 通过使用谷歌身份验证器等工具,可以为账户增添一道坚固的屏障,显著提升黑客入侵的难度。这看似微小的一步,却是守护我…

    2025年12月11日 好文分享
    000
  • 如何寻找下一个百倍币?新手必看的价值币筛选指南

    主流货币交易平台推荐: 欧易OKX: Binance币安: 火币Huobi: Gateio芝麻开门: 寻找下一个百倍币是许多加密货币投资者的梦想。作为新手,您可能感到迷茫。本指南将为您揭示筛选潜力价值币的关键策略,帮助您在纷繁的市场中找到那些具备爆发式增长潜力的项目,为您的投资之路指明方向。我们强调…

    2025年12月11日
    000
  • 虚拟币是怎么开发的?虚拟币开发需要什么?

    了解一个数字资产项目的诞生,需要深入其背后的技术构成。这并非简单的创造一个符号,而是涉及密码学、分布式系统和经济模型设计的复杂工程。本文将解析构建一个区块链项目所需的核心技术要素。 一、底层区块链与共识机制 1、首先需要确定项目的根基——区块链。开发者可以选择在现有的公链(如以太坊)上发行代币,也可…

    2025年12月11日
    000
  • 比特币历史价格回顾:从一文不值到12.5万美元,未来走势分析

    binance币安交易所 注册入口: APP下载: 欧易OKX交易所 注册入口: APP下载: 火币交易所: 注册入口: APP下载: 回顾比特币的传奇历程,它从无人问津的数字代码,一路披荆斩棘,最终在2025年10月5日创下了历史新高,突破了惊人的12.5万美元大关,再次震动全球金融市场。 从默默…

    2025年12月11日
    000
  • OKX欧易官网注册入口 (2025) | 附最新邀请码与注册福利

    okx欧易是一款全球领先的数字资产服务平台,为用户提供安全、稳定、可靠的数字资产交易服务。它支持多种主流数字资产的交易,并提供丰富的金融工具。本文将为您提供okx欧易的官方app下载与安装指南,并附上详细的注册、认证与交易流程。您可以点击本文提供的官方app下载链接,轻松获取最新版本的应用程序,开启…

    2025年12月11日 好文分享
    000
  • 如何挑选潜力山寨币?2025年值得关注的十大山寨币推荐

    binance币安交易所 注册入口: APP下载: 欧易OKX交易所 注册入口: APP下载: 火币交易所: 注册入口: APP下载: 山寨币市场充满机遇与风险,精挑细选是获利关键。投资者需擦亮双眼,深入研究,才能在众多项目中找到真正具备长期价值的潜力币,为下一轮牛市做好布局。 如何发掘潜力山寨币 …

    2025年12月11日
    000
  • ada合约地址如何查询 ada合约地址权限查询方法

    本文旨在指导您如何准确查询和验证cardano (ada)的智能合约地址,这是确保您与去中心化应用(dapp)安全交互的关键一步。通过掌握使用区块浏览器的方法,您可以有效核实合约的真实性,从而保障您的资产安全。 一、为何要查询合约地址 1、在区块链世界中,智能合约地址是唯一的标识。与错误的或伪造的合…

    2025年12月11日
    000
  • 查询合约地址信息软件有哪些?币圈合约地址查询工具大全

    在数字资产世界中,核查合约地址是保障安全、识别风险的关键一步。本文将为您介绍几款主流且功能强大的合约地址查询工具,帮助您轻松获取链上信息,做出明智的决策。 一、以太坊生态首选:Etherscan 1、Etherscan是以太坊网络最著名、最权威的区块链浏览器。它不仅支持以太坊主网,也为众多Layer…

    2025年12月11日
    000
  • 技术分析和基本面分析:哪个更适合炒币新手?深入探讨

    binance币安交易所 注册入口: APP下载: 欧易OKX交易所 注册入口: APP下载: 火币交易所: 注册入口: APP下载: 踏入加密货币世界,新手常在技术分析与基本面分析之间徘徊。这两种方法如同武林中的不同门派,各有千秋。理解它们的核心差异,是制定成功投资策略的第一步。 技术分析:读懂市…

    2025年12月11日
    000

发表回复

登录后才能评论
关注微信