深度学习——车道线检测
论文 Ultra Fast Structure-aware Deep Lane Detection 学习笔记
论文下载:https://arxiv.org/abs/2004.11757
原论文车道线识别效果:
一、环境搭建:
本文的环境:ubuntu20.04
1.miniconda python虚拟环境软件安装
(1)miniconda下载安装
清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/?C=M&O=D
bash Miniconda3-py38_4.9.2-Linux-x86_64.sh
(2)创建conda python虚拟环境
查看conda已经创建的虚拟环境
conda-env list
默认已经创建好了base,我们需要自定义创建一个环境lane
conda create -n lane python=3.8
conda activate lane
切换到该虚拟环境下安装cuda pytorch等软件
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
注意:若有nvidia显卡,需要安装显卡驱动,两种方法:一种直接在官网下载对应型号的驱动,然后安装,另一种是apt安装sudo apt install nvidia-driver-510
.具体驱动型号按照自己的硬件设备选择
(3)配置miniconda
文件: $HOME/.condarc
修改为如下内容:
channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
custom_channels:msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
(4)添加启动命令
文件:$HOME/.bashrc
注意:主要原因——ros的python环境和conda的python虚拟环境不一致,如果直接启动conda,会导致ros无法启动,所以为了两者兼得,我们在需要的时候启动conda即可,不需要的时候直接关闭。
- 关闭conda 打开终端自动初始化过程
- 创建conda启动命令
alias conda_ac='source ~/miniconda3/bin/activate lane'
alias conda_de='conda deactivate'
这样就可以在命令行直接conda_ac
打开conda 环境,conda_de
关闭conda环境。
也可直接conda命令启动关闭虚拟环境
conda activate lane
conda deactivate lane
2.配置pip软件源
将pip的软件源改成国内,下载更快。
文件:$HOME/.config/pip/pip.conf
改为
[global]
timeout = 60000
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com
或者改为其他也可
清华:https://pypi.tuna.tsinghua.edu.cn/simple
中国科学技术大学 : https://pypi.mirrors.ustc.edu.cn/simple
豆瓣:http://pypi.douban.com/simple/
二、数据准备
1. 代码下载:
论文源代码:https://github.com/cfzd/Ultra-Fast-Lane-Detection
ros改写代码:git clone https://github.com/AbangLZU/Ultra-Fast-Lane-Detection.git
本文以某大牛改写的ros代码为例
2. 训练集下载:
百度云盘下载CULane数据集:https://pan.baidu.com/s/1KUtzC24cH20n6BtU5D0oyw
约44GB
解压压缩包,将23两部分合并起来
创建文件夹,第一个放置代码,第二个放置数据,第三个放置运行数据
注意:切莫将数据放在代码文件夹下,后期训练会将代码文件夹下的所有文件复制到运行数据文件夹下,导致大量数据的复制,需要花费大量时间。
train.py 存在复制命令
3. ros测试——模型及测试数据下载
测试bag下载地址:https://pan.baidu.com/s/16CgNtRqL4afECL4Ehe7lkQ 密码: gmw3
某大牛训练好的模型:(CULane数据集,50个epoch): https://pan.baidu.com/s/16CgNtRqL4afECL4Ehe7lkQ 密码: gmw3
原论文模型(CULane数据集):
https://pan.baidu.com/share/init?surl=9Ig0TrV8MfmFTyCvbSa4ag 密码:w9tw
本文测试视频数据:https://download.csdn.net/download/qq_31329259/85645799
本文训练好的模型:https://download.csdn.net/download/qq_31329259/85645774
二、模型训练
1. 在configs/culane.py中修改训练数据和运行log文件夹的路径
2.训练
训练命令:
conda activate lane
python train.py configs/culane.py --ecpoch 50
命令行可指定具体的参数
3.训练结果
三、ros环境测试
(1) 启动ros 主节点
roscore
(2) 启动测试数据 循环播放
rosbag play -l culane0380.bag
(3) 启动代码
conda activate lane
#conda_ac
python lane_detect_ros_node.py configs/ros_config.py --test_model /home/rdcas/rosbag/lane-detect/ep049.pth
(4)查看效果
rqt_image_view
enjoy
参考文章:https://blog.csdn.net/AdamShan/article/details/115769942
深度学习——车道线检测相关推荐
- 自动驾驶系统进阶与项目实战(九)基于行锚框和全局信息的深度学习车道线检测方法
自动驾驶系统进阶与项目实战(九)基于行锚框和全局信息的深度学习车道线检测方法 目前多数基于深度学习的车道线检测方法通常把车道线的识别问题处理为车道线像素分割问题,单纯的像素级语义分割模型的推理的实时性 ...
- 【毕业设计】深度学习车道线检测系统 - python 机器视觉
文章目录 1 前言 2 先上成果 3 车道线 4 问题抽象(建立模型) 5 帧掩码(Frame Mask) 6 车道检测的图像预处理 7 图像阈值化 8 霍夫线变换 9 实现车道检测 9.1 帧掩码创 ...
- 【车道线检测论文】 LaneNet
论文名称:<Towards End-to-End Lane Detection an Instance Segmentation Approach> 论文链接:https://arxiv. ...
- 车道线检测在AR导航中的应用与挑战
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1. 导读 现代社会中,随着车辆的普及,人的活动范围在逐步扩大,单单依靠人类记忆引导行驶到达目的地已经 ...
- 论文解析:基于激光雷达的车道线检测 LLDN-GFC---K-Lane: Lidar Lane Dataset and Benchmark for Urban Roads and Highways
1.摘要 车道检测功能是检测本车道和相邻车道的准确位置和曲率,为路径规划功能提供必要的输入. 出发点: 随着大量的基于图像的车道线检测数据集出现,基于摄像头的车道线检测网络发展迅速,但这些算法依赖于图 ...
- 项目实训第一周(车道线检测)
项目实训我主要负责计算机视觉方面,识别出车道线并据此导航.相关内容也更新在我的个人博客上个人网站 相关介绍 车道线检测如果用传统方法,识别速度较慢,效果不够好,容易受到多种因素的干扰,因此我们打算开发 ...
- 一文详解车道线检测技术分析
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 针对车道线检测的任务,我们需要弄清楚几个问题: 1.车道线的表示形式? 输出类型:掩码/点集/矢量线条 ...
- 【深度学习】实战教程 | 车道线检测项目实战,霍夫变换 新方法 Spatial CNN
此文按照这样的逻辑进行撰写.分享机器学习.计算机视觉的基础知识,接着我们以一个实际的项目,带领大家自己动手实践.最后,分享更多学习资料.进阶项目实战,这部分属于我CSDN上的专栏,最后会按照顺序给出相 ...
- 基于深度强化学习的车道线检测和定位(Deep reinforcement learning based lane detection and localization) 论文解读+代码复现
之前读过这篇论文,导师说要复现,这里记录一下.废话不多说,再重读一下论文. 注:非一字一句翻译.个人理解,一定偏颇. 基于深度强化学习的车道检测和定位 官方源码下载:https://github.co ...
最新文章
- opencv2读取文件夹中图片
- linux脚本或关系表达,Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等...
- javascript运行机制之执行顺序详解
- REST WebService与SOAP WebService的比较
- 时间,数字 ,字符串之间的转换
- android磁场传感器页面布局在哪,基于磁场检测的寻线小车传感器布局研究
- Discuz X2 模块模板代码详解,DIY更容易!
- linux内存管理(二)-内存数据结构分析
- python编程(paddle ocr)
- 2018.12月问题整理杂记
- 原来把300页Word转成PPT,只需要一个键!别再复制粘贴了
- 如何搭建一个站内搜索引擎(二) 第2章 概述
- CAD填充块Hatch的深度解析
- 4种FPGA时钟分频 【附源码】:1.偶数分频;2.奇数分频(占空比50%);3.奇数分频(任意无占空比);4.小数分频;
- tongyongwangyekuaijiefangshi
- 如何将数据库中text字段中返回的数据转换成数组的形式,并且将字符串的数字转换成数字的形式显示
- python vba excel课程_【Python3+VBA】在Excel中生成小姐姐|python3教程|python入门|python教程...
- 2020-2021 ICPC 银川站【ACMer退役纪念】
- 代码静态分析工具PC-LINT安装配置
- 东软睿道实训心得:女生更好学好技术