项目简介
本项目为2021中国(沈阳)智能网联汽车国际大会(2021 China (Shenyang) Intelligent Connected Vehicles Conference, CIVC)“AD Chauffeur 杯”仿真算法挑战赛自动驾驶赛题云逸行-东北大学赛队的比赛项目,并在决赛中获得第二名的成绩与自动驾驶组银奖的荣誉。项目包含感知、决策、控制相关部分,使用Python语言完成,运行过程与初赛决赛成绩如图所示。
` 感谢CIVC主办方与AD Chauffeur 仿真平台提供方,期待下一届大会与比赛的举办。`
注:目前比赛平台已关闭,无法在比赛平台运行!可以在AD Chauffeur 仿真平台官方网站申请使用平台,并修改部分代码迁移至新仿真环境!
2021CIVC官网: https://civc.verodata.com.cn/
AD Chauffeur 仿真平台官网:https://www.adchauffeur.cn/
感谢旷视公司开源的YOLOX目标检测算法模型与代码,我们在本项目的感知模块使用到了YOLOX算法,在COCO数据集中预训练的模型权重在仿真环境中也有较好的效果。
YOLOX开源项目:https://github.com/Megvii-BaseDetection/YOLOX
YOLOX论文地址:https://arxiv.org/abs/2107.08430
- 项目运行演示
内容亮点
感知
- 纯视觉测距,使用旷视开源YOLOX模型进行目标检测,并基于该模型进行了前方障碍物单目测距;
- 使用点与三角形位置关系判断障碍所在车道位置,目标点取目标检测框的底边中点;
- 识别自动驾驶车辆前方相邻三个车道最近障碍物的距离,为决策提供判据;
- 针对深度学习模型输出不稳定的特点,对单目测距的数据进行了平滑处理。
控制
- 横纵控制分离的分段PID控制方式;
- 使用车身前2米处车道线的位置,提高了控制的前瞻性;
- 车规级车辆控制方式:follow, overtake, speedup状态机,后期speedup和overtake无缝切换,成为马路杀手。
项目运行环境
硬件环境:8核Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz处理器,单卡NVIDIA GTX 1080显卡
操作系统:ubuntu 18.04
软件环境:Python 3.7.2
文件结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
├── ADCPlatform: 比赛开放的仿真平台的接口,平台数据的定义等
|
├── control: 控制算法模块代码
|
├── images: 运行过程的gif动图及比赛分数
|
├── initial: 平台传感器及各算法模块参数的初始化
|
├── perception: 感知算法模块代码,其中还包括YOLOX开源代码及预训练模型下载脚本
|
├── planning: 决策规划算法模块代码
|
├── sensor: 自动驾驶车辆传感器运行代码
|
├── yolox: YOLOX项目提供的代码库文件夹,用来在项目中导入yolox模块
|
├── requirements.txt: 项目的Python库依赖环境
|
└── main.py: 项目的运行主文件
安装与运行教程
- 注:目前比赛平台已关闭,无法在比赛平台运行!可以在AD Chauffeur 仿真平台官方网站申请使用平台,并修改部分代码迁移至新仿真环境!
Step1. 下载项目代码至本地
1
2
git clone git@gitee.com:icvrc2021-neu/icvrcautonomous-driving.git
cd ./icvrcautonomous-driving
Step2. 进入到./perception/pretrainedmodel文件夹中,运行脚本下载YOLOX预训练模型权重
1
2
3
4
5
6
7
8
9
10
cd ./perception/pretrainedmodel
# 脚本默认下载yolox_l模型权重,如果想下载全部的模型权重,则运行如下代码
# bash DownloadModel.sh all
# 如果想下载某一个yolox的模型权重,则运行如下代码,其中yolox_tiny可改变成其他模型
# bash DownloadModel.sh yolox_tiny
# 共五种模型权重有小到大分别为yolox_tiny, yolox_s, yolox_m, yolox_l, yolox_m
# 本项目代码中默认使用yolox_l模型权重
bash DownloadModel.sh
cd ../..
Step3. 配置Python代码库运行环境
1
2
# 要求torch的版本为大于1.7的gpu版本
pip install -r requirements.txt
Step4. 修改main.py文件中的登录用户名与密码
1
2
3
4
5
6
7
8
9
# 修改30行的字符串为自己的用户名,32行的字符串为密码
# 28行字符串为仿真平台服务器地址,迁移至新的仿真环境中时需要修改
27 # 设置服务器访问地址
28 serverUrl = 'https://web.simu.widc.icvrc.cn/api/'
29 # 设置登录用户名
30 username = 'YYX_zdjs'
31 # 设置登录密码
32 password = '******'
Step5. 在AD Chauffeur仿真平台网页运行仿真界面后,启动本项目
1
2
3
# 首先在网页端启动AD Chauffeur仿真平台
# 然后运行项目
python main.py