Files
RoRD-Layout-Recognation/docs/data_description.md
2025-07-21 17:01:18 +08:00

101 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

RoRD 模型 完整数据说明
版本v1.0(仅针对仓库实际代码,不含 README 抽象描述)
────────────────────────────────────
一、数据类型总览
| 阶段 | 需要数据 | 目录示例 | 是否必须 | 说明 |
|---|---|---|---|---|
| 训练 | 布局图像PNG | `train/layouts/*.png` | ✅ | 仅图像,无标注 |
| 验证 / 测试 | 验证图像PNG | `val/images/*.png` | ✅ | 大图 |
| | 模板图像PNG | `val/templates/*.png` | ✅ | 小图 |
| | 标注 JSON | `val/annotations/*.json` | ✅ | 每张验证图一份 |
────────────────────────────────────
二、文件格式与内容
1. 布局 / 验证 / 模板图像
• 后缀:`.png`
• 通道:单通道或三通道皆可(代码内部转为灰度)
• 颜色:二值化黑白最优;灰度亦可
• 分辨率:任意,推荐 1024×1024 以上保证细节
• 命名:无限制,保持唯一即可
2. 标注 JSON与每张验证图像同名
文件路径:`val/annotations/{image_basename}.json`
根对象仅含一个键 `"boxes"`,值为数组,每个元素代表一个模板实例:
```json
{
"boxes": [
{
"template": "nmos_stdcell.png",
"x": 128,
"y": 256,
"width": 64,
"height": 32
},
{
"template": "pmos_stdcell.png",
"x": 300,
"y": 120,
"width": 64,
"height": 32
}
]
}
```
字段含义
| 字段 | 类型 | 取值范围 | 描述 |
|---|---|---|---|
| template | string | 必须与 `val/templates` 中某文件名完全一致 | 对应模板图像 |
| x | int | ≥ 0 | 模板左上角在大图中的列坐标(像素),原点在左上角 |
| y | int | ≥ 0 | 模板左上角在大图中的行坐标(像素) |
| width | int | > 0 | 模板在大图中的宽度(像素),一般等于模板图像实际宽度 |
| height | int | > 0 | 模板在大图中的高度(像素) |
────────────────────────────────────
三、目录结构示范
project_root/
├── train/
│ └── layouts/
│ ├── chipA.png
│ ├── chipB.png
│ └── …
├── val/
│ ├── images/
│ │ ├── chip1.png
│ │ └── chip2.png
│ ├── templates/
│ │ ├── nmos_stdcell.png
│ │ └── pmos_stdcell.png
│ └── annotations/
│ ├── chip1.json
│ └── chip2.json
────────────────────────────────────
四、常见问题速查
1. 训练时是否需要 JSON
→ 不需要。训练阶段仅读取 `train/layouts/*.png`,内部自动生成旋转/镜像自监督对。
2. JSON 中可以多写字段吗?
→ 可以,但评估脚本只解析 `"boxes"` 及 5 个必要子字段,其余忽略。
3. 坐标超出图像边界会怎样?
→ 代码未做强制裁剪,需自行保证 `x+width ≤ image_width``y+height ≤ image_height`,否则评估阶段 IoU 计算会出错。
4. 模板尺寸必须固定吗?
→ 不必。不同模板宽高可不同,只要在 JSON 中写对实际值即可。
5. 一个模板可在同一张图中出现多次吗?
→ 可以,在 `"boxes"` 数组中添加多条记录即可。
────────────────────────────────────
五、一句话总结
训练:给模型一堆版图 PNG
验证 / 测试:给模型大图 + 小模板 + JSON 指明每个模板在大图中的左上角坐标和宽高。