SEM 图像分析流水线

面向古代中国铜范扫描电镜(SEM)图像微观结构分析的全栈计算机视觉系统。为南科大人文社会科学高等研究院荆志淳教授构建,流水线应用基于 SAM 的零样本颗粒分割和 VGG-B 分类,识别三种材质成分——沙砾、黏土和空腔——并生成定量成分报告。成果直接应用于商代青铜铸造技术的考古研究。

在 GitHub 上查看


亮点

  • 应用 SAM(ViT-H,Meta 最大 checkpoint)进行零样本颗粒分割——无需领域特定重训练;针对 SEM 材质对比度调整 IoU/稳定性阈值
  • 实现 VGG-B 三分类掩码分类:沙砾 / 黏土 / 空腔——测试准确率 92%;线性层裁剪以提升推理效率
  • 设计完整流水线:滑窗裁剪(224×224)→ SAM 分割 → 掩码提取 → VGG 分类 → 彩色叠加重建 → 置信度 + 面积统计
  • 基于荆志淳教授提供的真实 SEM 样本构建自定义数据集,涵盖多个考古遗址和朝代的 500×–2000× 放大图像
  • 每张图像输出定量成分结果:各类别面积饼图和置信度分布,可直接作为考古证据使用
  • 全栈 Web 应用(Vue.js + Flask),支持实时拖拽上传 SEM 图像、动态彩色掩码叠加和自动生成分析仪表盘

流水线概览

流水线通过四个阶段处理任意 SEM 图像:

  1. 滑窗裁剪 — 输入图像分割为 224×224 图块(无重叠、无间隙),实现内存高效的 SAM 处理
  2. SAM 分割 — ViT-H SAM 对每个图块生成所有颗粒掩码;参数针对 SEM 对比度调整(pred_iou_thresh=0.94stability_score_threshmin_mask_region_area=1024
  3. VGG-B 分类 — 每个 SAM 掩码区域从原始图像中提取,分类为沙砾、黏土或空腔;掩码按类别着色
  4. 结果重建 — 图块拼接;彩色掩码以 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 推理)