9 补全的接口与验收
📐 设计
输入
对每个需要补全的部件 p:
| 项 | 来源 | 说明 |
|---|---|---|
mask_p | 第 4 章 | 部件现在可见的区域(1x 二值) |
alpha_p | 第 5 章 | 亚像素覆盖率 |
tiers_p | 第 6 章 | 色阶列表 [(role, rgb, mask)],告诉补全模块这个部件有哪几种颜色 |
occluders | ASSIGN 顺序 | 压在 p 上面的部件集合——被它们挡住的地方才需要补 |
context | origin | mask 周边一圈的原图像素(建议 32px),给生成模型当条件 |
budget | 配置 | 最大补全深度(像素),默认 = 0.4 × 部件等效半径 |
被遮挡区 = dilate(mask_p, budget) ∩ (∪ mask_occluders)。
输出
| 项 | 格式 | 说明 |
|---|---|---|
rgba_p | (H, W, 4) uint8 | 补完整的部件,alpha 在补全区为 255 |
mask_p' | 1x 二值 | 新的完整 mask = mask_p ∪ 补全区 |
alpha_p' | float | 对 mask_p' 重新解的 α(第 5 章) |
report | json | 补了多少像素、哪些像素被判为不可补(budget 外)、耗时 |
验收标准
每条都要能自动量,不能靠看:
1. 重叠区不变。 原本可见的区域(mask_p)补全前后逐像素相同:max|Δ| = 0。补全只许加不许改。
2. 边界连续。 沿可见区与补全区的交界,两侧颜色的梯度不高于部件内部同类边的中位数。量法:在交界带上取梯度 p90,与部件内部(远离交界)的梯度 p90 比,比值 ≤ 1.5。
3. 色阶一致。 补全区的像素按 tiers_p 的颜色做最近邻归档,落在已有档之外(距离最近档 > 24)的像素比例 ≤ 5%。补全不许发明新颜色。
4. 不发明结构。 补全区的高频能量(measure.py 的 σ1 带通)不高于可见区的 1.2 倍。生成模型喜欢在空白处画出东西,这一条拦它。
5. 下游判据不变差。 走完叠层之后,第 15 章的每一项不低于未补全时的值。
不做的事
- 不改可见区的任何像素
- 不改
ASSIGN顺序 - 不补背景
- 超出
budget的区域标记为不可补,而不是硬补