项目数据格式
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 格式的完整字段级规范可联系获取。