feat(ai-art): 户型图识别技能与qwen解析评测工具

This commit is contained in:
2026-06-21 23:28:59 +08:00
parent 6319ab331a
commit a37dfa505a
25 changed files with 2266 additions and 0 deletions
@@ -0,0 +1,74 @@
---
name: "floorplan-recognizer"
description: >
户型图识别工具。当需要"识别户型图"、"解析户型"、"提取户型信息"、"看户型有哪些房间/窗户"、
"floor plan recognition"、"户型图推导输入"时使用。用 qwen-vl-max 把链家等房产户型图解析成
结构化 JSON(房间/朝向/窗户形态),并生成「路径 B 文字钉死」片段,作为居民楼立面推导的可靠输入。
---
# 户型图识别工具 (Floorplan Recognizer)
> 户型图图片 → qwen-vl-max 解析 → 结构化 JSON + 「路径 B 文字钉死」片段
## 为什么需要它
AI 生图模型(GPT-Image-2)独立读户型图不可靠——会用"住宅常识"脑补(默认卧室大窗、阳台落地窗、漏房间),
导致路径 B「户型图推导」每张图都要**人工逐项校验窗户形态与比例**(见 `docs/art/美术风格指南.md` 路径 B 劣势)。
本工具先用专门的视觉大模型 qwen-vl-max 把户型图**解析成结构化清单**,把"人工逐项校验"降级为
"AI 出清单 + 人工快速核对"。
> 评测结论(详见 `ai-art-research/生成结果/户型图识别评测/评测对比.md`):qwen-vl-max 在房间完整性、
> 面积 OCR 精度、备注诚实度上领先 gpt-4o / qwen-vl-plus / gpt-4o-mini。
## 触发条件
- 用户说"识别/解析这张户型图"、"提取户型信息"、"看看这个户型有哪些房间/窗户"
- 路径 B 户型图推导前,需要可靠的「房间 + 窗户形态」清单作为"文字钉死"依据
- 用户提供了一张链家/房产户型图要求分析
## 工具位置
```
ai-art-research/tools/
floorplan_parse.py # 生产版(固定 qwen-vl-max,生成文字钉死片段)⭐ 本技能用这个
floorplan_eval.py # 评测版(可换模型对比)
```
依赖 `ai-art-research/.env` 的 `APIYI_API_KEY`(与 `image_gen.py` 共用)。
## 工作流
### 步骤 1:解析户型图
```bash
cd ai-art-research
python tools/floorplan_parse.py --image <户型图路径>
```
产出(存 `生成结果/户型图识别/`):
- `<时间戳>_apiyi_qwen-vl-max.json` — 结构化结果(房间/朝向/窗户/立面对应表)
- `<时间戳>_apiyi_qwen-vl-max.钉死.md` — 「路径 B 文字钉死」片段(可直接粘进生图 prompt)
- `.meta.json` — 调用元数据
### 步骤 2:人工快速核对
对照原图,重点核对「文字钉死」片段里的 ⚠️ 核对项(这些是评测发现的脑补重灾区):
- **卫生间朝向 / 是否暗卫**(模型间分歧最大)
- **阳台朝向**(皆南 vs 一南一北类分歧)
- **窗户类型 / 大小**(均为推测值)
房间数量与单间面积经评测高度可信(qwen-vl-max 与 gpt-4o 面积 OCR 完全一致),一般无需核对。
### 步骤 3:喂给路径 B 生图
把核对后的「文字钉死」片段贴进 `ai-art-research/prompts/居民楼-*-户型图推导-v*.txt` 的窗户形态段落,
作为户型图推导立面的"文字钉死"依据,再走 `image_gen.py --fuse` 生图。
## 注意事项
- 走 API易 的 **vision chat 接口(按 token 计费)**,与生图通道(codex 按订阅 / apiyi 按张)独立,互不影响
- 窗户类型/朝向/大小是模型**推测**,务必核对;房间结构与面积可信
- 若某张图效果不稳,可用 `floorplan_eval.py --image <图> -m <模型>` 换模型对比(参考评测对比.md)
- 链家等彩色标准化户型图适配良好;纯手绘/模糊扫描图效果会下降
- `ai-art-research/` 被项目 `.ignore` 屏蔽,操作需用显式路径(不进 Glob 检索)