跳到主要内容

AI 驱动文档

您想了解什么?

分类:每个区域一个标签

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

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

可以把它想象成一个橡皮图章系统。Inspection Type 就是图章本身(设计图案)。ROI 是你在纸(图像)上盖出的印记。每个印记都继承相同的设计、相同的 class 列表和相同的已训练模型。

三个概念

在你训练 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.

心智模型:Type 拥有 Class 和 ROI

Inspection Type 是一个容器。它包含一个共享的数据集、一个共享的 class 列表和一个已训练的 AI 模型。然后你将这个容器在图像上的多个位置进行标记,这些标记就是 ROI。同一 Type 的每个 ROI 都继承相同的 class 列表,并由相同的模型进行评估。

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 是容器。
  • Class 是结果词汇表。
  • ROI 是图像上的位置。

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

分类器对每个 ROI 裁剪区域提出一个问题:它看起来像哪个 class? 存在或缺失。通过或失败。良好、有划痕或破裂。每个 ROI 的输出是一个 class 名称加上一个置信度分数,这是一个干净的分类结果,便于后续流程使用。

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

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

OV-MCU · v2Screw_1 · presentScrew_2 · absentScrew_3 · presentScrew_4 · presentScrew_5 · presentScrew_6 · damaged
  • Type: Screws(6 个 ROI,分类器)
  • Classes: presentabsentdamaged
  • ROIs: Screw_1Screw_6,每个都标记为三个 class 之一

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

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

从这个示例中需要内化三件事:

  1. 每个 ROI 一个标签。 分类器为每个裁剪区域分配恰好一个 class,是下拉选择,而不是绘制任务。输出是 class_name 加上 confidence 分数。
  2. Type 是所有者。 所有六个 ROI 共享 Screws 数据集。捕获一张图像就为你提供六个新的训练样本,一个已训练的模型决定所有六个结果。
  3. ROI 只是位置。 绘制要紧凑(小于 512 × 512 px)。使用复制来标记 Screw_1 → Screw_2 → Screw_3,每个都自动继承 class 列表。
OV80i 同时支持分类器和分割器

在 OV80i 上,单个程序可以混合使用多种模型类型。使用分类器进行判定和已知类别识别,然后在其上叠加分割器以进行像素级测量。请参阅理解分割器了解另一半内容。

深入了解:类的行为方式

类属于类型,而非ROI

这是最重要的一点,必须深入理解。类是检查类型的属性,这意味着添加或删除一个类会自动更改使用该类型的每个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 像素以下。 任何超出尺寸都会被缩小以适应模型输入,细节将永久丢失。
  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 像素。
  • 先确保对齐有效。 如果零件移动或旋转,对齐器会带着您的ROI一起移动。紧凑的ROI只有在对齐稳定时才有效。
  • 每个类初始3到5张训练图像。 训练、找出失败、添加针对性数据、重新训练。通常需要两到四次迭代。
  • 每个标签都要双重检查。 五张训练图像中有一个错标就是20%的污染。每次训练前点击 View All ROIs

后续步骤