PaddleSeg:车道线检测_人工智能

向AI转型的程序员都关注了这个号👇👇👇

0.1 任务

要求参赛者利用提供的训练数据,设计一个车道线检测和分类模型,来检测测试数据中车道线的具体位置和类别。样例示范:

PaddleSeg:车道线检测_深度学习_02

0.2 数据集描述

本次赛题数据集包括x张手机拍摄的道路图片数据,并对这些图片数据标注了车道线的区域和类别,其中标注数据以灰度图的方式存储。

标注数据是与原图尺寸相同的单通道灰度图,其中背景像素的灰度值为0,不同类别的车道线像素分别为不同的灰度值,具体如下表所示:

PaddleSeg:车道线检测_特征工程_03

PaddleSeg:车道线检测_特征工程_04

PaddleSeg:车道线检测_深度学习_05

PaddleSeg:车道线检测_特征工程_06

3. 数据处理

参考项目从头搭建无人车车道线检测挑战赛解决方案中提到:

通过仔细观察,我们发现这些数据有一个共同的特点,就是图片的上三分之一部分都是天空,是没有车道线存在的,知道了这点后,我们就可以进行一个裁剪的过程,一下子就可以节省下三分之一的显存,是不是很爽呢?这里我选择裁剪上方690个像素的高度。

在本次比赛的数据集中,这种现象同样存在,因此本文也采用截去天空的方式进行训练,省下内存空间。本文的做法是直接裁剪掉图片的上半部分。

3.1 裁剪效果

注:如果感觉裁剪幅度过大,读者可自行修改裁剪比例

PaddleSeg:车道线检测_人工智能_07

4. 开始训练

4.1 注意事项

训练时需要注意,默认PaddleSeg v0.6在Paddlepaddle 1.8.4的框架版本下paddle.enable_static()这句代码会报错,解决办法就是将pdseg/train.py中这行代码注释掉;后面pdseg/vis.pypdseg/eval.py也需要进行相同操作。

PaddleSeg:车道线检测_特征工程_08

4.2 类别不均衡问题处理

在PaddleSeg文档中,特别就类别不均衡问题的处理进行了说明:

在图像分割任务中,经常出现类别分布不均匀的情况,例如:工业产品的瑕疵检测、道路提取及病变区域提取等。

针对这个问题,您可使用Weighted softmax loss、Dice loss、Lovasz hinge loss和Lovasz softmax loss进行解决。

  • Weighted softmax loss

Weighted softmax loss是按类别设置不同权重的softmax loss。

通过设置cfg.SOLVER.CROSS_ENTROPY_WEIGHT参数进行使用。
默认为None. 如果设置为'dynamic',会根据每个batch中各个类别的数目,动态调整类别权重。也可以设置一个静态权重(list的方式),比如有3类,每个类别权重可以设置为[0.1, 2.0, 0.9]. 示例如下

SOLVER: CROSS_ENTROPY_WEIGHT: 'dynamic'

由于比赛是一个分类问题,因此参考configs/lovasz_softmax_deeplabv3p_mobilenet_pascal.yaml的配置方式,对SLOVER进行设置。

而在比赛基线项目中,也给出了类别权重的计算过程:

PaddleSeg:车道线检测_人工智能_09

4.3 DeepLabv3+模型finetune

这里参考文档的DeepLabv3+模型使用教程进行设置,参考config文件

https://gitee.com/paddlepaddle/PaddleSeg/blob/develop/tutorial/finetune_deeplabv3plus.md

5. 训练过程可视化

在可视化模块中配置logdir路径为PaddleSeg/vdl_log_dir可对训练过程进行监控

PaddleSeg:车道线检测_机器学习_10

6. 生成预测结果

6.1 修改配置文件

这里注意要将不同分辨率的图片分开,然后修改配置文件中的:

  • EVAL_CROP_SIZEEVAL_CROP_SIZE: (1920, 1080)EVAL_CROP_SIZE: (1280, 720)
  • 对应的VIS_FILE_LISTTEST_FILE_LIST路径配置
  • BATCH_SIZE建议改为1,否在显存可能不够用

PaddleSeg:车道线检测_深度学习_11

6.2 修改vis.py使其将预测结果输出为单通道灰度图

其实就是将灰度图转伪彩色部分的代码注释掉:

PaddleSeg:车道线检测_计算机视觉_12

In [10]

# 对test_list2.txt和test_list3.txt分别进行预测,result目录下就是可提交的图片文件
!python pdseg/vis.py --use_gpu --cfg ./configs/deeplabv3p_resnet50_vd_cityscapes.yaml --vis_dir result

预测可视化效果:

 

PaddleSeg:车道线检测_人工智能_13

 

PaddleSeg:车道线检测_人工智能_14

原文地址

https://aistudio.baidu.com/aistudio/projectdetail/1081298?channelType=1&channel=1