随着计算机科学和自动控制技术的发展,视觉系统被广泛用于工业检测、生物医学、军事侦察等领域。嵌入式视觉系统,是将图像的采集、处理与通信功能集成于单一相机内,从而提供了具有多功能、模块化、高可靠性、易于实现的机器视觉解决方案。同时,视觉传感器需要通过网络化设计完成控制信息、图像数据的通信任务,网络通信装置是视觉传感器的重要组成部分。笔者采用DSP和CPLD作为核心芯片来控制图像采集处理和传输,采集的图像经DSP的处理后,可经以太网传输至微机进一步处理,或与其他视觉系统、自动化检测装置通信,组成分布式监测网络。本系统的设计优点为:
·使用CMOS为图像传感器直接采集数字图像,采用高速DSP和CPLD作为核心芯片来控制图像采集和处理,简化了电路的复杂度,提高了系统的集成度,降低了成本。在DSP内对采集到的图像实现快速图像的预处理,提高了系统的智能化。
·通过以太网将图像数据传输到联网计算机,利于图像的传输、保存和与其他视觉传感器通信交换数据,组成视觉网络。并可与PLC、机器人和其他自动化装置通信。
系统设计
图1为系统框图,系统通过DSP给CPLD发出一个采集命令,由CPLD控制CMOS图像传感器向FIFO写入图像数据,同时DSP通过DMA将图像转移至SDRAM中并进行图像处理,在处理结束后,将处理的结果通过以太网传给微机或其他设备,对其I/O接口经扩展后,可与PLC等执行装置相连,被外部执行器触发,完成图像的采集处理,达到控制检测目的。
图1
图像采集过程
图像采集过程主要通过DSP给CPLD(ALTERA的MAX
图2
以太网的图像传输
本系统的以太网设计,采用Wiznet公司全功能硬件协议栈芯片W5100。W5100内有16K的发送/接收缓存,支持TCP、UDP、ICMP、IPV4
图3
软件流程
系统的软件流程如图4所示。系统初始化后配置网络设置,建立命令Socket,Socket连接成功后处在TCP连接状态中。当接收到命令时,通过中断触发使DSP从W5100读取命令字,根据命令字做出相应的操作,添加图像预处理程序。然后关闭命令Socket,启动数据Socket进行数据传输,发送处理后的图像数据以便上位机进行更高级的图像处理,最终得到用户想要的结果和数据。
图4
图像采集和处理程序示例
本系统可以应用于视觉系统的多个领域,通过开发标准的软件处理模块,如几何边缘提取、Blob、灰度直方图、OCV/OCR、简单的定位和搜索等,由用户根据实际的测量需求选择相应的处理模块,由上位机编译成相应的固件并下载到系统中,从而实现特定功能的视觉检测。目前系统开发,只能完成特定的几种功能,以下以圆盘的直径检测为例,介绍系统的处理效果。
算法的基本思想是:先对采集的图像进行滤波,再用边缘检测算法检测出圆的边缘,最后再利用圆检测算法算出圆的外径和孔径。
检测基本过程如下:
标定
在能够进行检测之前,系统必须要标定。标定决定图像与物理世界之间的映射关系。因此,把图像中的每个点与一定的物理世界坐标以及反过来建立一一映射。使用一个无畸变的理想二维标定平面来进行标定。首先,可以使用一个标准的网格变换把物理坐标变换到目标平面;然后使用非线性映射把这些中间坐标变换到图像平面。用于变换运算的参数可以通过对一个包含已知位置信息的已知特征标定物成像来获取。非线性变换是通过在确定的测量点之间进行线性插补来实现。
图像预处理
图5为采集到的原始图象。由于CMOS传感器本身的噪声或系统的扰动等其它原因,原始图像中会含有噪声,所以要先对原始图像做低通滤波处理,可采用3×3模板的低通滤波器,或选择一些其它的更为复杂的滤波器,如自适应滤波器。
图5
边缘检测
采用牛顿插值法对图像实现高精度的边缘检测,具体计算步骤如下:
·搜索像边缘过渡区计算向量
根据像边缘的位置沿着灰度值对应的行或列从亮区向暗区搜索,若相邻的两个点的灰度值下降幅度大于阈值(阈值应由实验确定),即认为该点为像边缘过渡区的起始节点,过渡区包含有3~4个节点,把其定义为一维数组,以像边缘过渡区起始节点为首项,沿灰度值矩阵的行或列顺序存放由亮到暗像边缘的灰度值。