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

2024-06-08 07:44

本文主要是介绍树莓派 5 AI 套件(Hailo-8L)使用教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章目录


前言

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 套件前安装。

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

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

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

 

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

 

警告
        在从 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 硬件和工具的讨论。

五、产品简介

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

这篇关于树莓派 5 AI 套件(Hailo-8L)使用教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1041573

相关文章

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud