随着自动化工业生产的迅速发展,基于图像的自动检测方法得到了较为深入的研究和广泛应用。图像检测涉及到图像获取、图像处理、图像理解以及模式识别等许多方面的内容,而在这些领域的研究工作已经取得了很多有价值的成果。目前国内外对于PCB检测定位系统以及其他外观检测的研究已经开展了不少工作,比如日本松下电子公司生产的Image Check B410高速图像检测系统,但是造价高昂,在检测精确度方面同实际需求还有不少距离。
本文根据自动检测的需要,结合当前DSP技术和图像处理技术的最新发展,研制出一种成本低的、满足工业特定需要的检测系统,能够对PCB进行定位,进一步完成断点检测、切割、自动装配等功能。系统的摄像头安装在步进电机上,由系统控制中心推动;操作平台上的PCB与控制中心确定相对坐标系;系统中存贮 PCB的电子版图,根据相对位置移动电机,自动搜寻目标的大致位置,再通过图像检测方式精确定位。
1 基于ADSP-2181的硬件平台
近年来DSP技术向更小、更快、更便宜的方向发展。与普通微机相比,基于DSP的处理系统更适于工业上的推广。选择DSP作为图像检测系统核心处理器,需要考虑外围设备和相应算法的配合。外围设备必须保证提供质量优良的原始图像,以利于进行后期处理;而在DSP实现的算法需要压缩运算量和存储空间,同时能够满足精确度和速度的需要。基于DSP的硬件平台,包括图像获取子系统、图像处理子系统和图像理解子系统[1]。在系统设计中,图像处理和图像检测的任务主要通过ADSP-2181来完成。
1.1 系统数据流模型
系统实现主要包括7个部分:摄像头、A/D转换、D/A转换、帧存储器、ADSP-2181、控制器和总线接口等。根据硬件系统的功能,运用数据流方法进行分析,系统包含以下的数据交换:视频芯片I2C总线控制数据流、图像直通显示数据流、图像冻结数据流、DSP获取图像数据流、DSP处理数据流、处理结果叠加显示数据流、系统控制数据流。系统实现的数据流模型如图1所示。
1.2 系统控制原理
系统控制原理如图2所示。
系统实现的数据流模型和控制原理可认为是对系统的高层次行为域描述,而子系统的划分则是较低层次的行为域描述模型。系统分为6个子系统:
视频前端子系统 将复合视频同步信号转换成16位4:2:2格式YUV数字信号,并输出系统的同步信号。
视频后端子系统 将数字图像和采样鼠标、加亮标志叠加合成的数字信号转换成模拟信号,以视频输出。
帧存贮器子系统 TMS55160为核心,用于存贮原始图像、DSP写入加亮图形,冻结时视频信号实时显示。
DSP子系统 ADSP-2181为核心,FLASH、SRAM、ISA接口和辅助的GAL为外围设备,实现DSP的初始化、功能控制、图像数据获取和图像识别与理解,同时设置I2C总线初始化视频芯片。
系统控制子系统 LattICe的ispLSI1048E,高性能、高效率、延时固定、低耗、在线编程、设计快速、保密性好、成本低,功能是实现系统的时序控制、数据传输和整体控制。
系统初始化子系统 包括ADSP-2181的初始化,实现系统运行;SAA7111和ADV7176的I2C总线初始化,设置工作模式;TMS55160的初始化,以达到标准工作状态。
1.3 系统时钟控制
系统使用了两种时钟,即SAA7111提供的视频流同步信号和ADSP-2181的工作时钟。由于显示和数据处理是并行的,所以系统采用了“时间片” 的分配办法,将视行周期分为不同的时间片(图3),分别进行不同的处理,以实现帧存贮器的正确读写。图3中的数字是以像素点为单位的计数描述,每点的周期大约70 ns;96~608是视频输出时间,32~63是VRAM刷新时间,84~87是VRAM的全传输时间,232~235和360~363是VRAM的分离传输时间,这两种传输保证VRAM从片内的DRAM向SAM传输数据,以实现视频实时显示。从图3中可以看出,在整个行周期内,系统刷新等部分的开销占据了32~384点周期,而其余时间共有556点周期,均属于DSP可控制时间片,这就保证了系统能够在行周期内占据大部分的时间,完成相应的帧存贮器存取数据的复杂操作。
1.4 系统工作流程
系统工作流程如图4所示。
2 检测定位算法研究
由于采用了16位定点DSP,图像处理和检测算法必须最大程度的适合DSP的内部数据格式、指令特征和存储结构,以达到最佳运算性能。基于ADSP-2181的硬件平台,可实现多种检测应用。
2.1 圆形定位标志检测算法
对圆的检测可以采用Hough变换,其特点是抗噪能力强,可以不受实际图像中曲线段不连续性的影响[2]。圆的方程可以表示为:(x-a)2+(y-b)2=r2,其中有三个参数a,b,r,所以需要在参数空间建立一个三维的累加数组A(a,b,r),根据具体图像计算出的每一个三元组(a,b,r),对A累加:A(a,b,r)=A(a,b,r)+1。
如何计算三元组(a,b,r)是实现该算法的关键所在。Hough变换的实质是把图像空间中的检测问题转换到参数空间。如果固定r,则参数空间与图像空间的对应可以用图5来说明。
第4步 若像素点(x,y)非目标像素,则转到第9步执行;
第5步 令α=0;
第6步 a=x-r×cos(α),b=y-r×sin(α) (2)
第7步 若a∈(0,W-1),b∈(0,H-1),则A(a,b,r)=A(a,b,r)+1;
第8步 α=α+1,转到第6步,直到α=360;
第9步 x=x+1,转到第4步,直到x=W;
第10步 y=y+1,转到第3步,直到y=H;
第11步 r=r+1,转到第2步,直到r=rmax。
第12步 对A(a,b,r)搜索,找到一个三元组(a0,b0,r0),使得在所有的A(a,b,r)中A(a0,b0,r0)最大。
经过以上运算得到的三元组(a0,b0,r0)即认为是指定区域内存在的圆形目标。该算法通过增大计算量而减小了存贮空间,达到压缩存贮量的目的,以适应DSP内存有限的特点。由于用到了三角函数,按角度计算,共有360个,采用查表法可以降低计算复杂度,小数用1.15格式表示,可以实现整数与小数的乘法。需要说明确定半径r取值范围:从理论上讲r 的取值应该满足 。 但从计算量和实际应用的角度考虑,式(1)所确定的范围是比较适宜的。
本文关键字:暂无联系方式DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术