SEM 图像分析流水线
面向古代中国铜范扫描电镜(SEM)图像微观结构分析的全栈计算机视觉系统。为南科大人文社会科学高等研究院荆志淳教授构建,流水线应用基于 SAM 的零样本颗粒分割和 VGG-B 分类,识别三种材质成分——沙砾、黏土和空腔——并生成定量成分报告。成果直接应用于商代青铜铸造技术的考古研究。
亮点
- 应用 SAM(ViT-H,Meta 最大 checkpoint)进行零样本颗粒分割——无需领域特定重训练;针对 SEM 材质对比度调整 IoU/稳定性阈值
- 实现 VGG-B 三分类掩码分类:沙砾 / 黏土 / 空腔——测试准确率 92%;线性层裁剪以提升推理效率
- 设计完整流水线:滑窗裁剪(224×224)→ SAM 分割 → 掩码提取 → VGG 分类 → 彩色叠加重建 → 置信度 + 面积统计
- 基于荆志淳教授提供的真实 SEM 样本构建自定义数据集,涵盖多个考古遗址和朝代的 500×–2000× 放大图像
- 每张图像输出定量成分结果:各类别面积饼图和置信度分布,可直接作为考古证据使用
- 全栈 Web 应用(Vue.js + Flask),支持实时拖拽上传 SEM 图像、动态彩色掩码叠加和自动生成分析仪表盘
流水线概览
流水线通过四个阶段处理任意 SEM 图像:
- 滑窗裁剪 — 输入图像分割为 224×224 图块(无重叠、无间隙),实现内存高效的 SAM 处理
- SAM 分割 — ViT-H SAM 对每个图块生成所有颗粒掩码;参数针对 SEM 对比度调整(
pred_iou_thresh=0.94、stability_score_thresh、min_mask_region_area=1024) - VGG-B 分类 — 每个 SAM 掩码区域从原始图像中提取,分类为沙砾、黏土或空腔;掩码按类别着色
- 结果重建 — 图块拼接;彩色掩码以 alpha 合成叠加于原图;计算置信度和面积统计
分割结果
铜范 SEM 图像经 SAM → VGG 流水线处理后的结果。颜色代表分类材质:红色 = 沙砾,绿色 = 黏土矿物,蓝色 = 空腔。
原始 SEM 输入——1000× 放大的铜范样本
流水线输出——SAM 分割 + VGG 分类:红=沙砾,绿=黏土,蓝=空腔
四个处理样本——沙砾/黏土/空腔比例的差异反映了不同样本间的铸范材质成分差异
Web 应用
前端(Vue.js + Vite)包含三个模块:
- 流水线可视化 — 处理阶段的轮播展示,面向非技术受众
- 静态画廊 — 精选已处理样本;点击展开原图 → 分割叠加对比
- 实时演示 — 拖拽上传 SEM 图像;后端处理后返回:SAM 叠加图像、三类掩码图像、置信度分布图、各类别面积饼图
Flask 后端将完整流水线封装为 REST 接口(/upload、/img/<id>、/process/<id>),结果按图像 ID 在服务端缓存。
SEM 数据集
500× 放大的铜范样本——分割前的原始 SEM 输入,展示颗粒分布情况
数据集由荆志淳教授提供的真实出土铜范 SEM 图像构成,涵盖多个考古遗址和时期的铸范材料,放大倍数为 500×–2000×。另有一组 UBC 参考样本(UBC 系列)提供跨遗址分析的对比黏土样本。
技术概览
| 语言 | Python 3, JavaScript |
| 模型 | SAM(ViT-H,Meta),VGG-B(PyTorch) |
| 任务 | 3 类微观结构分割 + 分类(沙砾 / 黏土 / 空腔) |
| 准确率 | 测试准确率 92%(VGG-B 在分类掩码上) |
| 前端 | Vue.js, Vite |
| 后端 | Flask, OpenCV, NumPy |
| 数据集 | 真实 SEM 图像,500×、1000×、2000×——由南科大考古实验室提供 |
| 应用 | 荆志淳教授——南科大人文社会科学高等研究院 |
| GPU | ~7 GB VRAM(SAM ViT-H 推理) |