父子 ROI 系统允许在一个大的检测区域(父 ROI)内划定若干小区域(子 ROI),并为每个子区域指定不同的检测策略。父 ROI 执行 AI 推理获得焊锡/空洞等分割结果后,子 ROI 可以选择继承、剪切或屏蔽父区域中属于自己的那部分结果。
典型场景:一块 PCB 焊盘上有若干芯片区域,希望对整块焊盘做统一推理,但对每个芯片区域采用不同的评判标准或检测方式。
在 ROI 的右键菜单中,可以为选中的 ROI 设置以下角色:
| 角色 | 英文菜单 | 中文菜单 | 底部标签 | 含义 |
|---|---|---|---|---|
| 父 ROI | Inference ROI | 推理 ROI(父) | inference | 执行 AI 推理的大区域 |
| Copy 子 | Copy Inherit ROI | 复制继承 ROI(子) | 复制继承 | 从父拷贝结果,父也保留 |
| Cut 子 | Cut Inherit ROI | 剪切继承 ROI(子) | 剪切继承 | 从父剪切结果,父中清空 |
| Clear 子 | Clear Inherit ROI | 清除继承 ROI(子) | 清除继承 | 父中清空,子也不检测 |
Copy / Cut / Clear 三者互斥 — 一个子 ROI 只能选其中一种角色。
在检测参数的 General Tab 中,也可以通过复选框设置:
Tab 中 Copy / Cut / Clear 同样互斥,勾选一个会自动取消其他两个。
系统按以下顺序执行检测:
1. 父 ROI 执行 AI 推理,获得焊锡/空洞分割结果
2. 根据子 ROI 类型处理父的分割结果:
- Cut 子区域 → 从父结果中清零
- Clear 子区域 → 从父结果中清零
- Copy 子区域 → 父结果保持不变
3. 父 ROI 在处理后的结果上执行完整检测(焊锡率、空洞率、QFN 等)
4. 子 ROI 按类型获取各自的结果:
- Copy 子 → 从父的原始结果中拷贝自己区域的数据,执行独立检测
- Cut 子 → 从父的原始结果中拷贝自己区域的数据,执行独立检测
- Clear 子 → 不做任何检测,完全跳过
用一个直观的比喻:父 ROI 的推理结果是一张完整的图。
| 父看到什么 | 子得到什么 | |
|---|---|---|
| Copy(复制继承) | 完整的图(包含子区域) | 子区域的副本 |
| Cut(剪切继承) | 子区域被挖空的图 | 被挖出的那块 |
| Clear(清除继承) | 子区域被挖空的图 | 什么都没有 |
子 ROI 必须在父 ROI 内部 — 系统通过几何包含关系自动识别父子关系,子 ROI 的范围必须完全落在父 ROI 之内。
父 ROI 必须勾选"推理 ROI(父)" — 只有标记为 Inference ROI 的 ROI 才会被识别为父。
子 ROI 不执行 AI 推理 — 所有子 ROI(Copy / Cut / Clear)都不会单独执行 AI 推理,它们的数据来源于父 ROI 的推理结果。
每个子 ROI 只能选一种角色 — Copy、Cut、Clear 三者互斥,勾选一个会自动取消其他两个。
Clear 子完全不产生检测结果 — 不会出现在检测报告中。适合用于标记连接器、散热片等非检测区域。
子 ROI 可以设置独立的检测参数 — Copy 和 Cut 子虽然从父继承推理数据,但可以设置不同的焊锡率标准、空洞率标准等评判参数,实现同一推理结果下的差异化评判。
Mask as Non-Object / Mask as Non-Void 仍然可用 — 这些遮罩功能与父子 ROI 系统独立,可以组合使用。