0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

树莓派分类器:用树莓派识别不同型号的树莓派!

上海晶珩电子科技有限公司 ? 2025-06-13 16:39 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在本教程系列的第一部分中,您将学习如何使用树莓派AI摄像头来检测不同的树莓派型号。本系列由David Plowman创建,他是树莓派工程师,专注于图像处理硬件、摄像头软件和算法研究。

您可以将AI摄像头对准树莓派4,屏幕上会显示“Raspberry Pi 4”;对准树莓派Zero时显示“Raspberry Pi Zero”,依此类推。

组装在树莓派5上的树莓派AI摄像头

f3ee8964-4831-11f0-986f-92fbcf53809c.jpg

这是一个强大的示例,展示如何训练树莓派进行实时目标检测推理。这也是探索树莓派AI摄像头API(应用程序接口)以及模型与推理之间关系的好方法。

设置AI摄像头

将您的树莓派 AI 相机连接到兼容的树莓派电脑。我们用的是树莓派5,但是AI相机兼容所有树莓派型号。更多信息可以阅读AI相机数据表。

树莓派AI相机采用索尼IMX500图像传感器,为相机应用提供低延迟、高性能的AI能力,而无需AI HAT+(或AI Kit)。它在IMX500传感器上运行定制的神经网络模型。

树莓派AI智能相机包含一个具有AI推理能力的索尼IMX500传感器

f4023ac2-4831-11f0-986f-92fbcf53809c.jpg

确保系统已更新,然后安装IMX500固件:

$sudo apt install imx500-all

此命令会:

安装操作IMX500传感器所需的固件文件imx500_loader.fpk和imx500_firmware.fpk

将多个神经网络模型文件放入/usr/share/imx500-models/

安装IMX500后处理软件到rpicam-apps

安装索尼网络模型打包工具

现在重启树莓派:

$sudo reboot

让我们来测试一下是否一切正常。以下命令运行带有对象检测后处理的rpicam-hello:

$rpicam-hello -t 0s --post-process-file/usr/share/rpi-camera-assets/imx500_mobilenet_ssd.json --viewfinder-width 1920 --viewfinder-height 1080 --framerate 30

以下命令运行rpicam-hello并进行姿态估计后处理:

$rpicam-hello -t 0s --post-process-file/usr/share/rpi-camera-assets/imx500_posenet.json --viewfinder-width 1920 --view

获取代码

现在你的AI相机设置好了,你需要代码。对于本教程,最好从从GitHub复制文件开始。在终端中,输入:

$gitclonehttps://github.com/davidplowman/pi_classifier.git

进入pi_classifier目录,查看一下里面的内容:

$cdpi_classifier$ls

进入pi_classifier目录,您将看到三个文件:

demo.py:Python主程序

labels.txt:包含不同树莓派型号的标签

network.rpk:预训练的神经网络模型文件(针对IMX500传感器优化)

运行代码:

$python demo.py

屏幕会显示摄像头预览窗口。将树莓派对准摄像头,预览窗口会根据labels.txt中的选项显示对应型号。

它是如何工作的

让我们在Thonny(或您选择的代码编辑器)中打开demo.py代码并查看一下:

$thonny demo.py

parse_and_draw_classification_result

这个函数是作为回调函数提供给相机系统的,这意味着每当一个新的帧从相机到达时,它就会被自动调用,而不需要我们(应用程序)做任何额外的事情。因为我们使用的是索尼IMX500传感器,所以我们不仅获得了通常的相机图像,还获得了一个输出张量,列出了对图像运行神经网络的结果。

我们需要使用 parse_classification_result 解析神经网络结果,然后使用 draw_classification_result 将它们绘制到相机图像上。

parse_classification_result

这将分析IMX500传感器产生的输出张量,并确定图像是否属于网络训练的类别之一。有几件事需要注意。

f40e299a-4831-11f0-986f-92fbcf53809c.jpg

检测树莓派3

首先,并不总是有输出张量。如果神经网络加速器没有及时完成对帧的处理,就会发生这种情况。当这种情况发生时,我们应该重用前一帧的结果;另一个框架,张量再次可用,将很快出现!

接下来,我们返回具有最高置信度值的类别。一些网络可能会告诉我们,我们应该对输出值使用softmax运算,以获得每个类的更真实的概率。

draw_classification_result

这里,我们在摄像机图像上绘制一个标签,指示设备类别和置信度值,但前提是置信度值足够高。

我们使用Picamera2的MappedArray以通常的方式访问实际的相机图像像素(而不是它的副本)。我们测量类别标签和置信度值将占据的框的大小,然后将图像的这一部分变暗,以便当我们随后将文本写在顶部时,它会更突出。

f4170e5c-4831-11f0-986f-92fbcf53809c.jpg

检测树莓派Zero

if __name__ == “__main__”

这部分代码只涉及配置IMX500、上传神经网络固件文件(network.rpk)以及让摄像机运行。有几件事需要指出:

1.我们首先创建IMX500相机辅助对象。这将为我们上传网络,并告诉我们IMX500是哪个摄像头。

2.NetworkIntrinsics对象是网络的助手,它会推荐我们可以使用的合适的帧速率,该帧速率应该与IMX500上的网络推断速率相匹配。

3.在启动相机之前,我们应该告诉IMX500助手,我们希望看到网络上传的进度条——否则很容易认为它可能卡住了!回想一下,网络固件在后续情况下上传更快,因为更多的固件块已经缓存在设备中。

4.最后,我们让脚本永远运行,所有的相机处理都在后台线程中进行。

下载树莓派分类器的完整demo.py代码。

https://github.com/themagpimag/rpimag-issue154/blob/master/pi_classifier/demo.py

原文地址:

https://www.raspberrypi.com/news/build-a-raspberry-pi-classifier-detect-different-raspberry-pi-models/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分类器
    +关注

    关注

    0

    文章

    153

    浏览量

    13464
  • 树莓派
    +关注

    关注

    122

    文章

    2031

    浏览量

    107664
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    树莓教程 详解树莓驱动OLED模块

    提供树莓、STM32、arduino例程;连接树莓的时候,选择7PIN排线连接,请参考下方的引脚对应表格。
    的头像 发表于 05-06 09:32 ?6136次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>教程 详解<b class='flag-5'>树莓</b><b class='flag-5'>派</b>驱动OLED模块

    树莓装机教程

    树莓装机教程树莓装机教程树莓装机教程树莓
    发表于 11-25 10:14 ?52次下载

    树莓gpio应用

    树莓现在越来越火,网上树莓的资料也越来越多。树莓源自英国,国外嵌入式开源领域具有良好的分享
    发表于 11-09 15:10 ?4383次阅读

    树莓的种类_树莓安装教程

    树莓(Raspberry Pi)是尺寸仅有信用卡大小的一个小型电脑,您可以将树莓连接电视、显示、键盘鼠标等设备使用。目前,
    发表于 11-27 22:01 ?5617次阅读

    树莓3wifi配置_树莓3开启wifi热点_树莓3的wifi使用教程

    树莓3在2016年2月29号正式发布了,树莓3几乎和树莓2代板型一致,大外观没什么变化小电
    发表于 12-08 11:47 ?3.2w次阅读

    树莓3硬件配置_树莓3都能装什么系统_树莓3系统安装教程

    树莓3一直颇受电子发烧友的青睐,这篇文章主要讨论的就是树莓3的硬件配置、树莓3都能装什么系
    发表于 12-08 14:36 ?2.7w次阅读

    树莓什么语言编程_树莓python编程详解

    树莓是一个非常廉价的、只有手掌大小的完全可编程的计算机。虽然树莓的体积小,但是它的潜力无限。你可以像使用常规台式计算机一样在树莓派上创建
    发表于 01-15 17:00 ?3.9w次阅读

    树莓有什么_树莓能用来做啥_树莓新手入门教程

    本文首先介绍了树莓的功能,其次介绍了树莓的用途,最后详细介绍了树莓新手入门教程。
    的头像 发表于 05-08 14:15 ?3.4w次阅读

    浅谈香蕉树莓的不同

    目前有许多人在学习嵌入式开发,对于嵌入式开发板也有了一定的了解,比如树莓、香蕉等。这些以水果称呼的嵌入式开发板让人听起来有种不一样的味道,但是许多人对于树莓
    发表于 10-30 16:09 ?2.6w次阅读

    树莓怎么

    连接树莓和电脑.网线直连电脑,不经过路由。这个方法最大的特点最少的工具玩树莓
    的头像 发表于 11-07 16:21 ?2.4w次阅读

    如何玩转树莓

    技术大拿带你玩转树莓,聊聊树莓的那些事!
    的头像 发表于 05-30 15:03 ?4027次阅读
    如何玩转<b class='flag-5'>树莓</b><b class='flag-5'>派</b>

    树莓是什么树莓的简单介绍

    要想玩转树莓,首先得知道树莓是什么。在本节中,作者将带领大家揭开树莓的神秘面纱,了解
    发表于 05-15 18:09 ?31次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>是什么<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的简单介绍

    树莓3和树莓4的原理图免费下载

    本文档的主要内容详细介绍的是树莓3和树莓4的原理图免费下载。
    发表于 01-07 10:23 ?98次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>3和<b class='flag-5'>树莓</b><b class='flag-5'>派</b>4的原理图免费下载

    树莓3和树莓4的原理图免费下载

    本文档的主要内容详细介绍的是树莓3和树莓4的原理图免费下载。
    发表于 01-07 10:23 ?231次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>3和<b class='flag-5'>树莓</b><b class='flag-5'>派</b>4的原理图免费下载

    树莓控制步进电机

    树莓控制步进电机 前言 设备 连接 源码 前言 测试步进电机 设备 名称 型号 树莓 3B+ 步进电机 28BYJ-48-5V 步进电机驱动板 UL2003芯片驱动板连接
    发表于 03-21 11:39 ?1次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>控制步进电机