工业视觉检测算法和系统 实时检测芯片引脚的缺陷 使用计算机视觉YOLOV8模型训练芯片缺陷检测数据集 识别检测芯片中的污染引脚 损坏引脚 划痕 自动识别引脚缺陷文章目录芯片引脚缺陷数据集信息表数据集概述类别标签及样本分布统计表数据集特点总结✅ 一、环境搭建从零开始1. 确认 CUDA 驱动GPU 加速2. 安装 Anaconda3. 创建 Python 虚拟环境4. 安装必要依赖✅ 二、数据集结构与 data.yaml 配置目录结构data.yaml 文件内容✅ 三、调用 YOLOv8 官方预训练模型进行训练✅ 四、推理代码单图 / 批量 / 视频1. 单张图像推理2. 批量图像推理3. 实时摄像头检测OpenCV✅ 五、模型评估验证集 测试集1. 在验证集上评估2. 在测试集上独立评估最终性能✅ 六、可视化与分析1. 使用中文标签显示2. 查看训练曲线✅ 七、模型导出ONNX / TensorRT / TFLite芯片缺陷检测数据集 2100张 引脚缺陷划痕 带标voc yolo数据集描述芯片引脚缺陷数据集信息表数据集概述项目内容数据集名称芯片引脚缺陷数据集总图像数量2,150 张总标注个数27,344 个目标类别数5 类应用场景半导体制造质量控制、自动化检测系统、工业视觉检测标注格式未指定可根据需求转换为YOLO、VOC等格式类别标签及样本分布统计表类别编号英文名称中文名称图片张数标注个数0dirty污染3133131normal_leg正常引脚2,11825,0472bent_leg弯曲引脚7421,5113damaged_leg损坏引脚70914scratches划痕236382总计————2,15027,344数据集特点总结✅多类别标注包含5种常见的芯片引脚缺陷类型覆盖了从正常到多种缺陷状态。✅高标注密度平均每个图像有约12.7个标注框适合细粒度缺陷检测任务。✅丰富样本量提供2,150张图像和27,344个标注适用于训练深度学习模型。#### data.yaml 示例内容 yaml train: ./chip-pin-defect-dataset/images/train val: ./chip-pin-defect-dataset/images/val test: ./chip-pin-defect-dataset/images/test nc: 5 # 类别数量 names: [dirty, normal_leg, bent_leg, damaged_leg, scratches] # 类别名称该数据集非常适合用于开发和评估基于深度学习的芯片引脚缺陷检测系统。如果您有更多需求或需要进一步的帮助请随时告知11✅ 一、环境搭建从零开始1. 确认 CUDA 驱动GPU 加速nvidia-smi确保输出中显示 CUDA 版本 ≥ 11.8推荐 12.12. 安装 Anaconda前往 https://www.anaconda.com/products/distribution 下载并安装。3. 创建 Python 虚拟环境# 创建名为 chip_defect 的环境conda create-nchip_defectpython3.9# 激活环境conda activate chip_defect4. 安装必要依赖# 安装 PyTorch以 CUDA 11.8 为例pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# 安装 YOLOv8 官方库pipinstallultralytics opencv-python numpy matplotlib tqdm scikit-learn pandas pillow# 可选TensorBoard 可视化pipinstalltensorboard# 验证 GPU 是否可用python-cimport torch; print(torch.cuda.is_available())# 应输出 True✅ 二、数据集结构与data.yaml配置目录结构chip-pin-defect-dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── data.yamldata.yaml文件内容# data.yamltrain:./chip-pin-defect-dataset/images/trainval:./chip-pin-defect-dataset/images/valtest:./chip-pin-defect-dataset/images/testnc:5# 类别数量names:-dirty# 污染-normal_leg# 正常引脚-bent_leg# 弯曲引脚-damaged_leg# 损坏引脚-scratches# 划痕# 中文名称用于可视化names_zh:-污染-正常引脚-弯曲引脚-损坏引脚-划痕⚠️ 注意确保标注文件为 YOLO 格式归一化坐标每行class_id x_center y_center width height✅ 三、调用 YOLOv8 官方预训练模型进行训练由于引脚目标小且密集建议使用YOLOv8m或YOLOv8l以获得更好性能。fromultralyticsimportYOLO# 加载官方预训练模型modelYOLO(yolov8m.pt)# 推荐使用中等模型# 开始训练resultsmodel.train(datadata.yaml,# 数据配置文件路径epochs200,# 训练轮数工业数据建议多训batch32,# 根据显存调整RTX 3090 可用 64imgsz640,# 图像尺寸optimizerAdamW,# 更稳定优化器lr00.001,# 初始学习率weight_decay0.0005,momentum0.937,# 数据增强关键提升泛化augmentTrue,hsv_h0.015,hsv_s0.7,hsv_v0.4,degrees10.0,translate0.1,scale0.5,shear0.0,flipud0.0,fliplr0.5,mosaic1.0,mixup0.1,copy_paste0.1,# 对小目标特别有效# 正则化dropout0.2,label_smoothing0.05,# 学习率调度cos_lrTrue,# 余弦退火# 保存与日志projectruns/train,namechip_defect_yolov8m,saveTrue,save_period10,exist_okFalse,# 缓存内存充足时开启cacheTrue)✅提示若显存不足改用yolov8s.pt或降低batch16copy_paste和mosaic对小目标检测至关重要可开启close_mosaic在最后 10 轮关闭 Mosaic 增强✅ 四、推理代码单图 / 批量 / 视频1. 单张图像推理fromultralyticsimportYOLOfromPILimportImage# 加载最佳模型modelYOLO(runs/train/chip_defect_yolov8m/weights/best.pt)# 推理resultsmodel(test_chip.jpg,conf0.3)# 显示结果forrinresults:im_arrayr.plot()# 绘制边界框和标签imImage.fromarray(im_array[...,::-1])# BGR to RGBim.show()2. 批量图像推理resultsmodel.predict(sourcechip-pin-defect-dataset/images/test,saveTrue,projectruns/detect,namechip_test_results,conf0.3,imgsz640)print(批量推理完成)3. 实时摄像头检测OpenCVimportcv2 capcv2.VideoCapture(0)whilecap.isOpened():ret,framecap.read()ifnotret:breakresultsmodel(frame,conf0.3)annotated_frameresults[0].plot()cv2.imshow(Chip Pin Defect Detection,annotated_frame)ifcv2.waitKey(1)0xFFord(q):breakcap.release()cv2.destroyAllWindows()✅ 五、模型评估验证集 测试集1. 在验证集上评估metricsmodel.val(datadata.yaml,splitval,batch32,imgsz640,save_jsonFalse,projectruns/val,namechip_eval)print(fmAP0.5:{metrics.box.map50:.4f})print(fmAP0.5:0.95:{metrics.box.map:.4f})print(fPrecision:{metrics.box.p:.4f})print(fRecall:{metrics.box.r:.4f})# 每类 APfori,nameinenumerate(model.names):print(f{name}(AP0.5):{metrics.box.ap[i]:.4f})2. 在测试集上独立评估最终性能# 使用 test split 进行最终性能评估test_metricsmodel.val(datadata.yaml,splittest,save_jsonTrue,nametest_final)print(fTest mAP0.5:{test_metrics.box.map50:.4f})print(fTest mAP0.5:0.95:{test_metrics.box.map:.4f})✅ 六、可视化与分析1. 使用中文标签显示# 修改模型类名显示为中文model.names[污染,正常引脚,弯曲引脚,损坏引脚,划痕]resultsmodel(test_chip.jpg)results[0].plot()# 显示中文标签2. 查看训练曲线tensorboard--logdirruns/train/chip_defect_yolov8m✅ 七、模型导出ONNX / TensorRT / TFLite# 导出为 ONNX通用部署model.export(formatonnx,dynamicTrue,opset13,imgsz640)# 导出为 TensorRTNVIDIA GPU 加速model.export(formatengine,halfTrue,dynamicTrue)# 导出为 TFLite移动端model.export(formattflite,int8True)# 导出为 CoreMLiOSmodel.export(formatcoreml)