NEAT: 神经注意力场用于端到端自动驾驶
项目介绍
NEAT(Neural Attention Fields)是一个用于端到端自动驾驶的开源项目,由autonomousvision团队开发。该项目在ICCV 2021上发表,旨在通过神经注意力场技术实现自动驾驶系统的端到端训练和部署。NEAT结合了神经网络和注意力机制,能够在复杂的交通环境中实现高效的路径规划和决策。
项目快速启动
环境设置
首先,按照以下步骤设置CARLA模拟器和NEAT的conda环境:
-
安装CARLA模拟器: 请参考TransFuser仓库的安装说明来设置CARLA模拟器。
-
创建conda环境: 使用以下命令创建并激活NEAT的conda环境:
conda env create -f environment.yml conda activate neat
-
安装PyTorch: 安装适用于CUDA 11.1的PyTorch:
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia
-
安装MMCV和MMSegmentation(仅适用于AIM-VA基线):
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html pip install mmsegmentation
数据生成
生成训练数据需要定义路线和场景。每个路线由一系列路径点(和可选的天气条件)定义,每个场景由触发变换(位置和方向)和其他场景中的演员(可选)定义。
-
运行CARLA服务器: 使用以下命令启动CARLA服务器:
./CarlaUE4.sh --world-port=2000 -opengl
-
运行自动驾驶仪: 启动CARLA服务器后,使用以下命令启动自动驾驶仪以开始数据生成:
./leaderboard/scripts/run_evaluation.sh
训练模型
下载预训练模型并开始训练:
mkdir model_ckpt
wget https://s3.eu-central-1.amazonaws.com/avg-projects/neat/models.zip -P model_ckpt
unzip model_ckpt/models.zip -d model_ckpt/
rm model_ckpt/models.zip
模型评估
启动CARLA服务器并运行所需的代理:
CUDA_VISIBLE_DEVICES=0 ./leaderboard/scripts/run_evaluation.sh
应用案例和最佳实践
NEAT项目在自动驾驶领域有广泛的应用,特别是在复杂交通环境中的路径规划和决策。以下是一些应用案例和最佳实践:
-
城市道路自动驾驶: NEAT在城市道路中的表现尤为突出,能够处理复杂的交通信号、行人、自行车等多种交通参与者。
-
高速公路自动驾驶: NEAT在高速公路上的表现也非常出色,能够实现高效的车道保持和超车决策。
-
自动驾驶竞赛: NEAT在多个自动驾驶竞赛中取得了优异成绩,展示了其在实际应用中的潜力。
典型生态项目
NEAT项目与多个开源项目和工具链紧密结合,形成了强大的生态系统:
-
CARLA模拟器: CARLA是一个开源的自动驾驶模拟器,NEAT项目依赖于CARLA进行数据生成和模型评估。
-
TransFuser: TransFuser是NEAT项目的前身,提供了丰富的自动驾驶数据和模型。
-
MMCV和MMSegmentation: MMCV和MMSegmentation是OpenMMLab项目的一部分,提供了高效的计算机视觉工具,NEAT项目在AIM-VA基线中使用了这些工具。
通过这些生态项目的结合,NEAT项目能够实现更高效的自动驾驶系统开发和部署。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考