Team Ai
Datasetpublic

dezoe/pcb-defect-multi-modal-dataset

印制电路板焊接及装联缺陷多模态数据集 面向 PCB 焊接与装联缺陷识别、资料辅助根因分析和维修建议生成的中文多模态研究数据集。数据集将光学、扫描声学显微(SAM)和 X 射线等缺陷图像与来源标签、中文任务文本,以及可用的检测测量和试验工况关联,支持视觉语言模型的数据准备、指令微调实验和检索增强问答。 版本 v3 包含 5,000 条图像/缺陷区域样本、15,000 条任务指令,覆盖焊点连接质量、焊料分布与形态、焊接层结构及元件装联位置等方面的 14 类目标缺陷: 目标缺陷 含义与标注范围 虚焊 焊接界面未形成可靠的冶金结合,可能表现为接触不稳或间歇导通。 冷焊 热过程不足导致焊料未充分熔融或未形成合格连接,结合来源的热过程与外观信息标注。 少锡 焊料量或有效焊脚不足,焊接部位的填充或覆盖不充分。 多锡 焊料过量,形成过大的焊脚或明显堆积。 连锡 焊料连接本应相互隔离的端子或焊盘,形成焊料桥接。 开焊 应有焊接连接的部位缺少完整连接,或连接部位发生分离。 润湿不良… See the full description on the dataset page: https://huggingface.co/datasets/dezoe/pcb-defect-multi-modal-dataset.

sourceHugging Faceotherupdated 5d agoView on Hugging Face
1likes95downloads
Dataset Card

印制电路板焊接及装联缺陷多模态数据集

面向 PCB 焊接与装联缺陷识别、资料辅助根因分析和维修建议生成的中文多模态研究数据集。数据集将光学、扫描声学显微(SAM)和 X 射线等缺陷图像与来源标签、中文任务文本,以及可用的检测测量和试验工况关联,支持视觉语言模型的数据准备、指令微调实验和检索增强问答。

版本 v3 包含 5,000 条图像/缺陷区域样本、15,000 条任务指令,覆盖焊点连接质量、焊料分布与形态、焊接层结构及元件装联位置等方面的 14 类目标缺陷:

目标缺陷含义与标注范围
虚焊焊接界面未形成可靠的冶金结合,可能表现为接触不稳或间歇导通。
冷焊热过程不足导致焊料未充分熔融或未形成合格连接,结合来源的热过程与外观信息标注。
少锡焊料量或有效焊脚不足,焊接部位的填充或覆盖不充分。
多锡焊料过量,形成过大的焊脚或明显堆积。
连锡焊料连接本应相互隔离的端子或焊盘,形成焊料桥接。
开焊应有焊接连接的部位缺少完整连接,或连接部位发生分离。
润湿不良焊料在基材上未充分铺展结合,或润湿后回缩并露出基材。
锡珠焊接区域出现离散的小焊料球或焊料珠。
气孔包含焊点内部空洞与表面针孔,具体形态通过子类型区分。
拉尖焊点或引脚上的焊料形成尖锐突出物。
裂纹焊料或焊接界面出现裂缝,涵盖焊接层开裂及其检测图像。
脱落部件、端头金属化层或焊盘发生剥离、脱离,按具体对象记录;本数据集主要包含端头金属化层剥离及焊点分离案例。
元件偏移元件相对目标焊盘发生位置或角度偏差。
浮高元件或引脚局部抬离焊盘或安装平面。

另收录 6 条立碑图例,描述两端器件一端明显竖起的现象,作为附加类别计入上述 5,000 条样本。各类别的样本数量见下文“数据概览”。

快速上手 · 使用手册 · 数据说明 · 离线浏览器 · 许可范围

数据集能做什么

围绕“看见缺陷、结合资料解释、给出排查与维修建议”组织了三类任务,每类各有 5,000 条记录。

任务输入输出可以用来做什么
图像描述 image_to_description缺陷图像;需要时显式提供已知测量和工况缺陷类别或资料支持的中文描述缺陷识别、图文对齐、检测结果说明
根因分析 multimodal_to_root_cause图像、知识资料及可用的工况/测量/对照图可能原因、验证方法和判断限制资料辅助分析、工程知识问答、多图证据整合
维修建议 defect_to_repair缺陷文字描述条件性维修步骤与复查项目维修知识检索、辅助建议生成

维修建议任务是文字任务,images=[]。根因任务组织候选原因与验证步骤,维修任务组织处理建议与复查项目;标注证据等级见数据卡。

有哪些特点

数据集的创新性体现在多种检测模态、实测证据与中文工程任务的联合组织:将“缺陷表现、检测数值、试验背景、原因排查、维修建议”通过样本关联起来,为工业视觉语言模型提供可追溯、可组合的学习与分析材料。

1. 五种检测模态,覆盖表面外观与内部结构。 汇集光学、扫描声学显微(SAM)、X 射线、扫描电子显微(SEM)和金相截面五类图像,将不同检测方式获得的缺陷信息纳入统一分类与任务格式。模型可在同一数据体系中学习焊点外观、内部空洞、焊接层裂纹和微观界面等多种表现,支持按检测模态开展识别、描述和分析研究。

2. 图像与量化测量关联,让工程分析有具体依据。 3,913 条 LED/金属基 PCB 样本关联原始测量表,包括 3,313 张裂纹 SAM 图像和 600 张空洞 X 射线图像。图像可联查相应的裂纹指标或空洞比例,以及焊料、热冲击工况、器件编号和原始 CSV 行。这种组织方式支持将已知测量与工况显式加入输入,研究模型如何结合视觉信息和量化证据生成缺陷描述、解释候选机制并提出验证方法。

3. 同器件关联与多图对照,支持缺陷演化分析。 LED 数据对应 1,444 个可追溯物理器件,保留同器件不同检测阶段的关联及可用的初始 SAM 基线。全库 3,314 条样本带有附加证据图,可将主图、初始对照和案例证据按任务顺序共同输入模型,用于对照描述、退化分析和多图证据整合。器件标识与图像路径使这些关联可以直接查询和复核。

4. 三类关联任务,贯通识别、原因排查与维修建议。 围绕同一批样本组织缺陷描述、资料辅助根因分析、维修建议生成三类任务,共 15,000 条指令。任务通过统一样本标识关联,将缺陷类别与描述、候选原因与验证步骤、处理建议与复检项目组织为相互衔接的学习目标,支持多任务指令微调,以及对识别、证据整合和工程建议生成能力的分别评估。

5. 中文工程语义与原始证据关联,兼顾知识问答和区域分析。 统一 14 类目标缺陷的中文术语,保留来源标签、类别映射、资料引用及适用的区域几何信息。其中 SolDef_AI 的 485 条区域样本来自 311 张父图,可追溯原始多边形与裁剪位置。研究者可据此组织中文工业问答、检索增强生成和区域描述任务,并沿来源记录核查标签与解释依据。

6. 可组合的输入设计与可复现的数据准备。 配套工具支持纯图像类别识别、图像结合已知资料的描述,以及保留附加证据的多图根因任务,并可按任务、划分、模态、类别和尺寸导出子集。导出结果记录选择条件、样本 ID 和文件哈希;像素去重、来源与器件分组、质量字段及技术校验共同支持数据复核,便于比较不同数据配置,并复现实验所用的样本与输入。

数据概览

项目v3
主样本5,000 条,每条对应一张成品图像或一个缺陷区域
任务指令15,000 条,同一主样本对应三类任务
实测关联3,913 条样本关联原始裂纹/空洞测量表
数据划分训练 4,804 条,验证 21 条,测试 175 条
文本语言中文任务文本,保留英文来源标签
图像与标注格式PNG、JSONL;部分来源另有多边形标注与 CSV 测量表

14 类目标缺陷的标签数量如下。各列按标签出现次数统计,多标签样本分别计入对应类别。

类别样本数类别样本数
虚焊7冷焊6
少锡197多锡237
连锡195开焊35
润湿不良7锡珠18
气孔609拉尖138
裂纹3,317脱落5
元件偏移225浮高11

主清单聚焦缺陷样本。完整来源统计、模态说明和类别定义见数据说明。

快速上手

Hugging Face 在线预览与读取

Hugging Face 仓库的 default 配置使用 hf_data/ 中的 Parquet 文件,包含全部 5,000 条主样本,并保留训练 4,804 条、验证 21 条、测试 175 条的原始划分。 image 列内嵌主图原始字节,网页预览和 Python 读取均无需先解压完整数据包。 常用列包括中文标签、描述、检测模态、来源、许可状态,以及带证据限制的根因假设和维修建议。

bash
python3 -m pip install -r requirements-hf.txt
python
from datasets import load_dataset

dataset = load_dataset("dezoe/pcb-defect-multi-modal-dataset")
sample = dataset["train"][0]
print(sample["labels_zh"], sample["caption_zh"])
image = sample["image"]  # PIL 图像

sample_json 列保存完整原始样本 JSON;其中的测量、区域几何、质量和附加证据记录均保留。 附加证据图片、父图、源测量表和 15,000 条任务指令仍从下述完整数据包获取, 其中的相对路径以解压后的根目录为基准。Parquet 导出沿用原始许可和再分发状态。

维护者可从完整项目目录重新生成这些文件:

bash
python3 scripts/export_huggingface.py

该命令校验样本划分、分组和主图哈希,生成 Parquet 分片与校验清单; 如果 hf_data/ 已存在,请用 --out 指定新目录以保留旧版。 发布预览数据时,同时上传 hf_data/ 和本 README 中的划分配置。

1. 准备数据与环境

已有完整项目目录时,直接在项目根目录操作。若使用压缩包,取得含许可声明的 v3 数据包和对应 manifest,按使用手册中的方法校验后,在压缩包所在目录解压:

bash
mkdir -p pcb_dataset_v3
tar -xzf pcb_solder_multimodal_v3_with_notices.tar.gz -C pcb_dataset_v3
cd pcb_dataset_v3

使用 Python 3.10+。以下命令从包含 data/、scripts/ 和 README.md 的根目录执行:

bash
python3 -m venv .venv
.venv/bin/python -m pip install 'Pillow>=10' 'jsonschema>=4.18'

浏览图片时,直接用浏览器打开 reports/gallery.html,即可按类别、来源和划分筛选,并查看描述、原因假设及维修建议。保留完整目录结构,浏览器需要读取相对路径下的图片。

2. 读取一条样本

使用 .venv/bin/python 或对应虚拟环境的 notebook 运行:

python
import json
from pathlib import Path
from PIL import Image

root = Path('.')  # 数据集根目录
with (root / 'data/annotations/samples.jsonl').open(encoding='utf-8') as f:
    sample = json.loads(next(f))

with Image.open(root / sample['image']) as image:
    print('图像尺寸:', image.size)

print('缺陷标签:', sample['labels_zh'])
print('检测模态:', sample['source']['modality'])
print('中文描述:', sample['caption_zh'])
print('测量记录:', sample.get('measurements'))
print('可能原因:', sample['root_cause']['possible_causes_zh'])

JSONL 每行是一条 JSON 记录。所有图像路径都相对于数据集根目录;测量字段中的 null 表示该项未记录,与数值零分别处理。

3. 导出训练数据

配套导出脚本只依赖 Python 标准库。下面导出普通光学图像、短边至少 64 像素的训练样本,并使用来源标签作为识别目标:

bash
.venv/bin/python examples/prepare_training_data.py \
  --root . \
  --task image_to_description \
  --split train \
  --modality optical \
  --min-side 64 \
  --description-mode label_only \
  --out work/optical_train.jsonl

v3 会得到 592 条记录,以及同目录的 optical_train.jsonl.manifest.json。label_only 用于类别识别,不将外部测量值写成仅凭图像推断的答案。

如果输入确实包含检测资料,可导出 “SAM 图像+已知工况/测量 → 描述”任务:

bash
.venv/bin/python examples/prepare_training_data.py \
  --root . \
  --task image_to_description \
  --split train \
  --modality scanning_acoustic_microscopy \
  --description-mode with_context \
  --out work/sam_context_train.jsonl

该示例输出 3,313 条记录,输入显式包含当前阶段的已知资料。任务评估关注模型结合图像和已知测量生成描述的能力。

另外两类任务可直接按任务名导出:

bash
.venv/bin/python examples/prepare_training_data.py \
  --root . --task multimodal_to_root_cause --split train \
  --min-side 64 --out work/root_cause_train.jsonl

.venv/bin/python examples/prepare_training_data.py \
  --root . --task defect_to_repair --split train \
  --out work/repair_train.jsonl

导出文件保留 sample_id、messages 和有序的 images 列表。图像任务的 <image> 占位符与 images 一一对应;根因任务可能包含多图,维修任务使用纯文本输入。导出 JSONL 引用原数据目录中的图片,读取时使用数据集根目录。

脚本负责数据准备,模型训练需要接入所选框架的数据加载器,并按其多模态输入格式适配。重复运行示例时请更换输出路径,脚本不会覆盖已有导出文件。更多筛选、多图处理和评估示例见使用手册。

4. 校验成品数据

bash
.venv/bin/python scripts/validate_dataset.py

正常结果应包含 passed: true、valid_samples: 5000 和 instruction_rows: 15000。校验覆盖文件完整性、去重、关联和分组等技术条件。

常用文件

text
data/images/                         成品图片
data/annotations/samples.jsonl        样本、标签、来源与证据主清单
data/annotations/train.jsonl          训练样本主清单
data/annotations/validation.jsonl     验证样本主清单
data/annotations/test.jsonl           测试样本主清单
data/annotations/instructions.jsonl   三类任务的完整指令
data/annotations/<任务名>.jsonl        按任务组织的指令
data/parents/                        SolDef 父图
data/led_evidence/                   LED 检测原图与初始对照
data/source_annotations/             原始区域标注与测量表
data/knowledge/                      缺陷分类与中文排查知识
reports/gallery.html                 离线图片浏览器
examples/prepare_training_data.py    训练子集导出工具

任务通过 sample_id 关联主清单中的 id。train.jsonl 等划分文件存放样本记录;三类任务文件各自包含全部划分,使用时需按 split 筛选,配套导出脚本会完成这一步。

任务选择与评估

  • —任务目标:中文文本按来源标签、资料和测量信息整理。根因任务评估候选机制与验证步骤,维修任务评估建议与复查方案;逐样本证据和复核状态见数据卡。
  • —类别与评测覆盖:数据呈长尾分布,裂纹占主样本约 66.3%。验证集包含 21 条元件偏移样本,测试集覆盖 4 类;指标按实际类别报告,面向其他类别的评估需配置对应测试数据。
  • —检测标注与尺寸:检测/分割实验使用具有 geometry 的子集。231 条主图短边小于 64 像素,可按任务需要筛选。
  • —输入与答案分离:不要将整个样本 JSON 直接作为模型输入,它可能含标签、目标描述和后续阶段的测量值。研究时序预测时,尤其要排除未来阶段的信息。
  • —工程应用:选图阈值服务于数据筛选;产品验收和返修决策需结合适用标准、工艺条件与功能检测。

证据等级、来源映射和分组方法的完整说明见数据卡。

许可与来源

项目原创代码采用 MIT;项目拥有相应权利的原创文档和独立撰写文本采用 CC BY-NC-SA 4.0。第三方图像、标注、测量和文献仍适用原来源条款,具体范围见 LICENSE 和第三方声明。

进一步阅读

文档内容
详细使用手册解压校验、任务准备、多图输入、训练评估与排错
详细数据说明完整统计、字段字典、类别定义、来源与重建流程
数据卡构建方法、标注证据等级、适用范围与引用
来源登记来源网址、归档版本证据、文件哈希与许可记录
技术校验报告图片、字段、去重、关联与划分检查结果