跳转到内容

项目数据格式

Micro-Seg 项目就是一个普通目录,采用完整成文、带版本号的格式。没有数据库, 不存绝对路径,全程 UTF-8。

MyProject/
├── project.json # 项目"是什么":全局配置、类别
├── index.jsonl # 项目"有什么":图像列表 + 工作流元数据
├── .microseg/ # 可选:插件绑定 + 项目级参数
└── objects/
├── images/ # 内容寻址的图像字节(sha256)
└── annotations/ # 每张图像一个 JSON sidecar
  • 内容寻址存储。 每张图像以其原始字节的 SHA-256 标识,存储于 objects/images/<shard>/<hash><ext>。重复导入会被检测并拒绝。
  • 只追加索引。 index.jsonl 是全量快照记录的日志,最终状态按 最后记录为准。更新从不改写已有行,diff 保持很小,写入天然崩溃安全。
  • 原子写入。 所有文件都通过临时文件 + fsync + rename 落盘。
  • 对 Git 友好。 确定性的规范 JSON 加只追加日志,让项目可以被实际地 纳入版本管理与评审。
  • 严格校验。 项目打开时全量校验;损坏会被明确报告,而不是被静默忽略。

每张图像的标注保存在一个 JSON sidecar 中 (objects/annotations/<shard>/<hash>.json)。坐标以定点整数存储 (stored = round(real × scale)),坐标空间是图像原始像素空间。

支持的形状编码:

类型 编码
bbox [x, y, w, h]
rectangle 最小/最大角点 + rotation_deg
ellipse 圆心 + 半径 + rotation_deg
point / points 坐标对
polyline 开放顶点链
polygon 闭合顶点链
mask 原点 + 尺寸 + 行程编码位图

每个形状都引用 project.json 中定义的类别。类别从不物理删除——只会被停用, 因此旧标注永远可以解析。

格式是有公开规范的纯 JSON,用 Python、R 或任何分析管线直接消费都很直接—— 不需要导出步骤。应用内另外提供 CSV 与 XML 导出。

v1 格式的完整字段级规范可联系获取