基于神经网络的智能RC小车(Python+OpenCV)

举报
zhangrelay 发表于 2021/07/15 05:21:51 2021/07/15
【摘要】 看代码时发现的一个有趣的例子,实现使用四大利器: Raspberry Pi + Arduino + OpenCV Neural Network + RC CAR 硬件速览 指示停车 参考:https://github.com/hamuchiwa/AutoRCCar.git 效果如下: 绿灯行 红灯停 ~~~~下面为机器人翻译结果~~~~ 上网小助手:http://do...

看代码时发现的一个有趣的例子,实现使用四大利器:

Raspberry Pi + Arduino + OpenCV Neural Network + RC CAR


硬件速览


指示停车

参考:https://github.com/hamuchiwa/AutoRCCar.git

效果如下:

绿灯行


红灯停


~~~~下面为机器人翻译结果~~~~

上网小助手:http://download.csdn.net/detail/zhangrelay/9840220

AutoRCCar

看到行动中的自驾(Youtube)

使用RC车,Raspberry Pi,Arduino和开源软件的自动驾驶系统的缩小版本。该系统使用带有相机和超声波传感器的Raspberry Pi作为输入,处理转向,物体识别(停车标志和交通灯)和距离测量的处理计算机以及用于RC车辆控制的Arduino板。

依赖

  • 树莓Pi:
    • Picamera
  • 电脑:
    • NumPy的
    • OpenCV的
    • Pygame的
    • PiSerial

关于

  • raspberrt_pi /
    • stream_client.py:以jpeg格式将视频帧流式传输到主机
    • ultrasonic_client.py:将由传感器测量的距离数据发送到主机
  • Arduino的/
    • rc_keyboard_control.ino:作为rc控制器和计算机之间的接口,允许用户通过USB串行接口发送命令
  • 电脑/
    • cascade_xml /
      • 训练级联分类器xml文件
    • 棋盘/
      • 用于校准的图像,由pi相机捕获
    • training_data /
      • 以npz格式训练神经网络的图像数据
    • testing_data /
      • 以npz格式测试神经网络的图像数据
    • training_images /
      • 在图像训练数据采集阶段保存视频帧(可选)
    • mlp_xml /
      • 在xml文件中训练神经网络参数
    • rc_control_test.py:带键盘的驱动RC车(测试目的)
    • picam_calibration.py:pi相机校准,返回相机矩阵
    • collect_training_data.py:接收流式视频帧和标签框以供后续培训
    • mlp_training.py:神经网络训练
    • mlp_predict_test.py:用测试数据测试训练有素的神经网络
    • rc_driver.py:多线程服务器程序接收视频帧和传感器数据,并允许RC车载驱动器本身具有停车标志,交通灯检测和前碰撞避免能力

如何开车

  1. Flash Arduino:Flash “rc_keyboard_control.ino”到Arduino并运行“rc_control_test.py”来驱动rc车用键盘(测试目的)

  2. Pi相机校准:使用pi相机以各种角度拍摄多张棋盘图像,并将其放入“chess_board”文件夹中,运行“picam_calibration.py”,并返回相机矩阵,这些参数将用于“rc_driver.py”

  3. 收集培训数据和测试数据:首先运行“collect_training_data.py”,然后在raspberry pi上运行“stream_client.py”用户按键盘驱动RC车,只有当有按键动作时才保存框架。完成驾驶后,按“q”退出,数据保存为npz文件。

  4. 神经网络训练:运行“mlp_training.py”,取决于所选择的参数,需要一些时间训练。培训后,参数保存在“mlp_xml”文件夹中

  5. 神经网络测试:运行“mlp_predict_test.py”从“test_data”文件夹加载测试数据,并从“mlp_xml”文件夹中的xml文件中训练参数

  6. 级联分类器训练(可选):训练有素的停车标志和交通灯分类器包含在“cascade_xml”文件夹中,如果您有兴趣培训您自己的分类器,请参考OpenCV文档Thorsten Ball

  7. 自驾驾驶:首先运行“rc_driver.py”在计算机上启动服务器,然后在raspberry pi上运行“stream_client.py”“ultrasonic_client.py”






文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/71749723

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。