1、.1機器視覺鏡頭及軟體機器視覺鏡頭及軟體介紹介紹2015年年5月月1日日.2Vision System OverviewArchitecture:Architecture:Total Total SolutionSolutionSoftwareHardwareExternalPlatformHalcon(H,3D)Halcon(H,3D)Nation Instrument(L)Nation Instrument(L)Cognex(H)Cognex(H)Opencv/ITK(Free)Opencv/ITK(Free)VC/VB/C#VC/VB/C#/Labview/LabviewCamera-U
2、SB,1394,GigaECamera-USB,1394,GigaELens(Cmount)-CCTV,TelecentricLens(Cmount)-CCTV,TelecentricLighting-Lighting-環型環型, ,同軸同軸, ,背光背光, ,點光點光, ,球積分球積分3D Component (Laser,3D Component (Laser,條紋光條紋光) )I/O Card , Trigger SignalI/O Card , Trigger SignalRobot,Motion Card(PC),PLCRobot,Motion Card(PC),PLCXYZ Tab
3、le , AC Servo,Stepper XYZ Table , AC Servo,Stepper Motor , Linear PlatformMotor , Linear PlatformSDKSDKCompiler ,UICompiler ,UI.3Topics 1:为您的视觉系统找到合适的镜头2:NI视觉SDK3:NaroVision泛用型视觉系统4:HalCon视觉SDK5:Congex视觉SDK6:OpenCV,ITK视觉SDK.41:视觉系统需要找到合适的镜头,镜头的作用Lens1Lens2CMOSAperture StopAperture StopLens1Lens2.5.6
4、.7,镜头的组成 镜头一般由光学系统和机械装置组成,有些也集成了自动调光圈、自动调焦或感测光强度等的电子器件. .8,镜头的分类 镜头按焦距大小可以分为长焦镜头、标准镜头、广角镜头等 按用途通常可以分为安防用镜头(CCTV lens)、工业自动化镜头(FA lens),广播级别的镜头(Broadcast lens),高清晰电视用镜头(HD lens)机器视觉行业内通常有宏镜头(macro lens)、定倍镜头(fixed-mag lens)、变焦镜头(zoom镜头)、远心镜头(telecentric lens)、高精度或百万像素镜头(High Resolution or million pix
5、els lens)、线扫描镜头(Line Scan lens)等称谓。当然,这些分类并没有严格的划分界线。 .9 寻找一款镜头我们关心什么? 1, 成像比例(Magnization,ZOOM?) 2,工作距离(WD) 3, 像质(resolution,contrast,color balance, aberration, Vignetting , MTF, etc.) 4, 景深(Depth of view) 5,投影误差(Telecentric) 6,通光量(F Number) 7,机械接口(C,CS,F,K,M42,M12,M16) 8, 支持相机的芯片尺寸(1/2, 2/3,1, 40m
6、m) 9,工作波段( 10mm , 6.66mm/0.513.32mm(假設假設CCD大小為大小為6.66mm*5.32mm)2:計算出來的相機精度為計算出來的相機精度為:Camera Resolution 13.32/0.02mm (666H * 666V) , 所以選擇所以選擇1.3M Camera (1280H * 1024V) ( 6.66mm(H) x 5.32mm(V) )V)or FOV(H V)or Size(H CCDMOptical.16 -3a,像质-( Sharpness and Contrast ) 对比度(Contrast),是图像黑与白的比值,即从黑到白的渐变层次
7、,定义了图像中实物和背景之间的强度差。对比度和分辨率与图像质量紧密相关。构建图像系统必须确保足够的对比度以区分实物图像和背景。选择合适的照明能有效提高的对比度。.17-3b ,像质-畸变(Distortion)Approx. 10 % barrelshapedApprox. 10 % pincushionshapedCCTVTelecentric.18-3c,像质-色彩还原(Color Balance) nmR 02,55,07,510,03004005006007008009001000Single LayerBroadband CoatimgMultii CoatingSpectral T
8、ransmission: Typical Reflection of Coating Systems在图像处理领域,色彩平衡经常表示通过改变图像的颜色值从而能够在特定的显示或者打印设备上得到正确的颜色。.19-3d ,像质-渐晕(Vignetting )Optical vignetting (cos4 Law)Pixel vignetting Mechanical vignetting Example:f=50mm view angle=9.2Cos4(9.2)=0.95f=8mm view angle=51.9Cos4(51.9)=0.15在摄影摄影和光学光学领域内,晕影晕影或暗角暗角是指图
9、像的外围外围部分的亮度或饱和度比中心区域低。晕影的出现通常是因为相机的设定和镜头的限制因素等 .20-3e ,像质-MTF的意义Modulation Transfer Function :这种测定光学频率的方式是以一个mm的范围内能呈现出多少条线来度量,其单位以line/mm来表示。 .21-4,景深 Depth of View(1)光圈越大,景深越小;光圈越小,景深越大;(2) 镜头焦距越长,景深越小;焦距越短,景深越大;(3)距离越远,景深越大;距离越近,景深越小。.22 景深,是相机对焦点前后相对清晰的成像范围。-4,景深 Depth of View.23-5,投影误差-远心镜头.24-
10、6,光通量-F-number可能当您把相机和光源的参数已经调整到最大,您才会意识到光圈系数的重要性。光圈的调整不仅与亮度相关,同样与对比度和景深密切相关。光圈系数(F数)是镜头的重要内部参数,它就是镜头相对孔径(d/f)的倒数,如果光圈系数的标称值数字越大,也就表示其实际光圈就越小。一般来说,镜头的光圈排列顺序是:1、1.4、2.0、2.8、3.5、4.0、5.6、8.0、11、16、22、32等等。随着数值的增大,其实际光孔大小也就随之减小,而其在相同快门时间内的光通量也就随之减小。.25-7,机械接口-Mount.26-8,支持相机的芯片尺寸.27-9,工作波段UV(750nm).28-1
11、0,镜头尺寸.29Telecentric Lens (Moritex) .30CCTV Lens (Computar) 孔徑光闌,它是限制光學系統進光量之孔徑大小,也就是我們常說的光圈,在相機中可以看到這樣的機制,如左圖所示。鏡頭本身雖然很大,但卻有一個機制限制進光量的大小,這個機制就是孔徑光闌。 .31倍鏡倍鏡延伸環延伸環.32 要对图像进行分析和处理,必须确保图像系统能产生高品质的图像。 影响图像质量的五个因素: 分辨率 对比度 景深 透视误差 畸变 總結總結: 如何获取高品质的图像如何获取高品质的图像.3311,其它因素 价格 同轴入口 工作环境(工业场合) 光学器件配合(滤光片、偏振镜
12、、转角镜) 电子或机械配件。(自动对焦、自动光圈、电动变焦等).34 透视误差(Perspective),一般在相机镜头轴向与被拍照物不垂直时出现。图a显示相机的最佳位置,图b为从某个角度拍摄的图像。 1.镜头畸变2.透视误差 3.已知方位偏移透视误差透视误差2:NI视觉系统.35 非线性畸变是镜头光学误差导致的几何像差,畸变程度与物象点离光轴的距离有关。 发生畸变时,物象点相对于视场中心产生了偏移,但畸变不会丢失图像信息,因此可通过空间校正(Spatial Calibration)纠正畸变。镜头畸变镜头畸变.36An erosion eliminates pixels isolated in
13、 the background and erodes the contour of particles according to the template defined by the structuring element.For a given pixel P0, the structuring element is centered on P0. The pixelsmasked by a coefficient of the structuring element equal to 1 are thenreferred as Pi. If the value of one pixel
14、Pi is equal to 0, then P0 is set to 0, else P0 is set to 1. If AND(Pi) = 1, then P0 = 1, else P0 = 0.Erosion.37DilationFor any given pixel P0, the structuring element is centered on P0. The pixelsmasked by a coefficient of the structuring element equal to 1 then arereferred to as Pi. If the value of
15、 one pixel Pi is equal to 1, then P0 is set to 1, else P0 isset to 0. If OR(Pi) = 1, then P0 = 1, else P0 = 0.38 根据图像灰度来进行匹配的算法,用于定位、识别以及有无判断等应用场合 采用circular Projection采样法,当发生旋转时一样可以找到目标 采用halton随机采样法,随机选取采样点进行匹配计算,提高算法效率平移加旋转仅平移模板.39dft( dftImg, dftImg, 0, dsz.height );Mat dftTempl1(dftTempl, Rect(
16、0, tcn 1 ? *dftsize.height : 0, dftsize.width, dftsize.height);mulSpectrums(dftImg, dftTempl1, dftImg, 0, true);dft( dftImg, dftImg, DFT_INVERSE + DFT_SCALE, bsz.height );src = dftImg(Rect(0, 0, bsz.width, bsz.height);平移3:利用金字塔变换提高搜索效率1:Normalized Cross-Correlation2:DFT and Inverse DFT.40patternCrea
17、te halton set平移+旋轉3:Correlation Based Pattern Matching1:Statistical Sampling Based Pattern Matching2:Based on a Discrete Fourier Transform (DFT.41 根据几何轮廓特征来进行匹配的算法,用于定位、识别以及有无判断等应用场合 即使图像发生旋转、缩放、遮挡、极性以及背景改变,均能搜索到目标模板.42 模板学习步骤1.提取边缘点;2.轮廓追踪,连通的边缘点合成为同一条轮廓;3.轮廓筛选,将不符合要求的轮廓剔除;4.提取特征,直线、圆弧或矩形;5.根据特征的类型
18、进行排序,选取最好的方式描述模板。.43 几何匹配步骤1.提取目标图像轮廓;2.根据轮廓提取特征;3.模板图像特征和目标图像特征比对,并将可能成为最佳匹配的 结果保存起来;4.从可能的匹配结果中找出最佳匹配。.44:Definition of an Edge1 灰階值輪廓(Grayscale Profile)2 邊緣長度(Edge Length): 邊緣梯度上升的距離3 邊緣強度(Edge Strength)4 邊緣位置(Edge Location).45:次像素次像素(Sub Pixel).46 首先沿着搜索方向在ROI区域提取出一系列的边缘点 采用最小二乘法对边缘点进行直线拟合计算 自动选
19、取最佳直线拟合结果 拟合的直线可用于尺寸测量和直线度测量最佳拟合直线误差较大被丢弃.47Redefining a Coordinate SystemYou can use simple calibration to change the coordinate system assigned toa calibrated image. When you define a new coordinate system, rememberthe following: Express the origin in pixels. Always choose an origin location that
20、lies within the calibration grid so that you can convert the location to real-world units. Specify the angle as the angle between the new coordinate system andthe horizontal direction in the real world.48查找直线参数设定.49 首先沿着搜索方向在ROI区域提取出符合条件的边缘点 采用最小二乘法对边缘点进行圆弧拟合计算 可得到圆弧的圆心坐标和半径大小.50圆弧检测参数设定主要设定参数:Direc
21、tion:搜索方向Edge Polarity:边缘极性Edge Strength:边缘强度.51 测量沿着搜索方向的最大和最小尺寸,用于尺寸测量 测量芯片pin脚宽度和间距Pin脚宽度Pin脚间距.52算法原理:1.首先提取边缘点对2.根据边缘点对拟合两条直线3.计算两条拟合直线的最大最小矩离.53提取轮廓并与标准轮廓比对,根据比对结果判断产品是否合格算法原理:1.首先提取边缘点2.根据连通性将边缘点组成连续的 轮廓3.计算轮廓 的点到标准轮廓的距离4.如果距离超过设定值,则认为是 缺陷.54图像和标准图像比对,寻找两幅图像之间的差异,用于印刷检测、暇疵检测等算法原理:1.首先在当前图像查找标
22、准图像2.根据查找到的标准图像的位置,使两幅 图像对齐3.两幅图像相减4.统计两幅图像相应像素点灰度值超过设 定值的数目5.如果差异像素点的数目大于设定阈值, 判定为NG图像标准图像错误图像.551:Locating and decoding Data Matrix codes requires a minimum cell size of2.5 pixels.2: Locating and decoding Data Matrix codes also requires a quiet zone of at least one cell width around the perimeter
23、of the code3:A Data Matrix code is a matrix built on a square or rectangular grid with afinder pattern4:Each cell of the matrix contains a single data cell. The cells can be either square or circular.Data Matrix.563:NaroVision泛用型视觉系统 1 NaroVision泛用型视觉系统特性介绍 系统介绍 标定 图像处理 机器视觉 通讯 2 应用实例介绍.57系统介绍 1 可同时
24、支持最多6只相机,满足复杂应用需求; 2 支持模板匹配、直线检测、圆检测、OCR字符识别、Barcode、印刷检测等多种 机器视觉功能,并且可灵活组合以进行各种复杂检测; 3 可编程的方式使得应用更加灵活; 4 支持串口、以太网以及IO板卡等通讯方式,可与不同的设备进行数据传输;.58标定 1 相机标定 使用点阵式标定板,可纠正镜头畸变和透视畸变影响 2 比例尺设定 模板匹配:根据运动平台的运动位移以及模板中心的位置变化计 算比例尺; 特殊尺寸:根据两条平行直线的距离来计算比例尺; 圆半径:根据已知圆半径的大小来计算比例尺。.59图像处理 灰度变换:调整图像亮度以及对比度 二值化:根据设定灰度
25、阈值将图像分为前景和背景 图像增强:通过一系列的数学运算调整图像灰度 图像滤波:滤除图像噪声或突出边缘特征 数学形态学操作 彩色图像处理:彩色BCG处理、均衡化、灰度转换.60机器视觉 模板匹配:定位、特征识别 查找圆、直线:精确提取轮廓的几何特征 BARCODE:一维和二维BARCODE读取 OCR:OCR字符识别 检测:印刷质量检测、暇疵检测 卡尺:测量物体尺寸 轮廓检测:根据轮廓比对检测缺陷.61通讯 串口:RS232通讯,支持多种类型PLC (三菱、松下、台达、keyence、信捷等等) 通讯协议和自由协议 以太网:可做服务器或客户机,与多款机械手 (denso, epson以及ABB
26、) 无缝连接 IO板卡:使用IO信号作为触发输入或结果输出.62应用实例介绍模板匹配(返回模板中心坐标、旋转角度).63应用实例介绍查找圆(返回找到的圆心坐标和半径).64应用实例介绍读取AZTEC CODEAZTEC CODE读取,返回码的内容和中心坐标.65应用实例介绍读取CODE128读取CODE128码,返回码的内容.66应用实例介绍印刷检测(检查标签印刷是否存在漏印、偏位等问题,并标 记出缺陷的位置).67应用实例介绍轮廓检测 首先提取轮廓,然后和标准的几何特征进行比对,检测两者之间的差异.68应用实例介绍使用卡尺工具进行尺寸测量 通过定位,精确找到测量位置再进行测量.69 Dept
27、h From Focus Multi-View Stereo Sheet-of-line technology Photometric Stereo3-1:Halcon 3D視覺軟體SDK.70選擇合適的選擇合適的3D方法方法-1.71選擇合適的選擇合適的3D方法方法-2.72選擇合適的選擇合適的3D Restruction.73選擇合適的選擇合適的3D Planar.741:Depth From Focus.751:Depth From Focus.76using the depth from multiple focus picture algorithm1:Depth From Focu
28、s.772:Multi - View Stereo.782:Multi - View Stereo.792:Multi - View Stereo.802:Multi - View Stereo.812:Multi - View Stereo.822:Multi - View Stereo.832:Multi - View Stereo.842:Multi - View Stereo.853:Sheet of line technology.863:Sheet of line technology.873:Sheet of line technology.883:Sheet of line t
29、echnology.893:Sheet of line technology.903:Sheet of line technology.914:Photometric Stereousing the algorithm of Woodham.92is based on the algorithm of Woodham and therefore assumes on the one hand that the camera performs an orthoscopic projection. That is, you must use a telecentric lens or a lens
30、 with a long focal distance. On the other hand, it assumes that each of the light sources delivers a parallel and uniform beam of light. That is, you must use telecentric illumination sources with uniform intensity or, as an alternative, distant point light sources. Additionally, the object must hav
31、e lambertian reflectance characteristics, i.e., it must reflect incoming light in a diffuse way. Objects or regions of an object that have specular reflectance characteristics (i.e., mirroring or glossy surfaces) cannot be processed correctly and thus lead to erroneous results. 4:Photometric Stereo.
32、934:Photometric Stereo.944:Photometric Stereo.954:Photometric Stereo.964:Photometric Stereo.974:Photometric Stereo.98using the algorithm of Woodham4:Photometric Stereo.994:Photometric Stereo.100 PCB Inspection Print Check Surface Scratches Mura Algorithm3-2:Halcon AOI視覺軟體SDK.101電路板焊錫檢測電路板焊錫檢測1:PCB I
33、nspection.102Source ImageTraining ModelDefect Image 1Defect Image 2Using the algorithm of the variation model1:Print Check.103產品刮傷檢測產品刮傷檢測extraction of surface scratches via local thresholding and morphological post-processing3:Surface Scratches.104Using Texture AlgorithmUsing Texture Algorithm4:Mur
34、a.105Using Gaussian and FFT AlgorithmUsing Gaussian and FFT Algorithm4:Mura.106* This program demonstrates how to detect small texture* defects on the surface of plastic items by using the fast* fourier transform (FFT).* First, we construct a suitable filter using Gaussian* filters. Then, the images
35、 and the filter are convolved* by using fast fourier transforms. Finally, the defects* are detected in the filtered images by using* morphology operators.1:Mura.107PMAlign.108Introducing PatMax PatMax is a pattern-location search technology PatMax patterns are not dependent on the pixel grid A featu
36、re is a contour that represents the boundary between dissimilar regions in an image Feature-based representation can be transformed more quickly and more accurately than pixel-grid representations.109PatMax Capabilities With one tool measure Position of the Pattern Size relative to the originally tr
37、ained pattern Angle relative to the originally trained pattern Unprecedented accuracy Up to 1/40 pixel translation Up to 1/50 degree rotation Up to 0.05% scale Increased speed Basic pattern finding is faster Angle and size determined quickly.110Generalized Hough Transform (GHT)(Ballard and Brown, se
38、ction 4.3.4, Sonka et al., section 5.2.6)PatMax 演算法原理.111PatMax 演算法原理.112PatMax 演算法原理.113学习目标 学员将学会正确地:q 识别PatInspect可能是视觉解决方案一个部分的应用q 创建并配置一个PatInspect工具来探测不同运行条件下的缺陷.114PatInspect其目的是使用 PatMax 技术探测缺陷缺陷被定义为运行期间图像中超出正常预期的图像差别的任何变化缺陷可能是物体遗失(阻塞)或者多余(杂乱).115PatInspect缺陷在训练图像和运行期间图像中的类似区域之间的像素灰度值不同支持图像标
39、准化 最小化灯光差别对结果的影响训练图像训练图像运行期间图像运行期间图像浓度不同的图像浓度不同的图像.116使用PatInspect使用PatInspect的基本步骤: 训练基准图案 训练检查图案 设置运行期间参数 运行PatInspect 从PatInspect中萃取结果或者使用其他视觉工具在差别图像上执行进一步的分析.117基准图像 通常,您的运行期间图像和训练图像并不总是在图像中的同一位置上 甚至在位置上的微小差别也会造成问题,除非在对准步骤中得到解释 创建并且配置PMAlign工具查找能可靠地用作对准的特征 这可能是: 待检查的整个元件 待检查元件的一部分 与您要检查的完全不同的东西,
40、只要其与检查保持一致的位移.118检查图案培训一个或更多的图像可以做为培训图案使用PatInspect 将在统计学方面合并这些图像为一个独立的图案 创建一个图案模型 它将在一个运行期内的图像中,提供期望高差别性的位置信息目前,您只能在差分训练中建立一个检查图案,该项限制措施将在未来的正式执行中删除。.119训练检查图案 传递到PatInspect中: 一个输入图像(InputImage) 一种姿态 通常直接来自运行在同样图像上的PMAlign结果作为输入图像 您还可以选择性地在训练训练图像( TrainImage )和原点中直接传递.120训练检查图案对于第一个训练图像:.121训练检查图案技
41、术上,您所需要的只是一个训练图案。但是,多数“实际”检查需要解释元件中的自然的可接受的变化统计训练 允许您提供多个 好图像,但是元件不同.122统计图案训练 对于随后的图像: 将图像传递到输入图像 运行统计培训当前图案 训练区域数量会增加 图像数量多少没有限制 训练图像没有变化.123训练的图案图像训练的图案图像是提供给图案训练的对准图像的算术平均数.124遮罩训练图像可选项,您可以遮罩任何训练图像,忽略训练中一些像素.125阀值图像 PatInspect 还计算阀值图像 阀值图像为每个像素设置一个阀值 PatInspect使用该阀值图像通过给发生变化的地方分配一个较高的值而给没有变化的地方分
42、配较低的值来去除不代表缺陷的差别.126阀值图像在PatInspect运行时,它会从模板图像中减去运行期间图像中的像素并且将结果与阀值图像相比较。因此,阀值越高,没有传递缺陷的运行期间图像中的差别越大。.127计算阀值使用coeffs计算一个像素的阀值T:T = coeffs.x( ) * StdDev + coeffs.y( ) | | 比例 位移系数的默认值是(1.0、0.0)StdDev 是灰度值对为训练提供的所有图像中单个像素的标准差.128计算阀值使用默认值的例子: 如果对于所有训练图像的具体像素的标准差是2.4,那么对于该像素的阀值也是2.4:1.0 2.4 + 0.0 = 2.4
43、 这意味着对于某仿射转换的运行期间区域中的该像素的灰度值可以与对应的训练图案图像中该像素的灰度值相关多达2.4灰度级,并且不会计为一个缺陷.129计算阀值使用其他值的例子: 对于特定像素的标准差是2.4 比例 = 3.0 位移 = 10.0 那么对于该像素的阀值是17.2:3.0 2.4 + 10.0 = 17.2 这意味着对于某仿射转换的运行期间区域中的该像素的灰度值可以与对应的训练图案图像中该像素的灰度值相关多达17.2灰度级,并且不会计为一个缺陷.130 如果您只使用一个图像进行训练,那么对于每个像素需要人为地建立一个标准差(StdDev) 边线像素的值更高 边线像素还往往是多数图像之间
44、存在最大差别的地方 因此,如果人为操作,Sobel图像可以作为合理的标准差值的基础,使用一个图像计算阀值.131有时,您想要说明在灯光或者环境条件下可能发生的变化 这样灰度差别不会被当作缺陷探测您可以在比较运行期间图像和训练图像之前标准化运行期间图像,以便消除这些预期差别的影响差别图像 标准化 .132 四种标准化类型:尾部匹配 适合含有改变柱状图形状但不会改变其范围的较大缺陷的图像平均和标准差 适合含有“中等尺寸”缺陷的图像柱状图均衡 适合总体缺陷面积小的地方或者在一般缺陷幅度小的时候 非常适合灯光或者赏光差别会导致非线性灰度差别的应用场合识别转换 在图像中没有变化差别图像 标准化 .133
45、差别图像标准化的运行期间图像从训练图像中减去(从训练图像中减去具有平均灰度值的图像)该减法的结果是原始差别图像.134设置差别图像的阀值PatInspect比较原始差别图像中的像素灰度和阀值图像中的灰度值灰度值超过对应的阀值图像像素的任何差别图像像素将在差别图像中保持不动灰度值低于对应的阀值图像像素的任何差别图像像素将被赋予灰度值0.135匹配图像PatInspect 还生成一个 匹配图像表示运行期间图像和训练图像之间匹配的区域 在高度混淆的图像中会很有用.136匹配图像 还可以显示图形表示在匹配图像上显示的阀值差别图像 青色像素代表1和19之间的灰度差别 红色像素代表大于或等于20的灰度差别
46、.137PatInspect图像可选项,生成其他图像用于不同的分析.138现在怎么办?PatInspect工具通常的最后结果是差别图像使用其他视觉工具在该图像上进行分析,例如斑点或者柱状图工具.139cMatchTemplate.140 在另一幅图像上移动模板图像块来寻找最佳匹配 平方差匹配法:利用平方差来进行匹配,最好匹配为0 相关匹配法(CV_TM_CCORR):采用模板和图像之间的乘法操作,数值越大匹配程度越高 相关匹配法(CV_TM_CCOEFF):将模板对其均值的相对值与图像对其均值的相对值进行匹配,1表示完美匹配,-1表示最糟糕的匹配,0表示没有任何相关性.141 算法简单,容易实现 , Open Source; 算法精度不高,只能精确到像素; 算法无法处理存在缩放和旋转的情况; 全图匹配,效率不高。.142模板图像无旋转搜索成功角度超过正负5度无法匹配