安塞剪纸民俗符号语义分割与交错图案识别系统

综合实训题目二 · 网页 Demo
未载入图像
步骤 03 / 04

评估与鲁棒性

用真值掩码量化分割质量,导入 U-Net 预测 Mask 与传统流水线同图对比,并用 8 项扰动检验复杂采集条件下的稳定性。

IoU / Dice / PABoundary F1细线召回微孔完整率8 项扰动

模型评估:真值对比 + 传统 vs 深度学习(IoU / 分类准确率 / 细线 / 微孔)

IoU(交并比)
—
Dice 系数
—
像素准确率 PA
—
Boundary F1(容差2px)
—
细线像素召回
—
微小镂空完整率
—
符号分类准确率(人工复核)
—
未复核
召回率 Recall
—
精确率 Precision
—
像素 F1
—
自评(无需真值):载入图像后显示。
传统流水线 Mask本页实测
U-Net 预测 Mask(导入 / 后端)未导入
误差分布绿=命中 · 蓝=误检 · 红=漏检
混淆矩阵(像素级;行 = 真值,列 = 预测)
预测前景预测背景
真值前景——
真值背景——
上传真值掩码后显示。
方法IoUBoundary F1细线召回微孔完整率来源
传统图像处理(纯 OpenCV 式流水线)待上传真值待上传真值——浏览器端实测
深度学习(U-Net / SAM / DeepLab)待导入/后端待导入/后端——导入预测 Mask 或后端接口实测

真值掩码可由 Labelme 导出或人工标注(白=前景)。上传 GT 后即计算 IoU / Dice / PA / Boundary F1,并额外给出细线像素召回(3×3 邻域前景≤5 的细线条)与微小镂空完整率(GT 中被前景包围、面积≤300px 的小孔是否保持镂空),直接回答"细长线条、微小镂空是否分割完整"。深度学习一行可导入 U-Net 离线推理的 Mask(白=前景),或在上方后端接入位调用接口后自动填充,用于与传统方法同图对比。分类准确率以人工复核为真值:在符号表逐条点"✓正确"或校正类别后自动统计。

鲁棒性一键测试(光照 / 底色 / 噪声 / 破损)

扰动前景占比与基准 IoU稳定性
尚未运行。

模拟褪色红纸、弱光、扫描噪声、失焦模糊、黑纸深底、轻微破损等真实采集条件(覆盖不同纸色与背景),验证流水线在复杂环境下的识别稳定性(IoU ≥ 0.85 视为稳定)。还需泛化验证时,可回到「图像上传与分割」点选 12 张不同生肖照片换图复测,或在首页拖入自己的照片。

DeepLab 后端接入位(模型 / API 形态)

模型本项目中的角色接入方式
U-Net像素级分割主力,保留剪纸精细边缘(锯齿/波浪纹)model=unet
SAM点/框提示(Prompt)交互式精准提取交错单体model=sam
DeepLab v1/v2VGG+CRF / 空洞卷积+ASPP(对比基线)model=deeplabv1|v2
DeepLab v3/v3+改进 ASPP / 编码器-解码器,细边界最强(默认)model=deeplabv3|v3plus
未启用后端时,本页使用浏览器端传统流水线,输出即为 DeepLab 训练所需的弱标签。
启动方式:pip install -r requirements.txt → python deeplab_segment_api.py --check(一键自检)→ python deeplab_segment_api.py(启动服务),服务地址默认 http://localhost:8000。
// 后端接口契约(FastAPI 示例)
POST /segment     multipart/form-data
  file     : 剪纸图片
  model    : unet | sam | deeplabv1 | deeplabv2 | deeplabv3 | v3plus
  prompt_x : 可选,点提示 x(SAM 点提示)
  prompt_y : 可选,点提示 y
  box      : 可选,"x,y,w,h" 框提示
200 → { "mask_png_base64": "...", "backend": "onnx-sam",
        "foreground_ratio": 0.37, "boundary_ratio": 0.056 }
← 上一步:纹样解析与标注 下一步:导出与交付 →