跳到主要内容

图像分类

该插件的应用方面包括:

  • 通过图形交互界面录入图像/姿态/声音素材,在录入素材的环节中可以清楚看到已经添加的分类和录入的素材,以及支持删除特定某一个分类或素材
  • 即时训练,完成后可预览识别效果,可重复编辑素材与训练,直到满意后可一键导出成编程积木块使用
  • 素材和模型文件可作为项目单独存储,下一次在新的作品中可导入使用

image-20260210175534680

快速开始

添加插件一下,默认是没有积木块可用的,我们需要先完成素材的训练,再导出为可用的积木块

  1. 打开模型训练工具

image-20260210175607590

  1. 选择一个想要实现的分类功能,开始接下来的数据收集与模型训练

先不必理会 导入训练项目,后续会讲解如何存储与导入。

image-20260210175631610

  1. 随机进入一个 图像分类 的界面,来大致认识一下数据收集和训练的界面功能

image-20260210175656406

  1. 如果你选择从本地图片上传素材,可以多选图片一起上传,但需要注意,图片的尺寸最好是1:1,否则上传后也会被压缩到1:1

image-20260210175713599

图像分类

关键技术:

  • 卷积神经网络(CNN):用于图像特征提取和分类。
  • 数据增强:通过旋转、翻转、缩放等方式增加数据多样性。

处理环节:

  1. 数据收集:用户提供图像样本 (交互环节)
  2. 特征提取:CNN自动提取图像中的重要特征(内部环节)
  3. 模型训练:使用提取的特征进行模型训练,调整模型参数以提高分类准确性(内部环节)
  4. 图像预测:模型对新图像进行分类,输出预测结果 (交互环节)

01 - 数据收集

接下来将尝试一个最简单的,只有2个分类(空状态和马克杯)的项目带同学们快速了解应用过程

  1. 首先理清我们需要制作的,是一个可以分辨是否有马克杯的模型,1个分类叫做 “无”,另一个叫做 “马克杯”,接下来使用摄像头开始采集数据
  1. 采集分类“”,尽量让采集的素材画面统一,但内容物可以状态随机一些

所谓的画面统一,内容物状态可以随机一些,大概理解为:

通过大量的素材,让机器搞清楚规律,类比人类多次看到同一个场景,会渐渐熟悉。即使这个场景画面里有些东西比较杂乱,甚至可能每次摆放的位置角度不完全一样,亦或者有人在背景里,每次的姿势和角度也都不太一样,但只要这个素材录入足够多,机器就可以大概认识这个场景,从而与其他的分类做出差异辨认。

image-20260210175813560

  1. 采集分类“马克杯”,我会在同一个场景下,让马克杯出现在画面中,通过内容物的状态可以随机一些这个规则,我们录制的马克杯可以远、可以近,可以角度不一致。

image-20260210175834188

  1. 这样我们就拥有了2个分类,且有足够的素材,可以开始训练了(素材数量建议每种分类10个以上

image-20260210175901697

  1. 随着素材的数量多少,训练可能会花费一些时间,完成训练后在右侧可以体验训练识别结果

image-20260210175925875

  1. 从上面的识别结果看来,非常完美。只要识别可信度在80%以上都数据成功的模型,我们可以点击 使用模型 将模型导出成积木块回到编程界面使用

通常分类的数量越多,可信度的标准可以适当降低,通过观察大概在60%以上,即可认为效果不错。

image-20260210175954533

  1. 使用模型后将自动回到编程界面,在插件分栏会出线图像分类相关的积木块,可以直接用于编程。

image-20260210180014601

02 - 图像预测

开始图像预测前,先来认识一下相关积木块的功能

image-20260210180136579

image-20260211144822109

  1. 首先打开识别窗口,并搭建一个最基础的识别程序:让小猫说出识别结果和可信度

image-20260210180228158

image-20260210180235278

  1. 接下来我们不仅要显示,还要把它与角色的其他功能联动。例如希望别到马克杯的时候播放声音:“干杯”。那么现在先来录制一个“干杯”的声音。

image-20260210180255105

  1. 录制后,截取有效片段后保存

image-20260210180317189

  1. 可以修改声音的名称,这样比较直观。修改完后回到代码区开始编写程序

image-20260210180341409

  1. 增加1个如何..那么..判断语句来完成这个识别到马克杯播放“干杯”音效的效果。

image-20260210180416050

  1. 但是你会发现当一直识别到马克杯的时候,干杯音效持续播放,未免有些傻呼呼,那么如果要让它第一次识别到马克杯时播放且只播放一次呢?这可能需要引入变量来控制这个状态,这很麻烦,所以这个时候帽子事件积木块就发挥作用了,这样就能够只在识别结果改变的那一刻触发,而不会持续播放“干杯”啦~

image-20260210180433842