主缺陷的逻辑
admin |
2026-06-01 10:53 |
阅读 16 次
主缺陷的选择逻辑是:同一张图片 ROI 里的一组缺陷,按缺陷严重度优先级排序,排第一的就是主缺陷。
现在实现和旧 VVS 对齐:
先按图片分组
某个 defect 的中心点落在哪些 inspection/video 图片 ROI 内,就把它放进对应图片组里。代码在 DefectReductionHelper.cs。每个图片组内部排序
排序规则是:
critical ? 0 : (severity & 0x7F) + 1
也就是:
Severity带CRITICAL位0x80的缺陷优先级最高,直接排第一。- 否则取低 7 位 severity,数值越小越优先。
- 如果优先级相同,我们当前实现用原始缺陷顺序兜底。
代码在 DefectReductionHelper.cs 和 DefectReductionHelper.cs。
- 第一名作为主缺陷
排序后的values[0]是主缺陷,后面的缺陷如果满足条件才会 reduced 到它:
- 没被别的组用过
- 不是 scrapping-step defect
StepInstanceID和主缺陷相同
对应代码在 DefectReductionHelper.cs。
旧 VVS 原逻辑也是这句决定主缺陷:
var values = item.Value.OrderBy(x => ClassificationList.DefectPriorityFromSeverity(...)).ToList();
所以一句话:同图、同 step 的缺陷里,critical 优先;否则 severity 低位数值越小越主;主缺陷保留实心箭头,其余符合条件的画空心箭头。