自动驾驶汽车 self-driving-car

⭐⭐⭐⭐☆ (4/5) 🧩 软硬件结合 已发布
ndrplz 5576 Stars 未知 BOM 完整度: /5 教程完整度: /5

项目简介

Udacity Self-Driving Car Engineer Nanodegree projects.


这是一个由 Udacity 自动驾驶汽车工程师纳米学位课程项目代码组成的开源仓库,汇集了从计算机视觉基础到路径规划与控制的完整技术栈。项目以 12 个循序渐进的实战项目为核心,覆盖了自动驾驶系统的关键模块:在感知层面,实现了基于 Canny 边缘检测和霍夫变换的基本车道线识别,以及利用透视变换、滑动窗口和曲线拟合的进阶车道线检测;同时包含基于 HOG 特征与 SVM 分类器的车辆检测,以及使用深度学习进行交通标志分类和道路语义分割的方案。在定位与状态估计方面,项目提供了扩展卡尔曼滤波、无迹卡尔曼滤波以及粒子滤波(绑架车辆问题)的完整实现。在控制与规划层面,涵盖了 PID 控制器、模型预测控制(MPC)以及基于 Frenet 坐标系的行为规划与轨迹生成。此外,还有一个交通灯分类器作为综合项目的组成部分。

标签

项目特点

涵盖Udacity自动驾驶纳米学位的全部12个核心项目,内容系统全面
涉及计算机视觉、深度学习、状态估计、控制理论和路径规划等多个领域
每个项目都有独立的代码目录和详细说明,便于学习和复用
包含丰富的可视化结果和演示视频链接
使用多种编程语言和框架(Python、C++、TensorFlow、Keras、OpenCV)

技术规格

项目总数
主要编程语言
主要框架/库
核心算法
适用平台
数据来源

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
Python 3.x 1 用于大部分项目
C++编译器 1 用于P6-P11项目
TensorFlow 1 深度学习框架
Keras 1 深度学习框架
OpenCV 1 计算机视觉库
Udacity模拟器 1 用于P3、P9、P10等项目
带GPU的计算机 1 推荐用于深度学习训练

所需工具

工具用途是否必需
Python开发环境 运行Python项目代码 ✅ 是
C++开发环境 编译运行C++项目 ✅ 是
Jupyter Notebook 交互式开发和可视化 ✅ 是
Git 版本控制和代码管理 ✅ 是
GPU (NVIDIA CUDA) 加速深度学习训练 ▢ 推荐

能力画像

记忆与知识检索
2/5
逻辑推演
4/5
表达与交流
1/5
感知与观察
3/5
数理与计算
5/5
动手与操作
3/5
狂热与坚持
4/5
创造与创新
3/5

视频

watch

watch

watch

watch

watch

所需技能

🔧 **动手能力**:需要配置开发环境、安装依赖库、运行模拟器,并能够调试代码和调整参数。 💻 **编程能力**:需要熟练掌握Python和C++编程,理解TensorFlow/Keras等深度学习框架的使用,以及OpenCV图像处理库。 ⚡ **电子电路**:不涉及硬件电路,但需要理解传感器(摄像头、激光雷达、雷达)的工作原理和数据特性。

适用场景

学习自动驾驶核心技术栈,从感知到控制再到路径规划的完整流程
作为Udacity纳米学位的配套代码库,辅助课程学习和项目实践
为自动驾驶相关的研究或工作提供参考实现和基线代码
用于教学演示,展示计算机视觉、深度学习和控制理论在自动驾驶中的应用