自动驾驶感知与控制系统研究 (基于 CARLA)

1. 项目简介

本项目旨在通过 Python 脚本与 CARLA 仿真环境进行深度交互,搭建一个基础的自动驾驶测试环境。项目将探索如何利用深度学习视觉算法和虚拟传感器数据,实现对仿真世界中动态物体的检测、环境感知以及基础的车辆控制。

2. 选题说明

  • 参考开源项目: kamilkolo22/AutonomousVehicle
  • 重构思路: 原项目部分模块对 Windows 系统兼容性较差,本项目提取其“视觉识别 + 传感器交互”的核心架构,在 Windows 环境下使用纯 Python 配合 PyTorch 进行完全重构,以确保跨平台的易用性和代码的可读性。

3. 开发运行环境

  • 操作系统: Windows 10/11
  • 仿真平台: HUTB CARLA_Mujoco_2.2.1
  • 编程语言: Python 3.8
  • 核心框架: PyTorch (支持 CUDA 加速), OpenCV
  • 开发工具: Visual Studio Code / Anaconda

4. 模块结构与入口

  • 本模块的所有核心代码存放于 src/carla_yolo_detection 目录下。
  • 模块的主程序入口为 main.py

5.运行指南

步骤 1:启动 CARLA 模拟器

运行 CarlaUE4.exe,等待地图加载完毕。

步骤 2:配置 Python 环境

⚠️ 核心避坑:本项目基于 HUTB CARLA_Mujoco_2.2.1,必须先手动安装模拟器自带的 carla 库,不能直接 pip install carla。

请在 Anaconda 环境(推荐 Python 3.8)中,依次执行以下命令:

  1. 安装底层 CARLA API (请将路径替换为你电脑上实际的 .whl 路径):

```bash pip install D:\hutb\hutb_car_mujoco_2.2.1\PythonAPI\carla\dist\hutb-2.9.16-cp38-cp38-win_amd64.whl

```

  1. 安装常规依赖库: pip install -r src/carla_yolo_detection/requirements.txt -i [https://pypi.tuna.tsinghua.edu.cn/simple](https://pypi.tuna.tsinghua.edu.cn/simple)

  2. (可选) 开启 GPU 显卡加速: 如果你拥有 NVIDIA 显卡并希望获得 30+ 的流畅 FPS,请务必额外执行此命令覆盖安装 CUDA 版 Torch:

```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

```

步骤 3:运行程序 请在项目根目录下执行核心脚本: python src/carla_yolo_detection/main.py

[第2次提交] carla_yolo_detection: 实时感知与背景车流系统

1. 模块功能

本模块实现了自动驾驶视觉感知的基础闭环:

  • 实时物体检测: 集成 YOLOv5s 模型,实时识别 CARLA 环境中的车辆与行人。
  • 背景交通流生成: 利用 Traffic Manager 自动随机部署 30 辆背景车,模拟动态路况。
  • 异步推理架构: 优化了图像处理流程,通过回调截取最新帧,避免了深度学习推理导致的画面卡死,并支持实时 FPS 显示。
  • 安全监听: 挂载碰撞传感器 (Collision Sensor),实时在终端发出碰撞预警。

2. 运行效果


[第3次提交] 前向测距与 AEB 自动紧急制动系统

1. 功能说明

在感知系统的基础上,本版本引入了决策与控制模块,实现了车辆的主动安全防护,并大幅优化了仿真体验:

  • 多传感器同步与测距:同步挂载 RGB 与 Depth 深度相机(统一 FOV 与 Transform)。利用 YOLO 提取目标框,映射至深度图取中值,实现了极具鲁棒性的抗噪前向测距。
  • 三段式接管控制 (AEB)
  • 距离 > 15m (NORMAL):安全状态,车辆交由 Autopilot 自主巡航。
  • 5m < 距离 <= 15m (WARN):预警状态,终端提示注意前方目标。
  • 距离 <= 5m (BRAKE):危险状态,系统强行覆盖 Autopilot,油门归零、刹车拉满 (brake=1.0),画面闪烁红色警报覆层。危险解除后自动恢复 Autopilot。
  • 仿真环境深度优化
  • 自动垃圾回收:启动时自动销毁上次运行残留的车辆与传感器,杜绝幽灵碰撞。
  • 视角自动追踪:初始化时自动将 CARLA 旁观者视角 (Spectator) 锁定至自车上方,告别手动找车的烦恼。
  • HUD 增强显示:新增自车实时全局坐标 (X, Y, Yaw) 与 AEB 状态指示灯的屏幕渲染。

2. 运行效果展示

图:系统成功捕获前方小于5米的目标,瞬间夺取控制权触发 EMERGENCY BRAKE,并渲染红色全屏警报。

[第4次提交] 视觉车道偏离预警系统 (LDW)

功能说明

在实现纵向控制 (AEB) 的基础上,本版本引入了横向环境感知,通过纯视觉算法实现了高鲁棒性的车道偏离预警系统 (Lane Departure Warning):

图像预处理流水线:通过 灰度化 -> 高斯模糊 -> Canny 边缘检测 -> 梯形 ROI 掩膜,精准滤除天空、对向车道及路外建筑的干扰,聚焦本车道特征。 抗锯齿车道线提取:使用霍夫变换 (HoughLinesP) 提取线段,结合斜率正负分类,并通过一次多项式回归拟合 ($x = f(y)$) 重构左右车道线,有效解决透视畸变与垂直斜率崩溃问题。 动态偏离计算与低速屏蔽:实时计算车道中心与画面中心(自车中心)的像素偏移量 (Offset)。引入速度动态过滤机制,当车速低于 5.4km/h(多为路口或起步)时自动挂起检测,杜绝复杂路口斑马线的误报。 沉浸式 HUD: NORMAL: 路面铺设半透明蓝色安全引导区,绘制动态虚线中心线。 WARNING: 偏移量突破阈值 (pm 60px) 时,触发双向警报,越界侧车道线高亮变红,并在屏幕中央及左上角弹出醒目的方向纠正提示。

运行效果展示

LDW车道偏离预警

图:系统提取车道边界,在车辆偏移压线时触发红色警报并提示偏离方向,同时完美兼容原有的 YOLO 车辆检测与 AEB 测距。