跳到主要内容

AI 驱动文档

您想了解什么?

分类:每个区域一个标签

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

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

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

OV10i 仅支持分类器

OV10i 仅运行分类器模型。如果您的检测需要像素级蒙版(计数、面积测量、缺陷定位),请升级到 OV20i 或 OV80i,它们支持分割。

三个核心概念

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

检测类型是一个桶。它保存一个共享的数据集、一个共享的类别列表和一个训练好的 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
  • 检测类型 是桶。
  • 类别 是结果词汇表。
  • ROI 是图像上的位置。

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

分类器获取每个 ROI 裁剪区域并提出一个问题:这看起来像哪个类别? 存在或不存在。通过或失败。完好、划伤或破裂。每个 ROI 的输出是一个类别名称加一个置信度分数,一个清晰的分类结果,可供您管道中的后续步骤使用。

实例:PCB 螺钉存在性检查

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

OV-MCU · v2Screw_1 · presentScrew_2 · absentScrew_3 · presentScrew_4 · presentScrew_5 · presentScrew_6 · damaged
  • 类型: Screws(6 个 ROI,分类器)
  • 类别: 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 像素)。使用复制来盖章 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,分别送入训练好的模型,并记录获胜的分类及置信度分数。每次捕获,每个 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

后续内容