在电子工程和智能制造领域,电子元器件的自动识别与分类一直是个重要课题。最近我整理并开源了一个针对三种常见电子元器件(QFP32、SOP16和USB接口)的高质量标注数据集,经过实测在验证集上达到了99.2%的识别准确率。这个数据集特别适合用于生产线上的元器件自动分拣、PCB组装质量检测等工业场景。
数据集包含了1296张精心标注的图片,涵盖元器件在不同角度、光照条件下的形态。最值得一提的是,我们提供了YOLO、COCO JSON和Pascal VOC XML三种主流格式的标注文件,可以直接对接各种目标检测框架。下面我将详细介绍这个数据集的特点和使用方法。
数据集包含的三种元器件都是电子设计中最常见的类型:
QFP32:32引脚四方扁平封装,引脚间距通常为0.8mm,广泛用于MCU、CPLD等器件。在数据集中我们特别捕捉了不同倾斜角度下的形态,因为在实际PCB上它们往往不是完全正对相机的。
SOP16:16引脚小外形封装,比QFP更窄更长。我们收集了不同品牌、不同反光程度的样品,包括有些引脚轻微弯曲的真实场景样本。
USB接口:包含Type-A、Micro-B等多种常见规格,特别注重了接口金属触点的反光问题,这在机器视觉中是个典型挑战。
所有图片都经过了三重质检:
标注时我们特别注意了几个关键点:
数据集按照8:1:1的比例划分为:
所有图像统一resize到320×320分辨率,但没有进行其他增强处理。这是因为在实际工业应用中,摄像头采集的图像通常都有固定分辨率,过度增强反而可能降低模型的泛化能力。
我们提供了几乎所有主流框架需要的标注格式:
| 格式类型 | 适用框架 | 特点 |
|---|---|---|
| YOLO格式 | YOLOv5/v7/v8等 | 归一化坐标,txt文件 |
| COCO JSON | MMDetection等 | 结构化JSON,含完整元数据 |
| Pascal VOC | TensorFlow等 | XML格式,兼容性强 |
特别说明:YOLO格式我们提供了v5到v9多个版本的适配文件,确保不同版本的YOLO都能直接使用。
使用YOLOv8n模型进行基准测试,硬件配置为:
优化器采用SGD,初始学习率0.01,配合余弦退火策略。没有使用预训练权重,完全从零开始训练。
在测试集上达到的关键指标:
| 指标 | QFP32 | SOP16 | USB | 平均 |
|---|---|---|---|---|
| 精确率 | 99.3% | 99.1% | 99.2% | 99.2% |
| 召回率 | 98.9% | 99.3% | 99.4% | 99.2% |
| mAP@0.5 | 99.1% | 98.8% | 99.5% | 99.1% |
从训练曲线可以看出,模型在大约30个epoch后就达到了90%以上的准确率,后续训练主要提升小目标检测能力。
以YOLOv5为例,最简单的使用方式:
bash复制git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt
# 下载我们的数据集
wget [YOLOv5格式数据集链接]
# 训练
python train.py --img 320 --batch 32 --epochs 100 --data dataset.yaml --cfg models/yolov5n.yaml --weights ''
dataset.yaml文件内容:
yaml复制train: ../images/train
val: ../images/val
test: ../images/test
nc: 3
names: ['qfp32', 'sop16', 'usb']
训练完成后,可以用以下命令测试单张图片:
bash复制python detect.py --weights runs/train/exp/weights/best.pt --source test_image.jpg
问题1:USB接口检测置信度低
问题2:SOP16误检为QFP32
问题3:小尺寸元器件漏检
数据集提供了多种格式的下载选项:
建议根据您的框架选择合适的格式。如果是PyTorch生态,YOLO格式最简单;如果是TensorFlow,Pascal VOC可能更方便。
对于想要扩展数据集的研究者,我们提供了完整的标注工具链和标准操作流程文档,确保新增数据能与现有数据集保持一致的标注质量。