树莓派 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使…

[docker] docker-compose-mysql.yml

引言:作为一名专业的资深开发,本地一定拥有了不少开源项目以供学习,每次都要去启动 mysql 数据库跟 redis 服务器,这种操作1.挺烦的,挺费时间,每次都要启动命令来一次;2.占用自己电脑的资源&…

五款软件推荐: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…

开源VS闭源

当我们谈论大模型时&#xff0c;往往会涉及到开源和闭源两种不同的模型类型&#xff0c;开源和闭源的主要区别在于源代码的访问权限和修改能力。开源意味着软件的源代码对公众开放&#xff0c;任何人都可以查看、修改和分发源代码&#xff0c;这促进了技术的透明性、合作和创新…

抽象的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…

Python中的上下文管理器(contextlib)模块

Python中的contextlib模块提供了一些用于创建和管理上下文管理器&#xff08;context managers&#xff09;的工具。上下文管理器是实现了__enter__()和__exit__()方法的对象&#xff0c;它们通常用于确保在代码块执行前后执行某些操作&#xff0c;比如资源获取与释放、设置和重…

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

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

string类的模拟实现的一些改进

上回我们完成了string类的模拟实现&#xff0c;不过之前写的传统写法本篇&#xff0c;我们将要对其进行一些改进&#xff0c;写成参考的是现代写法&#xff0c;这样写可以提高可读性。 上回我们写好的string类 //string.h #pragma once#define _CRT_SECURE_NO_WARNINGS 1 #p…

常见汇编指令

下面是一些包含汇编指令 MOV、PUSH、POP、LEA、LDS、ADD、ADC、INC、SUB、SBB、DEC、CMP、MUL、DIV、AND、OR、XOR、NOT、TEST、SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR、LODS、MOVS 的例题。这些例题展示了每条指令的用法及其作用。 1. MOV 指令 MOV AX, BX ; 将寄存器 B…

github stylesmile fastboot介绍

**Fastboot是一个极速的Java Web框架&#xff0c;旨在提供高效的启动速度和低内存占用**。 Fastboot的设计理念是为了让Java应用能够以极短的时间启动&#xff0c;并且占用非常少的内存资源。项目的定位是成为Java领域内最佳的云原生解决方案&#xff0c;为开发者提供一个高效…

像素坐标系与图像坐标系

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

[AIGC] BFS算法详解以及实例应用

BFS&#xff08;Breadth-First Search&#xff0c;广度优先搜索&#xff09;是一种用于图的查找算法&#xff0c;可以用来解决许多问题&#xff0c;比如寻找最短路径&#xff0c;检查图是否连通&#xff0c;检查图中是否存在环等。 文章目录 BFS算法的概念BFS算法的步骤BFS示例…

UI学习(二)

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

C++迈向精通:STL的Deque复现

C迈向精通&#xff1a;STL的Deque复现 最近忙着写一个其他的小玩意&#xff0c;好久没更新博客了&#xff0c;手痒更新一下&#xff1a; 本期来讲一讲C中的STL中的deque的底层实现原理。 deque的地位 STL中的deque的地位很高 主要原因是由于泛型思想和对于其他容器的影响&am…