101 lines
3.8 KiB
Markdown
101 lines
3.8 KiB
Markdown
|
|
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 指明每个模板在大图中的左上角坐标和宽高。
|