跳到主要内容

AI 驱动文档

您想了解什么?

分类:每个区域一个标签

分类器查看裁剪后的区域并回答一个问题:这属于哪个类别? 通过或失败。空或满。红色、绿色或蓝色。它是最简单、最快的检测类型,除非您需要知道缺陷的位置,否则它就是合适的默认选项。

分类器的设置基于一个简单的层级结构:类型拥有类别,类型作为 ROI 印记到图像上

可以将其想象成橡皮图章系统。检测类型 (Inspection Type) 就是图章本身(设计图案)。ROI 是您在页面(图像)上盖出的印记。每个印记都继承相同的设计、相同的类别列表和相同的训练模型。

三个概念

在训练 AI 模型之前,相机需要知道在哪里查看,可能的结果是什么,以及如何评估每个裁剪区域。这三个问题对应三个概念,它们以非常特定的方式嵌套。

01 / Concept

Inspection Type

A named bucket. Holds one shared dataset, one shared list of classes, and one trained AI model.

02 / Concept

Classes

The vocabulary of possible outcomes for this inspection. Defined once on the type.

03 / Concept

Region of Interest (ROI)

A rectangle drawn on the image. Many ROIs can share one type and, therefore, one dataset and one model.

思维模型:类型拥有类别和 ROI

检测类型 (Inspection Type) 是一个容器。它包含一个共享数据集、一个共享类别列表和一个训练好的 AI 模型。然后您将该容器在图像上的多个位置印记出来,这些印记就是 ROI。同一类型的每个 ROI 都继承相同的类别,并由相同的模型进行评估。

INSPECTION TYPEone bucket1 dataset · 1 model · N ROIsCLASSES · DEFINED ONCEclass_aclass_bclass_c+ addAdd or edit classes here andevery ROI on this type updates.Single source of truth.ROIs · PLACED ON IMAGEroi_1roi_2roi_3roi_4roi_5+ add ROIEach ROI is a tight crop at a specificlocation, evaluated by the same model.All share one dataset.classes applied to ROIs
  • 检测类型 (Inspection Type) 是容器。
  • 类别 (Classes) 是结果词汇表。
  • ROI 是图像上的位置。

对于分类器:每个 ROI 一个标签,从类别列表中选取

分类器获取每个 ROI 裁剪并提出一个问题:这看起来像哪个类别? 存在或缺失。通过或失败。良好、划伤或破裂。每个 ROI 的输出是一个类别名称加上一个置信度分数,这是一个清晰的分类答案,您的流水线其余部分可以据此采取行动。

实时示例:PCB 螺丝存在性检查

考虑一块带有六个螺丝位置的 PCB。其中四个螺丝存在,一个缺失,一个损坏。您将这样配置:

OV-MCU · v2Screw_1 · presentScrew_2 · absentScrew_3 · presentScrew_4 · presentScrew_5 · presentScrew_6 · damaged
  • 类型 (Type): Screws(6 个 ROI,分类器)
  • 类别 (Classes): presentabsentdamaged
  • ROI: Screw_1Screw_6,每个都用三个类别之一进行标注

每个 ROI 的输出是标签加置信度:

ROI标签置信度
Screw_1present0.98
Screw_2absent0.94
Screw_3present0.97
Screw_4present0.96
Screw_5present0.95
Screw_6damaged0.82

从这个示例中需要理解三点:

  1. 每个 ROI 一个标签。 分类器为每个裁剪精确分配一个类别,是下拉框选择,而非绘制任务。输出是 class_nameconfidence 分数。
  2. 类型是所有者。 所有六个 ROI 共享 Screws 数据集。捕获一张图像即可获得六个新训练样本,并由一个训练好的模型对所有六个进行判断。
  3. ROI 只是位置。 紧密绘制(小于 512 × 512 像素)。使用 Duplicate 来印记 Screw_1 → Screw_2 → Screw_3,每个都会自动继承类别列表。

深入了解:类的行为方式

类属于类型,而非ROI

这是最重要的一点,必须牢记。类是检测类型(Inspection Type)的属性,这意味着添加或删除一个类会自动更改使用该类型的每个ROI的标签选项

TYPE · SCREWS · CLASSESpresentabsentdamagedstripped_headNEWAdd a class here →Screw_1LABELpresent ▾other options:· absent · damaged· stripped_head ← newScrew_2LABELabsent ▾other options:· present · damaged· stripped_head ← newScrew_3LABELpresent ▾other options:· absent · damaged· stripped_head ← new…AND EVERY OTHER ROI OF THIS TYPE
  1. 定义一次。 在Classes面板中点击 + Add class。为其命名(例如 stripped_head)并选择颜色。
  2. 立即传播。 新类会出现在该类型每个ROI的下拉菜单中。无需逐个ROI配置。
  3. 按需重新标注。 现有训练图像保留其标签;您可以重新查看任何图像并将其重新分类为新类。
  4. 保持精简。 从最小的类集合开始,仅涵盖您的决策。两个类(pass / fail)通常比五个模糊的类表现更好。

深入了解:ROI的行为方式

ROI的黄金法则

区域越小越好。 让每个ROI刚好能容纳目标特征。更小的ROI意味着更少的训练数据、更快的迭代速度和更准确的AI决策,特征在裁剪图中占主导地位而不会淹没于背景中,且不会有任何缩放损失。

小而具体且数量众多

ROI告诉相机在哪里裁剪。裁剪越紧凑,模型获得的信号就越清晰。由于ROI共享一个类型,添加更多ROI可以在不增加工作量的情况下倍增您的训练数据。

GOOD · TIGHT CROP60 × 60 px · feature dominatesBAD · TOO LARGEscrew is a speck · downscaledDUPLICATE PATTERNScrew_1Screw_2Screw_3…NName the first ROI, click Duplicate, and the rest auto-increment.All share the same type → same classes, same dataset, same model.10 ROIs × 1 CAPTURE = 10 TRAINING SAMPLES
  1. 裁剪保持在 512 × 512 px 以内。 任何更大的图像都会被缩小以适应模型输入,细节将永久丢失。
  2. 越紧凑越好。 围绕单个特征的小ROI能为模型提供清晰的信号,并且需要更少的训练数据即可收敛。
  3. 多个ROI,一个类型。 10颗螺丝 → 在同一个 Screws 类型上设置10个ROI。一次捕获即可生成十个训练样本,并且一个模型可在推理时处理全部十个。
  4. 使用 Duplicate。 给第一个ROI起一个有意义的名字(Screw_Top_Left)。Duplicate会自动递增名称,您无需重复输入。
  5. 需要全覆盖? 不要绘制一个巨大的ROI,应平铺多个小ROI构成网格。每个都能保留完整分辨率。

数据流:每个ROI单独经过模型处理

运行时,相机会从完整图像中裁剪出每个ROI,单独将其输入训练好的模型,并记录获胜的类及其置信度分数。每次捕获,每个ROI都会得到一个标签。

1 · CAPTUREFull frame + 6 ROIs2 · CROP INDIVIDUALLYScrew_1Screw_2Screw_3Screw_4Screw_5Screw_6max 512 × 512 px each3 · CLASSIFIER MODELScrews · trained modelpicks 1 class + confidence4 · OUTPUTScrew_1present 0.98Screw_2absent 0.94Screw_3present 0.97Screw_4present 0.99Screw_5present 0.96Screw_6damaged 0.82resultFAIL
  1. 捕获包含所有标记ROI的完整帧。
  2. 单独裁剪,使每个ROI成为独立的小图像。
  3. 分类器模型为每个裁剪图选择一个类及对应的置信度分数。
  4. 输出是一个 ROI → 标签 → 置信度 的表格。基于该表格的通过/失败逻辑由您的IO模块规则决定。

设置回顾

训练前的快速检查清单。如果以下每一项都成立,您的分类器将拥有坚实的基础。

  • 每个决策对应一个检测类型。 不要将"螺丝"和"标签"混在同一类型中,给每一个分配独立的类型,以便它们拥有各自的类、数据集和模型。
  • 类在类型级别定义。 每个ROI获得相同的下拉选项。如果某个选项不适用于每个ROI,它可能应归属于另一个类型。
  • ROI画得紧凑并命名清晰。 Screw_Top_Left 优于 New ROI。让每个ROI刚好能容纳其特征,且小于 512 × 512 px。
  • 先确保对齐有效。 如果零件发生位移或旋转,对齐器会带动您的ROI一起移动。只有当对齐稳定时,紧凑的ROI才有效。
  • 每个类从3到5张训练图像开始。 训练,找出失败案例,添加针对性数据,重新训练。通常需要两到四次迭代。
  • 每个标签都需复核。 在五张训练图像中有一处错标即意味着20%的数据污染。每次训练前请点击 View All ROIs

后续步骤