RRoy | NPC | 创造力: | 帖子: | 发消息 | 串个门 | 加好友 | 打招呼
2021-2-23 17:55:07 [显示全部楼层]
查看: 746|回复: 1

[教程] 在Raspberry Pi Pico上也可以玩转机器学习!

[复制链接]
本帖最后由 RRoy 于 2021-2-24 09:55 编辑

TueFebruary-202102232733..png

来自谷歌大脑团队中移动和嵌入式TensorFlow小组的技术负责人Pete Warden曾经说过这样一句话:

The future of machine learning is tiny.   

TueFebruary-202102237142..png

机器学习,被看作是人工智能的一部分,是研究通过经验自动改进的计算机算法。

微小机器学习(tinyML)是机器学习和嵌入式物联网(IoT)设备的交叉点。这个领域的发展有可能彻底改变许多行业。

我们先来看看HarvardX对这个新兴领域的简单介绍。

【视频】

Tensorflow Lite Micro (tflmicro)

TensorFlow Lite for Microcontrollers是专为在微控制器和其他只有几千字节内存的设备上运行机器学习模型而设计的。

它支持Arduino Nano 33 BLE Sense、ESP32、STM32F746 Discovery套件等微控制器平台。

前阵子4美元的树莓派 Pico发布,获得了非常多创客的青睐,Arducam公司也在一直试图将其他微控制器平台上的可能带到Pico上。

使用 Pico 开始学习机器学习

下面正式开始介绍在Pico上使用机器学习框架Tensorflow Lite Micro进行人员检测。

【视频】

材料

  • 1 × Arducam Mini 2MP Plus
  • 1 × Raspberry Pi Pico
  • 1 × USB转TTL转换器
  • N × 跳线
  • 1 × Micro USB线

有关启动和运行的信息,可以参考Raspberry Pi Pico入门pico-sdk中的README。

设置Pico

如果你的开发环境是在Raspberry Pi 4B或Raspberry Pi 400上,本入门指南中的大部分安装步骤可以通过运行安装脚本跳过。

可以通过以下操作获得这个脚本。

git clone https://github.com/raspberrypi/pico-setup.git

然后运行:

 pico-setup/pico_setup.sh

该脚本将:

  • 创建一个叫pico的目录
  • 安装所需的依赖
  • 下载pico-sdkpico-examplespico-extraspico-playground资源库。
  • ~/.bashrc中定义PICO_SDK_PATHPICO_EXAMPLES_PATHPICO_EXTRAS_PATHPICO_PLAYGROUND_PATH
  • pico-examples/build/blinkpico-examples/build/hello_world中构建blinkhello_world的例子。
  • 下载并构建picotool(见附录B)。复制到/usr/local/bin
  • 下载并构建picoprobe(见附录A)。
  • 下载并编译 OpenOCD (用于调试支持)
  • 下载并安装Visual Studio代码
  • 安装所需的Visual Studio代码扩展(更多细节请参见第6章)。
  • 配置Raspberry Pi UART与Raspberry Pi Pico一起使用。

一旦它运行,你将需要重新启动你的Raspberry Pi。

sudo reboot

人物检测

人物检测图解

  • 下载RPI-Pico-Cam
git clone https://github.com/ArduCAM/RPI-Pico-Cam.git
  • 编译

提示:如果你不想编译,可以使用下面预建的uf2文件,你只需要给硬件布好线,然后下载uf2到设备上。

cd RPI-Pico-Cam/tflmicro
mkdir build 
cd build 
cmake ..

make

然后你会在RPI-Pico-Cam/tflmicro/build/examples/person_detection路径下创建一些文件。

Bin Description
person_detection_int8.uf2 这是person_detection的主程序,可以拖到RP2040 USB大容量存储设备上。
person_detection_benchmark.uf2 这是person_detection的基准程序,你可以用它来测试pico上person_detection的性能。
image_provider_benchmark.uf2 这是image_provider的基准程序,你可以用它来测试图像数据采集的性能。

测试人体检测

App Description
person_detection_int8 一个样例
  • 硬件连接

TueFebruary-202102237438..png

加载和运行person_detection最简单的方法是将其作为USB大容量存储设备安装到基于RP2040的电路板上。

这样做可以让你拖动一个文件到板子上,对闪存进行编程。继续使用micro-USB将树莓派Pico连接到你的树莓派上,确保你按住BOOTSEL按钮强制进入USB大容量存储模式。

例如,如果你是通过ssh登录的,你可能必须手动挂载大容量存储设备。

$ dmesg | tail
[ 371.973555] sd 0:0:0:0: [sda] Attached SCSI removable disk
$ sudo mkdir -p /mnt/pico
$ sudo mount /dev/sda1 /mnt/pico

如果你能看到/mnt/pico中的文件,那么USB大容量存储设备已经正确安装好啦。

$ ls /mnt/pico/
INDEX.HTM INFO_UF2.TXT

person_detection_int8.uf2复制到RP2040上。

sudo cp examples/person_detection/person_detection_int8.uf2 /mnt/pico
sudo sync

查看输出

人员检测实例通过usb输出一些信息,你可以用minicom来查看。

minicom -b 115200 -o -D /dev/ttyACM0

这个人员检测实例还可以把图像数据和人员检测结果输出到UART中,原作者提供了一个处理程序来显示它们。

提示:你可以在这里下载Processing或者Processing for Pi

其他

大家有什么想法,或是对文章的指正,都欢迎在下方留言讨论!




WedFebruary-202102242186..png

译文首发于DF创客社区:https://mc.dfrobot.com.cn/thread-308443-1-1.html

原文链接:https://www.arducam.com/raspberry-pi-pico-tensorflow-lite-micro-person-detection-arducam/

转载请注明出处与作者信息

pATAq  版主

发表于 2021-2-28 20:54:19

背靠树莓派社区,Pico 发展很快哇
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2021 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail