源项目链接
一、安装
参考源项目安装教程,个别步骤有改动:
1、我没有安装Anaconda
,所以跳过步骤2
2、步骤3
中安装pythorch torchvision
的血泪史:网上看了很多下载pytorch源码
进行安装的教程,都没有成功,卡了N多天。今天搜Xavier配置tensorRT
的教程,无意中看到了其中用下载编译好的whl文件和安装包的方法配置pytorch、torchvision,试了后一次成功。
(2020.11.10更新)卸载pytorch
卸载torchvision
3、步骤3
中安装requirements.txt
中的依赖项
(1)opencv-python
是安装ROS时自带的
(2)tensorboard
域控制器刷机后自带tensorflow tensorboard
(3)addict pathspec
终端执行命令sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple addict pathspec
(4)sklearn
:用sudo pip3 install
安装时,下载好安装包后一直卡在安装依赖上,即使提前安装好依赖仍然如此。之后用sudo apt install python3-sklearn
安装成功,import sklearn
没有报错。
(5)tqdm
: $ sudo pip3 install tqdm
4、数据集准备
下载了TuSimple数据集,按照教程组织文件结构,只是在clips
文件夹下只放了0313-1 0313-2 0531 0601
四个数据文件夹
所以在执行convert_tusimple.py
脚本时,测试集.txt
的生成报错,只生成了train_gt.txt
。
(2020.09,19更新)demo.py
是基于CULane
数据集,只要下载好数据集,程序不需要做改动。
二、运行
1、修改configs/culane.py
data_root
改为CULane
根文件夹的绝对路径:/home/nvidia/.../CULane
官方文档里说log_path
也要修改,暂时没搞清楚怎么改,先保持原状。
2、 终端执行命令
python3 demo.py configs/culane.py --test_model model/culane_18.pth
执行完毕后,每个场景生成一个.avi
视频,共9个场景:正常,拥挤,强光照射,阴影,无车道线,车道中有指示箭头,弯道,交叉路口,夜晚。
三 BUGS
1、No module named ‘past’
$ sudo pip3 install future
2、 AttributeError: module ‘scipy.special’ has no attribute ‘softmax’
参考ModuleNotFoundError: No module named ‘scipy.special._ufuncs’,刷系统时后scipy=0.19.1,版本太旧,执行以下命令卸载scipy重新安装:
$ sudo apt-get purge python3-scipy
$ sudo pip3 install scipy
SciPy是一个开源的Python算法库和数学工具包。 SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。与其功能相类似的软件还有MATLAB、GNU Octave和Scilab。
3、ModuleNotFoundError: No module named ‘alfred.vis’
sudo pip3 install alfred-py
以下是将项目代码改造为ROS节点时遇到的BUG(2020.11.10更新)
4、改造为ROS节点时,用python3解释器,报错“ModuleNotFoundError: No module named ‘rospkg’”
sudo pip3 install rospkg
5、ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)
参考Unable to use cv_bridge with ROS Kinetic and Python3,报错原因是:cv_bridge在python2下编译,不能在python3下执行。因此参照博客开头卸载python3下的pytorch和torchvision,参考PyTorch for Jetson - version 1.7.0 now available安装python2.7下的pytorch和torchvision.
四 protobuf自定义ROS消息类型
参考[译]Protobuf 语法指南、Protobuf3 系列二 定义复杂的proto文件、Google Protobuf简明教程
四 publish车道线检测的消息类型
python中,在/opt/ros/melodic/share/autoware_msgs/msg/
下有DetectedObject.msg
和DetectedObjectArray.msg
,不需要自定义消息类型。
C++中,在/opt/ros/melodic/include/autoware_msgs/
下有DetectedObject.h
和DetectedObjectArray.h
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)