基于Ultra的车道线检测在地平线旭日X3派上的部署和测试(Python版本和C++版本)

电脑端的测试环境搭建

参考:https://github.com/cfzd/Ultra-Fast-Lane-Detection

conda create -n wyj_lane python=3.7
conda activate wyj_lane
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
pip install -r requirements.txt
#测试
python demo.py configs/culane.py --test_model path_to_culane_18.pth

github上下在的Ultra内不包含测试的数据集,可以下载本人报读网盘内的测试程序包括我修改的模型转换代码和下载后配置好的测试数据集:ultra车道线检测->文件->Ultra-Fast-Lane-Detection-master.rar

模型转换(pth->onnx)

搭建好git上的测试工程后找到一下位置,添加一下代码运行一下测试就可以保存出onnx模型

https://github.com/cfzd/Ultra-Fast-Lane-Detection

在demo.py文件中找到net.load_state_dict()函数

在上述的net.load_state_dict()函数后添加一下代码

    print("wyj============================================================================",net)
    dummy_input = torch.randn(1, 3,288,800)
    dummy_input = dummy_input.cuda()
    torch.onnx.export(net,dummy_input,"culane_18.onnx",opset_version=11,verbose=True)
    print("wyj============================================================================end")

运行一下测试就可以将onnx模型保存在当前的文件夹下

测试指令(测试时需要测试数据,这部分需要下载CULane数据集)

python demo.py configs/culane.py –test_model path_to_culane_18.pth

下载后的数据集放置在当前文件夹下就可以。数据自行百度下载,下载后的文件。(感谢网友的分享)

模型转换(onnx-bin)

使用的虚拟机(Ubuntu 64_kkX3_OCR)

使用教程

#激活虚拟环境
conda activate x3model

#进入到指定的测试路径
cd /home/kkx3/wyj/x3/TransModel/horizon_model_convert_sample/04_detection/09_lane/mapper

将需要转换的模型放置在一下路径下

01_check.sh文件的配置如下所示

#执行模型检查
bash 01_check.sh

修改配置配置文件02_preprocess.sh

#执行
bash 02_preprocess.sh 

修改配置文件

#执行
bash 03_build.sh

转换后的模型保存路径(/home/kkx3/wyj/x3/TransModel/horizon_model_convert_sample/04_detection/09_lane/mapper/model_output/culane_18.bin)

将上述转换后的模型上传到板端就可以测试了

板端的测试(python)

使用的文件是:10_lane_sample.rar,解压后放到板端并执行一下测试的指令就可以完成python版本的测试,在板端的实测推理时间约是43ms,实测的截图如下所示:

#上述的压缩包解压后复制到板端
cd /app/pydev_demo/10_lane_sample
#运行
./test_yolov5.py

运行后结果保存在当前的文件夹下,图片的名称为:lane_result.png

测试图片

测试结果

板端的测试(C++)

使用的文件是:bpu_lane.rar,解压后放到板端并执行一下测试的指令就可以完成python版本的测试,

#测试路径
/app/cdev_demo/bpu_lane
#编译
cd /app/cdev_demo/bpu_lane/src
make clean 
make 
#运行
cd /app/cdev_demo/bpu_lane/src/bin
./sample -f /app/model/basic/culane_18.bin -m 0

测试的结果视频

https://www.bilibili.com/video/BV1og4y1974s/?vd_source=ad91195cee58ee2b153eea03d98c3409#reply832832003

未经允许不得转载:金书世界 » 基于Ultra的车道线检测在地平线旭日X3派上的部署和测试(Python版本和C++版本)

相关文章

评论 (0)