CCF-赛事感知(Perception)环境配置
1 Apollo Perception环境配置
1.1 安装基础软件
1.1.1 安装Linux - Ubuntu
安装 Ubuntu 操作系统,请参见官方安装指南。
注意:推荐您使用 Ubuntu 18.04.5 或以上的版本作为您主机的操作系统,若采用18.04版本可使用:Ubuntu 18.04.5 LTS (Bionic Beaver)
Ubuntu系统安装完成请更新相关软件:
sudo apt-get updatesudo apt-get upgrade
注意:更新过程中请务必保持网络链接畅通。
1.1.2 安装 Docker Engine
Apollo 依赖于 Docker 19.03+。安装 Docker 引擎,您可以根据官方文档进行安装:
- 您还可以者通过 Apollo 提供的安装脚本直接安装:这个过程可能会运行多次脚本,根据脚本提示执行即可。
wget http://apollo-pkg-beta.bj.bcebos.com/docker_install.shbash docker_install.sh
注意:1.1.1和1.1.2步骤安装过无需重复安装。
1.1.3 安装驱动
可参照官网方法安装驱动官网驱动。
显卡驱动和CUDA版本兼容性,由于nvidia的硬件更新的很快,因此会遇到显卡驱动和CUDA版本不兼容的情况,以下为我们测试的畅通链路。
显卡系列 | 测试显卡 | 驱动版本 | 最低支持驱动版本 | cuda版本 |
GeForce 10 Series | GeForce GTX 1080 | nvidia-driver-470.160.03 | nvidia-driver-391.35 | CUDA Version :11.4 |
GeForce RTX 20 Series | GeForce RTX 2070 SUPER | nvidia-driver-470.63.01 | nvidia-driver-456.38 | CUDA Version :11.4 |
GeForce RTX 30 Series | GeForce RTX 3090 | nvidia-driver-515.86.01 | nvidia-driver-460.89 | CUDA Version :11.6 |
GeForce RTX 3060 | nvidia-driver-470.63.01 | nvidia-driver-460.89 | CUDA Version :11.4 | |
Tesla V-Series | Tesla V100 | nvidia-driver-418.67 | nvidia-driver-410.129 | CUDA Version :10.1 |
AMD | MI100 dGPU | ROCm™ 3.10 driver |
10、20、30系列显卡推荐使用470.63.01版本,下载链接470.63.01显卡驱动
下载之后,找到相应的文件夹打开终端输入指令:
sudo chmod 777 NVIDIA-Linux-x86_64-470.63.01.runsudo ./NVIDIA-Linux-x86_64-470.63.01.run
安装nvida-dockernvida-docker官方教程
为了在容器内获得 GPU 支持,在安装完 docker 后需要安装 NVIDIA Container Toolkit。 运行以下指令安装 NVIDIA Container Toolkit:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.listsudo apt-get -y updatesudo apt-get install -y nvidia-docker2
驱动检查
nvidia-smi
如若出现以下情况,则说明没有下载显卡驱动
然后再参考如下链接
https://apollo.baidu.com/community/article/1181
注意:本教程只适用于ubuntu系统,虚拟机无法安装显卡驱动,wsl请自行上网搜索
1.2 安装 Apollo 环境管理工具
Apollo 环境管理工具是一个管理和启动 Apollo 环境容器的命令行工具,详细信息可参见: aem-Apollo环境管理工具。
1.2.1 基础环境准备
# 添加访问认证wget -O - https://apollo-pkg-beta.cdn.bcebos.com/neo/beta/key/deb.gpg.key | sudo apt-key add -# Apollo -alpha 版源地址sudo bash -c "echo 'deb https://apollo-pkg-beta.cdn.bcebos.com/apollo/core bionic main' >> /etc/apt/sources.list.d/apolloauto.list"# 更新源sudo apt update
注意:如果之前已经安装过8.0版本的apollo的话,在您的宿主机/etc/apt/sources.list
文件中会有形如
deb https://apollo-pkg-beta.cdn.bcebos.com/neo/beta bionic main
的配置,请直接删除。
宿主机上的apollo源配置仅用于安装aem
工具,apollo 9.0.0-alpha2-r1
版本的aem
兼容apollo 8.0
1.2.2 安装 aem工具
apollo 9.0.0-alpha2-r1
版本的aem
兼容apollo 8.0
aem
,请使用以下指令进行更新。
如果没有安装过apollo 8.0
aem,
使用以下命令直接安装。
sudo apt install apollo-neo-env-manager-dev
安装成功后,可以使用以下查看安装是否成功。
aem -h
1.3 下载 Perception工程
1.3.1 下载工程代码
3.3.1 下载工程代码
git clone https://github.com/ApolloAuto/application-perception
3.3.2 进入工程目录
- **提示:** 如果出现⽆法访问等问题,可使⽤以下⽅法。
1.3.2 进入工程目录
cd application-perception
- 目录结构说明
- core目录,系统依赖包,里面
cyberfile.xml
描述了使用软件包的信息。 - WORKSPACE:与bazel相关的一些配置信息,一般不需要用户关注。
检查工作目录
cat .workspace.json
如若显示
{
"repositories" : [{"name": "apollo-core", "version": "9.0.0-alpha2-r29"}]
}
请使用:git pull
或手动更改.workspace.json文件的9.0.0-alpha2-r29为9.0.0-alpha2-r31
再使用cat .workspace.json 指令
1.4 调试perception工程
1.4.1 进入Docker环境
检查工作目录是否正确
cat .workspace.json
检查buildtool版本
查是否有显卡驱动
nvidia-smi
如若出现以下情况,则说明没有下载显卡驱动,退出容器(输入指令:exit),
输入指令:exit
然后再参考如下链接
https://apollo.baidu.com/community/article/1181
注意:本教程只适用于ubuntu系统,虚拟机无法安装显卡驱动,wsl请自行上网搜索
再清除容器: aem remove
启动容器:aem start
进入容器:aem enter
检查buildtool版本
buildtool -v
如若buildtool版本与上图不一致,即以9.0.0-alpha2开头的版本,请使用以下指令更新:
sudo apt update && sudo apt install --only-upgrade apollo-neo-buildtool
升级aem工具
sudo apt install apollo-neo-env-manager-dev
安装依赖包
该工程中只有感知功能,如若想添加PnC功能请参考如下链接(可选)
请参考文章中的1.1.5升级CCF- BDCI赛事复赛工程
https://apollo.baidu.com/community/article/1180
1.4.2 设置车型参数
本次赛事用的是apolloscape数据集,车型参数设置为apolloscape参数。
aem profile use apolloscape
1.4.3 启动Dreamview+
aem bootstrap start --plus
plus参数指的是启动dreamview+。
1.4.4 下载安装感知模型
安装amodel模型管理工具
wget https://apollo-pkg-beta.cdn.bcebos.com/perception/amodel-0.2.0.tar.gzpip3 install --user amodel-0.2.0.tar.gz
导入环境变量
export PATH=~/.local/bin/:$PATH
安装感知模型
sudo ~/.local/bin/amodel install center_point_paddle
安装完后使用命令查看安装的模型
amodel list
1.4.5 启动lidar感知程序
启动lidar感知有两个方法,以下两个方法选择一个。
1.4.5.1 Dreamview+ 启动
dv启动
启动transform模块
启动lidar感知模块
命名行启动
命令行启动
启动transform
# 启动transformcyber_launch start /apollo/modules/transform/launch/static_transform.launch
启动lidar感知
cyber_launch start /apollo/modules/perception/lidar_output/launch/lidar_output.launch
最后播包来调试感知,在dv观察感知情况。record包的生产参考下面的数据准备部分。
# xxx.record是具体record的名称cyber_recorder play -f xxx.record
2 数据准备
2.1 数据下载
训练集、测试集和脚本代码中分别有readme说明。
序号 | 名称 | 相关链接 | 说明 |
1 | 训练集 | ApolloScape的训练数据集 | |
2 | 测试集 | ApolloScape的测试数据集 (分数榜单使用的数据集) | |
3 | 脚本代码 | 将ApolloScape数据集转换为KITTI数据集的脚本 将ApolloScape数据转换为record的脚本 |
2.2 adataset环境配置
adataset用于将apolloscape数据转化为apollo record格式,方便做端到端感知调试。
aem enter # 在application-perception目录下进入到容器内。如果已经在容器内,则不需要执行。
安装adataset
# 更新pip源pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/# 升级pippython -m pip install --upgrade setuptools# 安装adatasetpip install adataset
2.3 数据转化
在脚本代码中有apolloscape_to_records.py和apolloscape_to_kitti.py。
使用apolloscape_to_records.py将apolloscape转化成apollo records数据。
# -d表示apolloscape数据集。用a就好;# -i表示数据数据集。这里目录就用训练集和测试集的目录;# -o输出目录。注意:目录要提前创建好;# -t类型。用rcd就好。python scripts/apolloscape_to_records.py -d=a -i=train/ -o=train_records/ -t=rcd
使用apolloscape_to_kitti.py将apolloscape数据转化kitti格式,用于训练centerpoint模型。
注意:此步骤可在本地环境操作,不需要在容器中。本地需要具备pypcd库、numpy库和python2环境。
# --pcd_path: 点云数据路径,这里用的是pcl_pcd;# --label_path: 标注结果。这里用的是detection_label;# --output_path: 存放生成的数据,包括点云和标注两部分。python2 scripts/apolloscape_to_kitti.py --pcd_path=train/pcl_pcd/ --label_path=train/detection_label/ --output_path=./kitti