主缺陷的逻辑

admin | 2026-06-01 10:53 | 阅读 16 次

主缺陷的选择逻辑是:同一张图片 ROI 里的一组缺陷,按缺陷严重度优先级排序,排第一的就是主缺陷

现在实现和旧 VVS 对齐:

  1. 先按图片分组
    某个 defect 的中心点落在哪些 inspection/video 图片 ROI 内,就把它放进对应图片组里。代码在 DefectReductionHelper.cs

  2. 每个图片组内部排序
    排序规则是:

critical ? 0 : (severity & 0x7F) + 1

也就是:

  • SeverityCRITICAL0x80 的缺陷优先级最高,直接排第一。
  • 否则取低 7 位 severity,数值越小越优先。
  • 如果优先级相同,我们当前实现用原始缺陷顺序兜底。

代码在 DefectReductionHelper.csDefectReductionHelper.cs

  1. 第一名作为主缺陷
    排序后的 values[0] 是主缺陷,后面的缺陷如果满足条件才会 reduced 到它:
  • 没被别的组用过
  • 不是 scrapping-step defect
  • StepInstanceID 和主缺陷相同

对应代码在 DefectReductionHelper.cs

旧 VVS 原逻辑也是这句决定主缺陷:

var values = item.Value.OrderBy(x => ClassificationList.DefectPriorityFromSeverity(...)).ToList();

所以一句话:同图、同 step 的缺陷里,critical 优先;否则 severity 低位数值越小越主;主缺陷保留实心箭头,其余符合条件的画空心箭头。

评论 (0)

发表评论
支持 Markdown 格式
暂无评论,快来发表第一条评论吧!