PaddleSeg:车道线检测

article/2025/10/2 21:28:46

e8d8e5c641d4ac9260a0a85dfb7d55e2.gif

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

0.1 任务

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

b9a97d6d6fbe77eabf352a1356bebc23.png


0.2 数据集描述

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

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

ea54bdc68d47862a4595a63376f49dba.png

afcbe2772819e389557b9f0fa3ab2622.png

db4c1481f1be5e915128ca376d42e15f.png

0655e0aff301c1e4cb1d492f4839c223.png

3. 数据处理

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

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

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

3.1 裁剪效果

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

6a7c887853e38c5ed6f6797ea5e9aca0.png

4. 开始训练

4.1 注意事项

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

0caacfbdfe284bd432d0db0cd90a618d.png

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进行设置。

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

89912fe9065f7ccaca047d32fccc3f93.png

4.3 DeepLabv3+模型finetune

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

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

5. 训练过程可视化

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

705d65dec291e648c3a0e70e56b94b41.png

6. 生成预测结果

6.1 修改配置文件

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

  • EVAL_CROP_SIZEEVAL_CROP_SIZE: (1920, 1080)EVAL_CROP_SIZE: (1280, 720)

  • 对应的VIS_FILE_LISTTEST_FILE_LIST路径配置

  • BATCH_SIZE建议改为1,否在显存可能不够用

4f30b906b57c947d2e6b1c6da0c20d0c.png

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

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

f864682edd9754d85bd7bd8674037da0.png

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

预测可视化效果:

 f5e517ee16216e5c4624b207785342ab.png 8fa863b2c64039158b339c2ff8cb5711.jpeg

原文地址

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

http://chatgpt.dhexx.cn/article/XUKk8jlt.shtml

相关文章

3D车道线检测杂记

3D车道线检测相关论文学习 单目 一、3D-LaneNet: End-to-End 3D Multiple Lane Detection-ICCV2019 0 前言 这篇文章是第一篇通过单目前视相机直接预测3D车道线的论文。 一般想得到3D车道线信息有两种途径: 一种是利用离线高精度地图以及准确的自车定位信息&a…

车道线检测-LSTR-论文学习笔记

论文:《End-to-end Lane Shape Prediction with Transformers》代码:https://github.com/liuruijin17/LSTR地址:https://arxiv.org/abs/2011.04233v2内容:使用 CNNTransformer,基于三次曲线拟合车道线 整体结构 模型输…

车道线检测学习总结

之前学习了一个非常酷炫的车道线检测项目:Advanced Lane Finding Project 现在写一个学习笔记,备注一下,方便以后复习: 项目总体流程如下: 第一步,采用棋盘对相机进行校正: 第二步,对…

2D车道线检测算法总结

关于2D车道线检测算法的总结主要分为两类:一类基于语义分割来做,一类基于anchor和关键点来做。还有基于曲线方程来做的,但是落地的话还是上面两种为主。 一、基于语义分割的车道线检测算法 1.LaneNet 论文创新点: 1.将车道线检…

车道线检测-Eigenlanes 论文学习笔记

论文:《Eigenlanes: Data-Driven Lane Descriptors for Structurally Diverse Lanes》 代码:https://github.com/dongkwonjin/Eigenlanes 核心:在 Eigenlane Space 中检测车道线 创新点 Eigenlane:数据驱动的车道描述符&#xff…

OpenCV的车道线检测

资源下载地址:https://download.csdn.net/download/sheziqiong/85604275 资源下载地址:https://download.csdn.net/download/sheziqiong/85604275 final_mark.py是最终,前面的都是一部分一部分测试的功能,用的是霍夫变换拟合&…

动手学无人驾驶(7):车道线检测

最近在研究视觉语义地图,需要进行车道线检测,发现这篇车道线检测论文效果蛮好的 (Ultra Fast Structure-aware Deep Lane Detection)。论文作者在知乎上已经介绍过了:https://zhuanlan.zhihu.com/p/157530787&#xff…

高级车道线检测

基于图像处理相关技术的高级车道线检测(可适用于弯道,车道线颜色不固定,路面阴影,亮光) pipeline: 1.校准摄像头的畸变,使拍摄照片能够较完整的反映3D世界的情况 2.对每一帧图片做透视转换(pers…

传统方法车道线标注及相关知识

目录 一、图像二值化处理 1.Sobel算子绝对值 2.Sobel算子 3.倾斜角度 4.HLS颜色空间 5.二值图结合 二、车道线分割 1.仿射变换 2.车道线直方图 3.滑动窗口寻找车道线 4.车道线拟合 5.车道线区域标注 一、图像二值化处理 主要目的是通过二值化图像,使得车…

学习笔记之车道线相关记录

一. 车道线相关的知识 &&1.标线的分类 以下分类来自于百科: 按照道路交通标线的功能划分为:指示标线、警告标线和禁止标线。 按标划方法可分为:白色虚线、白色实线、黄色虚线、黄色实线、双白虚线、双白实线、双黄虚线和双黄实线…

关于python 最简单封装实例

一、 #定义一个类 class Person: #init是定义类实例初始化函数 ,没有返回return def __init__(self,name,area): self.name name self.area area #类里面定义方法 def run(self): print(self.name) …

Python软件封装打包

作者:Naples 链接:https://www.zhihu.com/question/32703639/answer/165326590 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Python Tkinter打包封装的方法有:PyInstaller, py…

Python封装、继承和多态

Python 语言在设计之初,就定位为一门面向对象的编程语言,“Python 中一切皆对象”。同时,Python 也支持面向对象的三大特征:封装、继承和多态。 一、封装 封装(Encapsulation),即在设计类时&am…

python程序封装

python程序封装1 报错请执行pip install --upgrade setuptools 和 pip install --upgrade wheel 步骤如下: (1)安装pyinstaller,可以直接在cmd命令行中,输入命令“pip install pyinstaller”,安装pyinsta…

python封装程序

#终端/cmd命令下: 1.安装python Welcome to Python.org 2.安装pip pip PyPI 下载get-pip.py 在cmd窗口下执行,python */*/get-pip.py(*为文件所在位置) *如果安装好后出现 不是内部命令的情况 需要在环境中添加&#xff…

制作python包,封装成可用模块

制作python包,封装成可用模块 首先编写py程序: printtest.py #coding: utf-8 def test():print(print test)if __name__ __main__:test() 将以上.py文件做成python模块,需要在相同目录下创建setup.py文件,setup.py中输入配置信息: #cod…

Python 程序封装-打包成exe程序

Python 程序封装-打包成exe程序 前言一、 Python 打包工具—Pyinstaller二、打包具体过程1. 打包成仅包含一个独立的exe程序2. 打包成包含文件夹的程序,内有相关的依赖库(推荐)3. 其他的打包命令 三、注意事项 欢迎学习交流! 邮箱…

怎么python程序封装?此文详解

python程序封装1 步骤如下: (1)安装pyinstaller,可以直接在cmd命令行中,输入命令“pip install pyinstaller”,安装pyinstaller (2)进入py代码的保存目录,这里py代码放在“E:\python学习\python_work” (3)cmd,输入命令:e:,进入e盘 (4)继续输入:E:\pytho…

Python封装

在用新电脑做python的封装的时候,出现了一系列的问题。在这里简单写一下Python的封装的一些流程以及可能出现的问题和解决方法吧。 封装我选择的是pyinstaller 首先是安装pyinstaller:Python 默认并不包含 PyInstaller 模块,因此需要自行安…

python之类的封装

博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞&#xff…