当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]本教程将指导您在树莓派AI相机上创建和运行自定义对象检测AI模型。它是为初学者设计的,可以一步一步地跟随。

本教程将指导您在树莓派AI相机上创建和运行自定义对象检测AI模型。它是为初学者设计的,可以一步一步地跟随。

在树莓派AI相机上运行自定义AI模型涉及几个技术步骤,包括准备训练代码和优化相机硬件的预训练模型。这个过程一开始会让人觉得难以承受。

为了简化树莓派AI相机的AI模型开发,我们专门为开发人员创建了示例代码。使用此示例,您将能够直接在AI相机上训练和部署自己的对象检测模型。

在本教程中,我们将使用一个公开可用的几何形状(圆形、三角形和正方形)数据集来演示从训练到部署的完整工作流。

本文概述

•使用提供的示例代码构建自己的对象检测AI模型

•使用Docker或传统的本地设置设置培训环境

•生成优化的模型文件,并部署到您的树莓派AI相机

系统需求

部署

•树莓派(与AI相机兼容的任何型号)

•树莓派AI相机

用于模型训练

•带有NVIDIA GPU的计算机(强烈推荐用于高效训练)

•Ubuntu 22.04(或兼容的Linux发行版)

•Python 3.10

注意:虽然GPU显著加快训练速度,但你可以在CPU上训练,但可能需要更长的时间。

本地环境建设

请注意:本节介绍在您的机器上本地设置培训环境。如果您更喜欢使用Docker,请查看存储库的README中的Docker部分。

1. 克隆存储库

2. 设置

安装必要的软件包。

3. 创建并激活Python 3.10虚拟环境

本教程假设使用Python 3.10,所以首先,让我们确认已经安装了3.10。

注意:由于所需库的版本依赖关系,请确保使用Python 3.10。

如果显示如下,则表示安装了Python 3.10:

如果你还没有安装Python 3.10,你可以按照以下步骤安装,例如:

接下来,创建一个虚拟环境。

4. 安装软件包

5. 确认安装成功

步骤1:训练模型

示例提供了以下7个配置文件。

ini文件的角色

为了保持条理,我们将所有重要的设置(训练、量化和评估)存储在一个方便的.ini文件中。

其特点是,您可以灵活地调整训练条件,只需更改设置,而无需直接重写Python代码。您可以选择数据集和任务,并调整参数。

创建对象检测AI模型

在本节中,我们将使用几何形状的数据集构建一个对象检测模型:圆形、三角形和正方形。

移动到存储ini文件的samples文件夹,运行以下命令读取ini文件并开始训练。

下面的命令将根据指定的.ini文件对模型进行训练和量化。

训练将开始,如图所示。

训练和模型量化完成后,度量将显示如下。mAP为0.84,AP@50为0.99,说明培训成功。

这会生成以下模型文件:

步骤2:对训练好的模型进行量化和转换

将量化模型转换并打包成与树莓派AI相机兼容的格式。

注意:继续在venv环境中工作,使用与用于训练的相同的TensorFlow版本进行量化。版本不匹配导致错误。

本教程解释了转换的过程。Keras to network。rpk,我们可以上传到IMX500。

1. 安装Edge-MDT(模型开发工具包),包括量化、压缩和转换AI模型所需的工具:

2. 执行如下命令:

步骤3:AI相机包装

注意:⭐️从这里开始,操作将在Raspberry Pi⭐️上进行

将转换后的文件夹移动到树莓派。在本教程中,文件夹名称为convert_result。

1. 安装必要的工具:

注意:执行该步骤前,请确保convert_result/packerOut.zip文件存在。

2. 将模型打包到一个RPK文件中:

步骤4:在树莓派上部署

1. 在树莓派上安装必要的库:

2. 克隆picamera2 Python库:

3. 创建用于对象检测的类文件。创建custom_label.txt,写入如下内容:

4. 现在让我们在AI相机上运行我们的自定义模型

选择网络。您创建的RPK模型,并选择上面创建的custom_label.txt文件:

结果

目标检测模型工作!在下面的图片中,你可以看到模型正确地识别了我们数据集中的每个几何形状。圆圈、正方形和三角形都用它们各自的标签进行检测。

用你自己的数据集进行训练

准备好使用自己的数据集了吗?以下是需要改变的地方:

1. 更新.ini配置文件:

•[DATASET] NAME = YourDatasetName

•[MODEL] CLASS_NUM =类的个数

•[TRAINER] CONFIG =你的YAML配置文件

2. 编辑custom_label.txt:

用您自己的类标签替换形状名称(每行一个)。

常见错误及解决方法

下面是您可能遇到的典型错误的修复程序。如果您遇到任何其他错误,请在下面的错误消息中添加注释。

•在模型转换期间发生错误

•原因:sdsp.app.AppKt使用Java 17(类文件版本61.0)编译。

•解决方案:您需要将Java版本更新到Java 17或更高版本。

当错误发生时,如果您检查Java版本,您可能会发现正在使用低于17的版本。

在这种情况下,您需要更新如下:

结论

完成本教程非常棒!您现在已经具备了为树莓派AI相机创建自定义对象检测模型的技能。

将这些技巧应用到你自己的项目中:

•自定义对象检测您的特定需求

•机器人或物联网中的边缘人工智能应用

•实时视觉系统

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭