精华内容
下载资源
问答
  • PCB缺陷检测文献总结

    2018-08-21 22:40:22
    PCB缺陷检测相关国外论文,重点介绍了外国针对基于计算机视觉的自动PCB缺陷检测相关优秀论文的总结和介绍,内含有大约10篇左右的论文以及相关的基于SVM支持向量机的code实现python代码,给以给大家学习和研究PCB缺陷...
  • 基于机器视觉的 PCB 缺陷检测算法研究,博硕论文,基于机器视觉的 PCB 缺陷检测算法研究
  • PCB缺陷检测系统

    2011-11-27 20:14:22
    讲述PCB缺陷检测的论文,很好,很好,很强大的哦
  • PCB缺陷检测 它包含一些用于PCB缺陷检测的基本代码和说明 main.m是传统检查方法的代码。 test.py是深度学习方法的代码。 vgg.py是VGG模型的代码
  • PCB缺陷检测系统的研究与实现、综述性文档。利于对行业的了解。
  • 为了实现PCB缺陷的在线自动检测,设计了一种PCB缺陷自动检测系统,该系统主要由机器臂、电气控制系统以及视觉传感器系统等组成。通过可编程控制的图像采集系统获取高质量的原始视觉图像,利用图像处理实现对缺陷目标...
  • Halcon:PCB缺陷检测

    2021-01-06 14:50:32
    图像处理结果: 主要思想: *Blob+差分+特征 Blob:使用灰度值的开运算...read_image (Image, ‘pcb’) *关闭窗口 dev_close_window () *获取读取图像的宽高 get_image_size (Image, Width, Height) *打开窗口 dev_ope

    图像处理结果:
    在这里插入图片描述
    在这里插入图片描述

    主要思想:
    *Blob+差分+特征
    Blob:使用灰度值的开运算图像A,使用灰度值的闭运算图像B
    差分:A-75>B,选择其中暗的,A+75<B,选择其中亮的
    特征:可以再使用面积这样的参数进行筛选

    *对于打光要求很高,背景要求高,要光照稳定
    *读取图像
    read_image (Image, ‘pcb’)
    *关闭窗口
    dev_close_window ()
    *获取读取图像的宽高
    get_image_size (Image, Width, Height)
    *打开窗口
    dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
    *显示图像
    dev_display (Image)
    *灰度腐蚀,或者开运算,会让暗的像素点增多
    *灰度膨胀,或者闭运算,会让亮的像素点增多
    灰度图像的开运算,八角形,77的卷积,输入图像Image,输出图像ImageOpening。
    *能看出本来断开的白色区域,被连起来了,白色缺口区域变成了黑色区域
    *本来凸起的小黑色区域,变大了
    gray_opening_shape (Image, ImageOpening, 7, 7, ‘octagon’)
    灰度图像的闭运算,八角形,77的卷积,输入图像Image,输出图像ImageClosing。
    *能看出本来断开的白色区域,断的更开了,白色小缺口变成了大缺口
    *本来凸起的小黑色区域,变小了
    gray_closing_shape (Image, ImageClosing, 7, 7, ‘octagon’)
    *动态阈值分割,因为选择的参数是’not_equal’,所以相当于既选择了亮的,也选择了暗的
    *后一张图片的某一点,该点像素的灰度值-75>第一张图的像素灰度值。说明提取图像中暗的部分
    *后一张图片的某一点,该点像素的灰度值+75<第一张图的像素灰度值。说明提取图像中亮的部分
    *对比的时候,是从上往下,从左往右,每一个像素值都进行比较
    dyn_threshold (ImageOpening, ImageClosing, RegionDynThresh, 75, ‘not_equal’)
    dev_display (Image)
    dev_set_color (‘red’)
    dev_set_draw (‘margin’)
    dev_display (RegionDynThresh)

    对应示例程序:
    pcb_inspection.hdev

    展开全文
  • 目录0.简介1.介绍2....实验与讨论5.1数据集5.2评估指标6....这篇论文使用深度学习-目标检测的方法对PCB缺陷进行检测,提出了一种针对细小缺陷的TDD-net (Tiny defect detection)检测网络来对PCB中的6种缺陷(Mis

    TDD-net:论文地址

    0.简介

    这篇论文使用深度学习-目标检测的方法对PCB的缺陷进行检测,提出了一种针对细小缺陷的TDD-net (Tiny defect detection)检测网络来对PCB中的6种缺陷(Missing hole、Mouse bite、Open circuit、Short、Spur、Spurious copper)进行检测,检测效果高达98.9%,高于其他的现存的双阶段检测网络。

    与其他网络的对比

    1.介绍

    Faster R-CNN不适合检测小缺陷的原因是,当进行ROI pooling的时,小缺陷在低像素的特征图上所占的尺寸是非常小的相对于stride来说。

    (个人感觉这个道理和标注车辆、行人时不标注远处小的目标的原因之一差不多,当目标物体太小时,可辨别性就没有那么高了。)

    主要面临的两个挑战:

    1. 如何设置合理的anchors?太大的anchors不适合检测小的缺陷。
    2. 如何通过重新设计Faster R-CNN的体系结构融合多尺度特征图?细小的缺陷将会逐渐消失在卷积网络的前馈传播中。

    数据方面:对数据进行数据增强来提高训练的数据量。

    TDD-net加强了不同层次特征图的关系,并受益于低层次的结构信息。

    最终使用一些tricks来加强检测的性能。

    2.相关工作

    2.1参照方法

    通过与正常的图像进行比对,通过像素做差的的方式找到缺陷,然后再进行识别。主要的困难在于两张图片的对齐。因此,特征匹配的方法被提了出来,它从整张图片中提取健壮的特征,并且建立一个注册映射关系,通常提取的特征有点、边缘、特定区域的轮廓和质心。

    另一个重要的参考方法是相似性度量。

    这些方法所遇到的困难是错位、颜色变化、反射率变化、周围变化和模糊边界缺陷分割等,而且去获得一个标准的PCB图像从生产环境中是不现实的。

    2.2非参照方法

    非参照方法是基于一般的设计规则的证实。特征学习被用于深度网络对物体的检测,比如R-CNN系列、DarkNet、SS和R-FCN,都在目标检测领域有明显的改进。

    2.3混合方式

    Z. Qu et al.构建了一个称为PartsNet的深度卷积网络,将传统特征处理和深度学习相结合,以检测汽车发动机精密零件的缺陷。

    3.faster R-CNN的概述

    这一部分就不说啦,感兴趣的同学可以去搜下faster R-CNN的相关介绍嗷。

    4.TDD-net

    相对于faster R-CNN来说有三点新的改变。

    首先,在PCB缺陷数据集上训练Faster R-CNN的CNN模型。在微调过程中,我们应用数据增强技术并设计合理的锚点。为了提高微小缺陷的检测性能,采用了多尺度特征融合策略。在线硬示例挖掘在训练阶段被应用,以提高ROI 提案的质量。整个培训过程遵循端到端的培训范式,即Faster R-CNN。

    4.1合理的anchors设计和数据增强

    PCB的缺陷图像不同于开源的其他数据集,它具有很大的尺寸、而缺陷部分只占图像的很小的一部分。Faster R-CNN有3种尺度(128²,256²,512²)和三种长宽比(1:1;1:2;2:1)的9个anchors在每一个滑动位置上。这样大的范围是无法检测到细小的缺陷的,为了检测到细小的缺陷,我们必须设置合理的anchors。

    k-means 聚类用于 PCB 训练集边界框,以自动找到合理的anchors比例。带距离度量的标准 k-means 使用如下

    在这里插入图片描述

    得到的尺度为(15²,25²,40²,60²,80²),4个长宽比为(2.,3.,4.,5.).

    数据量少可能导致模型过拟合,但是大量的缺陷数据在工业上是很难获取到的。因为需要进行数据增强,使用到了6种传统的数据增强的办法,添加高斯噪声、调节亮度、旋转图片、平移、随机裁剪和变换,像添加噪声这些操作是不会改变bounding boxes的值的,但是旋转、裁剪这些操作就会改变bounding boxes的值。同时随机裁剪也可能有缺陷剪成一半的情况发生,因此,我们需要设置一个阈值并丢弃这些异常边界框。

    4.2多尺度的特征融合

    深度学习卷积网络的不同层有不同尺度的特征图和特征像素。高分辨率的特征图语义弱,结构性强而低分辨率的特征图是强语义的。微小的缺陷检测可分为低级视觉任务,因此我们专注于多尺度特征融合。

    在小目标的特征在网络卷积过程中将逐渐消失,因此高像素的特征图在检测小物体时是很重要的。TDD-Net 采用金字塔架构 ,通过自上而下的路径和横向连接将低分辨率特征、语义强特征与高分辨率、结构上强特征融合在一起。

    在这里插入图片描述

    1. 使用预训练的ResNet-101作为我们的主干网络来提取特征,5个残差块的输出标记为(C2,C3,C4,C5),最后一个残块的输出被选为我们的特征图参考集,并注意它们与输入图像的步幅为 [4、8、16、32] 像素。

    2. 高像素的特征图帮助我们检测小物体,我们的自上而下特征图通过上采样的空间分辨率 2 系数来构建,为了简单起见,选择了最近的邻接采样。我们将底层的特征图和高层的特征图连接起来,因此自底向上的特征图经过1X1的卷积层为了减少维度,然后,向上采样的图与相应的自下而上地图(按元素加法)串联。

      在将不同比例的 RO 分配给金字塔级别的阶段,要素金字塔的级别 [Pk] 的计算方法为

    在这里插入图片描述

    在这里插入图片描述

    4.3在线硬例挖掘

    我们首先尝试将在线硬例挖掘策略应用于PCB缺陷检测任务。受 [26] 的启发,只读 RoI 网络在要素图和所有 RoI 上运行向前传递。然后硬 RoI 模块使用这些 RoI 损耗来选择示例。在线硬示例挖掘(称为 OHEM)可用于培训任何基于区域的 ConvNet,它会自动选择硬示例,而不是使用多个启发式和超参数,从而提高检测效率。

    4.4loss和训练

    总loss由不同loss 的组成:rpn_loss_bbox, rpn_loss_cls, fast_rcnn_loss_bbox, 和fast_rcnn_loss_cls.

    在这里插入图片描述

    5.实验与讨论

    这部分简单说一下

    5.1数据集

    数据集的地址为http://robotics.pkusz.edu.cn/resources/dataset/,里面有693张PCB缺陷的图像,像素大小为2777*2138,缺陷的种类为6种,感兴趣的小伙伴可以下载看看。

    论文中将图像切成了600*600的子图像,形成训练集,训练集和测试机的图像数为9920*2580

    在这里插入图片描述

    在这里插入图片描述

    5.2评估指标

    在这里插入图片描述

    GT表示真实结果,DR表示检测结果。

    6.训练细节及结果展示

    训练细节小伙伴从论文中看下嗷,这里就不写了。

    贴一下网络的结果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    分享就到这里啦,第一次写博客,有什么不对的地方还烦请大家指正,感觉有用的小伙伴点个关注吧,期待和大家一起加油!

    展开全文
  • PCB缺陷检测系统中,图像的配准精度直接影响着整个系统的检测精度。针对PCB板标准图像和待测图像本身存在差异,传统方法用标准图像来配准待测图像的精度较低的问题,文中通过引入Gerber文件,对标准PCB板图像和待测...
  • PCB缺陷检测

    万次阅读 多人点赞 2017-09-18 14:31:03
    pcb缺陷检测是图像分析的一个典型应用方向。这次我用matlab来把整个流程实现一遍。 PCB板检测的大概流程如下:首先存储一个标准PCB板图像作为参考标准,然后将待检测的PCB板图像进行处理,比较与标准PCB图像的...

    pcb板缺陷检测是图像分析的一个典型应用方向。这次我用matlab来把整个流程实现一遍。
    PCB板检测的大概流程如下:首先存储一个标准PCB板图像作为参考标准,然后将待检测的PCB板图像进行处理,比较与标准PCB图像的差异。根据差异的情况来判断缺陷类型。

    (1)图像预处理

    对于标准PCB板的图像处理包括:灰度化,二值化。而对待检测图像的处理则包括:
    灰度化,滤波,除去黑点等。二者最终都会得到各自的二值图像。

    %对待检测PCB板预处理
    function tgtImg = pre_process(srcImg)
    
    srcImg_gray = rgb2gray(srcImg);%灰度化
    src_med = medfilt2(srcImg_gray);%中值滤波
    src_bw = im2bw(src_med);%二值化
    src_spur = bwmorph(src_bw,'spur',8);%去除物体小的分支
    src_fill = bwmorph(src_spur,'fill');填充孤立黑点
    tgtImg = bwmorph(src_fill,'clean');%去除孤立亮点
    end
    
    %对标准PCB板图像进行预处理
    %认为标准PCB板的图像为理想情况,只用进行灰度化和二值化
    function tgtImg = getBW(srcImg)
    
    srcImg_gray = rgb2gray(srcImg);%灰度化
    srcImg_bw = im2bw(srcImg_gray);%二值化
    tgtImg = srcImg_bw;
    
    end

    对处理后的结果进行显示:

    std_rgb =  imread('standard.jpg');
    figure()
    imshow(std_rgb);
    title('标准图');
    stdImg = getBW(std_rgb);
    figure()
    imshow(stdImg);
    title('标准图二值化');
    src_rgb = imread('untreated.jpg');
    figure()
    imshow(src_rgb);
    title('待检测图');
    srcImg = pre_process(src_rgb);
    figure()
    imshow(srcImg);
    title('待检测图二值化');

    标准图像与检测图像如下:
    这里写图片描述
    这里写图片描述

    (2)图像匹配

    图像匹配是对不同时间、不同传感器或者不同视角下的同一场景的两幅或者多幅图像进行配准的过程。常用的图像配准方法有基于特征的图像配准和基于互信息的配准。
    互相关配准要求要求参考图像和待匹配图像在尺度和灰度值上相差不大。检测PCB板符合这一要求。该方法的主要思想是:利用待匹配图像上所选取的区域在参考模板进行遍历,计算每个位置的互相关系数,根据互相关的最大值来确定匹配的位置。
    由上述图片可知,待测图像存在与标准图像存在角度差。我们可以在进行互相关系数计算前,先进性旋转,求出在多个角度下的最大相关系数,则该相关系数时的角度即为两幅图像的角度差,对待测图像进行旋转,然后根据最大相关系数进行旋转后的待测图像与标准图像进行匹配。

    %对待测PCB图像进行旋转
    function tgtImg = roateImg(stdImg,srcImg)
    
    src_rect=[80 370 150 130];%待检测pcb图像中选取参与互相关计算区域的矩阵
    std_rect=[40 320 200 190];% 标准pcb图像中选取参与互相关计算区域的矩阵
    std_sub=imcrop(stdImg,std_rect);%剪裁标准pcb图像
    max_c=0;%初始化互相关最大值
        for rr=-2:1:2%待检测pcb图像依次旋转的角度(步进值可调)
            src_rot=imrotate(srcImg,rr,'nearest');%待检测pcb图像旋转,使用邻近插值法
            src_sub=imcrop(src_rot,src_rect);%裁剪带检测pcb图像
            c=normxcorr2(src_sub,std_sub);%计算互相系数
            [max_c1,imax1]=max(abs(c(:)));%max_c1为系数最大值,imax1为系数最大值对应的位置下标
            if(max_c1>max_c)%每一次循环的最大值进行比较
                max_c=max_c1;%取最大的值
                angle=rr;%把取得最大值时对应的旋转角度赋给angle
            end
        end
    src_tz=imrotate(srcImg,angle,'nearest');%按angle角,对待检测pcb图像进行旋转修正
    src_tz_sub=imcrop(src_tz,src_rect);%此时两幅图像的轴向已平行,重新计算互相关系数
    cc=normxcorr2(src_tz_sub,std_sub);%
    [max_cc,imax]=max(abs(cc(:)));%
    [ypeak,xpeak]=ind2sub(size(cc),imax);%将下标转化为行列的表示形式  
    yd=[ypeak-(src_rect(4)+1) xpeak-(src_rect(3)+1)];%子图需移动的量
    std_dc=[yd(1)+std_rect(2) yd(2)+std_rect(1)];%标准pcb图像在调整后的待检测图像中的坐标
    xz=[std_dc(1)-src_rect(2) std_dc(2)-src_rect(1)];%像素修正值
    dc_qu_rect=[1-xz(2) 1-xz(1) size(stdImg,2)-1 size(stdImg,1)-1]; %调整后的待检测图像中选取与标准图像同等大小的区域矩阵
    dc_qu=imcrop(src_tz,dc_qu_rect);%裁剪调整后的待检测pcb图像
    tgtImg = dc_qu;
    
    end

    旋转后的图像如下:
    这里写图片描述

    (3)待测PCB图像缺陷标记

    将经过配准的待测图像与标准图像进行异或运算,即可得到缺陷部分,经过形态学处理,对缺陷部分进行标记。

    function tgtImg = xorImg(stdImg,srcImg,std_rgb)
     ImgXor=xor(stdImg,srcImg);%图像异或运算
     MN=[3 3]; 
     se=strel('rectangle',MN);%定义结构元素
     imr=imerode(ImgXor,se);%腐蚀运算
     imd=imdilate(imr,se);%膨胀运算
     rgb=label2rgb(imd,@autumn,'g');%标注对象变为彩色,采用autumn映射表,背景为绿色
     tgtImg=imlincomb(.6,rgb,.4,std_rgb);%将两幅图像按比例线性组合
    
    
    end

    所得到的图像如下:
    这里写图片描述

    至此,我们已经将图像的缺陷部分标记了出来。如果要进一步地判断缺陷类型,则需要做对两幅图像相减,并根据相减后的情况进行判断。

    展开全文
  • pcb外观缺陷检测英文原版论文
  • 本期来用OpenCV实现Halcon中一个简单的PCB印刷缺陷检测实例。 Halcon中对应的例子为pcb_inspection.hdev,源图和结果图如下: Halcon代码比较简单,这里也贴出来,短短13行: ...

        后面连续几周将开启缺陷检测专题模式,这是第二篇,上篇链接如下,敬请关注!

        Halcon缺陷检测实例转OpenCV实现(一)---网格缺陷检测


        本期来用OpenCV实现Halcon中一个简单的PCB印刷缺陷检测实例。

        Halcon中对应的例子为pcb_inspection.hdev,源图和结果图如下:

    图片

    图片

        Halcon代码比较简单,这里也贴出来,短短13行:

    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    read_image (Image, 'pcb')dev_close_window ()get_image_size (Image, Width, Height)dev_open_window (0, 0, Width, Height, 'black', WindowHandle)dev_display (Image)* detect defects ...gray_opening_shape (Image, ImageOpening, 7, 7, 'octagon')gray_closing_shape (Image, ImageClosing, 7, 7, 'octagon')dyn_threshold (ImageOpening, ImageClosing, RegionDynThresh, 75, 'not_equal')dev_display (Image)dev_set_color ('red')dev_set_draw ('margin')dev_display (RegionDynThresh)

        实现步骤:对原图做开运算、闭运算然后将二者结果做差,阈值提取。OpenCV的实现我们也参考上面的步骤,详细展示说明如下:

        源图:

    图片    (1)对源图做开运算:

    图片

        (2)对源图做闭运算:

    图片

        (3)开运算和闭运算做差:

    图片

        (4)对差值图阈值处理:

    图片

        (5)对阈值图找轮廓并标记结果:

    图片

        完整代码与注意事项:

    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    import numpy as npimport cv2
    font = cv2.FONT_HERSHEY_SIMPLEX
    img = cv2.imread('./pcb.png')cv2.imshow('src',img)
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    k1 = np.zeros((7, 7),np.uint8)pts = np.array([[2,0],[4,0],[6,2],[6,4],[4,6],[2,6],[0,4],[0,2]],np.int32)pts = pts.reshape((-1,1,2))cv2.fillPoly(k1,[pts],(1,1,1),cv2.LINE_AA)k1[5,1] = 1k1[6,2:5] = 1
    print(k1) 
    opening = cv2.morphologyEx(gray, cv2.MORPH_OPEN, k1) cv2.imshow('opening',opening)
    closing = cv2.morphologyEx(gray, cv2.MORPH_CLOSE, k1) cv2.imshow('closing',closing)
    diff = cv2.absdiff(opening, closing)cv2.imshow('diff',diff)
    ret,thresh = cv2.threshold(diff, 80, 255, cv2.THRESH_BINARY)cv2.imshow('thresh',thresh)
    
    contours,hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
    isNG = False if len(contours) > 0:  isNG = True  cv2.drawContours(img,contours,-1,(0,0,255),2)
    if isNG:  rect, basline = cv2.getTextSize('Detect NG', font, 1.0, 2)  cv2.rectangle(img, (10,10,int(rect[0]*0.7),rect[1]), (212, 233, 252), -1, 8)  cv2.putText(img,'Detect NG', (10,5+rect[1]), font, 0.7, (0,0,255), 2)else:  rect, basline = cv2.getTextSize('Detect OK', font, 1.0, 2)  cv2.rectangle(img, (10,10,int(rect[0]*0.7),rect[1]), (212, 233, 252), -1, 8)  cv2.putText(img,'Detect OK', (10,5+rect[1]), font, 0.7, (0,200,0), 2)  cv2.imshow('meshDefects', img)cv2.waitKey(0)cv2.destroyAllWindows()

        注意Halcon代码中创建的是正八边形结构元素,所以我们也模仿创建如下

    •  
    •  
    •  
    •  
    •  
    •  
    k1 = np.zeros((7, 7),np.uint8)pts = np.array([[2,0],[4,0],[6,2],[6,4],[4,6],[2,6],[0,4],[0,2]],np.int32)pts = pts.reshape((-1,1,2))cv2.fillPoly(k1,[pts],(1,1,1),cv2.LINE_AA)k1[5,1] = 1k1[6,2:5] = 1

    结构元素输出如下:

    图片

    为什么用正八边形形状的结构元素,因为PCB的布线图结构和八边形比较类似,如果换矩形结构元素,会多出更多的误判,大家可以自己尝试,对于结构元素的说明以前的文章以详细说明了,这里不做赘述,可参考

    OpenCV形态学处理使用技巧与应用演示,C++ OpenCV代码把对应函数转换即可。

    图片

    △长按关注OpenCV与AI深度学习,获取最新CV干货

     

    展开全文
  • 基于机器视觉的PCB裸板缺陷检测方法研究,博硕论文,基于机器视觉的PCB裸板缺陷检测方法研究
  • 基于Halcon的SMT_PCB元件缺陷检测 .
  • 基于Halcon的SMT_PCB元件缺陷检测.pdf
  • 基于Halcon的SMT-PCB元件缺陷检测;基于Halcon的SMT-PCB元件缺陷检测
  • 基于Halcon的SMT_PCB元件缺陷检测 (2).pdf
  • 针对现有的PCB(Printed Circuit Board)缺陷视觉检测系统实时性较差,难以检测线宽过 窄等问题,首先对 PCB 缺陷图像进行小波变换压缩,提高了系统实时性;然后应用小波边缘检测 算法对缺陷图像边缘精确定位,在...
  • 在现代电子产品世界中,PCB(印刷电路板)是...优良的焊膏印刷工艺实施可以引发电子线路的连接问题,为了能够有效地解决这一问题,许多筛网印刷设备制造厂商采用了在线机器视觉检测技术,下面盈泰德予以简单的介绍。
  • 针对 PCB制造过程中的缺陷,设计了一种自动光学检测系统。阐述了该系统的检测原理,介绍了系统的照明模 块、图像采集模块和运动控制模块的设计,以及软件设计、检测...实验结果表明,该系统能够实现常见 PCB缺陷检测
  • PCB板一般缺陷检测法及其优缺点分析1 PCB( Printed Circuit Board 印刷电路板)是电子产品中众多电子元器件的承载体,它为各电子元器件的秩序连接提供了可能,PCB已成为现代电子产品的核心部分。随着现代电子工业迅猛...
  • PCB缺陷检查中的AOI/AFI

    2010-02-04 16:40:52
    关于机器视觉在PCB缺陷检测中的应用,对初学者作了解用
  •  系统软件流程分为手动检测和自动检测,手动检测需要操作员在人机交互界面点击相应操作处理,自动检测可以实现一键自动化检测,直接根据预先参数设置好的流程进行PCB缺陷检测并得出结果。算法流程如图所示。  ...
  • 点击上方“3D视觉工坊”,选择“星标”干货第一时间送达PCB产品AOI检测,需要将模版与实际图像对齐,因此需要定位功能。定位功能就需要选取定位核,定位核的提取方法分为手动和自动。基于人眼...
  •  系统软件流程分为手动检测和自动检测,手动检测需要操作员在人机交互界面点击相应操作处理,自动检测可以实现一键自动化检测,直接根据预先参数设置好的流程进行PCB缺陷检测并得出结果。算法流程如图所示。  ...
  • %初始化互相关最大值 for rr=-2:1:2%待检测pcb图像依次旋转的角度(步进值可调) dc_rot=imrotate(dc,rr,'nearest');%待检测pcb图像旋转,使用邻近插值法 dc_sub=imcrop(dc_rot,dc_rect);%裁剪带检测pcb图像 c=...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 127
精华内容 50
关键字:

pcb缺陷检测