Self-Driving Pi Car数据收集实战:从摄像头采集到图像标签的完整教程
Self-Driving Pi Car数据收集实战:从摄像头采集到图像标签的完整教程
Self-Driving Pi Car是一个基于深度神经网络的自动驾驶项目,它将Lego Mindstorms NXT与Raspberry Pi 3的计算能力相结合,让你能够打造属于自己的自动驾驶小车。数据收集是训练自动驾驶模型的基础,本教程将带你完成从摄像头图像采集到数据标签生成的全过程。
准备工作:环境搭建与依赖安装
开始数据收集前,需要先配置好开发环境。项目提供了详细的依赖清单,确保你已安装所有必要组件:
- 克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/se/self_driving_pi_car
- 安装Python依赖:
pip install -r requirements.txt
pip install -r raspberry_pi_requirements.txt
数据收集核心组件解析
项目的数据收集功能主要由self_driving/data_collection/DataCollector.py模块实现,该模块包含两个关键类:
- DataCollector:抽象基类,提供图像保存和数据字典管理的基础功能
- BasicDiffCollector:继承自DataCollector,专为差分驱动模型设计,支持键盘控制和方向标签(上、下、左、右)
硬件连接要求
数据收集需要以下硬件组件:
- Raspberry Pi 3(或兼容型号)
- Lego Mindstorms NXT机器人
- 摄像头模块(通过
vision/Camera.py控制) - 蓝牙模块(用于控制NXT机器人)
实战步骤:使用BasicDiffCollector采集数据
1. 启动数据收集程序
通过以下命令启动数据收集脚本:
python self_driving/data_collection/DataCollector.py -n my_dataset
其中-n参数指定数据集文件夹名称,默认为"pista"。
2. 键盘控制与数据采集
程序启动后,你可以使用键盘控制小车并采集数据:
- 上箭头:前进并记录"up"标签
- 下箭头:后退(不记录数据)
- 左箭头:左转并记录"left"标签
- 右箭头:右转并记录"right"标签
- Q键:退出程序
每次按键操作时,系统会自动:
- 从摄像头捕获图像(通过
Camera.take_picture_rgb()方法) - 执行相应的小车控制指令
- 将图像保存为PNG文件(格式:{count}.png)
- 在数据字典中记录图像与标签的对应关系
3. 数据存储结构
采集的数据将保存在两个位置:
- 图像文件:保存在
{name}/{date}/目录下(如my_dataset/20230702/) - 标签数据:保存在
{name}/{date}_pickle文件中,使用pickle格式存储
数据采集场景示例
为了获得高质量的训练数据,建议在类似下图的标准化赛道上进行采集:
这个赛道使用白色胶带在棕色地面上铺设,提供了清晰的视觉边界,有助于模型学习路径跟踪。你可以根据需要调整赛道形状和复杂度,逐步增加训练难度。
数据采集最佳实践
1. 采集足够数量的样本
为了训练出稳健的模型,建议每个方向至少采集200张图像。可以通过多次运行数据收集程序来累积样本。
2. 多样化采集条件
- 尝试不同的光照条件(白天/夜晚)
- 改变赛道复杂度(直道、弯道、交叉路口)
- 调整行驶速度(慢速、中速)
3. 数据质量检查
采集完成后,可以通过self_driving/data_manipulation/test/pictures_for_test/toy_data/目录中的示例图像,检查你的数据质量是否符合要求。
数据后续处理
采集完成的数据可以通过以下模块进行进一步处理:
- 数据增强:
self_driving/data_manipulation/data_aug.py - 图像转换:
self_driving/data_manipulation/img2array.py - 数据处理工具:
self_driving/data_manipulation/util.py
这些工具可以帮助你扩展数据集、标准化图像格式,为模型训练做好准备。
总结
数据收集是Self-Driving Pi Car项目中至关重要的一步。通过本教程,你已经了解了如何使用BasicDiffCollector类从摄像头采集图像、生成标签,并掌握了数据采集的最佳实践。有了高质量的训练数据,你就可以开始训练自己的自动驾驶模型了!
下一篇教程将介绍如何使用self_driving/ml_training/模块训练神经网络模型,敬请期待!
更多推荐

所有评论(0)