如何使用AI Tool Stack与NeoEyes NE301相结合来完成从模型数据收集到部署的过程
扫描二维码
随时随地手机看文章
使用AI工具栈训练和部署AI模型
主要工具及产品
本教程将主要使用AI Tool Stack与NeoEyes NE301相结合来完成从模型数据收集到部署的过程。AI Tool Stack是CamThink为NeoEyes NE301打造的端到端边缘AI工具,涵盖数据收集、标注、训练、量化和部署。它支持用户自部署和管理。对AI Tool Stack的训练和量化的底层支持来自于ultralytics项目库。感谢ultralytics团队的出色贡献。
AI工具栈
AI Tool Stack提供以下核心功能模块:
•AI模型项目:项目创建和数据管理
•注释工作台:数据注释工具
•模型培训:模型培训和测试
•量化部署:模型量化,一键导出NE301模型包
•模型管理:简单的模型管理和测试AI工具栈是完全开源的,托管在GitHub上。你可以在这里找到代码库:AI Tool Stack
NeoEyes NE301
CamThink AI Camera NeoEyes NE301支持AI模型的动态部署。因此,在本教程中训练的模型可以导出为NE301可用的资源包,用于设备web上的模型更新,从而实现模型的边缘部署,并允许NeoEyes NE301拥有我们训练模型的检测能力,以进行持续的边缘AI操作。单击,查看NE301的硬件相关特性
服务器或个人电脑
AI Tool Stack是开源的,如果你需要训练模型,你将需要一台功能强大的个人电脑或服务器,最好是带有NVIDIA GPU或Mac的m系列芯片。即使我们不会使用非常大的数据集来训练模型,为了保证效率,最好选择一个性能合适的设备来完成这项工作,或者使用GPU服务器进行部署。
网络拓扑结构
请确保NE301与部署AI Tool Stack的服务器或PC在同一网络中,例如连接到同一台路由器,或者服务器的IP地址和域名是开放的
为了实现NE301摄像机与AI Tool Stack应用程序之间的连接,由于AI Tool Stack具有内置的MQTT服务,我们将通过NE301的内置MQTT功能与AI Tool Stack的MQTT服务连接,以实现NE301数据收集上传。将来还会支持远程模型更新。因此,在启动前,需要确保NE301能够访问AI Tool Stack服务,并且AI Tool Stack服务中的MQTT服务必须能够对外访问。网络拓扑结构如下:
安装说明
先决条件
Docker & Docker -compose:请参考Docker官方安装指南和Docker -compose安装文档进行安装。确保部署AI Tool Stack的服务器或计算机具有基本的Docker环境。AI工具栈安装
1. 克隆存储库
2. 使用Docker部署
注意:要修改MQTT_BROKER_HOST等参数,请编辑docker- composition .yml中的环境变量。确保MQTT服务地址可以被NE301设备访问,通常使用主机的实际可访问IP地址,而不是localhost。
安装NE301开发环境
为了生成NE301可用的量化模型包,AI Tool Stack必须引用NE301项目编译环境。请提前拉图:
安装验证
AI工具栈安装验证
安装完成后,可通过以下方式验证AI Tool Stack服务是否启动成功:
检查服务状态
使用下面的命令确保您可以看到camthink/aitoolstack:latest等服务正在运行。
NE301开发环境安装验证
检查服务状态
使用下面的命令确保您可以看到与camthink/ne301-dev:latest相关的服务正在运行。
您的需求
在开始工作之前,您可以首先评估当前是否有一个可用的模型。如果您正在考虑将现有模型部署到NE301,您可以跳转到此位置阅读“将现有模型部署到NE301”。
如果您还没有训练过任何模型,并且想从头开始完成模型训练和模型部署,请从这里开始阅读“从训练到部署”。
完整工作流程指南
创建项目
进入Web页面后,点击“开始创建项目”按钮或“AI模型项目”菜单,进入项目管理页面。根据您的需要构建一个项目来注释数据和训练模型。进入AI Model Projects页面后,点击“Create New AI Model Project”按钮创建项目。输入您的项目名称和项目描述,单击save以创建项目。项目创建成功后,单击该卡进入项目工作台。
构建数据集
单击项目以进入项目工作台。工作台分为左侧工具、底部快捷键提示和右侧类管理、带注释的数据列表和数据集图像管理。
上传/导入数据集
目前支持以下方法来构建项目的图像数据集:
a.通过右侧的“上传图片”,上传本地文件
b.您可以通过右上角的“导入数据集”上传数据集文件,支持COCO数据集和YOLO数据集格式。如果需要详细了解支持的数据集格式,可以通过“导出数据集”导出文件,查看数据结构。该工具以以下格式注释源数据:
│├──图片/├──注释/│├──*。json└──类。Json # id/name/color
让NE301采集图像
您需要有一台NE301设备,并按照以下顺序在设备中进行配置。NE301操作指南请参考《快速入门》
a.将NE301上电,长按拍照键2s开启设备WiFi AP。使用个人电脑或手机连接到NE301的WiFi AP,通过192.168.10.10进入NE301的Web UI界面。进入“系统设置”页面,在“通讯”菜单中选择当前设备可以连接的路由器WiFi AP。确保NE301设备可以通过该WiFi正常访问已部署的AI Tool Stack服务,例如路由器可以访问外部网络,也可以通过IP连接本地部署的AI Tool Stack服务。
b.配置NE301的MQTT服务,使NE301能够通过MQTT向AI Tool Stack项目报告当前采集的图像数据。进入NE301的“应用管理”菜单,输入数据报告主题和服务器地址信息,连接AI Tool Stack内置的MQTT服务。AI Tool Stack可以在项目工作台顶部的MQTT中获得,如下图所示。确认信息无误后,点击“连接”,将NE301连接到AI Tool Stack指定的模型训练项目。
c.现在只需要手动操作NE301侧面的拍摄按钮即可进行拍摄。捕获后,图像将自动上传到项目空间。您可以手动按住NE301采集网络范围内的数据,也可以固定NE301采集数据。收集图像后,可以继续对图像进行下一步的注释工作。
数据注释
目前,NE301主要适用于目标检测模型。我们建议首先使用目标检测数据集构建数据集。在开始注释数据之前,需要在右侧的类输入框中添加所需的注释类文本,为该类选择注释框的颜色,然后单击save以创建注释类。注释快捷键与传统注释工具相同。有关详细信息,请参考注释工作台中的快捷键提示。点击底部的“快捷方式”展开说明。其他功能如删除类、删除注释数据、删除图像、更改函数等,可根据界面说明进行操作。
模型训练
完成所有数据标注后,点击“训练模型”开始训练模型。进入训练界面后,需要为当前项目数据集构建新的训练任务。点击“新增培训”,配置培训信息。如果您不完全理解训练参数,我们建议您直接使用默认配置设置。高级参数无需调整;它们都将使用默认值运行。点击“Start Training”,开始培训任务。任务启动后,查看训练过程日志,等待训练完成。
完成模型训练后,可以在训练详情中查看日志,也可以查看训练模型的准确率性能。您还可以操作以下功能。所有的模型文件都可以在model Space的列表中找到:
•导出模型:可以将训练过的pt模型导出到本地文件夹
•测试模型:可以上传图像,测试当前训练模型的整体检测效果,评估训练结果
•量化(TFLite & CamThink NE301):可以量化到TFLite模型和NE301可用的模型文件包。如果需要部署到NE301设备,则需要执行此步骤
模型量化
如果需要将模型部署到NE301设备上,则需要执行此操作。量化需要NE301开发环境Docker。请确保您已安装“NE301 Dev Docker”。
测试完模型效果后,就可以开始量化工作,准备将量化后的模型部署到NE301上。
模型训练完成后,可以点击“量化(TFLite & CamThink NE301)”来构建模型量化任务。在任务弹出框中,您可以设置一些量化参数。除了输入大小参数外,我们不建议对其他参数进行任何更改。对于输入大小参数设置,建议设置256、416或640中的一个。该参数表示量化模型支持的图像输入大小。如果不想调整,请使用默认值。建议设置为256。如果您想要更好的精度性能,请设置416。推理性能在640时很紧张,所以要小心设置。点击“开始量化”,模型将开始量化过程。你只需要等待量化完成。这个过程需要很长时间的等待。请不要关闭任务窗口。大约需要5-10分钟。模型量化完成后,可以看到量化后的NE301模型资源包。点击“下载模型包”来下载它(或者在关闭下载后在Model Space菜单中找到这个资源)。下一步是在本地将型号更新到NE301设备。
模型部署
现在我们已经训练了模型并导出了NE301设备可部署模型资源文件。现在我们可以将模型部署到NE301设备中。目前,模型部署仍然需要进入NE301设备的web界面上传和更新设备模型文件。AI Tool Stack将在未来支持远程模型更新。下面将解释如何在NE301上更新训练好的模型文件。
使用下载模型的手机或电脑连接NE301的WiFi,进入NE301 Web UI页面,在当前模型中点击“上传”,选择下载的NE301模型文件进行模型更新。等待型号更新后,测试设备型号检测效果。您可以通过NE301管理页面上进行的“模型验证”功能进行测试,也可以直接在NE301中预览目标类检测效果。您可以调整Conf和NMS来验证效果。
部署现有模型
如果你已经有了一个经过训练的YOLOv8模型,而它恰好是一个YOLOv8n模型——为什么是YOLOv8n?因为在NE301部署中,模型性能和n大小下的性能比较合适。未来还将支持YOLOv11等型号。如果您需要在NE301中部署现有模型,您可以在AI Tool Stack的“模型空间”菜单中找到“上传模型用于量化”按钮。点击并填写表格中的信息:
•模型名称:定义一个名称
•型号类型:默认YOLOv8n
•输入大小:默认为640,可根据模型的输入图像大小进行调整
•类数:根据您的模型的检测类数调整
•类名:填写你的模型类型点击“上传”上传你的模型。在列表中找到您上传的模型。您可以单击test来测试该模型的性能。
在模型验证完成后,我们开始对模型进行量化,使模型量化为ne301可部署的模型资源。点击列表中的量化按钮,在弹出框中填写输入尺寸(256、416、640),点击“开始量化”按钮,等待量化工作完成。这个过程需要很长时间,请耐心等待。模型量化完成后,ne301可用模型资源将出现在列表中。您可以下载该文件并部署到NE301设备上。有关模型部署的详细信息,请参见模型部署。
模型量化部署结果的培训概述
下面是我们使用MQTT从NE301设备收集31张图片推送到项目,完成标注的过程。本型号为识别镊子和螺丝刀的检测型号。下面是部署到NE301上经过训练和量化后的检测效果。整个过程花了不到两个小时。
本文编译自hackster.io





