Autonomous Vehicle Object Detection and Trajectory Planning
基于 YOLOv3 与 CARLA 模拟器的自动驾驶感知与决策系统 (v1.0.0 Release)
项目简介
本项目是一个基于自动驾驶场景的毕业设计/课程作业。核心目标是利用深度学习算法 (YOLOv3) 对 CARLA 模拟器中的交通环境进行实时感知,并基于视觉反馈实现基础的自动紧急制动 (AEB) 决策。
系统通过 Python API 与 CARLA 服务器通信,经由 OpenCV DNN 模块进行推理,最终在可视化界面中展示检测结果与车辆控制状态。
核心功能
- 实时目标检测: 识别行人、车辆、交通标志等 80 类目标。
- 自动避障决策 (AEB): 当检测到前方有碰撞风险时,自动触发紧急刹车。
- 安全走廊可视化: 实时绘制驾驶辅助线,直观展示算法判定范围。
- 双模态控制: 支持在"自动驾驶模式"与"紧急接管模式"间自动切换。
- 性能监控: 集成 TensorBoard,实时记录 FPS 与置信度曲线。
- 灵活部署: 支持命令行参数配置 IP、端口及无头模式(Headless)。
项目结构
yolov3_vehicle_detection/
├── config/
│ ├── __init__.py # 模块导出
│ └── config.py # 全局配置
├── models/
│ └── yolo_detector.py # YOLOv3 目标检测
├── utils/
│ ├── carla_client.py # CARLA 客户端封装
│ ├── planner.py # AEB 决策规划
│ ├── logger.py # TensorBoard 日志
│ └── visualization.py # 可视化绘图
├── main.py # 程序主入口
├── download_weights.py # 模型下载脚本
├── requirements.txt # 依赖清单
└── README.md # 项目文档
快速开始
1. 环境准备
# 安装依赖
pip install -r requirements.txt
2. 模型权重获取
由于模型权重文件较大,未包含在 Git 仓库中,您可以通过以下方式获取:
自动下载:运行上述 download_weights.py 脚本,会自动从官方源下载所需文件。
下载 YOLO 模型权重:
python download_weights.py
下载完成后,请确保将权重文件放置在 models/ 目录下,文件结构如下:
models/
├── yolov3-tiny.weights # YOLO 模型权重文件
├── yolov3-tiny.cfg # YOLO 模型配置文件
└── coco.names # 类别名称文件
3. 基础运行
确保 CARLA 模拟器已启动,然后运行:
python main.py
4. 高级用法 (CLI)
本项目支持命令行参数,适用于不同测试场景:
-
连接远程服务器:
bash python main.py --host 192.168.1.X --port 2000 -
后台无界面模式 (Headless): 用于在服务器上长时间挂机测试,不显示 OpenCV 窗口:
bash python main.py --no-render
5. 性能监控
tensorboard --logdir=logs
配置说明
主要配置项位于 config/config.py:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| carla_host | 127.0.0.1 | CARLA 服务器地址 |
| carla_port | 2000 | CARLA 服务器端口 |
| conf_thres | 0.5 | YOLO 置信度阈值 |
| nms_thres | 0.4 | NMS 阈值 |
| camera_width | 800 | 摄像头分辨率 |
| camera_height | 600 | 摄像头分辨率 |
| SAFE_ZONE_RATIO | 0.4 | 安全区域比例 |
| COLLISION_AREA_THRES | 0.05 | 碰撞区域阈值 |
开发日志
- v1.0.0 (2026-03): 正式发布。集成 CLI 参数支持、安全走廊可视化与 AEB 完整逻辑。
- v0.9.0: 完成 TensorBoard 监控与全局配置重构。
- v0.5.0: 完成 YOLOv3 与 CARLA 的核心联调。