本项目实现了一个基于计算机视觉和深度学习的自动驾驶系统。深受经典开源项目 PyGTA5(Charles) 的启发并在其基础上进行简化修改,通过 CNN 实时分析 OpenCV 获取的游戏画面,实现了从图像输入到按键控制的端到端决策流程。
- 以
pygetwindow库获取待采集的窗口画面 - 以 PyTorch(2.10.0) 搭建深度学习训练框架, 采用 ResNet-50 模型
- 采用 directkeys.py 封装的 Windows API,实现更贴近硬件层的 DirectInput 按键模拟,绕过常规模拟软件的延迟与屏蔽
collect_data.py: 数据采集脚本,以目标帧率同步记录屏幕画面与键盘输入操作train_rn50.py: 基于 ResNet-50 的主训练程序,包含学习率阶梯衰减和最佳模型保存逻辑run_autodrive.py: 自动驾驶推理脚本,实时抓取游戏画面并驱动模型进行驾驶决策view_collected.py: 数据可视化验证工具,用于回放检查采集到的.npy数据是否准确directkeys.py: 底层键盘控制封装
- 启动想要采集的窗口,确保窗口名完全正确
- 运行
python collect_data.py - 在程序窗口中按下
T键,经过 5 秒倒计时后开始驾驶以记录数据。数据将以.npy格式保存在指定目录
- 利用采集的数据集进行训练
- 运行
python run_autodrive.py - 回到窗口画面,按下
T键切换自动驾驶状态

