
数据集计算机视觉工业制造【免费下载链接】DeepPCBA PCB defect dataset.项目地址https://gitcode.com/gh_mirrors/de/DeepPCB点击查看免费下载DeepPCB 是一个面向 PCB印制电路板缺陷检测研究的公开数据集包含1,500 对图像每一对由一张无缺陷的模板图像template image与一张经过对齐的测试图像tested image组成后者带有六类最常见 PCB 缺陷的位置标注。本文以仓库 README.md 为主线结合 PCBData、evaluation 与 tools 中的源码与配置系统讲解数据集的采集与预处理流程、标注格式与六类缺陷定义、目录组织与训练/测试划分、评测指标与官方评测脚本的用法以及配套标注工具的使用方法帮助读者在 DeepPCB 上快速开展 PCB 缺陷定位与分类实验。数据集概览与设计动机DeepPCB 的核心定位是defect-free template aligned tested image的图像对结构模板图是人工检查并清洗后的无缺陷图像测试图则是同一 PCB 的带缺陷图像并且通过模板匹配技术完成了像素级对齐。这种结构使得基于测试图与模板图差分的检测思路成为可能同时也支持纯端到端的深度目标检测方法。数据集关键数字来自 README.md 与目录实测项目数值图像对总数1,500模板图 测试图共 3,000 张子图像尺寸640 × 640 像素原始图像尺寸约 16k × 16k 像素采集分辨率约 48 像素 / 毫米线性扫描 CCD缺陷类别数6 类每张 640×640 图像缺陷数约 312 个训练 / 测试划分1,000 对训练剩余为测试仓库中PCBData/目录按groupXXXXX/分组组织实测共 10 个分组group00041、group12000、group12100、group12300、group13000、group20085、group44000、group50600、group77000、group90100、group92000 等数据划分清单见 PCBData/trainval.txt999 行与 PCBData/test.txt499 行每行形如group20085/20085/20085291.jpg group20085/20085_not/20085291.txt即测试图像路径 对应标注文件路径。图像采集与预处理流程README 描述了数据集的完整采集与预处理链路这是理解数据集特性的关键线性扫描采集所有图像来自线性扫描 CCD分辨率约为 48 像素/毫米属于高密度采集原始模板图与测试图尺寸约 16k × 16k 像素。模板清洗无缺陷模板图像从按上述方式采样的图像中人工检查并清理得到。切图原始大图被裁剪为多张 640 × 640 的子图像。对齐通过模板匹配template matching技术将测试图与模板图对齐。二值化精心选择阈值对图像做二值化以抑制光照扰动illumination disturbance。README 特别指出不同的 PCB 缺陷检测算法可以选用不同的预处理方式但图像配准image registration与阈值化thresholding是高精度 PCB 缺陷定位与分类的通用前置步骤。这一点也解释了为什么数据集采用模板-测试图像对的形态——它为差分法、模板比对法以及监督式深度模型都提供了统一的输入基准。标注格式与六类缺陷定义标注文件与图像文件的对应关系每个标注图像拥有一个同名的标注文件。例如以下三个文件同属一个样本对见 PCBData/group00041/00041 与 PCBData/group00041/00041_not00041000_test.jpg测试图像带缺陷00041000_temp.jpg模板图像无缺陷00041000.txt对应的标注文件标注行格式测试图像上的每个缺陷按如下格式标注x1,y1,x2,y2,type其中(x1,y1)为缺陷边界框的左上角坐标(x2,y2)为右下角坐标轴对齐边界框axis-aligned bounding boxtype为缺陷类别整数 ID。类别 ID 对照表来源 README.mdtype ID类别说明0background背景不使用1open断路2short短路3mousebite缺口鼠咬4spur毛刺5copper露铜spurious copper6pin-hole针孔以 PCBData/group00041/00041_not/00041000.txt 为例真实标注内容为466 441 493 470 3 454 300 493 396 2 331 248 364 283 4 221 314 253 350 4 151 149 182 175 5 492 28 525 55 6 424 24 461 53 6 250 341 278 370 6 539 259 592 316 1 89 469 127 497 5即该测试图像共标注 10 个缺陷覆盖 mousebite、short、spur、copper、pin-hole、open 等类别。人工扩充缺陷与类别分布由于真实测试图像中缺陷数量很少作者按照 PCB 缺陷形态学规律在每张测试图上人工合成argument了一些缺陷使得每张 640×640 图像包含约3 到 12 个缺陷。README 用统计图展示了缺陷数量分布fig/CountPCB.png。数据集目录结构与划分仓库目录组织如下实测PCBData/ ├── group00041/ │ ├── 00041/ # 测试图 _test.jpg 模板图 _temp.jpg │ └── 00041_not/ # 标注文件 *.txt ├── group12000/ │ ├── 12000/ │ └── 12000_not/ ├── ... ├── test.txt # 测试集划分499 对 └── trainval.txt # 训练集划分999 行共 1,000 张README 明确1,000 张图像作为训练集其余作为测试集。实测trainval.txt有 999 行每行对应一张测试图test.txt有 499 行合计 1,498 个样本条目结合分组目录中未列入清单的少数样本整体规模与1,500 对的描述一致。评测指标与官方评测脚本评测指标定义DeepPCB 使用平均精度率average precisionAP/mAP与F-score作为评测指标判定规则如下只有当检测框与同类别任一 ground truth 框的交并比IoU大于 0.33时该检测才判定为正确。F-score 计算公式F-score 2PR / (P R)其中P为 precision查准率R为 recall召回率。README 特别强调F-score 对置信度阈值敏感你可以通过调整 score 阈值获得更好的结果。虽然 F-score 在公平性上不如 mAP但它更贴近实际部署——模型上线时总需要给定一个阈值且并非所有算法都会为目标输出得分。因此DeepPCB 的 benchmark 同时考虑F-score 与 mAP两个指标。官方评测脚本的使用步骤评测脚本位于 evaluation 目录由 ICDAR2015 评测脚本小幅修改而来仓库提供了修改后的评测脚本、rrc_evaluation_funcs.py工具函数库以及测试集 ground truth 压缩包gt.zip。完整步骤第 1 步运行算法并保存检测结果为每张图像生成一个名为image_name.txt的结果文件image_name必须与gt.zip中的文件名完全一致。输出格式为x1,y1,x2,y2,confidence,type其中(x1,y1)、(x2,y2)缺陷边界框左上角与右下角坐标confidencefloat 类型表示检测置信度type字符串必须是open、short、mousebite、spur、copper、pin-hole之一除逗号外不允许任何空格。注意与 ground truth 标注格式的区别GT 中类别是整数 ID16而提交结果中类别是字符串open、short 等且额外多一个 confidence 字段。第 2 步打包结果将所有的.txt文件打包为res.zip。zip 包内不得包含任何子目录。第 3 步运行评测脚本python script.py -sres.zip -ggt.zip其中-s为你的方法结果文件-g为 ground truth 文件。评测脚本内部实现细节从 evaluation/script.py 源码可以进一步确认评测机制默认参数default_evaluation_params中IOU_CONSTRAINT 0.33与 README 描述一致CONFIDENCES True即检测结果必须包含置信度脚本会据此计算 AP。数据验证阶段validate_data会校验提交结果与 GT 的文件名对应关系若提交样本不存在于 GT 中将抛出异常。AP 计算compute_ap采用按置信度降序排序后累计的插值方式最终汇总出全局precision、recall、hmean即 F-score与AP四项指标evaluation/script.py。逐样本指标同样输出 precision、recall、hmean、AP并附带 IoU 矩阵与匹配对信息便于定位单个图像的失败原因。evaluation/readme.txt 还补充了脚本的通用说明需要 Python 2.7 环境沿用 ICDAR2015 脚本规范可选参数-o指定输出目录保存包含逐样本结果的results.zip-p用于以 JSON 字符串覆盖脚本默认参数例如python script.py -ggt.zip -ssubmit.zip -o./ -p{IOU_CONSTRAINT: 0.8}。需要注意-p中参数名IOU_CONSTRAINT需与源码default_evaluation_params字典中的键名保持一致。配套标注工具PCB Annotation Tool仓库在 tools 目录下提供了带源码的 PCB 缺陷标注工具Qt 应用用于在测试图像上高效标注缺陷这也是构建自定义 PCB 缺陷数据集的关键辅助设施。源码位于 tools/PCBAnnotationTool使用说明见 tools/README.md。环境与安装开发环境Qt 5.4.1、Windows 10安装步骤下载本项目用 QtCreator 打开工程文件 tools/PCBAnnotationTool/PCBAnnotationTool.pro在 QtCreator 的project栏中将 build directory 设置为./tools目录构建CtrlR。使用流程编辑文件清单 tools/examples/test.txt设置输入图像路径与输出标注文件路径格式为一行一对/absolute/path/to/examples/grouptest/test/12100000.jpg /absolute/path/to/examples/grouptest/test_not/12100000.txt在 QtCreator 中构建CtrlR项目点击open按钮打开上述文件清单双击左侧表格中的任意一行打开待标注图像。如果是首次标注该图像工具会提示找不到已有标注文件并根据文件清单中设置的路径自动创建新标注文件标注操作可选5-1 手动新增缺陷点击工具栏中的类别按钮open、short、mousebite、spur、copper、pinhole在测试图像窗口绘制对应缺陷自动生成边界框绘制完成后点击save按钮5-2 标注已有缺陷点击与目标缺陷同名的工具栏按钮在缺陷边缘点击若干点生成边界框完成后点击save5-3 删除标注在左侧表格选中要删除的行通过菜单tools→delete删除再点击save保存。注意删除操作只删除标注记录不会对测试图像做任何修改点击工具栏return按钮结束当前图像标注工具会按第 1 步设置的路径生成标注文件。源码中的类别定义与标注写入逻辑从源码可以印证标注工具的类别体系与 DeepPCB 标注格式完全一致tools/PCBAnnotationTool/datadef.h 定义了缺陷类型常量与数据结构DrawbackInfox1、y1、x2、y2、type其中DRAWBACK_BROKEN1断路/open、DRAWBACK_SHORT2短路/short、DRAWBACK_GAP3缺口/mousebite、DRAWBACK_BURR4毛刺/spur、DRAWBACK_CROPPER5露铜/copper、DRAWBACK_HOLE6针孔/pin-holetools/PCBAnnotationTool/utils.cpp 中的strDrawbackType()将整数类别映射为字符串open、short、mousebite、spur、copper、pinhole与评测提交格式的字符串类别一一对应tools/PCBAnnotationTool/mainwindow.cpp 中的saveAnnotation()L184-L227按x1 y1 x2 y2 type逐行写入标注文件updateDetailTable()L262-L321则负责读取并回显已有标注保证标注文件的读写格式与数据集规范一致。论文与使用声明该数据集由论文On-line PCB Defect Detector On A New PCB Defect Dataset贡献仅可用于研究目的。README 展示了基于深度神经网络的模型在 DeepPCB 上的实验结果98.6% mAP、98.2% F-score 62FPS该数字来自 README 原文具体方法源码与更多统计分析将在论文接收后公开。预测结果可视化示例见 fig/result 目录下的result_test*.jpg与result_temp*.jpg图像对绿色边界框为模型预测的缺陷位置框上方标注了置信度。快速上手路线图浏览数据进入 PCBData选择任意groupXXXXX分组观察_test.jpg与_temp.jpg图像对并对照同目录_not/*.txt标注理解六类缺陷的边界框形态准备训练以 PCBData/trainval.txt 作为训练清单PCBData/test.txt 作为测试清单按检测框格式x1,y1,x2,y2,type读取标注训练与推理可采用任意目标检测/分割模型若利用模板图做差分或对齐可结合二值化等预处理获得先验提交评测按上文步骤生成image_name.txtx1,y1,x2,y2,confidence,type格式无空格打包res.zip后运行python script.py -sres.zip -ggt.zip自制数据集如需扩充缺陷样本可编译运行 tools/PCBAnnotationTool 标注工具按 tools/examples/test.txt 的清单格式组织图像与标注输出。赞分享数据集计算机视觉工业制造【免费下载链接】DeepPCBA PCB defect dataset.项目地址https://gitcode.com/gh_mirrors/de/DeepPCB点击查看免费下载相关推荐DeepPCB数据集如何用1500对工业图像革新PCB缺陷检测DeepPCB数据集如何用1500对工业图像革新PCB缺陷检测 在电子制造业的精密世界里一块指甲盖大小的PCB板上可能隐藏着数十个致命缺陷。传统人工检测如数据集计算机视觉工业制造DeepPCB PCB缺陷检测数据集完全入门1500对图像、6大缺陷类型一文讲透DeepPCB PCB缺陷检测数据集完全入门1500对图像、6大缺陷类型一文讲透 DeepPCB 是一个专注于 PCB缺陷检测 的开源数据集包含 1500数据集计算机视觉工业制造DeepPCB数据集终极指南PCB缺陷检测实战手册DeepPCB数据集终极指南PCB缺陷检测实战手册 在电子制造业中PCB缺陷检测是确保产品质量的关键环节。DeepPCB作为业界领先的PCB缺陷检测数据集数据集计算机视觉工业制造上一篇PostHog ReviewHog 评审模型对比实验运行报告解读GLM-5.2 的 B-glm52-max-1 全量拆解下一篇使用 GitKraken 完成开源首次贡献first-contributions 项目 Fork、Clone 到 Pull Request 全流程实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考