毕业设计:基于图像处理技术的PCBA板缺陷自动检测系统

PCB印刷电路缺陷检测实战:从数据集准备到模型训练全流程解析 本文详细解析了PCB缺陷检测从数据集准备到模型训练的全流程。重点介绍了PKU-Market-PCB数据集的特点与下载方法,并提供了数据格式转换、模型选择(如YOLOv8)与训练配置的实战代码。针对PCB小目标检测的难点,文章给出了数据分析和模型优化的具体策略,帮助读者构建高效的缺陷检测系统。 阅读详情

目录

前言

项目背景

数据集

设计思路

更多帮助


前言

    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

        🚀对毕设有任何疑问都可以问学长哦!

       大家好,这里是海浪学长计算机毕设专题,本次分享的课题是

       🎯基于图像处理技术的PCBA板缺陷自动检测系统

项目背景

       随着电子产品的快速发展,印刷电路板作为电子设备的核心组成部分,其质量直接影响到产品的性能和可靠性。传统的PCBA板缺陷检测方法多依赖于人工目视检查,工作效率低下且容易出现误判和漏判。通过利用深度学习技术,可以实现对PCBA板缺陷的高效、准确检测,从而提高生产效率,降低生产成本,并提升最终产品的质量。

数据集

       数据采集阶段包括自主拍摄和从互联网获取相关图像,使用了LabelImg进行标注,标注过程由经验丰富的工程师执行,以确保标注的准确性和有效性。每张图像中的缺陷区域都经过仔细审核,标注结果会被记录为相应的标签文件,例如XML格式。这些标签文件将用于后续训练过程中的监督学习,确保模型能够准确识别和定位板上的缺陷。

       数据集按照一定比例进行划分,其中训练集占总数据集的70%-80%,测试集占10%-15%,而剩余部分作为验证集。 为了提高模型的表现,采用数据扩展技术,如旋转、翻转和缩放等,以增加样本的多样性。不仅能够帮助模型更好地适应不同的输入条件,还能有效防止过拟合,提高模型在实际应用中的鲁棒性和泛化能力。

设计思路

       PCBA板缺陷自动检测系统中,图像预处理是关键步骤之一,其中图像滤波常用的方法包括均值滤波、中值滤波和高斯滤波,这些方法都旨在有效降低图像噪声,提高后续缺陷检测的准确性。

       均值滤波是一种经典的图像平滑技术,它通过计算PCB图像某个区域内像素值的平均值来实现降噪。均值滤波的实现依赖于指定的窗口大小,常用的窗口尺寸有3×3、5×5和7×7。选择合适的窗口形状和大小可以优化滤波效果。具体而言,均值滤波的过程是通过计算窗口区域内所有像素的平均值,并将该均值替换窗口中心的像素值,从而平滑图像,减少噪声干扰。

       中值滤波是一种非线性滤波方法,它通过对窗口内像素值进行排序并取中值来进行平滑处理。与均值滤波不同,中值滤波能够更有效地去除椒盐噪声,而不会模糊边缘。中值滤波同样需要设定窗口模板,其大小可以为3×3、5×5或7×7。适当选择窗口大小是至关重要的,过大的窗口会导致图像模糊,而过小的窗口可能无法有效去噪。中值滤波的基本过程是,针对每个像素,提取其邻域像素值,排序并找出中间值,然后用该中值替换当前像素值。中值滤波的优点在于它不受极端值的影响,因此在很多场景下表现优于均值滤波。

       高斯滤波是一种加权平均滤波器,能够有效地处理由于光照变化引起的噪声。高斯滤波根据高斯分布来加权邻域像素,计算加权平均值。滤波过程中,窗口模板的大小通常设定为(2n+1)×(2n+1),并使用标准差σ来控制高斯分布的形状。高斯滤波的加权平均值w(x,y)可表示为:

       在PCBA板缺陷自动检测系统中,表面缺陷检测的算法理论主要包括参考对比法、非参考对比法和混合方法。这三种方法各具特点,适用于不同的检测场景。在图像处理过程中,经过配准和二值化处理后的PCB图像能够有效减少后续图像异或运算的计算量。此时,得到的二值化图像信息仅包含两个像素值:0代表黑色,1代表白色。形态学处理是一种重要的图像分析技术。形态学方法主要用于提取和修改图像特征,常用的操作包括腐蚀、膨胀、开运算和闭运算。不同操作的顺序会影响最终结果。

       腐蚀操作能够有效去除较小的误差缺陷,减小目标区域的尺寸。膨胀运算则是与腐蚀操作相反,在膨胀过程中,当结构元素与图像中的任何一个像素相交时,目标像素被标记为1。膨胀运算能够填充目标区域内的小非目标像素,从而增强目标的显示。开运算结合了腐蚀和膨胀的操作,开运算首先对图像进行腐蚀,然后再进行膨胀。这个过程能够去除图像中的小毛刺,并平滑缺陷边缘,使得最终的检测结果更加可靠。

       通过上述形态学处理,结合图像异或运算,能够有效消除PCB图像细微的误差,提升缺陷检测的精度,使得缺陷边缘更加顺滑,从而为后续的处理和分析提供更为清晰的基础。

       数据准备是模型训练的基础。首先,需要收集PCB板的图像数据,这些图像可以来自于生产线的摄像头或其他图像采集设备。接下来,对这些图像进行标注,标注明确哪些区域是缺陷,哪些是正常区域。标注工作可以使用工具如LabelImg等完成,并将结果保存为适合模型训练的格式,如XML或JSON。

import os
import cv2
import numpy as np

# 假设我们有一个包含图像的目录
image_dir = "path/to/images"
annotations_dir = "path/to/annotations"

# 读取图像
def load_images_and_annotations(image_dir, annotations_dir):
    images = []
    annotations = []
    for filename in os.listdir(image_dir):
        if filename.endswith('.jpg'):
            img = cv2.imread(os.path.join(image_dir, filename))
            images.append(img)
            # 读取对应的标注
            annotation = np.loadtxt(os.path.join(annotations_dir, filename.replace('.jpg', '.txt')))
            annotations.append(annotation)
    return images, annotations

images, annotations = load_images_and_annotations(image_dir, annotations_dir)

       在数据准备完成后,接下来需要对图像进行预处理。预处理的步骤包括图像的归一化、增强和滤波等操作,这些操作有助于提升模型的学习效果和准确性。常用的预处理方法包括图像缩放、均值滤波和高斯滤波等,以去除噪声并提高图像的质量。在数据预处理完成后,需要将数据集划分为训练集、验证集和测试集。合理的划分有助于模型的泛化能力,确保模型在未见数据上的表现良好。

def preprocess_images(images):
    processed_images = []
    for img in images:
        # 转换为灰度图
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        # 归一化
        norm_img = gray / 255.0
        # 高斯滤波去噪
        filtered_img = cv2.GaussianBlur(norm_img, (5, 5), 1.5)
        processed_images.append(filtered_img)
    return processed_images

processed_images = preprocess_images(images)

       构建适合的深度学习模型。常用的模型包括卷积神经网络(CNN)和基于YOLO等目标检测算法。根据任务的复杂性和数据的特点,选择合适的网络结构,并配置相应的超参数。将训练集输入模型进行训练。设置适当的训练参数(如批量大小、学习率等),并使用验证集监控模型的训练过程,以防止过拟合。

import tensorflow as tf
from tensorflow.keras import layers, models

def create_model(input_shape):
    model = models.Sequential()
    model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=input_shape))
    model.add(layers.MaxPooling2D((2, 2)))
    model.add(layers.Conv2D(64, (3, 3), activation='relu'))
    model.add(layers.MaxPooling2D((2, 2)))
    model.add(layers.Flatten())
    model.add(layers.Dense(64, activation='relu'))
    model.add(layers.Dense(1, activation='sigmoid'))  # 二分类
    return model

model = create_model((128, 128, 1))  # 假设输入图像为128x128灰度图
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

       模型训练完成后,需要使用测试集对模型进行评估。通过计算准确率、召回率、F1得分等指标来分析模型的性能,从而判断其在实际应用中的有效性。在模型评估后,可以将其应用于实际的PCBA板缺陷检测中。如果模型在实际运行中表现不佳,则需进行模型的优化与调整,包括改变网络结构、调整超参数、增加数据集等。

test_loss, test_accuracy = model.evaluate(np.array(test_images), np.array(test_annotations))
print(f"Test Accuracy: {test_accuracy:.2f}")

海浪学长项目示例:

更多帮助

开源PCB数据集全解析:从缺陷检测到多场景应用 本文全面解析了开源PCB数据集在AI缺陷检测领域的核心价值与应用。文章详细盘点了PKU-Market-PCB、DeepPCB等主流数据集的特点与适用场景,并提供了基于YOLOv8的实战训练流程。同时,探讨了数据集在工艺优化、可制造性分析等多元场景的延伸应用,为开发者和工程师高效利用这些宝贵资源提供了清晰指引。 阅读详情

相关推荐

论文研究 | 基于机器视觉的 PCB 缺陷检测算法研究现状及展望

印刷电路板(PCB)是电子零件的基板,需求量极大,承载着电路元件和导线的布局,其优良与否对电子产品的质量有着重要影响。本篇论文从传统图像处理方式、传统机器学习及深度学习3大维度全面回顾了近 10 年基于机器视觉的PCB 缺陷检测算法。

Bella_zhang0701的博客 1万+

HRIPCB a challenging dataset for PCB defects detection and classification学习笔记

印刷电路板(PCB)是电子设备中放置大量元件的基本载体。pcb的质量将直接影响电子器件的性能。为了避免人工检测容易疲劳、效率低等缺点,自动化光学检测在工业上得到了广泛的应用。随着PCB向着更高精度和密度的方向发展,PCB变得越来越复杂,缺陷检测和分类的任务也比以前更加困难。目前,虽然有一些关于PCB缺陷检测的论文,但这些论文都使用自己的数据集。由于缺乏开放数据集,导致无法评估各种方法。为了解决上述问题,本文提出了一个具有缺陷的公共彩色合成PCB数据集,供其他想要设计和评估其方法的人使用。

qq_46539177的博客 2422

PCB板缺陷检测数据集(北京大学693数据增强,6930)

PCB板缺陷检测数据集(北京大学693数据增强,6930)

2022/9/20-9/23周报

2022/9/20-9/23周报内容

qq_62048314的博客 1516

目标检测数据集:电路板元器件目标检测数据集(超过1000张图片和标签)

目标检测数据集:电路板元器件目标检测数据集(超过1000张图片和标签)【包含训练集、验证集、对应标签、class文件】 数据集被处理成yolo格式,做了data增广,标签为yolo格式,可以用于YOLO所有系列的网络训练。show脚本可以用于可视化数据,即box目标 绘制在图像上 类别个数(16):继电器、、电阻器、晶体管、发光二极管等【具体类别参考class类别文本文件】

避坑指南:Livox Mid-360双雷达SLAM配置中,那些官方文档没说的细节(IP设置、话题分离与时间同步)

本文详细解析了Livox Mid-360双雷达SLAM配置中的关键优化点,包括IP设置、话题分离与时间同步等官方文档未提及的细节。通过实战案例和代码示例,帮助开发者解决点云错位、IMU数据混乱等问题,提升SLAM系统的稳定性和精度。特别针对网络架构设计、驱动修改和时间同步机制提供了专业指导。

weixin_29745609的博客 426

PCBA全流程可视化:实时追踪生产进度的核心技术解析

PCBA订单涉及PCB制板、元件采购、SMT贴片等10+环节,传统模式下各环节数据分散在不同平台。工程师需要对接PCB厂确认开料进度、联系供应商查询物料交期、向贴片厂索要生产日报,信息获取耗时且易出错。MES系统:实时采集SMT设备状态(贴装精度±25μm)、AOI检测数据(0.01mm²焊点缺陷识别)物料预警:关键元件交期剩余72小时未到货时,触发红色警报并推送替代方案(兼容型号列表、二次封装可行性)测试预警:FCT测试连续3片板卡出现相同故障码时,启动根因分析模型(关联BOM版本、钢网开口数据)

jiepei_PCB的博客 766

STM32巡线小车PID调参实战:从五路灰度传感器数据到稳定运行的避坑指南

本文详细介绍了STM32巡线小车的PID调参实战,从五路灰度传感器数据处理到PID参数优化,提供了系统化的调试方法和常见问题解决方案。通过加权平均法计算偏移量,逐步调整比例、积分、微分参数,实现小车稳定巡线。文章还涵盖了定时器配置、控制周期优化及高级调试技巧,帮助开发者避开常见陷阱,提升巡线性能。

weixin_42570484的博客 193

基于X射线无损检测的高分辨率 PCBA装配缺陷检测系统

一些研究者提出了改进模板匹配的 PCB 缺陷多级检测算法,以提高 PCB 缺陷检测的准确性。但是,这也带来了在缺陷与模板差异较大时检测准确度降低的问题。还有基于加速鲁棒特征和随机森林的机器学习方法,可以在没有正常图像的情况下对 PCB 进行缺陷检测,但无法处理不同尺度的缺陷和复杂多变的外部光照环境。另外,基于残差学习的思想设计的方法利用图像下采样方法对图像感受野进行扩大,提高去噪效率,解决了 PCB 图像检测清晰度不够的问题。

知来者逆的博客 3175

Kindle使用USB数据线传书封面无法显示问题

不建议按这个解决封面问题,首先USB多次插拔麻烦,其次就是我起初按博主方法没啥问题,后面无论我怎么个顺序都出现了‘暂无图片’,我的建议是在亚马逊退出国内只能USB传书的情况下,下载一个calibre 和。飞行模式下用calibre传书到kindle ,然后用Fix Kindle Ebook Cover 修复一下,后面你要继续飞行模式还是连网随你便,两步完事。2,‘’发送到设备’的时候也最好选择 ‘发送特定格式至’ 选择具体的电子书格式,你的电子书是azw3就选azw3,是mobi就选mobi。

meser88的博客 7418

告别手动转换!用腾讯云轻量服务器+QMT插件,5分钟搞定聚宽策略实盘(附完整源码)

本文详细介绍如何利用腾讯云轻量服务器和QMT插件快速实现聚宽策略的自动化实盘部署。通过云端信号中转站解决协议转换、信号缓存等核心问题,5分钟完成服务器配置,并附完整源码实现零改造实盘方案,显著提升量化交易效率。

weixin_28707739的博客 659

【人工智能】基于深度学习的电路板缺陷检测

PCB缺陷检测系统,主要应用于电子制造业的质量控制领域。通过自制数据集和卷积神经网络(CNN)与YOLOv5的结合,实现对孔、老鼠咬痕、开路、短路和多余铜等缺陷的自动化检测与分类。项目的实施将为PCB生产线的智能化和自动化提供有效的技术支持,帮助提升产品质量和生产效率。

机器学习,深度学习,计算机视觉爱好者,整理分享技术资料与项目案例。 2369

【机械臂算法】基于最小惯性参数集的动力学辨识仿真实践

本文深入探讨了机械臂动力学参数辨识的核心挑战与解决方案,重点阐述了基于最小惯性参数集的理论与方法。通过分析PUMA560实例,详细介绍了利用QR分解法或符号推导法获取可辨识参数集,并系统讲解了从激励轨迹设计、仿真数据采集、线性系统求解到模型验证的完整实践流程,为高精度动力学建模与控制奠定了坚实基础。

weixin_29054399的博客 376

革命性PCB缺陷检测数据集:DeepPCB如何重塑电子制造业质量标准

在电子制造业的精密世界中,PCB(印刷电路板)的微小缺陷可能导致整个产品失效。传统的视觉检测系统依赖有限的数据集,难以应对复杂多变的工业场景。DeepPCB数据集的出现,为这一领域带来了颠覆性的突破——1500对高分辨率图像、六种核心缺陷类型、工业级标注精度,这个数据集正在重新定义PCB质量检测的技术标准。 ## 从数据稀缺到数据驱动:DeepPCB的突破性价值 电子制造企业面临的最大挑战是什

gitblog_00761的博客 171

普通开普勒式望远镜光学设计1-初始结构设计选型与物镜像差校正

普通开普勒式望远镜光学设计1: 完成了望远镜的总体结构设计,确定其物镜与目镜的初始结构选型,使用Zemax软件完成望远镜的双胶合物镜的像差校正。

faust_cao的博客 1万+

华为OD机试真题-国际移动用户识别码(IMSI)匹配

华为OD机试双机位C卷 国际移动用户识别码(IMSI)匹配 , 提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 国际移动用户识别码(IMSI)匹配

qq_45776114的博客 4927

YOLO26上阵PCB质检:六类缺陷自动识别,电路板缺陷检测,mAP达0.951(项目源码+数据集+模型权重+UI界面+python+深度学习+远程环境部署)

随着电子制造业向高精度、高集成度发展,印刷电路板(PCB)的质量检测成为保证产品可靠性的关键环节。传统的PCB缺陷检测方法依赖人工目检或传统图像处理技术,效率低、误检率高,难以满足现代工业自动化需求。本研究基于YOLO26目标检测算法,构建了一个PCB缺陷自动识别系统,涵盖六类常见缺陷:missing_hole、mouse_bite、open_circuit、short、spur、spurious_copper。

斌擎科技 1369

UNet 改进(39):结合残差连接与CBAM注意力机制的unet模型

本文提出了一种改进的UNet架构,通过融合残差连接和CBAM注意力机制来增强医学图像分割性能。该网络保留UNet的U形结构,但将基础模块替换为ResidualBlock和CBAM的组合:残差块通过快捷连接解决梯度消失问题,CBAM模块结合通道和空间注意力机制突出重要特征。整体架构采用编码器-解码器设计,包含5个下采样和上采样阶段,通过跳跃连接融合多尺度特征。实验表明,这种改进显著提升了原始UNet的性能,特别适用于需要精细边界的医学图像分割任务。

2401_82355416的博客 1025

快速构建PCB缺陷检测AI系统:DeepPCB开源数据集完整指南

还在为PCB缺陷检测项目寻找高质量数据集而烦恼吗?DeepPCB开源数据集为你提供了完美的工业级解决方案!这个专门为印刷电路板缺陷检测设计的开源数据集包含了1500对精心标注的图像样本,覆盖六种最常见的PCB缺陷类型,帮助研究人员和工程师快速构建高精度的检测模型。无论你是学术研究者、工业工程师还是教育工作者,DeepPCB都能为你提供从数据准备到算法验证的全链路支持,让你轻松实现PCB缺陷检测AI

gitblog_01108的博客 150

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Flax分子属性预测:OGBG-MolPCBA实战指南

还在为药物发现中的分子属性预测而烦恼吗?本文将带你深入探索如何使用Flax和JAX构建强大的图神经网络(GNN),在OGBG-MolPCBA数据集上实现精准的分子生物活性预测。读完本文,你将掌握: - ✅ 图神经网络在分子属性预测中的核心原理 - ✅ Flax与Jraph的完美结合实践 - ✅ OGBG-MolPCBA数据集的预处理技巧 - ✅ 完整的训练、评估和优化流程 - ✅ 实战代码解析与...

gitblog_00822的博客 871

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

基于深度学习的PCB电子元件识别系统(YOLOv12完整代码+论文示例+多算法对比)

为赋能PCB元器件的高效质检,本研究打造了一套集算法横评与端侧部署于一体的桌面级视觉应用。系统全面对标YOLOv5至v12八代框架的mAP等关键性能,并依托PySide6构筑多路视流交互引擎。其核心突破在于实现了模型权重的免重启热加载与动态阈值调控,无缝衔接带框影像的一键导出与可视化进度追踪。平台内置SQLite以驱动可选登录鉴权与检测台账的本地化落盘,彻底打通了从多模态实时推理到CSV溯源的完整链路。该开源方案为电子制造产线的智能化升级提供了极具弹性的工程参考。

矩阵因果科技 504

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

基于YOLOv8的火焰烟雾检测系统(深度学习模型+UI界面+Python代码+训练数据集)

YOLOv8 在准确性和速度方面提供了尖端的性能。在前几版 YOLO 的基础上,YOLOv8 引入了新的功能和优化,使其成为各种目标检测任务的理想选择,适用于广泛的应用场景。主要特点先进的主干和颈部架构:YOLOv8 采用了最先进的主干和颈部架构,提升了特征提取和目标检测性能。无锚分割 Ultralytics 头:YOLOv8 采用无锚分割的 Ultralytics 头,相较于基于锚点的方法,能够提供更好的准确性和更高效的检测过程。优化的准确性与速度平衡。

斌擎科技 1818

毕业设计 基于机器视觉的PCB焊接缺陷检测系统-Halcon+C#(整套源码+开题报告+毕业论文+项目图片),高分项目,开箱即用

毕业设计 基于机器视觉的PCB焊接缺陷检测系统-Halcon+C#(整套源码+开题报告+毕业论文+项目图片),高分项目,开箱即用

m0_37302966的博客 2862

【超详细】基于YOLOv11的PCB缺陷检测

印刷电路板(PCB)瑕疵数据集:是一个公共的合成PCB数据集,由北京大学发布,其中包含1386张图像以及6种缺陷(缺失孔,鼠标咬伤,开路,短路,杂散,伪铜),用于检测,分类和配准任务。本文我们选取了其中适用与检测任务的693张图像,随机选择593张图像作为训练集,100张图像作为验证集。

weixin_45679938的博客 5839

2022/10/24-10/29周报

周报

qq_62048314的博客 1577
上一篇: 毕业设计:卷积神经网络在脑肿瘤检测系统中的应用研究
下一篇: 毕业设计:基于计算机视觉的日常手势手语识别算法研究
Mini_hailang_IT
博客等级 码龄9年 5936粉丝 640原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值