ubuntu20.04复现车道线检测laneatt算法

github地址:GitHub - lucastabelini/LaneATT: Code for the paper entitled "Keep your Eyes on the Lane: Real-time Attention-guided Lane Detection" (CVPR 2021)

我是ubuntu20.04的版本,并且我的电脑上已经安装了显卡驱动、Anaconda,并且已经下载好了代码(可以直接在终端输入 git clone https://github.com/lucastabelini/LaneATT 下载代码)下面开始安装。

一、环境配置

使用pytorch1.13.1+CUDA11.7+cuDNN8.9进行环搭建

(内容参照 https://blog.csdn.net/weixin_43607192/article/details/130846983

1.1 CUDA安装

由于我的电脑本身就安装了显卡驱动,所以直接开始安装CUDA11.7.0。

进入官网选择对应信息得到下载指令:

于是在终端中依次输入:

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run

后续步骤参照我的另一篇安装博客:ubuntu20.04安装CUDA-CSDN博客

1.2 cuDNN安装

(此前我一直没理解为什么要安装cuDNN,如果有跟我一样困惑的朋友可以看下这篇文章配置显卡驱动、CUDA、cuDNN以及说明三者之间的关系_cudnn和cuda的关系-CSDN博客

进入并登录官网选择对应CUDA 11.x版本使用的cuDNN v8.9.0,选择Linux版本进行下载。

解压后分别在终端输入下面的命令:

sudo cp cudnn-linux-x86_64-8.9.0.131_cuda11-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -p cudnn-linux-x86_64-8.9.0.131_cuda11-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

到此完成了cuDNN在CUDA中的激活。

1.3 安装pytorch 1.13.1

首先,创建并激活虚拟环境(此处我使用的python3.8的版本)

conda create -n laneatt python=3.8 -y
conda activate laneatt

安装pytorch 1.13.1

pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117

进入代码LaneATT目录下,安装其他必要的包及nms

pip install -r requirements.txt
cd lib/nms
python setup.py install
cd -

至此,LaneATT环境配置成功。

注意

1.好像GTX30以上显卡最低支持CUDA11

我曾经强行安装过CUDA11.0以及CUDA10.2+cuDNN8.7,运行python setup.py install时均失败了。(以上提到的两种情况均为搭配的pytorch1.6版本)

但是有一位GTX3090的朋友在编译前输入了下面的命令之后成功了

export TORCH_CUDA_ARCH_LIST="8.0"

(参考:NMS replacement · Issue #94 · lucastabelini/LaneATT · GitHub

此处查看GPU型号的命令为

nvidia-smi --query-gpu=gpu_name --format=csv,noheader

2.在运行python setup.py install时经常提示命令最好换一个,我没管,不影响结果。

二、开始训练

1. 下载CULane数据集

进入/LaneATT/lib/datasets目录,创建新的文件夹culane,将数据集下载到此处。

我的下载链接是 https://drive.google.com/drive/folders/1mSLgwVTiaUMAb4AVOWwlCD5JcWdrwpvuhttps://github.com/lucastabelini/LaneATT/blob/main/DATASETS.mdhttps://drive.google.com/drive/folders/1mSLgwVTiaUMAb4AVOWwlCD5JcWdrwpvu(数据集大约40G)

在训练前,以laneatt_culane_resnet34为例,需要更改LaneATT/cfgs下的.yml文件的root路径:

之后进入LaneATT目录,执行下面命令就可以进行训练和测试了。

python main.py train --exp_name laneatt_r34_culane --cfg cfgs/laneatt_culane_resnet34.yml
python main.py test --exp_name laneatt_r34_culane 

BUT!!!在我训练时反复报错:RuntimeError: indices should be either on cpu or on the same device as the indexed tensor (cpu)

查了很久,我在代码前添加了下面三行:

ends = ends.to(torch.device('cuda'))
all_indices = all_indices.to(torch.device('cuda'))
invalid_offsets_mask=invalid_offsets_mask.to(torch.device('cuda'))

 然后代码就可以正常的运行啦~~~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值