向AI转型的程序员都关注了这个号👇👇👇
0.1 任务
要求参赛者利用提供的训练数据,设计一个车道线检测和分类模型,来检测测试数据中车道线的具体位置和类别。样例示范:
0.2 数据集描述
本次赛题数据集包括x张手机拍摄的道路图片数据,并对这些图片数据标注了车道线的区域和类别,其中标注数据以灰度图的方式存储。
标注数据是与原图尺寸相同的单通道灰度图,其中背景像素的灰度值为0,不同类别的车道线像素分别为不同的灰度值,具体如下表所示:
3. 数据处理
参考项目从头搭建无人车车道线检测挑战赛解决方案中提到:
通过仔细观察,我们发现这些数据有一个共同的特点,就是图片的上三分之一部分都是天空,是没有车道线存在的,知道了这点后,我们就可以进行一个裁剪的过程,一下子就可以节省下三分之一的显存,是不是很爽呢?这里我选择裁剪上方690个像素的高度。
在本次比赛的数据集中,这种现象同样存在,因此本文也采用截去天空的方式进行训练,省下内存空间。本文的做法是直接裁剪掉图片的上半部分。
3.1 裁剪效果
注:如果感觉裁剪幅度过大,读者可自行修改裁剪比例
4. 开始训练
4.1 注意事项
训练时需要注意,默认PaddleSeg v0.6在Paddlepaddle 1.8.4的框架版本下paddle.enable_static()
这句代码会报错,解决办法就是将pdseg/train.py
中这行代码注释掉;后面pdseg/vis.py
和pdseg/eval.py
也需要进行相同操作。
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
进行设置。
而在比赛基线项目中,也给出了类别权重的计算过程:
4.3 DeepLabv3+模型finetune
这里参考文档的DeepLabv3+模型使用教程进行设置,参考config文件
https://gitee.com/paddlepaddle/PaddleSeg/blob/develop/tutorial/finetune_deeplabv3plus.md
5. 训练过程可视化
在可视化模块中配置logdir
路径为PaddleSeg/vdl_log_dir
可对训练过程进行监控
6. 生成预测结果
6.1 修改配置文件
这里注意要将不同分辨率的图片分开,然后修改配置文件中的:
EVAL_CROP_SIZE
为EVAL_CROP_SIZE: (1920, 1080)
或EVAL_CROP_SIZE: (1280, 720)
对应的
VIS_FILE_LIST
和TEST_FILE_LIST
路径配置BATCH_SIZE
建议改为1,否在显存可能不够用
6.2 修改vis.py
使其将预测结果输出为单通道灰度图
其实就是将灰度图转伪彩色部分的代码注释掉:
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
预测可视化效果:
原文地址
https://aistudio.baidu.com/aistudio/projectdetail/1081298?channelType=1&channel=1
机器学习算法AI大数据技术搜索公众号添加: datanlp长按图片,识别二维码
阅读过本文的人还看了以下文章:
TensorFlow 2.0深度学习案例实战
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《基于深度学习的自然语言处理》中/英PDF
Deep Learning 中文版初版-周志华团队
【全套视频课】最全的目标检测算法系列讲解,通俗易懂!
《美团机器学习实践》_美团算法团队.pdf
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
《深度学习:基于Keras的Python实践》PDF和代码
特征提取与图像处理(第二版).pdf
python就业班学习视频,从入门到实战项目
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
《深度学习之pytorch》pdf+附书源码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
《Python数据分析与挖掘实战》PDF+完整源码
汽车行业完整知识图谱项目实战视频(全23课)
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
《神经网络与深度学习》最新2018版中英PDF+源码
将机器学习模型部署为REST API
FashionAI服装属性标签图像识别Top1-5方案分享
重要开源!CNN-RNN-CTC 实现手写汉字识别
yolo3 检测出图像中的不规则汉字
同样是机器学习算法工程师,你的面试为什么过不了?
前海征信大数据算法:风险概率预测
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
VGG16迁移学习,实现医学图像识别分类工程项目
特征工程(一)
特征工程(二) :文本数据的展开、过滤和分块
特征工程(三):特征缩放,从词袋到 TF-IDF
特征工程(四): 类别特征
特征工程(五): PCA 降维
特征工程(六): 非线性特征提取和模型堆叠
特征工程(七):图像特征提取和深度学习
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
蚂蚁金服2018秋招-算法工程师(共四面)通过
全球AI挑战-场景分类的比赛源码(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在线识别手写中文网站
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python搜索公众号添加: datayx