树莓派 5 AI 套件(Hailo-8L)使用教程

系列文章目录

 


前言

b8a47471269947b9b27edf6b1325c81d.png

The Raspberry Pi AI Kit

 

        Raspberry Pi AI 套件将 Raspberry Pi M.2 HAT+ 与 Hailo AI 加速模块捆绑在一起,供 Raspberry Pi 5 使用。套件包含以下内容:

  • 包含神经处理单元(NPU)的 Hailo AI 模块
  • Raspberry Pi M.2 HAT+,用于将 AI 模块连接到 Raspberry Pi 5
  • 预装在模块和 M.2 HAT+ 之间的散热垫
  • 安装硬件套件
  • 16 毫米堆叠 GPIO 接头

一、人工智能模块功能

  • 围绕 Hailo-8L 芯片构建的每秒 13 太赫兹(TOPS)神经网络推理加速器。
  • M.2 2242 外形尺寸

二、安装

        要使用 AI 套件,您需要

  • 一个 Raspberry Pi 5

        每个 AI 套件都配有一个预装的 AI 模块、带状电缆、GPIO 堆叠接头和安装硬件。完成以下说明以安装 AI 套件:

        首先,确保 Raspberry Pi 运行最新的软件。运行以下命令进行更新:

sudo apt update && sudo apt full-upgrade

        接下来,确保您的 Raspberry Pi 固件是最新的。运行以下命令查看您正在运行的固件:

sudo rpi-eeprom-update

        如果看到的是 2023 年 12 月 6 日或更晚的日期,请继续下一步。如果看到的日期早于 2023 年 12 月 6 日,请运行以下命令打开 Raspberry Pi 配置 CLI:

sudo raspi-config

        在 "高级选项">"引导程序版本 "下选择 "最新"。然后用 "完成 "或 Escape 键退出 raspi-config。

运行以下命令将固件更新到最新版本:

sudo rpi-eeprom-update -a

        然后用 sudo 重新启动。

        开始安装前,断开 Raspberry Pi 的电源。

        为获得最佳性能,我们建议将 AI 套件与 Raspberry Pi Active Cooler 搭配使用。如果您有主动冷却器,请在安装 AI 套件前安装。

c7de118126d0497782005ef0968985a8.png

        使用提供的四颗螺丝安装垫片。将 GPIO 堆叠接头紧紧压在 Raspberry Pi GPIO 引脚上;只要所有引脚都能安装到位,方向并不重要。断开 AI 套件的带状电缆,将另一端插入 Raspberry Pi 的 PCIe 端口。从两侧提起带状电缆支架,然后将电缆的铜接触点朝内,朝向 USB 端口插入。将带状电缆完全均匀地插入 PCIe 端口后,从两侧向下推动电缆支架,将带状电缆牢牢固定到位。 

676dbb5da1b74b66afb8cf9051276d69.png

        将 AI 套件放在垫片上,用剩下的四个螺钉将其固定到位。 

eb0c8a9aa2f44aa2be3eaaeec7333f87.png         将带状电缆插入 AI 套件的插槽中。从两侧抬起带状电缆支架,然后将电缆插入,铜接触点朝上。将带状电缆完全均匀地插入端口后,从两侧向下推动电缆支架,将带状电缆固定到位。

 9fa59a561069472295a362272d46a936.png

        恭喜,您已成功安装 AI 套件。连接 Raspberry Pi 电源;Raspberry Pi OS 将自动检测 AI 套件。 

 322e2ac3f01540868c9acb6c9521b952.png

警告
        在从 M.2 插槽连接或断开设备之前,请务必断开 Raspberry Pi 的电源。


三、入门

        本指南将帮助您在 Raspberry Pi 5 上安装 Raspberry Pi AI Kit。这将使您能够使用 Hailo AI 神经网络加速器运行 rpicam-apps 摄像头演示。

3.1 前提条件

        本指南需要以下设备:

  • 树莓派 5
  • 一个 Raspberry Pi AI 套件,其中包括
    • 一个 M.2 HAT+
    • 一个预装的 Hailo-8L AI 模块
    • 一个 64 位树莓派操作系统书虫安装包
    • 任何 Raspberry Pi 官方摄像头(如摄像头模块 3 或高质量摄像头)

3.2 硬件设置

        按照安装 Raspberry Pi 摄像头的说明,将摄像头安装到 Raspberry Pi 5 板上。您可以跳过重新连接 Raspberry Pi 电源,因为下一步需要断开 Raspberry Pi 的电源。

        按照安装说明将 AI 套件硬件连接到 Raspberry Pi 5。

        按照说明启用 PCIe Gen 3.0。这一步是可选的,但强烈建议您使用 AI 套件达到最佳性能。

        安装使用 AI 套件所需的依赖项。在终端窗口运行以下命令:

sudo apt install hailo-all

         这将安装以下依赖项:

  • Hailo 内核设备驱动程序和固件
  • HailoRT 中间件软件
  • Hailo Tappas 核心后处理库
  • rpicam-apps Hailo 后期处理软件演示阶段

        最后,用 sudo reboot 重启树莓派,使这些设置生效。

        为确保一切运行正常,请运行以下命令:

hailortcli fw-control identify

        如果您看到类似下面的输出,说明您已经成功安装了 AI 工具包及其软件依赖项:

Executing on device: 0000:01:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.17.0 (release,app,extended context switch buffer)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8L
Serial Number: HLDDLBB234500054
Part Number: HM21LB1C2LAE
Product Name: HAILO-8L AI ACC M.2 B+M KEY MODULE EXT TMP

        此外,还可以运行 dmesg | grep -i hailo 检查内核日志,其输出结果应与下面类似:

[    3.049657] hailo: Init module. driver version 4.17.0
[    3.051983] hailo 0000:01:00.0: Probing on: 1e60:2864...
[    3.051989] hailo 0000:01:00.0: Probing: Allocate memory for device extension, 11600
[    3.052006] hailo 0000:01:00.0: enabling device (0000 -> 0002)
[    3.052011] hailo 0000:01:00.0: Probing: Device enabled
[    3.052028] hailo 0000:01:00.0: Probing: mapped bar 0 - 000000000d8baaf1 16384
[    3.052034] hailo 0000:01:00.0: Probing: mapped bar 2 - 000000009eeaa33c 4096
[    3.052039] hailo 0000:01:00.0: Probing: mapped bar 4 - 00000000b9b3d17d 16384
[    3.052044] hailo 0000:01:00.0: Probing: Force setting max_desc_page_size to 4096 (recommended value is 16384)
[    3.052052] hailo 0000:01:00.0: Probing: Enabled 64 bit dma
[    3.052055] hailo 0000:01:00.0: Probing: Using userspace allocated vdma buffers
[    3.052059] hailo 0000:01:00.0: Disabling ASPM L0s
[    3.052070] hailo 0000:01:00.0: Successfully disabled ASPM L0s
[    3.221043] hailo 0000:01:00.0: Firmware was loaded successfully
[    3.231845] hailo 0000:01:00.0: Probing: Added board 1e60-2864, /dev/hailo0

        要确保摄像机运行正常,请运行以下命令:

rpicam-hello -t 10s

        这将启动摄像机并显示十秒钟的预览窗口。确认一切安装正确后,就可以运行一些演示了。

3.3 演示

        rpicam-apps 相机应用程序套件实现了一个后处理框架。本节包含几个演示后处理阶段,重点介绍 AI 工具包的部分功能。

        以下演示使用 rpicam-hello,它默认显示一个预览窗口。不过,您也可以使用其他 rpicam 应用程序,包括 rpicam-vid 和 rpicam-still。您可能需要添加或修改一些命令行选项,以使演示命令与其他应用程序兼容。

        首先,下载演示所需的后处理 JSON 文件。这些文件决定运行哪些后处理阶段,并配置每个阶段的行为。例如,您可以在对象检测演示中启用、禁用、加强或削弱时间过滤的强度。或者在分割演示中启用或禁用输出掩码绘制。

        要下载整个后处理 JSON 文件集,请克隆 rpicam-apps repo。运行以下命令可从 repo 中只克隆最新提交的文件,从而节省空间:

git clone --depth 1 https://github.com/raspberrypi/rpicam-apps.git ~/rpicam-apps

提示
        后续章节中提供的命令将使用本版本库中的 JSON 文件。为了便于引用这些文件,该命令会在你的主文件夹中创建克隆的 rpicam-apps 目录。如果修改了该目录的位置,还必须修改下面的演示命令,以便引用 JSON 文件的新位置。

3.3.1 目标检测

        此演示会显示神经网络检测到的物体周围的边界框。要禁用取景器,请使用 -n 标志。要返回纯文本输出来描述检测到的对象,请添加 -v 2 选项。运行以下命令在 Raspberry Pi 上试用演示程序:

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov6_inference.json --lores-width 640 --lores-height 640

 

        或者,您也可以尝试在性能和效率方面进行不同权衡的其他模型。

        要使用 Yolov8 模型运行演示,请运行以下命令:

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov8_inference.json --lores-width 640 --lores-height 640

        要使用 YoloX 模型运行演示,请运行以下命令:

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolox_inference.json --lores-width 640 --lores-height 640

        要使用 Yolov5 人脸模型运行演示,请运行以下命令:

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov5_personface.json --lores-width 640 --lores-height 640

3.3.2 图像分割

        该演示通过在取景器图像上绘制彩色遮罩来执行物体检测和物体分割。运行以下命令在 Raspberry Pi 上试用该演示:

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov5_segmentation.json --lores-width 640 --lores-height 640 --framerate 20

3.3.3 姿势估计

        该演示执行 17 点人体姿势估计,并绘制连接检测点的线条。运行以下命令在 Raspberry Pi 上试用该演示:

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov8_pose.json --lores-width 640 --lores-height 640

四、更多资源

        Hailo 还创建了一套可以在 Raspberry Pi 5 上运行的演示,可在 hailo-ai/hailo-rpi5-examples GitHub 仓库中找到。

        你可以在 hailo-ai/hailo_model_zoo GitHub 仓库中找到 Hailo 丰富的模型库,其中包含大量神经网络。

        请访问 Hailo 社区论坛和开发者专区,进一步了解有关 Hailo 硬件和工具的讨论。

五、产品简介

        有关人工智能套件的更多信息,包括机械规格和运行环境限制,请参阅产品简介。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 proteus + STM32Cubemx仿真教程(第二课按键教程)

文章目录 前言一、STM32按键的原理二、STM32Cubemx创建工程三、proteus仿真电路图四、程序代码编写4.1函数介绍4.2使用按键点亮LED灯 总结 前言 本篇文章开始带大家学习如何使用proteus和STM32Cubemx来完成STM32的学习,第二节课我们先来学习按键的用法。 proteus使…

五款软件推荐:U盘数据不小心删除了?帮你快速找回!

U盘数据不小心删除了怎么恢复?U盘是一种便携式存储设备,因其小巧轻便而广受欢迎。但是,U盘也常常会遇到数据丢失的问题。当U盘数据丢失时,需要找到一款可靠的数据恢复软件来恢复数据。 接下来为大家推荐5款好用的免费U盘数据恢复软…

Python 使用scrapy框架

1、安装scrapy 2、使用scrapy创建项目,在终端命令行 执行如下命令,会创建一个myproject项目 scrapy startproject myproject 3、创建完成后,目录结构如下 4、cd myproject进入项目 ,执行scrapy genspider weather ******,会在spiders下创建…

Incredibuild for Mac 来了!

Mac 开发者在寻找适合自己需求的工具时可能会遇到一些困难,因为 Mac 操作系统相对封闭,不像其他系统那样开放和灵活。尽管如此,Mac 开发者在开发应用程序时的需求(比如功能、效率等)和使用其他操作系统的开发者是类似的…

Linux中安装Docker,并使用Docker安装MySQL和Redis

1、安装docker 1卸载系统之前的docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2、安装Docker-CE #安装必须的依赖 sudo yum install -y yum-utils \device-map…

LINUX----进程替换,exec族函数

execl族函数的作用 exel族函数用于调用一个已经存在的可执行程序,将该程序的运行需要的代码区和数据区的数据覆盖原进程,这样就可以实现在一个进程中调度另一个进程. 简单实现一个小功能来看一看 mytest.c #include <stdio.h> #include <unistd.h>int main(){print…

抽象的java入门1.3.0

前言&#xff1a; 在1.2.0版本中我们介绍了public class hello {}并从中提取出两个新概 修饰符和作用域 public class hello {public static void main(String[] args) {System.out.println("Hello World");} } 正片&#xff1a; 这一期把剩余的内容刨析出来 pub…

【Redis学习笔记04】Jedis客户端(上)

Java客户端操作Redis Java生态丰富&#xff0c;自定义的客户端非常多&#xff0c;常见的有Jedis、Lettuce、以及Spring整合后的RedisTemplate&#xff0c;但是对于初学者而言&#xff0c;从Jedis开始入门学习是非常容易上手的&#xff0c;因为Jedis中的API与原生Redis命令高度…

Android Bugreport分析工具:ChkBugReport教程

安装&#xff1a; 如果下载地址过期请看原仓库地址的wiki&#xff0c;或许会有更新&#xff1a;https://github.com/sonyxperiadev/ChkBugReport/wiki 提前下载好如下文件&#xff1a; ​​​​​​http://sonyxperiadev.github.io/ChkBugReport/download/chkbugreport (Lau…

一分钟有60秒,这个有趣的原因你知道吗?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

像素坐标系与图像坐标系

前言 在数字图像处理中&#xff0c;经常会看到使用 (x, y) 表示图像中的某个像素点。 在一些图像处理库&#xff0c;例如 Pillow 、OpenCV 、Numpy 中也会使用到坐标系处理图像的像素点。 介绍 无论是像素坐标系还是图像坐标系&#xff0c;其原理都是一样的&#xff1a; 以…

UI学习(二)

UI学习&#xff08;二&#xff09; 文章目录 UI学习&#xff08;二&#xff09;布局子视图手动布局自动布局 导航控制器导航控制器基础导航控制器的切换导航栏工具栏 分栏控制器分栏控制器协议部分的内容UITableView基础部分相关的协议函数高级协议与单元格 多界面传值 布局子视…

2024年6月9日 (周日) 叶子游戏新闻

万能嗅探: 实测 网页打开 某视频号、某音、某红薯、某站&#xff0c;可以做到无水印的视频和封面下载功能哦&#xff0c;具体玩法大家自行发挥吧。 《Funko Fusion》发布新预告 20款影视作品齐聚一堂第三人称动作游戏新作《Funko Fusion》今日发布最新实机演示。该游戏融合了整…

Linxu: Dynamic debug 简介

文章目录 1. 前言2. 什么是 Dynamic debug (dyndbg) ?3. Dynamic debug (dyndbg) 的使用3.1 开启 Dynamic debug (dyndbg) 功能3.2 使用 Dynamic debug (dyndbg) 功能 4. Dynamic debug (dyndbg) 的实现4.1 内核接口 dynamic_pr_debug() 的实现4.2 debugfs 导出控制节点 contr…

力扣hot100学习记录(十二)

94. 二叉树的中序遍历 给定一个二叉树的根节点 root&#xff0c;返回它的中序遍历。 题意 给定一个二叉树&#xff0c;返回它的中序遍历 思路 采用递归的思想&#xff0c;只要根节点不为空&#xff0c;则一直递归遍历左子树&#xff0c;然后将根节点的值存入结果&#xff0c;…

AutoCAD Mechanical机械版专业的计算机辅助设计软件安装包下载安装!

AutoCAD机械版作为一款专业的计算机辅助设计软件&#xff0c;不仅具备卓越的二维绘图功能&#xff0c;更是拥有令人瞩目的3D建模工具&#xff0c;为机械设计师们提供了前所未有的创作空间。 在AutoCAD机械版的3D建模环境中&#xff0c;用户可以借助一系列简洁明了的命令&#…

数智融通 创新发展|亚信科技携AntDB、Data OS与隐私计算产品,赋能企业高质量发展

5月21日&#xff0c;亚信科技在云端举办了一场别开生面的研讨会——“数智融通 创新发展”&#xff0c;聚焦企业数智化升级的前沿话题。资深产品经理和技术架构师们面对面深入交流&#xff0c;分享创新成果与实战案例&#xff0c;共同探索企业数智化转型的新路径。 图1&#xf…

网络安全形势与WAF技术分享

我一个朋友的网站&#xff0c;5月份时候被攻击了&#xff0c;然后他找我帮忙看看&#xff0c;我看他的网站、网上查资料&#xff0c;不看不知道&#xff0c;一看吓一跳&#xff0c;最近几年这网络安全形势真是不容乐观&#xff0c;在网上查了一下资料&#xff0c;1、中国信息通…

基础数据结构 -- 栈

1. 简介 堆栈又名栈&#xff08;stack&#xff09;&#xff0c;他是计算机科学中最基础的数据结构之一。可以算是一种受限制的线性结构&#xff0c;&#xff0c;具有后进先出&#xff08;LIFO&#xff0c; Last In First Out&#xff09;的特性。由于此特性&#xff0c;堆栈常用…

OPenCV的重要结构体Mat

一 Mat Mat是什么&#xff1f; Mat有什么好处&#xff1f; class CV_EXPORTS Mat{ public: ... int dims;//维数 int rows,cols;//行列数 uchar *data;//存储数据的指针 int *refcount;//引用计数 ...};二 Mat属性 三 Mat拷贝 1 Mat浅拷贝 Mat A Aimread(file,IMREAD_COLOR) …