如何创建自定义对象检测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





