# 白膜图专业标准 - 基于行业规范的分析优化 ## 问题背景 之前的分析逻辑错误地认为: - ❌ 白模图 = 无家具 + 无灯光 + 无色彩 - ❌ 有灯光或家具就不是白模 但根据专业白膜图标准,这是**错误的理解**! ## 专业白膜图的真实标准 ### 一、材质维度(Material)- 核心判断标准 白膜图的材质特征: - ✅ **统一漫反射材质**:所有物体采用统一的中性灰色(RGB≈230-240) - ✅ **无装饰性色彩**:无木色、布料色、金属色、暖色调等装饰颜色 - ✅ **无真实纹理**:无木纹、布纹、石材纹理等材质细节 - ✅ **体块清晰**:通过灰度和光影体现物体形态 - ✅ **基础物理属性**:可保留低反射(金属框架≤20%,墙面≤5%) ### 二、灯光维度(Lighting)- 关键特征 ⚠️ **重要修正**:专业白膜图**应该有**灯光层次! - ✅ **明暗对比**:存在主光、辅助光、环境光的区分 - ✅ **阴影逻辑**:有自然的阴影和光影过渡(亮部不曝、暗部有细节) - ✅ **物理准确性**:光源类型(射灯、筒灯、自然光)的照射范围符合现实 - ✅ **空间引导**:灯光突出核心功能区,形成视觉焦点 ### 三、颜色维度(Color)- 关键约束 - ✅ **中性基底**:整体色调为中性灰/浅白,无色彩偏向(无偏黄/偏蓝/偏暖) - ✅ **无彩色干扰**:无木色、布料色、装饰色等装饰性色彩 - ✅ **灰度层次**:色阶覆盖0-255区间,有丰富的灰度层次 - ✅ **色温中性**:灯光为中性色温(5000-5500K),无彩色光污染 ### 四、像素质量(Resolution) - ✅ **基础尺寸**:≥1920×1080px(协作图)或≥3840×2160px(汇报图) - ✅ **细节清晰**:边缘清晰,无模糊或锯齿 - ✅ **分辨率**:≥72dpi ## 核心判断公式 ``` 白膜图 = 统一灰色材质 + 无彩色 + 无纹理 (可以有灯光!可以有家具!) 渲染图/软装图 = 有彩色材质 或 有真实纹理 ``` ## 修改内容 ### 1. AI分析提示词优化 **添加专业白膜标准**: ```typescript 【专业白膜图标准】(基于行业规范) **一、材质维度(Material)- 白膜的核心判断标准** ✓ 统一漫反射材质:所有物体采用统一的中性灰色(RGB≈230-240) ✓ 无装饰性色彩:无木色、布料色、金属色、暖色调等装饰颜色 ✓ 无真实纹理:无木纹、布纹、石材纹理等材质细节 **二、灯光维度(Lighting)- 专业白膜图的关键特征** ⚠️ 重要修正:专业白膜图应该有灯光层次! ✓ 明暗对比:存在主光、辅助光、环境光的区分 ✓ 阴影逻辑:有自然的阴影和光影过渡 ``` **修正字段定义**: ```typescript 【关键字段定义】(重新定义) - hasColor: 是否有装饰性色彩(木色、布料色、金属色、暖色调等),不包括灰度 - hasTexture: 是否有真实材质纹理(木纹、布纹、石材等),不包括简单的灰度变化 - hasFurniture: 是否有家具模型(无论是灰色还是彩色) - hasLighting: 是否有明暗对比和光影层次(白膜也应该有) ``` ### 2. 判断逻辑重构 **修改前**(错误逻辑): ```typescript // ❌ 错误:认为有家具+灯光就不是白模 if (hasColor && hasFurniture && hasTexture) { return 'rendering'; // 绝对不是白模 } // ❌ 错误:白模必须无家具、无灯光 if (!hasFurniture && !hasLighting && !hasColor && !hasTexture) { return 'white_model'; } ``` **修改后**(正确逻辑): ```typescript // ✅ 关键规则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. 兜底逻辑优化 ```typescript // 如果走到这里,说明没有彩色和纹理(可能是白模或低质量图) 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. 测试彩色效果图 上传特征: - 有木色、布料色等装饰性色彩 - 有木纹、布纹等真实纹理 预期结果:`rendering` 或 `soft_decor` 或 `post_process` ## 关键要点总结 1. ✅ **白膜可以有灯光**:专业白膜图应该有明暗对比和阴影 2. ✅ **白膜可以有家具**:白膜可以包含完整的家具体块 3. ✅ **白膜的核心是材质**:统一灰色材质 + 无彩色 + 无纹理 4. ✅ **材质判断优先级最高**:有彩色材质或真实纹理就绝对不是白模 5. ✅ **AI需要验证**:即使AI判定为白模,也要验证材质是否符合 6. ✅ **灯光和家具是辅助**:不再是白模的排除条件 ## 对比总结 | 特征 | 修改前(错误) | 修改后(正确) | |------|---------------|---------------| | **白膜定义** | 无家具+无灯光+无色彩 | 统一灰色材质+无彩色+无纹理 | | **有灯光** | ❌ 不是白模 | ✅ 可以是白模 | | **有家具** | ❌ 不是白模 | ✅ 可以是白模 | | **核心判断** | 灯光和家具 | 材质颜色和纹理 | | **优先级** | 灯光>家具>材质 | 材质>AI置信度>质量 | ## 后续建议 1. **收集白膜样本**:建立专业白膜图库,用于验证和优化 2. **置信度调整**:根据实际效果调整AI置信度阈值 3. **像素质量检测**:添加像素尺寸和分辨率的检测逻辑 4. **用户反馈**:记录用户手动修改的分类,用于持续优化 5. **材质分析增强**:考虑增加RGB色彩分析,更精确判断是否为中性灰色