PersonalImageClassifier (PIC) 拓展
- .aix 拓展下载:
- demo程序下载:
拓展的事件、方法、属性如下:

图像分类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
这里仅截取部分训练步骤:

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

最后,可以下载训练好的模型数据。
App Inventor 2 使用拓展及AI模型数据,对图像进行识别和分类
PersonalImageClassifier (PIC) 拓展的用法请参考demo,或直接看英文文档自行研究,这里暂时不做展开,文档如下:
https://www.hackster.io/mjrobot/app-inventor-edgeml-image-classification-fruits-vs-veggies-b671da
中文翻译版见《水果vs蔬菜智能分类器 - EdgeML图像识别项目》。
扫码添加客服咨询