engiAI
- 要求
- 它做什么
- 许可
engiAI 界面支持中文:本手册中的按钮和字段名称与程序中显示的一致。
内容
- 1. 为什么使用 engiAI 和区域-配对方法
- 1.1. 与完整图像分类方法相比,这种方法有什么优势?
- 1.2. 速度:AI 只关注关键信息
- 1.3. 预计的精度:根据我们自己的相机
- 1.4. 快速启动:设置已配置,只需几步即可选择区域和模型。
- 2. 可以在一分钟内完成程序界面设计
- 3. 摄像头:连接和设置
- 3.1. 支持哪些相机
- 3.2. 摄像头:添加、重新连接、删除
- 3.3. HIKROBOT 和 SICK 的相机模块
- 3.4. 相机选项卡(用于 USB/网络摄像头)
- 3.5. 预设的相机设置(套件)
- 3.6. GigE 网络和重新连接
- 4. 区域-配对模型:从网格到训练后的模型
- 4.1. 方法的结构:采用单一模型,每个区域对应一个类
- 4.2. 建立模型
- 4.3. 标记支付区域
- 4.4. 记录参考图像:对齐区域
- 4.5. 按区域划分的图像:正常图像及其合成数据
- 4.6. 模拟数据:只需两次点击,元素会与基座一起移动。
- 4.7. 区域异常:设置选项
- 4.8. 参考图像,包含焊料区域和区域编辑功能
- 4.9. 模型的训练
- 5. 检查
- 5.1. 确定模型并验证区域
- 5.2. 识别区域的阈值
- 5.3. 灵活的传送带:无论处于任何位置,都能灵活使用
- 5.4. 使用哪个信号进行分析
- 5.5. 黄色区域:点击即可关闭
- 5.6. 屏幕和控制台上的显示内容
- 6. 触发器:外部摄像头输入端的传感器
- 7. 输出:剔除器、独立的摄像头输出和TCP
- 7.1. 导引:输出信息:联系方式和测试
- 7.2. 输出窗口:区域规则
- 7.3. 将 TCP 数据包发送给机器人或 PLC
- 7.4. 摄像头输出(离散)
- 7.5. 声音提示:为每个区域设置不同的声音提示
- 7.6. 触发记录和数据库
- 8. 其他模式和任务
- 9. 设置、控制台、要求和许可
- 10. 简短的检查清单和故障排除
如何使用手册。第一部分解释了该方法的目的以及预期结果。第三到第五部分介绍了从空程序到可运行的检查程序的过程,请按照顺序进行。第六到第七部分介绍了传感器、输出和 TCP 的连接。第八到第十部分介绍了其他功能、设置和检查清单。
1. 为什么使用 engiAI 和区域-配对方法
engiAI Ethernet System 是一款用于生产线的视觉检测软件。它从工业或普通摄像头获取图像,将其分割成不同的区域,然后使用训练好的神经网络对每个区域进行检查,并将结果转化为相应的动作:向摄像头的数字输出发送信号、将数据发送给机器人或PLC,或记录到日志中。该“区域-配对”方法适用于那些每个位置都有“正确”部件的产品,例如:电路板、组装、托盘上的零件组、以及带有特定布局的包装。
1.1. 与完整图像分类方法相比,该方法有什么优势?
一种常见的做法是,使用一个模型,针对整个图像或所有区域,将像素分为“正常”和“异常”两个类别。但这种方法在硬件上无法实现:在区域 2 中,桥梁 BR1 区域的空位表示“缺陷”,而在电路板的其他区域的空位则表示“正常”。 这种方法无法同时区分这两个类别。 另一种极端做法是,为每个部件单独使用一个模型,这需要数十次的训练和数十个文件存储在内存中。
区域-配对的方式如下:只有一个模型,但类别的数量等于区域的数量。`区域`是指围绕一个部件的矩形区域。`类别`是指包含用于训练网络的图片的文件夹。每个区域都有一个配对:`zone_001`(正常区域 1,例如电容 C30)和 `zone_001_anomaly`(缺陷区域 1);`zone_002` 和 `zone_002_anomaly` 对应 BR1 桥。在检查区域 1 时,程序只查看其配对,不考虑区域 2 的信息。 异常类别是可选的:缺陷会改变区域的外观,并且“正常”的置信度会自然下降;但使用合成数据(第 4.6 节)可以一键生成,并且显著提高了可靠性。

1.2. 速度:AI 只关注所需区域
神经网络永远不会接收完整的图像。对于每个区域,只提取其矩形,并选择两个类别。同一图像中的区域被视为并行处理(最多四个线程),所有区域的结果以一个批次输出,而不是一个一个区域。
- 分析速度由时间决定。 “每秒分析数量 (AI)” 滑块,位于“相机”选项卡上,表示每秒进行 N 次分析,而不是“每 N 个帧”。 限制条件是:相机频率和推理时间。
- 默认使用GPU。 推理过程使用ONNX Runtime和CUDA;如果未安装NVIDIA显卡,程序会自动切换到CPU,并在状态栏中显示 (GPU (CUDA) 或 CPU)。
- 无垃圾的缓冲区。 内存分配只在一次操作中进行,并可重复使用;分析时间不会在不同帧之间出现波动。
- 针对特定任务的模型。 针对区域-配对任务,该程序会自动设置输入尺寸为128像素,并使用YOLO11“s”大小的网络。 裁剪区域的缩放效果不明显,而网络能够处理数百个类别的配对。
- 自动化生产线可以节省人力。 机器在进行生产时,不会像人工那样频繁地进行搜索; 搜索和对齐操作只进行一次,然后才进行切割。
- 显示不会影响分析。 图像的重绘频率不超过每秒 25 次,并且每次只基于新的摄像头画面,画面会被缩放到与图像尺寸相同,然后显示在屏幕上,同时日志信息也会由后台线程写入文件。即使在 8 兆像素的画面和数百个区域的情况下,界面仍然保持响应性。
在视频状态栏中,可以看到实际的数值:帧率 和上次分析的毫秒数,以及 Eff,即每秒实际完成的分析次数。
1.3. 预期的准确度:使用自己的摄像头
该程序不保证“0.5 毫米”的精度,这取决于相机和镜头。 偏移的敏感度取决于每个像素与产品尺寸的比例,以及模型所学习的边界。 可以用以下公式计算:
最小可察觉的偏移 ≈ 5 像素 ÷ (像素/毫米)
数字 5 px 表示在推荐的异常设置下,合成偏移的下限(此时标准偏差为 0–2 px)。 默认设置计算为 11 px/毫米:在这种情况下,0.5 毫米相当于 5–6 px,这是在设计过程中达成的目标。 请根据您的实际情况进行计算:
| 相机(图像宽度) | 视野 100 毫米 | 200 毫米 | 300 毫米 | 400 毫米 |
|---|---|---|---|---|
| 3264 像素(USB 8 兆像素,与照片类似) | 0.03 毫米/像素 → 偏移 ≈ 0.15 毫米 | 0.06 毫米/像素 → 偏移 ≈ 0.3 毫米 | 0.09 毫米/像素 → 偏移 ≈ 0.45 毫米 | 0.12 毫米/像素 → 偏移 ≈ 0.6 毫米 |
| 2448 像素 (HIKROBOT 5 兆像素) | 0.04 → ≈ 0.2 毫米 | 0.08 → ≈ 0.4 毫米 | 0.12 毫米/像素 → 偏移 ≈ 0.6 毫米 | 0.16 → ≈ 0.8 毫米 |
| 1920 像素 (SICK picoCam, HIKROBOT 2 兆像素) | 0.05 → ≈ 0.25 毫米 | 0.10 → ≈ 0.5 毫米 | 0.16 → ≈ 0.8 毫米 | 0.21 → ≈ 1.0 毫米 |
1.4. 快速启动:设置已配置,只需几步即可获得模型
该方法旨在让没有机器学习经验的工程师在一天内获得可用的模型。所有可以预先配置的内容都已配置并存储在程序数据库中:
- 按像素计算。 在 ROI 编辑器中,将一个框拉到需要计算的区域,并指定区域的大小(例如 256 像素)。如果有很多相同尺寸的元素并排排列,您可以将框拉到整个表格上,程序会自动计算行和列。
- 合成数据:正常和缺陷预设。 “默认”、“元素偏移”和“颜色与涂层”按钮用于切换预设配置。 在点击“拍摄”按钮之前,会显示文件数量、摄像头帧数和预计拍摄时间。
- 学习参数由程序自动设置。 在第一次区域图像采集后,程序会设置图像大小为 128,模型大小为 s,训练轮数为 50,批次大小为 64,并且在训练过程中会禁用与异常类别冲突的增强技术。
- 摄像头通过按钮进行设置。 “AI自动调整(基于单帧)”功能会自动调整曝光、增益、色调和白平衡;对于USB摄像头,有“自动匹配格式”和“固定参数”选项。
- 相机设置套件。 预设的参数会以特定名称保存,并可在列表中进行切换。相机会立即接受并存储这些参数。
- 输出一个 ONNX 文件。 训练好的模型会自动导出,并立即进行检查,无需进行任何额外步骤。
完整流程:连接摄像头 → 创建模型 → 标记区域 → 确定对齐区域 → 在多个正常板上进行“按区域拍照” → “区域异常” → 训练 AI 模型 → 检查选项卡。 接下来,需要将音频、输出和 TCP 连接到各个区域。 启动所需:一台运行 Windows 10/11 的计算机(用于快速检查,需要 NVIDIA 显卡),摄像头,一张正常板,以及一次用于安装学习环境的互联网连接。 损坏的板不需要。
2. 程序界面,一分钟内完成
主窗口被分为两部分。左侧是来自摄像头的实时视频和上面的状态栏。右侧是包含所有控制的标签栏。可以拖动分割线;程序会记住所有窗口的大小、位置和布局。

视频上的按钮
| 按钮 | 功能 |
|---|---|
| 隐藏视频 | 移除屏幕上的图像。仅进行绘图分析,节省绘图资源。 |
| 输出 | 参考窗口:显示 HIKROBOT 和 SICK 摄像头的离散输出信息,进行测试,连接负载(第 7.1 节)。 |
| 摄像头 | “已连接摄像头设置”窗口:添加、重新连接、删除摄像头,以及查看从硬件读取的所有参数(第 3.2 节)。 |
| 触发器 | 将外部传感器连接到摄像头的离散输入,并提供电路图和接线图(第 6 节)。 |
| 通用型号 | “相机 → 模型” 预设套件,可以通过一次选择应用于整个平台(第 8 节)。 |
| 布局(列) | 显示多少个相机,“■”表示单相机模式(选择的相机放大显示),“自动”表示从所有相机中选择,“⛶”表示全屏显示(按下 Esc 键)。 |
| 显示 ROI 区域 | 在视频上绘制区域网格。 |
右侧选项卡
| 选项卡 | 用途 |
|---|---|
| Camera | 选择的相机的参数:快门速度、增益、颜色、分辨率、自动设置(用于 AI)、保存的设置、分析速度。AI 的阈值在这里不再存在,仅在“检查”选项卡中。 |
| OUTPUT | 剔除器:区域规则 - 向机器人/PLC 发送 TCP 数据、相机的离散输出和声音警报、触发日志、数据库。 |
| AI Model | 创建模型:文件夹、类、区域网格、区域图像、区域异常、参考图像、设置和启动训练。 |
| Inspect | 工作选项卡:检查模型、检查区域和阈值、实时传送带、拍摄图像的信号、多模型检查的槽。 |
| Settings | 界面语言(14种语言)、购买许可证、保存和加载设置、录制视频。 |
| Console | 事件日志:摄像头连接、培训过程、除尘器触发、警告信息。屏幕上显示最近800-1000行,所有信息都记录在 logs\engiai-*.log 文件中。 |
状态栏
在按钮上方显示了活动的摄像头状态:LIVE (Android): 3264×2448 [高清 USB 摄像头] — 摄像头类型、分辨率和名称;AI: WAITING 或 AI: GPU (CUDA) — 模型认为的当前状态以及上次分析所花费的毫秒数;Net: 总共… 活跃… 兆比特/秒 — GigE 摄像头的网络负载(绿色表示链路利用率达 40%,橙色表示达 70%,之后为红色)。Exp Load 条显示了曝光时间占帧间隔的比例:如果曝光时间指向右侧,摄像头将无法维持指定的帧率。
每张摄像头的面板都有一个带有名称、状态(LIVE | AI:ON)和重新连接按钮的顶盖。 点击右侧的图像可以打开区域菜单,拖动右侧的图像可以实现放大后的全景视图。
3. 摄像头:连接和配置
3.1. 支持哪些摄像头
| 类型 | 连接方式 | 通过程序配置 |
|---|---|---|
| HIKROBOT MV-CS (GigE, USB3) | 原生 MVS SDK。只能通过序列号打开,序列号的顺序不重要。 | 曝光时间:6微秒,增益(dB),帧率(FPS),分辨率(AOI),黑色水平:0…4095,所有 GenICam 节点(自动模式、伽马、清晰度、白平衡、R/G/B、数字偏移、翻转、GigE 数据包)。这些参数需要在相机自身的 UserSet1 中进行设置。Line 0 的离散输入,Line 1 的输出,GPIO Line 2。 |
| SICK picoCam (IDS uEye, GigE) | uEye 驱动。摄像头必须在 IDS Camera Manager 中显示,状态为“已正确配置”。 序列号需要与摄像头匹配,因为 uEye 的 DeviceID 在每次启动时都会改变。 | 亮度、对比度:0…100 帧率(FPS) 分辨率 黑色电平:0…255 像素时钟 增益增强 红色通道硬件增强/G/B硬件配置,包括感光元件类型(例如拜耳阵列)。这些参数会被写入相机内存。光耦的触发输入,闪光灯的输出(150毫安)。 |
| USB摄像头/网络摄像头 (列表中为:Android) | 通过 OpenCV 的 DirectShow,它们在 moniker 上有所不同,因此即使是相同的摄像头也不会混淆。 | 支持高达 8K 分辨率、帧率,以及所有驱动程序属性:亮度、对比度、饱和度、色调、清晰度、色域、增强、自动曝光、自动对焦、自动白平衡、背光补偿等。 只有 TCP 接口,没有其他独立输入和输出。 |
| IP 摄像头 RTSP | `rtsp://admin:密码@192.168.1.64:554/…` 类型的链接需要手动添加。 | 曝光、增强、分辨率和帧率可以在摄像头自身的网页界面中进行设置。 软件中包含区域、模型和 TCP。 |
没有对摄像头数量的硬性限制:摄像头可以以网格形式排列任意数量;在实际的测试环境中,同时使用了 8 台和 9 台摄像头。 每台摄像头都有自己的模型、区域、阈值和分析速度。
3.2. 摄像头窗口:添加、重新连接、删除
以下复选框会影响所选摄像头的设置:摄像头已启动(否则,它将与设备断开连接,并且会从屏幕上消失)显示视频/区域(仅为草图,分析功能始终可用)人工智能已为选定的摄像头启用按钮重新连接它能够实现完全的断开和连接操作,并在断开连接后重启人工智能流程,并重新加载模型。
窗户的右侧显示了通过连接读取的,来自硬件的所有摄像头参数,包括组和计量单位:"显示哪个参数",从摄像头重新读取,复制到剪贴板。 这是一个仅用于查看的功能:可以通过“摄像头”选项卡来修改参数。
3.3. HIKROBOT 和 SICK 的“摄像头”选项卡
该选项卡与摄像头相关,其对应的模块以蓝色边框突出显示。程序在连接摄像头时不会向其写入任何数据:摄像头是“真理”的来源,而滑块会根据摄像头的实际数值进行调整。只有在明确意图的情况下,才能通过点击“保存参数”按钮来保存设置。
“Hikrobot: 摄像头参数 (GenICam)” 模块
仅显示摄像头传输的数据。 选项:自动曝光(关闭/单次/连续)、自动增益、伽马值和伽马模式、清晰度、色调、饱和度、自动白平衡、通道白平衡、数字偏移、启用黑色电平、启用帧率限制、水平和垂直翻转、GigE:包大小、GigE:包间延迟、GigE:带宽限制、测试图像。 按钮重新读取相机参数重新构建表格。
“图像颜色” 模块
拜尔配色方案(Auto/BGGR/RGGB/GRBG/GBRG),饱和度 0…200%,伽马 0.30…3.00,对比度 50…200%,重置按钮。 这种软件处理方式适用于所有帧:显示、录制、推断和用于学习的图像,因此在学习和检查时,图像都是一样的。 对于 HIKROBOT,配色方案是从摄像头的像素格式中获取的;对于彩色 SICK 传感器,则从传感器中获取,并根据第一帧进行调整。
| 参数 | 它做什么 | 影响 |
|---|---|---|
| 每秒分析数量 (AI) | 检测速度的上限,1…200 | 更低 – 降低对显卡的负担;不依赖于摄像头连接 |
| AI 阈值 | 在“摄像头”选项卡中,不进行设置 | 区域识别阈值 – 仅在“检查”选项卡(第 5.2 节)中设置,每个摄像头一个 |
| Exposure | 曝光时间 | 简而言之 – 减少移动物体的模糊;零值不可接受 |
| Gain / Gain boost | 矩阵信号增强 | 提高亮度,但会增加噪声 |
| Pixel clock (SICK) | 传感器频率 | 改变 FPS 和曝光时间,这些值会被重新读取 |
| FPS | 自由模式下的帧率 | 在触发模式下未使用 |
| 宽度/高度 | 帧大小(AOI) | 较小的帧大小,意味着更高的频率和更少的流量 |
3.4. “相机”选项卡(用于USB/网络摄像头)
对于USB摄像头,该选项卡显示“USB摄像头:分辨率、帧率和属性”块。 摄像头不提供给驱动程序的属性不会显示; 字段边界由程序设置,因为DirectShow无法提供范围信息。
3.5. 存储的摄像头设置(套件)
“存储的摄像头设置”块适用于USB、SICK和HIKROBOT。 通过调整参数以适应产品,请将其保存,并使用名称进行保存(例如,对于其他板或不同的照明,只需从列表中选择一个套件)。
- 保存为… - 读取当前摄像头的值,并询问设备名称。如果设备名称已存在,则提示用户是否要覆盖。
- 在列表中选择套件 会立即将参数写入相机,并进行保存:对于 USB,保存到数据库;对于 SICK 和 HIKROBOT,保存到参数文件和相机内存(UserSet1 / EEPROM)。然后,控制面板会重新读取硬件上的值,并显示已接受和已修改的参数数量。
- 重新保存 会用当前值覆盖所选的设置,重命名 和 删除 仅作用于数据库中的记录,不会影响摄像机的参数。
该套件包含以下内容:对于USB接口的相机,包括分辨率、帧率(FPS)、驱动程序属性和自动模式;对于SICK品牌的相机,包括增益、曝光时间、帧率、黑色电平、像素时钟、增益提升、白平衡(R/G/B)、硬件伽马校正和软件色彩调整;对于HIKROBOT品牌的相机,包括增益、曝光时间、帧率、黑色电平以及所有GenICam接口节点。 工业相机的帧大小不包含在套件中,更改帧大小会重启图像采集。 这些套件是通用型的,适用于同一类型的相机,因此在由相同型号相机组成的测试台上,每个相机都使用一套这样的套件。
3.6. GigE网络和重新连接
- HIKROBOT的GigE包大小在打开时会自动设置为最佳值; 您也可以在GenICam块中手动进行调整。 使用较大的帧(8164–9000)可以降低负载,对于断开的帧,请设置为1500,并增加包之间的延迟。
- `Net 软件会根据每个摄像头自身的参数(有效负载大小 × 帧率)计算出预期的负载,并与网卡实际接收到的流量进行比较。如果出现明显差异,则表明可能存在丢帧或存在其他类型的网络流量。虚拟适配器和 NDIS 过滤器(如 GigEVision、uEye、Npcap)不包含在计算中。
- 如果摄像头可见,但视频流未正常显示,请点击“重新连接”按钮(位于摄像头窗口或图块上)。通常,问题是由于网络带宽或USB接口的限制。
- 当 picoCam 关闭描述符时,会丢失设置;如果相机本身没有设置,程序会应用参数文件,并提示用户点击“保存参数”,以便将其记录到相机中。
4. 区域-配对模型:从网格到训练模型
4.1. 方法的结构:一个模型,每个区域对应一个类别
区域-配对模型是 YOLO11 的一种常见分类网络,其类别数量等于区域数量,再加上可选的异常类别。 类别是指位于 `train` 和 `val` 目录下的文件夹。 程序会自动创建所有文件夹,无需手动创建。 如下是训练后的模型文件夹示例:



文件real_…jpg— 这是从摄像头获取的真实图像(同时记录在训练集和验证集中)syn_…jpg- 合成数据edit_…jpg— 来自区域编辑器的截图。在示例中,拍摄了多个电路板的图像:zone_001- 训练集包含502个文件,验证集包含111个文件zone_001_anomaly— 680 和 144zone_002— 813号和181号zone_002_anomaly— 340 和 60。
该程序能够自动识别模型为“支付”类型,前提是存在 `zone_NNN` 这样的类别。类别编号是网格中区域的唯一标识(1…N)。因此,该方法的关键规则是:
4.2. 创建模型
4.3. 在电路板上标记区域

红色区域:只需单击即可从合成数据中排除该区域
在“AI模型”选项卡中,单击已创建的区域,直接在视频上进行操作。被选中的区域会变为红色,并且将不再参与区域分割和异常检测。再次单击可以取消选中。合成数据窗口中的文件计数器会立即更新,而帧上方显示的“禁用 N”字样表示禁用了多少个区域。红色区域的列表会针对每台相机和模型进行保存;在“检查”选项卡中,相同的区域会保持为默认状态(那里有自己的黄色区域,详见第5.5节)。
4.4. 锁定参考图像:对齐区域
检测区域按照电路板的一个位置进行标记。 为了能够在线上插入其他带有位移和旋转的电路板,程序会记住参考图像:即实时画面,以及对齐区域——电路板上的特定区域,用于在每个新画面中进行匹配。 找到该区域后,程序会将检测区域转移到新的电路板上。 这样就实现了拍摄、数据合成和检测。


| 匹配模型 | 何时选择 |
|---|---|
| 自动(推荐) | 电路板进行精确对齐(平移、旋转、缩放);只有当视角明显更匹配时,才进行连接。在较小的对齐区域,精度为1-2像素。 |
| 精确 | 相机从上方直接观察,电路板平放。如果对齐区域较小,这是最稳定的方案。 |
| 视角 | 相机倾斜或电路板倾斜。需要一个包含全宽参考点的较大区域,否则会导致“倾斜”现象。 |
“参考图像”按钮(参考图像 с зонами)会打开已保存的带有网格和区域编号的参考图像(参见第 4.8 节)。 找到的电路板会进行简单的检查,例如:面积在 0.5 到 2 个参考图像的范围内,形状为凸四边形,支撑点应占据至少每条轴向的四分之一区域——如果条件不满足,则结果将被拒绝,并在控制台中显示“未找到电路板”。
4.5. 区域图像:正常图像及其合成数据
区域-配对 拍摄:按区域分割,将每个区域的图像分割成独立的区域,并将每个区域的图像归入相应的zone_NNN类别,并添加合成数据。 “合成数据正常”是指拍摄过程中出现的随机差异,而不是缺陷:例如,电路板的放置位置略有偏差,光线略有不同,传感器也可能产生噪音。

| 设置 | 默认设置和选项 |
|---|---|
| 针对每个区域的合成选项 | 每张裁剪框可以创建多少合成文件。 建议 20,最多 500。 |
| 按时间:每个选项来自相机的新帧 | 启用,时间范围为 800–1200 毫秒(至少等于快门时间)。 每个选项都来自真实的实时帧:真实的传感器噪声、振动和光闪,而不是绘制的。 |
| 每个选项也包含一个概率值(%) | 20%。 参考图像始终位于 val 中:Ultralytics 要求每个类别都位于两个文件夹中。 |
| 以灰度模式训练 | 模型总开关:从正常、异常和检查中移除颜色。 无法在同一模型中混合彩色和灰度文件,程序会发出警告。 |
| 偏移量,像素:向哪个方向 | 该区域的移动窗口在标记方向(← → ↑ ↓)上,在整个图像中移动 0…2 像素;缺失的部分会从相邻的电路板区域中获取,从而保持边缘的平整。勾选 所有方向,可以为每个方向生成一个文件;勾选 随机一个,则生成一个文件。 |
| 旋转,度:向哪个方向 | 默认情况下,已关闭:在与对齐区域对应的支付中,没有旋转,而启用则会模糊与缺陷的边界。 “左/右”、“所有方向/随机”与滑动类似。 |
| 比例(%)· 减少/增加 | 默认情况下已关闭。 两个复选框分别对应两个方向:减小(小于100)和增大(大于100,该区域会从当前帧中选取相邻区域)。 每一处标记的方向对应一个文件。 |
| 亮度/对比度/色调 | 每个选项随机取值范围:亮度 88…112,对比度 88…112%,色调 98…102%(在截图中);在“元素偏移”配置文件中,亮度范围更广,以避免成为一个明显的特征。 |
| 噪点(西格玛)/模糊 | 传感器粒度 3…8 个级别,轻微模糊 0.4…0.8 像素。 |
| “通用”列 | 带有勾选框时,该视图会与其它视图一起进入通用文件;如果没有勾选,则会创建一个单独的文件“参考图像 + 仅此视图”。 视图越多,每个选项的文件就越多。 |


4.6. 合成数据:两次点击:元件与基座一起移动
这种合成数据的生成方式。 该模型在以“缺陷”为目标进行训练时,表现出特别好的效果,即,当它被告知观察的是未绘制的污点,而不是被检查的元件本身,以及其周围的电路板元件:例如,丝网印刷线条、电路路径、底板颜色和纹理。该程序会将观察区域缩小到元件的大小,然后移动或旋转该区域,并用周围的图像像素填充边缘。最终,元件不再位于其原始位置,而是与底板完全一致,就像检查员在实际观察缺陷时所看到的:包括真实的传感器噪声、真实的照明和真实的电路板。
正常区域和异常区域的区别在于,它们唯一的不同之处在于元件相对于基板的位置。 其余部分都相同,因此,网络学习的是“元件↔电路板”之间的关系,而不是斑点的颜色或光照情况。
两次点击
无需再进行任何设置:不要绘制缺陷,也不需要寻找有缺陷的电路板。接下来,训练AI模型。
前后:程序达到的效果




用户看到的异常文件夹
与 4.5 章节中的正常文件夹进行比较:只有在基础上的细节位置有所不同。


细节标记:为什么划痕会是“粗的”,以及如何进行设置
在零件的标记上,有 1-2 像素厚的文字和线条。这些标记在不同批次之间有所不同:字体、标记上的文字方向、以及部分符号都已模糊不清。如果出现“划痕”这样的合成缺陷,用同样细的线条绘制,传感器将无法将其与标记上的线条和传感器噪声区分开,从而导致无法识别来自不同批次零件的正常电路板。
合成数据:区域-配对,从两方面解决了这个问题。首先,主要缺陷——元素偏移——会将标记与主体一起移动,因此标记不会成为一个明显的特征:在正常和异常情况下,标记的外观都是一样的。其次,默认情况下,画出的线条/划痕都是粗的(⅛个区域,至少3像素),并且明显与标记的线条不同。现在,线条的粗细可以明确指定:线条粗细,像素(0 = 自动)选项会影响线条和十字线。
绘制的缺陷(如矩形、圆形、线条、“缺失元素”、模糊斑点等)已汇集在可折叠的组 “合成缺陷,位于切割区域” 中。 默认情况下,该组已折叠并关闭:主缺陷是偏移。 仅在特定任务时启用它:例如,浸水区域、多余的滴落、磨损的标记。
| 图形参数 | 设定内容: |
|---|---|
| 尺寸:从…到,百分比(相对于区域/像素) | 图形的尺寸或长度。以百分比表示,相对于较小的一侧(适用于任何区域);以像素表示,在所有区域中保持一致,当已知实际缺陷的像素尺寸时非常方便。 |
| 填充 | 实心/轮廓/混合(轮廓也是粗的)。 |
| 线条粗细,像素 | 线条/划痕和十字。 0 表示自动(粗)。 用于标记细节,不应低于 3 像素。 |
| 缺陷位置 | 中心、左侧、右侧、顶部、底部——放置棋子的位置(带有少量随机分布)。勾选所有位置——根据文件,每个标记的位置对应一个;随机一个——一个文件,随机选择一个标记的位置。窗口底部的文件计数器会立即进行统计。 |
| 图形颜色:5 个槽 | 五个槽位,而不是名称列表。勾选框表示该槽位已启用,颜色随机选择来自已标记的颜色(±12个色调,以避免单一颜色)。“示例颜色”按钮,用于在调色板中选择颜色。💧 滴管,点击实时拍摄画面(滚轮用于缩放,右键用于全景),并从实际的物体或电路板上选择颜色。默认情况下,已启用两个槽位:深色和浅色,其余三个已禁用。 |
| “通用”列 | 标记的缺陷信息会与其它“通用”信息(例如,在移动的元素上的划痕)一起存储在通用文件中。如果没有勾选,则会创建一个单独的文件,包含“正常 + 仅此缺陷”的信息。 “所有位置”视图始终是一个单独的文件。 |
4.7. 区域异常:设置窗口
"区域-配对: 异常区域" 按钮:正常情况下,会创建 zone_NNN_anomaly 类,这些类来自所有区域,除了红色(AI 模型 4.3 界面上的已关闭区域)。 异常区域类并非在所有区域都适用:仅在实际存在缺陷的区域添加它们,其余区域则由模型进行识别。

| 设置 | 它做什么 |
|---|---|
| 复制到缺陷 | 一个通用设置:对于每个标记的类型,生成多少个带有随机参数的新副本(默认为 10)。 |
| ▸ 剪裁区域内的合成缺陷 | 默认分组:矩形、小矩形、圆形、椭圆形、三角形、八边形、线条/划痕、十字形、`缺失元素`、模糊斑点、噪点填充、来自其他区域的片段。 图形的参数、位置和颜色方案,请参考第 4.6 节。 |
| 平移,像素 · 范围 · 形状 | 主板的主要缺陷:某个区域(圆形或方形)在标记的各个方向上会发生偏移,偏移量为 5-12 像素,方向包括:←、→、↑、↓,以及两条对角线(⤡、⤢)。 垂直/水平缩放比例:±%,表示该区域相对于整个区域的大小:0 表示与整个区域相同,-30 表示区域比整个区域小 30%(仅元素发生偏移,底座保持不变),+30 表示区域比整个区域大 30%(会包含相邻的元素)。 所有方向的偏移量都可以在文件中针对每个方向进行设置。 |
| 旋转,度 · 形状 | 区域(圆形或正方形,相同比例 ±%),随机旋转到范围内的任意角度。 |
| 比例(%)· 减少/增加 | 区域作为缺陷:减少 60–85% 或增加 120–160%。 每一条标记的边对应一个文件。 通常在电路板上处于关闭状态。 |
| “通用”平移和旋转 | 如果两个选项都已选中,则表示这是一种在单个文件中定义的:移动和旋转都由同一个变换操作执行(而不是交替执行,否则会产生混乱),区域的缩放和形状是通用的,并且都由移动操作定义。 |
| ▸ 子区域 | 区域被分割成 2、4 或 9 个部分,并且每个部分都独立旋转或移动;勾选“每个子区域对应一个图像”后,每个部分对应一个文件。 适用于包含多个元素的较大区域。 |
| 每个缺陷文件的照明和噪声 | 启用,值为“正常”:缺陷应在几何形状上有所不同,而不是在光线上。 |
| 按时间/在 val 中 | 每张新帧(800毫秒)的图像副本,20%用于val,val中的第一个类文件始终有效。 |
4.8. 参考图像与区域:焊点和区域编辑
“参考图像与区域”按钮会打开已保存的带有网格线的电路板参考图像。 在这里,数据合成无需使用摄像头: 滚轮用于缩放,右键用于平移,左键用于选择区域(Ctrl键用于添加,拖动鼠标用于框选,Ctrl+A用于选择所有区域),双击用于打开区域编辑器。
- 选择区域的焊接点… — “焊接点:在两条线路之间形成短路”的窗口。该程序会自动在区域内(使用奥茨阈值、宽度 ≥ 2 像素的浅色条纹)找到线路,并在相邻线路之间的空隙处放置一个焊接点,该焊接点具有与线路相同的颜色、深色边缘和反光效果。设置:在垂直或水平线路之间,在第 1-3 张照片上放置焊接点,区域尺寸为 8-18%,针对每个区域(5 张照片),选择放置位置:在异常区域或正常区域,覆盖光照,在 val 中,创建一个新的照片,具有不同的光照或精确复制。
- 编辑区域:工具包括:画笔、吸管、着色、复制区域、粘贴、图章、缺陷区域。调色板包括:焊盘/焊点、电路板、阴影/遮罩、白色、黑色。包含“副本”字段和“创建快照”按钮。 这样就可以绘制出尚未出现在生产线上的缺陷,例如:填充的焊盘、多余的元件、缺失的标识。
编辑器中的文件会被命名为 `edit_…`,并归类到区域或其异常类别中。在“检查”选项卡下,会打开相同的窗口,但仅用于查看。
4.9. 模型的训练
在“AI 模型”选项卡中,训练设置会自动填写,这是在首次进行区域扫描后自动生成的:图像大小 128,模型大小 s,周期 50,批次 64。 这些值对应于 108–137 像素的区域。 对于 256 像素的区域,如示例所示,请设置图像大小为 192 或 256,这样裁剪后几乎不会缩小(在主窗口中,周期设置为 100,图像大小设置为 192)。 请检查这些值,然后点击 训练 AI 模型。
| 参数 | 含义 | 如何选择 |
|---|---|---|
| Epochs | 模型查看数据集的次数 | 默认情况下为50次;如果存在多个异常类别,则为100-150次 |
| Batch Size | 每一步可以查看的图像数量 | 64;如果视频内存不足,则减少 |
| Image Size | 裁剪后的尺寸,必须是32的倍数 | 大致的区域尺寸:对于108-137像素的区域,为128;对于256像素的区域,为192-256 |
| Model Size | n / s / m / l / x | s:适用于数百个类对;n:容量不足;m及以上:速度较慢 |
| Device | 学习内容 | 0 (GPU) 配有 NVIDIA 显卡;如果没有 CUDA,程序会自动切换到 CPU |
| Workers | 数据准备线程 | 12 (默认,适用于多核处理器) |
5. 检查
所有操作都在“Inspect”选项卡上进行。 训练完成后,模型已经配置完毕; 接下来需要检查区域、设置阈值、选择速度源,以及如果支付信息以任何方式到达,则启用实时传输功能。

5.1. 确定模型并检查区域
5.2. 区域识别阈值
对于每个区域,网络会给出所有类别的概率,但决策仅在相邻的两个区域之间进行。 正常情况的概率 q = p(zone_N) / (p(zone_N) + p(zone_N_anomaly)),乘以“识别度”,即该相邻区域是否成功地使用了网络的出口(完全识别度为10%及以上)。 最终评估结果(0…100%)与阈值进行比较:高于阈值,则为“正常”(normal);低于阈值,则为“异常”(anomaly)。
默认阈值为 50%,存储在 `board.json` 旁边,与模型一起存在,并立即生效,无需重启。低于 50% 的阈值,正常区域会变得更加明显:25% → 6% 截断,10% → 0.4%,1% → 几乎全部为绿色;99% 仅允许通过确定的区域。 这种显示方式旨在让操作员能够清楚地看到 5% 和 99% 之间的差异,而不是只有红色区域。
5.3. 实时流程:无论如何放置
“活式传送带:无论哪个位置都能找到电路板:在每次分析之前,系统会搜索电路板,将电路板与参考图像对齐,然后从对齐后的图像中裁剪出区域,并在视频上绘制对齐区域和区域的边界(绿色表示正常,红色表示异常)。“周期,毫秒”设置搜索频率(默认值为1000,在图像中为2000)。 旁边指示灯显示:绿色“正常 · N个点”,红色“异常 · N个点”,橙色“未找到电路板”或“未找到参考图像 - 请确认”。 结果仅根据一次分析得出,不进行累积。
参考图像和对齐区域都使用相同的按钮“确认参考图像”,就像在拍摄时一样(第4.4部分);“参考图像与区域”用于查看。在视频中,会绘制对齐区域的边界和蓝色的支撑点,这些点用于对齐电路板。在校准后,超出画面边缘的区域会用“跳过”标签标记。
5.4. 依据哪个信号进行分析
速度源始终只有一个:无论启动新的,程序都会停止之前的。
| 方法 | 如何开启 | 何时使用 |
|---|---|---|
| 通过摄像头 | 勾选“通过摄像头” | 持续监控;速度由“每秒分析次数”滑块控制 |
| 通过定时器 | 勾选“通过定时器”和时间间隔(毫秒) | 间歇性监控,例如每秒一次 |
| 通过触发器 | 在“触发器”列表中选择连接,并选择“+”或“-”作为触发条件 | 使用带有摄像头的传送带:在产品到达时拍摄画面——这是最准确的方法(第6部分) |
| GPU | 勾选“GPU” | 默认启用;切换会重新加载模型 |
| 灰度分析 | 勾选“灰度分析” | 对于在灰度模式下训练的模型,此选项会自动启用;推理前,裁剪区域会被转换为灰度 |
5.5. 黄色区域:点击关闭
在生产线上,有时需要暂时将某些区域从控制状态中移除:可能是因为该区域的元件未安装,或者该区域被夹具封闭,或者正在进行调试。为了实现这一点,无需修改网格或模型,只需直接在视频界面上,通过“检查”选项卡进行区域的禁用操作。
“黄色”区域的功能由全局复选框 `黄色(通过点击禁用)区域保持静默` 在“声音”选项卡上的输出窗口中控制:
| 复选框 | 黄色区域的行为 |
|---|---|
| 已启用(默认) | 区域不进行任何分析:裁剪区域不会发送到网络,标签为“OFF”,不会有任何声音、TCP传输或摄像头输出。 在实时流程中,黄色区域不会影响“正常/异常”的判断。 |
| 已关闭 | 黄色边框仅作为标记:该区域仍然按照正常方式进行分析和处理。 这种方式方便,可以在不中断监控的情况下,标记需要检查的区域。 |
5.6. 屏幕和控制台上的显示内容
- 已对区域进行标记;区域的边界由表格的颜色表示,当触发器激活时,区域的边界变为红色。当区域数量超过 50 个时,只有绿色边界显示,异常和不确定的区域显示为其他颜色和标记。大量的标记使得图像难以阅读,并增加了渲染的负担。通过点击(第 5.5 节)可以关闭黄色区域。
- 在“触发器分析”面板(位于标签页底部)中,每条触发事件都以一行显示:[时:分:秒.毫秒] 入口摄像头 + 触发器 4 毫秒 | AI 12 毫秒 #57,并显示每种区域的结果。这些数据不会被写入数据库。
- 在视频区域上右键单击:“在这一区域中,将“检测结果”设置为“…”,这将重命名该区域的模型的响应(但不修改模型本身,但筛选器和日志将显示新的名称);同时,还可以“为该区域创建筛选器”和“创建规则计数器”。
- 勾选“保存检查图像”选项,并将带有标注区域的图像保存到以下文件夹:这些图像以 inspect_….jpg 的文件格式存储,每台摄像机的设置可能有所不同。
- 每 10 分钟,在名为 diag 的子文件夹中,会写入一个实时传送带的图像和文本区域列表,并保存最近的 20 张图像,以便在不增加文件夹的情况下,对争议性情况进行分析。
6. 触发器:外部摄像头输入端的传感器
主要工作模式(用于传送带):相机通过传感器发出的电信号,在固定的输入口处捕捉图像。这是最精确的拍摄时刻:产品始终位于图像的同一位置,并且分析仅对该产品进行一次。`触发器` 模块收集“传感器 → 相机”之间的连接,并绘制与所选接口对应的连接图。


接线孔的布局
| 皮 | HIKROBOT MV-CS, 6 pin | SICK picoCam, 6 pin |
|---|---|---|
| 1 | DC_PWR — 9-24V 供电 | GND — 供电线(相机) |
| 2 | OPTO_IN — 输入线 0 (+),触发信号 | VCC — 相机供电(12-24V) |
| 3 | GPIO — 线 2,输入或输出 | 触发器 — 输入端,光电继电器(-) |
| 4 | OPTO_OUT — 线 1 的输出端 (+) | 触发器 + — 光电二极管的正极 |
| 5 | OPTO_GND — 常用光电对,反向导线 | Flash + — 独立输出 (+) |
| 6 | GND — 供电线(相机) | Flash − — 独立输出 (−) |
7. 输出:剔除器、相机独立输出和TCP
“剔除器”可以将检查结果转化为行动。规则可以在特定区域(或在整个模型、类或标记区域中)创建,并在模型检测到该区域中存在指定类别时触发。行动有三种:将 TCP 数据包发送给机器人或 PLC、切换摄像机的数字输出,以及向操作员发出声音警报。每次触发都会记录在日志中。
7.1. 输出说明:接触和测试
在视频上方的 "退出" 按钮会打开一个参考窗口,该窗口不进行任何设置,而是显示:哪些是输出接口,如何使用万用表在没有电源的情况下进行测试,以及如何连接负载。


- 输出:光电隔离器的“干接头”,它不提供自身的电压,只能闭合电路。需要外部电源。
- 使用Ω模式的万用表测试:输出关闭时,断开(OL),输出开启时,为数百欧姆。蜂鸣器在两种情况下都保持沉默,请查看数字。如果没有任何变化,请反转探针,光电隔离器具有极性。
- 负载:+24V → 灯 → “+” 针,“-” 针 → GND。对于 HIKROBOT,25mA 限制:信号负载超过 27mA,应降低电源或使用中间继电器。对于 SICK,20-30mA 的灯可以直接连接。
7.2. OUTPUT 窗口:区域规则
位于右侧面板上的“OUTPUT”按钮(或在区域上右键单击,选择“创建剔除器”),会打开“OUTPUT - TCP数据包和摄像头离散输出”窗口。 在左侧,显示摄像头树状结构,依次为:AI模型 -> 类 -> 区域,可以勾选区域;在右侧,有“区域规则”、“触发记录”和“数据库”三个选项卡。

一个区域可以包含多个 TCP 规则(不同的接收器),每个规则最多一个离散输出,且每个区域最多一个声音。这些规则存储在数据库中,并通过推理流程进行处理:规则保存在内存中,对区域地址进行搜索,而与摄像头相关的套接字和 SDK 则由一个单独的进程来管理,以避免分析等待网络。
7.3. 向机器人或 PLC 发送 TCP 数据包
该程序作为TCP客户端运行:它连接到接收方的IP地址和端口,保持连接开放并重复使用该连接。如果连接中断,程序会尝试一次重新连接并重试。发送的数据以UTF-8编码,并在末尾添加回车符+换行符。
| 字段 | 用途 |
|---|---|
| 连接超时,毫秒 | 默认值为 1000,范围为 100…10000。 |
| 发送规则的 AI 超时,毫秒 | 自动发送规则的最小间隔;0 表示无间隔。 即使更改类别也需要等待这个间隔。 |
| 命令 | 原文 그대로: "up" 表示 "up" 类型的包裹。需要一个类名 - 添加占位符:"J6 {class}" → "J6 235"。 如果为空,则使用 "数据" 模板。 |
| 自定义数据 | 任意文本,用作 `{data}` 的替代。 |
| 数据 | 发货模板。 留空表示“区域编号和名称”({zoneId} {zone})。 点击“添加”会添加该项,再次点击会删除;“全部字段”会创建一个结构化的模板。 |
| 置换 | 含义 | 置换 | 含义 |
|---|---|---|---|
| {zoneId} | 区域编号 (1, 2, 3...) | {camera} | 摄像头名称 |
| {zone} | 区域名称 (可在数据库中编辑) | {model} | 人工智能模型名称 |
| {class} | 模型观察到的类别 | {time} | 时间 (时:分:秒.毫秒) |
| {conf} | 置信度,百分比 (用点作为分隔符) | {date} | 日期 (年-月-日) |
| {data} | 来自“自身数据”的文本 |
示例的结构化模板:`zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}。数字始终采用一致的格式,以避免在PLC中出现解析问题,例如“87,6”。
- 检查连接 仅会打开套接字,并显示“连接已建立”或“N 毫秒内未收到响应”。
- 发送测试 确实会发送字符串;结果显示在按钮旁边,而不是在窗口中。
- 确认。 如果不勾选“重复”选项,规则会发送一个数据包,并在接收方收到“ok <数据包内容>”的响应后停止发送。 如果勾选了“重复”选项,规则会按照设定的时间间隔重复发送数据包,直到数据包的类(class)状态改变。
- “最后一条指令优先”:如果模型在操作员忙碌时已经生成了多个结果,则最后一条指令将被执行。任务队列最多可容纳 512 条任务。
7.4. 摄像头输出(离散)

| 字段 | 用途 |
|---|---|
| 出口 | 方法:SICK 使用 Flash 针(恒定水平)或 GPIO; HIKROBOT 使用 UserOutputValue 或 LineInverter(闪光灯关闭)。 MV-CS020/016-10GC 节点 UserOutput 均无,程序会自动选择 LineInverter。 |
| 这条线路 | SICK 的闪烁信号/ GPIO1…6; HIKROBOT 的 Line1(输出)、Line2(双向); Line0 仅为输入。 |
| 水平 | 真 / 假 / 关闭。 "关闭" 表示该选项存在,但不会影响实际操作。 |
| 脉冲,毫秒 (0 - 保持) | 0 - 这种状态持续到班级更换;否则,脉冲持续时间为 10…5000 毫秒,并伴有回波。 |
开启输出、关闭输出、脉冲按钮,使用测试仪或灯进行测试;摄像头的功能会询问所有方法并生成报告。手动测试内容也记录在同一日志中。
7.5. 声音提示:为每个区域设置不同的声音提示
第三种规则类型:通过电脑上的程序产生声音。操作员无需看屏幕:当区域进入缺陷状态时,他会听到声音,而不同区域的声音则会指示具体位置。该声音适用于任何类型的摄像头,包括 USB 和 RTSP 摄像头,这些摄像头没有独立的输出。
| 工作原理 | 如何操作 |
|---|---|
| 不勾选“重复”选项 | 当区域状态确认变更后,会发出一次声音。在状态确认后,区域保持不变时,则保持安静。 |
| 勾选“重复,直到状态确认变更”选项 | 声音会以“重复间隔”发出,但不会超过声音之间的时间间隔,只要区域保持在指定状态。 |
| 同时存在多个缺陷区域 | 每个区域都会发出自己的声音;不同区域的声音不会相互覆盖,只会覆盖同一区域的声音。 |
| 日志 | 每次触发记录都会在“触发记录”中以“声音“…””的形式记录。如果文件未找到或音频设备出现故障,则记录将包含错误信息,程序将继续运行。 |
| 检查 | 验证此规则 会立即播放声音;模拟区域触发 会与 TCP 和输出一起播放声音,并通过战斗队列进行。 |
7.6. 触发记录和数据库
“触发记录” 标签显示最近的 300 条记录,以以下格式呈现:时:分:秒.毫秒 ✔/✖ 摄像头 · 型号 · 类别 · 区域 → 操作 [消息],并且实时更新。 包含“刷新”和“清除记录”按钮。

标签/选项卡数据库该程序将所有数据存储在 SQLite 文件中rejectors.db在exe文件旁边,没有独立的程序在运行,端口没有响应,无需安装任何东西。 包含以下表格:settings(设置),cameras(摄像头配置文件)camera_models(模型,用于相机),区域(区域名称和几何形状),过滤器(规则)reject_log(期刊)camera_param_files(相机参数的副本)camera_presets(相机设置集合)。保存数据库副本...它能够直接在运行的数据库上,对 VACUUM INTO 命令进行全面的分析和评估。从备份文件加载数据库…它会恢复数据库,但在恢复之前会先保存当前的数据库状态。 您可以使用 DBeaver 查看数据库,但建议不要从外部程序直接修改数据库。
8. 其他模式和任务
常规模式:normal/anomaly 以及任何类别
该 ROI(投资回报率)编辑器也适用于常规分类,例如:药片、盖子、标签、托盘上的零件。 类别的设置在“新建AI模型”对话框中进行(默认为“normal”和“anomaly”,名称使用拉丁字母)。 需要在产品上设置区域,然后点击“拍照”按钮,设置圆圈数量为1到50。 可以通过相机(每秒帧数)或编码器来生成一系列图像,选择“创建图像”。 “合成数据用于AI”面板:可以进行精确的90°/180°旋转,以及360°的完整旋转,并设置步长和范围。 还可以进行镜像操作,以及“按角度分类”功能(每个角度分配到一个不同的类别,剔除器会通过TCP发送角度信息)。 此外,还可以设置亮度、对比度范围。 训练过程使用Ultralytics提供的完整增强功能。 对于此类模型,置信度阈值可以在“检查”选项卡中进行设置,与区域配对模型相同。
多模式检查(1-20个槽位)
在一个摄像头上,可以同时处理最多20个模型。操作步骤如下:将ONNX模型添加到指定槽位,然后在“区域感兴趣”(ROI)设置中,为选定的模型添加类别。每个槽位中的模型都有自己的区域标注,所有模型的检测结果都会显示在同一个画面上。
何时使用多模式:
| 情况 | 如何设置 |
|---|---|
| 在单个帧上执行不同的任务 | 区域-配对检查布局和元素,而常规模式在第二个槽位中进行标记、贴纸、颜色或键的方向。 使用“ROI → 在选定的模式中添加类别”来单独设置第二个模式的区域。 |
| 无固定网格的产品 | 药片、盖子、部件在托盘中:在普通模型中,有多个类型的分类。为了避免混淆,相似的类型分别放置在不同的槽中。 |
| 同一画面中的两张不同板卡 | 在不同的槽中,有两套区域-配对模型,每套都有自己的参考图像和网格。 实时生产线使用主要模型的参考图像。 |
| 过渡期 | 旧的训练模型仍然在槽中,直到新的区域-配对模型开始收集统计数据;两者在同一画面中可见,筛选规则会随着信任程度而转移。 |
阈值、分析速度、黄色区域以及“剔除器”功能适用于所有相机型号。 "移除模型" 按钮会清除所有槽位,因此会提示确认; "删除所选" 按钮会从槽位中移除一个模型,但其文件和区域数据仍然保留在数据库中。
通用模型
通用模型 按钮保存了“相机 → 模型”的组合,并以以下名称进行保存:从现有模型创建、应用于所有相机、从现有模型更新、重命名、删除组合。 将展台从八个相机切换到其他产品,只需一个选择。 删除组合只会移除分组:文件夹、ONNX、区域和规则,但这些仍然存在。 区域属于“相机 + 模型”的组合:在八个相机上,一个模型对应八个独立的标记。
生产线上编码器和筛选器
对于使用COM端口(115200,ESP32)的编码器连接,请连接CONNECT ENCODER,支持自动连接,并设置位置、步长、以及校准参数,设置零点 + 拍照。 用于训练和分析的拍摄可以采用“基于编码器”的方式,这样可以确保图像在产品运动轨迹上均匀分布。 旧式的剔除器通过定时、延迟和反垃圾邮件机制,向编码器控制器发送REJECT指令。
视频和图像的录制
设置选项卡:开始视频录制,使用活动摄像头将视频保存为 record_日期_时间.avi 文件(MJPG 格式,摄像头实际帧率)。用于训练的图像为 real_….jpg,用于检查的图像为 inspect_….jpg,图像上会绘制出特定区域。
9. 设置、控制台、要求和许可证
Settings
- 保存到文件 / 从文件加载 — 所有设置(相机、模型、规则)都以 JSON 格式保存,方便在重新安装或转移到另一台电脑时使用。JSON 格式相当于备份,以防原始数据库无法访问。每次修改设置都会自动保存。
- 重置为初始设置:会永久删除配置和窗口布局。
- 界面语言:14种语言;主窗口可以立即切换,其他窗口在下次打开时切换。
- 所有窗口的位置、大小和监视器位置,分隔器的位置,都存储在数据库中;在关闭监视器时,窗口会返回到可见区域。
Console
“摄像头”和“触发”选项默认未勾选,并且会显示相应的消息(在触发模式下,摄像头消息会进入“触发”);所有信息,包括未经过过滤的信息,都会写入到 logs\engiai-*.log 文件中。该控制台设计用于长时间运行,屏幕可以显示 800 行,当达到 1000 行时,旧的 200 行会被删除;新的行以 4 行/秒的速度收集,而不是每次只收集一行;向下滚动功能已启用,直到您手动向上滚动;该控制台没有声音。 区域分类的更改不超过每秒 10 行(其他内容会被记录在计数器中),日志文件大小为 20MB,超过 14 天的文件在启动时会被删除,日志数据库存储最近的 20,000 条记录。 未处理的错误信息位于 crash.log,强制关闭的原因位于 runtime.log 旁边,与 exe 文件相关。 如果出现问题,请首先查看此处。
要求
| 组件 | 要求 |
|---|---|
| 操作系统 | Windows 10/11 x64. |
| 用于检查的显卡 | NVIDIA 显卡,附带 CUDA 驱动程序;CUDA 13 和 cuDNN 9 库随程序一起提供。在没有显卡的情况下,检查将自动在处理器上进行。 |
| 培训 | Python 3(在安装时勾选“将 python.exe 添加到 PATH”)以及 ultralytics、onnx、onnxslim、onnxruntime 软件包,程序会在首次训练时自动安装,需要互联网连接。用于训练的 GPU 由 PyTorch 确定;如果没有 CUDA,则在 CPU 上进行训练,速度较慢,结果相同。 |
| SICK 摄像头 | IDS uEye 驱动程序;摄像头必须在 IDS Camera Manager 中可见。 |
| HIKROBOT 摄像头 | MVS SDK(库随程序一起提供);对于 GigE,需要支持 jumbo 帧的网络卡。 |
许可证和试用模式
程序启动时,会连接到engi.live的授权服务器。程序只会发送设备的ID和版本号的哈希值,而不会发送序列号和用户名。如果服务器不可用,但已缓存了授权信息,程序将使用缓存的授权信息运行(适用于没有互联网连接的环境)。如果没有有效的授权,程序会进入试用模式,时长20分钟。此时,窗口标题和人工智能区域会显示倒计时“测试 MM:SS”。“设置”选项卡上的“购买”按钮会打开购买页面。如果已获得有效的授权,则不会显示倒计时。
10. 简短的检查清单和故障排除
零基础电路板检查清单
如果出现问题
| 症状 | 需要检查 |
|---|---|
| 摄像头未出现在列表中 | 检查电源和电缆;对于 SICK,请使用 IDS Camera Manager 和适配器子网 IP;对于 HIKROBOT,在紧急关闭后等待 25 秒,然后选择“重新连接”。 |
| 图像为黑色、灰色或颜色不正确 | 摄像头 → «自动设置(用于 AI)»; 对于彩色 SICK,请使用拜尔阵列和白平衡;对于 USB,请选择“标准设置”,然后选择“保存参数”。 |
| 视频卡顿,网络显示红色 | GigE:包的大小为 1500 字节或 jumbo,在网卡上;包之间的延迟;帧率较低或帧数减少;单独的网卡用于摄像头 |
| “未找到板”/ 图像丢失 | 参考图像未被记录或在不同光线下拍摄;支撑点较少,扩大对齐区域并包含更多细节;物体(如桌子或传送带)进入区域;增加搜索时间 |
| 区域移动到其他板上 | 通过搜索区域来查找板:重新记录参考图像,并围绕板的细节(参见 4.4 节)进行对齐;自动匹配模型 |
| 另一批零件的合格板件不足 | 机箱上的标记不同:添加来自该批的正常图像;不要制造小于 3 像素的仿生划痕(参见 4.6 节);检查缺陷是偏移还是颜色 |
| 带有标签 NO_ZONE_CLASS 的区域。 | 网格在训练后改变;恢复网格或创建新的模型并重新拍摄 |
| 所有区域在合格板上都是红色的 | 其他支付方式或其他位置,没有实时传送带;阈值过高;照片在不同的光线下拍摄;混合了彩色和灰度文件 |
| 模型无法识别元素移动 | 重新计算 px/mm (第 1.3 节):在小比例下,移动小于 5 像素;缩小视野或使用更高分辨率的相机;不要放大移动 |
| 训练速度下降或非常慢 | Device = cpu,如果未安装 NVIDIA 显卡;减小 Batch Size;查看控制台;确认 Python 是否在 PATH 中 |
| 检查功能失效 | 是否已选择 best.onnx;是否已启用速度传感器(通过摄像头/计时器/触发器);是否已禁用“使用人工智能”;摄像头上的“人工智能已启用”复选框 |
| 规则过滤器保持沉默 | 是否按下了“在 N 个区域创建”;勾选“已启用”;规则的类别与模型的响应(异常/正常)匹配;退出时,级别不是“off”;USB 摄像头没有输出,只有 TCP |
| 声音不播放 | 该规则已创建并已启用;文件位于 sounds 文件夹(或 sounds\custom)中;是否存在声音之间的停顿;在不启用“重复”功能的情况下,声音只会播放一次,并且只在切换到不同的类时播放;Windows 音量和输出设备 |
| TCP 数据包只发送一次 | “重复”功能需要接收方回复“ok <包裹号>”,或者在PLC端设置“重复发送”选项。 |
engiAI Ethernet System。 按钮和字段的名称与您使用的语言中显示的方式相同(截图来自俄语界面)。 截图是在“model_4”型号上拍摄的(两个 256×256 区域:C30 容积器和 BR1 桥),USB 摄像头 3264×2448,该模型在灰度模式下进行训练。 2026年9月第3版:以两个区域为例,创建模型文件夹,对齐区域,生成“包含基础元素”的图像(“前/后”),颜色和线条粗细,红色区域,控制台。
