white-model-professional-standards.md 11 KB

白膜图专业标准 - 基于行业规范的分析优化

问题背景

之前的分析逻辑错误地认为:

  • ❌ 白模图 = 无家具 + 无灯光 + 无色彩
  • ❌ 有灯光或家具就不是白模

但根据专业白膜图标准,这是错误的理解

专业白膜图的真实标准

一、材质维度(Material)- 核心判断标准

白膜图的材质特征:

  • 统一漫反射材质:所有物体采用统一的中性灰色(RGB≈230-240)
  • 无装饰性色彩:无木色、布料色、金属色、暖色调等装饰颜色
  • 无真实纹理:无木纹、布纹、石材纹理等材质细节
  • 体块清晰:通过灰度和光影体现物体形态
  • 基础物理属性:可保留低反射(金属框架≤20%,墙面≤5%)

二、灯光维度(Lighting)- 关键特征

⚠️ 重要修正:专业白膜图应该有灯光层次!

  • 明暗对比:存在主光、辅助光、环境光的区分
  • 阴影逻辑:有自然的阴影和光影过渡(亮部不曝、暗部有细节)
  • 物理准确性:光源类型(射灯、筒灯、自然光)的照射范围符合现实
  • 空间引导:灯光突出核心功能区,形成视觉焦点

三、颜色维度(Color)- 关键约束

  • 中性基底:整体色调为中性灰/浅白,无色彩偏向(无偏黄/偏蓝/偏暖)
  • 无彩色干扰:无木色、布料色、装饰色等装饰性色彩
  • 灰度层次:色阶覆盖0-255区间,有丰富的灰度层次
  • 色温中性:灯光为中性色温(5000-5500K),无彩色光污染

四、像素质量(Resolution)

  • 基础尺寸:≥1920×1080px(协作图)或≥3840×2160px(汇报图)
  • 细节清晰:边缘清晰,无模糊或锯齿
  • 分辨率:≥72dpi

核心判断公式

白膜图 = 统一灰色材质 + 无彩色 + 无纹理
       (可以有灯光!可以有家具!)

渲染图/软装图 = 有彩色材质 或 有真实纹理

修改内容

1. AI分析提示词优化

添加专业白膜标准

【专业白膜图标准】(基于行业规范)

**一、材质维度(Material)- 白膜的核心判断标准**
✓ 统一漫反射材质:所有物体采用统一的中性灰色(RGB≈230-240)
✓ 无装饰性色彩:无木色、布料色、金属色、暖色调等装饰颜色
✓ 无真实纹理:无木纹、布纹、石材纹理等材质细节

**二、灯光维度(Lighting)- 专业白膜图的关键特征**
⚠️ 重要修正:专业白膜图应该有灯光层次!
✓ 明暗对比:存在主光、辅助光、环境光的区分
✓ 阴影逻辑:有自然的阴影和光影过渡

修正字段定义

【关键字段定义】(重新定义)
- hasColor: 是否有装饰性色彩(木色、布料色、金属色、暖色调等),不包括灰度
- hasTexture: 是否有真实材质纹理(木纹、布纹、石材等),不包括简单的灰度变化
- hasFurniture: 是否有家具模型(无论是灰色还是彩色)
- hasLighting: 是否有明暗对比和光影层次(白膜也应该有)

2. 判断逻辑重构

修改前(错误逻辑):

// ❌ 错误:认为有家具+灯光就不是白模
if (hasColor && hasFurniture && hasTexture) {
  return 'rendering'; // 绝对不是白模
}

// ❌ 错误:白模必须无家具、无灯光
if (!hasFurniture && !hasLighting && !hasColor && !hasTexture) {
  return 'white_model';
}

修改后(正确逻辑):

// ✅ 关键规则1:材质颜色和纹理判断(最高优先级)
if (hasColor || hasTexture) {
  // 有装饰性色彩或真实纹理,绝对不是白模
  return 'rendering' / 'soft_decor' / 'post_process';
}

// ✅ 关键规则2:白模判断(允许有灯光和家具)
if (!hasColor && !hasTexture) {
  // 无彩色且无纹理,可能是白模(即使有灯光和家具)
  if (AI判定为白模 && 置信度高) {
    return 'white_model';
  }
}

3. 三大关键规则

规则1:材质颜色和纹理判断(最高优先级)

  • 如果有木色、布料色、金属色等装饰性色彩 → 绝对不是白模
  • 如果有木纹、布纹、石材纹理等真实材质纹理 → 绝对不是白模
  • 如果材质统一为中性灰色,无纹理细节 → 可能是白模

规则2:白模判断(修正版)

  • 条件:!hasColor && !hasTexture(无彩色 + 无纹理)
  • 可以有灯光(专业白膜图应该有明暗对比和阴影)
  • 可以有家具(白膜可以包含完整的家具体块)
  • 关键在于材质是否统一灰色

规则3:AI高置信度采用

  • 如果AI置信度 > 85% → 采用AI结果
  • 如果AI判定为白模 + 置信度 > 75% + 材质符合 → 判定为白模

4. 兜底逻辑优化

// 如果走到这里,说明没有彩色和纹理(可能是白模或低质量图)

if (hasLighting && qualityScore >= 75) {
  return 'rendering'; // 有灯光 + 高质量
} else if (hasFurniture && qualityScore >= 60) {
  return 'soft_decor'; // 有家具 + 中等质量
} else if (qualityScore >= 70) {
  return 'rendering'; // 高质量
} else {
  return 'white_model'; // 低质量且无彩色/纹理,可能是白模
}

判断流程图

图片输入
    ↓
AI分析:hasColor? hasTexture? hasFurniture? hasLighting?
    ↓
┌────────────────────────────────────┐
│ 规则1:材质判断(最高优先级)      │
│ 有彩色材质 或 有真实纹理?        │
└────────────────────────────────────┘
    ↓ YES                    ↓ NO
rendering/soft_decor/    无彩色且无纹理
post_process                   ↓
                    ┌─────────────────────┐
                    │ 规则2:白模判断     │
                    │ 材质是否统一灰色?  │
                    └─────────────────────┘
                        ↓ YES
                    ┌─────────────────────┐
                    │ AI判定为白模?      │
                    │ 置信度 > 75%?     │
                    └─────────────────────┘
                        ↓ YES         ↓ NO
                    white_model    兜底判断
                                   ↓
                            根据质量和特征
                            综合判断

典型案例

案例1:专业白膜图(正确识别)

特征

  • 材质:统一的中性灰色(RGB≈235)
  • 灯光:有明暗对比、阴影、光影过渡
  • 家具:有完整的家具体块(沙发、桌椅)
  • 颜色:无装饰性色彩,仅灰度变化
  • 纹理:无木纹、布纹等真实材质纹理

判断路径

hasColor = false(无装饰性色彩)
hasTexture = false(无真实纹理)
hasFurniture = true(有家具体块)
hasLighting = true(有灯光层次)
    ↓
规则1:无彩色且无纹理 → 可能是白模
    ↓
规则2:AI判定为white_model,置信度88%
    ↓
结果:white_model ✅

案例2:彩色效果图(正确识别)

特征

  • 材质:有木色、布料色等装饰性色彩
  • 灯光:有明暗对比和阴影
  • 家具:有完整的家具配置
  • 颜色:有暖色调(米色、木色、棕色)
  • 纹理:有木纹、布纹等真实材质纹理

判断路径

hasColor = true(有装饰性色彩)
hasTexture = true(有真实纹理)
hasFurniture = true
hasLighting = true
    ↓
规则1:有彩色材质或真实纹理 → 绝对不是白模
    ↓
结果:rendering/post_process ✅

案例3:低质量草图(边缘情况)

特征

  • 材质:统一的灰色,但质量很低
  • 灯光:无明显灯光
  • 家具:无家具或仅有基础框架
  • 颜色:无装饰性色彩
  • 纹理:无真实材质纹理

判断路径

hasColor = false
hasTexture = false
hasFurniture = false
hasLighting = false
qualityScore = 45
    ↓
规则1:无彩色且无纹理 → 可能是白模
    ↓
规则2:AI判定为white_model,置信度65%
    ↓
兜底判断:低质量且无彩色/纹理 → white_model
    ↓
结果:white_model ✅

修改文件

  1. image-analysis.service.ts (行230-359)

    • 优化 analyzeImageContent() 提示词
    • 添加专业白膜图标准(四大维度)
    • 修正字段定义(hasColor, hasTexture等)
  2. image-analysis.service.ts (行682-771)

    • 重构 determineSuggestedStage() 判断逻辑
    • 规则1:材质颜色和纹理判断(最高优先级)
    • 规则2:白模判断(允许有灯光和家具)
    • 规则3:AI高置信度采用
    • 优化兜底逻辑

验证方法

1. 查看控制台日志

🎯 阶段判断依据: {
  AI类别: "white_model",
  AI置信度: 88,
  有家具: true,
  有灯光: true,
  有色彩: false,  // ✅ 无装饰性色彩
  有纹理: false   // ✅ 无真实纹理
}

🟢 材质符合白模特征:无彩色 + 无纹理
✅ AI高置信度判定为白模,且材质符合,判定为白模阶段

2. 测试专业白膜图

上传特征:

  • 统一中性灰色材质
  • 有灯光和阴影
  • 有家具体块
  • 无装饰性色彩
  • 无真实材质纹理

预期结果:white_model

3. 测试彩色效果图

上传特征:

  • 有木色、布料色等装饰性色彩
  • 有木纹、布纹等真实纹理

预期结果:renderingsoft_decorpost_process

关键要点总结

  1. 白膜可以有灯光:专业白膜图应该有明暗对比和阴影
  2. 白膜可以有家具:白膜可以包含完整的家具体块
  3. 白膜的核心是材质:统一灰色材质 + 无彩色 + 无纹理
  4. 材质判断优先级最高:有彩色材质或真实纹理就绝对不是白模
  5. AI需要验证:即使AI判定为白模,也要验证材质是否符合
  6. 灯光和家具是辅助:不再是白模的排除条件

对比总结

特征 修改前(错误) 修改后(正确)
白膜定义 无家具+无灯光+无色彩 统一灰色材质+无彩色+无纹理
有灯光 ❌ 不是白模 ✅ 可以是白模
有家具 ❌ 不是白模 ✅ 可以是白模
核心判断 灯光和家具 材质颜色和纹理
优先级 灯光>家具>材质 材质>AI置信度>质量

后续建议

  1. 收集白膜样本:建立专业白膜图库,用于验证和优化
  2. 置信度调整:根据实际效果调整AI置信度阈值
  3. 像素质量检测:添加像素尺寸和分辨率的检测逻辑
  4. 用户反馈:记录用户手动修改的分类,用于持续优化
  5. 材质分析增强:考虑增加RGB色彩分析,更精确判断是否为中性灰色