DeepPCB标注格式深度解析:x1,y1,x2,y2,type与6大缺陷类别ID详解
【免费下载链接】DeepPCBA PCB defect dataset.项目地址: https://gitcode.com/gh_mirrors/de/DeepPCB
想快速上手DeepPCB数据集吗?本文用最短篇幅讲透它的标注格式:每个缺陷如何用x1,y1,x2,y2,type五个字段描述、6大缺陷类别ID(open、short、mousebite、spur、copper、pin-hole)分别对应什么,以及训练标注文件和评测结果文件的格式差异。读完即可独立完成 DeepPCB 的数据加载与 mAP 评测。
📦 一图看懂 DeepPCB:1500 对图像 + 6 类缺陷
DeepPCB 是一个 PCB 缺陷检测数据集,包含1500 个 640×640 的图像对:
- template 图(
xxx_temp.jpg):无缺陷的模板图像,用于图像配准; - tested 图(
xxx_test.jpg):待检测的测试图像,上面带有 3~12 个真实或人工增广的缺陷; - 标注文件(
xxx.txt):与 tested 图同名,存放在对应的xxx_not目录中,记录每个缺陷的位置与类别。
每张图平均 3~12 个缺陷,分布情况如下:
数据集根目录为 PCBData/,按groupXXXXX/分组存放,并提供了 PCBData/trainval.txt 与 PCBData/test.txt 两个清单文件,分别列出训练验证集和测试集中图像路径 → 标注文件路径的映射,方便直接遍历加载。
📝 5 秒读懂标注文件:x1,y1,x2,y2,type
打开任意一个标注文件(例如 PCBData/group00041/00041_not/00041000.txt),你会看到类似这样的内容:
466 441 493 470 3 454 300 493 396 2 331 248 364 283 4 539 259 592 316 1 89 469 127 497 5每行代表一个缺陷的轴对齐边界框 + 类别ID:
| 字段 | 含义 | 说明 |
|---|---|---|
x1 | 左上角横坐标 | 以图像左上角为原点的像素坐标 |
y1 | 左上角纵坐标 | 与x1配对,标记框的左上角 |
x2 | 右下角横坐标 | 与y2配对,标记框的右下角 |
y2 | 右下角纵坐标 | 框宽 = x2−x1,框高 = y2−y1 |
type | 缺陷类别ID | 整数 1~6,见下方类别速查表 |
下图就是带真值标注的 tested 图像,绿色框即上述边界框:
对应的无缺陷模板图长这样(用于对齐,不含标注):
🏷️ 6 大 PCB 缺陷类别 ID 速查表
type字段是整数 ID,对照关系如下(来源见 README.md):
| ID | 英文 | 中文 | 缺陷特征 |
|---|---|---|---|
| 1 | open | 断路 | 铜线不连续、出现断点 |
| 2 | short | 短路 | 相邻铜线之间意外连通 |
| 3 | mousebite | 缺口 | 铜线边缘出现凹形缺肉 |
| 4 | spur | 毛刺 | 铜线边缘伸出多余尖刺 |
| 5 | copper | 露铜 | 非预期区域出现多余铜皮 |
| 6 | pin-hole | 针孔 | 焊盘或铜箔上出现小孔 |
⚠️注意:
0表示 background,不参与标注,实际缺陷只用 1~6。💡 这套 ID 与标注工具源码中的定义一一对应,可参考 tools/PCBAnnotationTool/datadef.h。
🔀 关键易混淆点:训练格式 ≠ 评测格式
很多新手栽在格式细节上。DeepPCB 的标注文件(训练用)和结果文件(评测用)并不相同:
| 训练标注文件 | 评测结果文件(res.zip 内) | |
|---|---|---|
| 每行格式 | x1 y1 x2 y2 type | x1,y1,x2,y2,confidence,type |
| type 类型 | 整数1~6 | 字符串:open / short / mousebite / spur / copper / pin-hole |
| 分隔符 | 空格 | 逗号(逗号后禁止空格) |
评测时要求检测框与同类真值框的IoU > 0.33才算命中,同时统计 mAP 与 F-score(F=2PR/(P+R))。评测入口是 evaluation/script.py,真值包为 evaluation/gt.zip,运行方式:
python script.py -s=res.zip -g=gt.zip下方是模型在 tested 图上的实际检测结果,绿框顶部标注了类别名与置信度:
🛠️ 自己动手标注:官方 PCBAnnotationTool
如果你需要扩充数据,仓库自带 Qt 标注工具(源码位于 tools/PCBAnnotationTool/,使用文档见 tools/README.md)。工具栏提供 open / short / mousebite / spur / copper / pinhole 六个按钮,点击后在 tested 图上画框即可自动生成边界框并保存为上述 txt 格式:
使用时只需编辑 tools/examples/test.txt 配置「输入图像路径 / 输出标注路径」清单,再打开文件开始标注即可。
✅ 上手检查清单(避坑 Tips)
- 坐标是像素值:图像统一为 640×640,坐标直接可用,无需缩放;
- type 是 1~6 的整数:加载数据时映射为
["open","short","mousebite","spur","copper","pin-hole"]; - 评测输出 type 必须是小写字符串,且 pin-hole 带连字符,逗号后不能有空格;
- 每张图 3~12 个缺陷:解析时不要假设固定数量,按行数读取;
- 图像-标注一一对应:
00041000_test.jpg↔00041000.txt,清单文件可交叉校验完整性。
按以上格式编写加载与评测代码后,配合 evaluation/ 目录中的脚本,你提交的模型就能得到与论文一致的 mAP / F-score 基准对比结果了。
【免费下载链接】DeepPCBA PCB defect dataset.项目地址: https://gitcode.com/gh_mirrors/de/DeepPCB
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考