App Inventor 2 PersonalImageClassifier (PIC) 拓展:自行训练AI图像识别模型,开发图像识别分类App

« 返回首页

PersonalImageClassifier (PIC) 拓展

  • .aix 拓展下载:

PersonalImageClassifier.aix

  • demo程序下载:

Image_Classification_v2.aia

拓展的事件、方法、属性如下:

拓展的事件、方法、属性

图像分类App原理介绍

这里仅仅介绍一下AI图像分类App的实现原理,AI的基础技术细节不在本文讨论范围。

我们都知道,人工智能AI的基本原理是事先准备好样本数据(这里指的是图片)及数据的标注信息(如图片中的人物是高兴、愤怒、哭泣等图片的判定信息),通过AI算法的训练,对输入的样本及标注进行拟合,形成最终的训练集数据。有了这份训练集数据,当下次我们输入一张新的图像时,AI算法根据训练集数据就能判断出图片中的人物的具体表情,这样就能对图片进行初步的分类。当然,判断的准确率和样本数量是有关系的,也和数据标注的准确性有关,还和具体的AI算法有关。

API参考

PersonalImageClassifier 属性

ModelPath 模型路径
设置或获取TensorFlow Lite模型的文件路径。支持相对路径和绝对路径。
Labels 标签列表
获取或设置分类标签列表,用于识别结果的显示。标签顺序必须与模型输出对应。
ConfidenceThreshold 置信度阈值
设置分类结果的最低置信度阈值,低于此值的结果将被过滤。范围0.0-1.0。
InputSize 输入尺寸
获取模型要求的输入图像尺寸。通常为224x224或299x299像素。
IsModelLoaded 模型已加载
获取当前模型是否已成功加载的状态。

PersonalImageClassifier 方法

ClassifyImage 分类图像(图片路径)
对指定路径的图像进行分类,返回分类结果列表。每个结果包含标签和置信度。
ClassifyCameraImage 分类摄像头图像()
使用摄像头捕获图像并进行分类,返回分类结果列表。
ClassifyImageAsync 异步分类图像(图片路径)
异步方式对图像进行分类,结果通过ClassificationCompleted事件返回。适用于大图像处理。
LoadModel 加载模型(模型路径)
加载指定路径的TensorFlow Lite模型文件,返回是否加载成功。模型文件必须为.tflite格式。
SetLabels 设置标签(标签列表)
设置分类标签列表,用于显示分类结果。标签顺序必须与模型的输出顺序一致。
GetTopClassification 获取最佳分类(分类结果)
从分类结果中获取置信度最高的分类标签。
GetClassificationConfidence 获取分类置信度(分类结果,标签)
获取指定标签的置信度分数。返回值范围为0.0-1.0。
GetAllClassifications 获取所有分类(分类结果)
获取所有分类结果的详细列表,包含标签和对应的置信度。
PreprocessImage 预处理图像(图片路径)
对输入图像进行预处理,调整尺寸和格式以符合模型要求。返回处理后的图像路径。

PersonalImageClassifier 事件

ClassificationCompleted 分类完成(分类结果,图片路径)
图像分类完成后触发,返回分类结果列表和处理的图片路径。仅在异步分类时触发。
ClassificationError 分类错误(错误信息)
分类过程中发生错误时触发,返回错误描述信息。常见错误包括文件不存在、模型加载失败等。
ModelLoaded 模型加载完成(成功)
模型加载完成时触发,返回是否加载成功。可用于在模型加载完成后进行初始化操作。
ClassificationProgress 分类进度(进度值)
在长时间分类过程中触发,返回当前进度值(0-100)。可用于显示进度条。

开发步骤

在线训练AI模型,生成模型数据,下载给PIC拓展使用

在线AI模型训练网站(国内访问正常):https://classifier.appinventor.mit.edu/oldpic/

在线训练详细步骤(英文版):https://appinventor.mit.edu/explore/resources/ai/personal-image-classifier-part1

这里仅截取部分训练步骤:

训练步骤1

最后可以在线对新输入的图片进行AI识别,如:微笑表情:

训练步骤1

最后,可以下载训练好的模型数据。

App Inventor 2 使用拓展及AI模型数据,对图像进行识别和分类

PersonalImageClassifier (PIC) 拓展的用法请参考demo,或直接看英文文档自行研究,这里暂时不做展开,文档如下:

https://www.hackster.io/mjrobot/app-inventor-edgeml-image-classification-fruits-vs-veggies-b671da

中文翻译版见《水果vs蔬菜智能分类器 - EdgeML图像识别项目》

文档反馈