于之靖, 刘月林, 诸葛晶昌
(1.中国民航大学 地面特种设备科研基地,天津 300300;
2.中国民航大学 航空自动化学院,天津 300300)
近年来,线阵CCD在非接触测量领域中得到了广泛应用[1]。传统的测量方法存在一定的局限性,存在对工件造成磨损,测量精度不高,不能实现实时测量的缺陷。因此,非接触式测量的优势逐渐显得更为重要[2]。
在光学系统中,采用双线阵CCD对工件进行多次测量,通过多通道测量取平均计算出工件的直径。硬件电路的核心部分采用现场可编程门阵列(FPGA)器件实现,利用FPGA在并行数据处理方面的优势,为线阵CCD提供驱动并且作为图像数据处理的核心单元[3]。在线阵CCD一维图像数据处理中,传统的数据处理常常采用阈值法,其测量精度往往受到像元大小限制,精度停留在像元级别[4]。本文设计采用亚像元细分算法[5],并对其做了相应改进,有效提高了测量系统的测量精度。
光学系统的结构如图1所示,入射光经透镜形成平行光束,垂直照射在圆型工件上,由于工件的不透光性将工件成像投影在线阵CCD上。系统对一帧数据进行边缘检测,即得到圆型工件的直径。根据所选线阵CCD的光谱特性,入射光波长为55 mm时,线阵CCD响应最强烈,所以,系统选择一字线状蓝色激光光源作为光学系统的目标检测光源。
图1 光学成像原理
利用图1简单的透视投影关系,将获得的阴影边缘点位置,按照确定的比例关系, 即可得到工件直径D
D=(f1/f2)·d.
(1)
其中,d为影响阴影在像元上的尺寸,f1,f2为焦距。
双线阵CCD非接触直径测量系统的组成结构如图2所示,整个系统主要由光学系统、线阵CCD 驱动、模拟信号预处理、数字信号直径计算单元组成。采用FPGA作为系统核心驱动控制芯片,完成线阵CCD驱动、A/D转换驱动和图像处理。
线阵CCD采用东芝公司生产的一种高灵敏度、低暗电流、具有5000个有效像元的双沟道两相线阵CCD图像传感器TCD1501,带有采样保持功能。A/D转换器采用TI公司生产的TLC5510,工作电源为5.0V,推荐工作条件下功耗为130mV,具有高阻抗内部并行接口和内部基准电压,最大采样频率为20MSPS。
图2 系统结构原理图
线阵CCD在相应驱动脉冲作用下,输出一维图像的模拟信号,信号经过预处理后,送入A/D转换模块,在A/D转换器驱动脉冲的作用下,A/D转换器输出数字图像信号,FPGA接收到数字图像数据即开始进行图像处理。
在设计中,重点要突出图像的边缘特征,所以,CCD要尽量工作在较大的动态范围,以提高输出信号的信噪比,即亮点与暗点的差值要尽量大,突出图像的边缘特征。CCD信号的输出受到现场环境的干扰,CCD光积分时间决定像元输出信号的强弱,要让CCD工作在最佳的动态范围,就要根据CCD像元输出的亮点信号和暗点信号的差值调节CCD光积分时间[6]。
(2)
(3)
(4)
将T与设定的阈值比较,当T大于等于设定阈值时,即CCD工作在较理想的动态范围,输出图像特征点清晰;否则,应增加光积分时间,以增强图像信号的边缘信息。
根据T值的大小,设计通过增加无效移位脉冲的个数来调节光积分时间以增大CCD亮点像素与暗点像素的差值。设每次调节光积分时间的增量为δt,δt不可太小,太小会增加光积分时间调节次数;亦不可太大,太大会使亮点信号发生溢出。设计中,CCD移位脉冲频率设定为0.5 MHz,每帧数据含有5 076个像元,所以,需要2 538个移位脉冲,所需时间为5 076 μs。转移脉冲需要2 μs时间,所以,采集一帧数据频率最快约为196.85 Hz,采集一帧数据至少需要5 078 μs,这也是能够达到的最小光积分时间。以时钟频率计算,增量δt以200个CCD移位脉冲周期为单位,每次增加积分时间为100 μs。
图3 线阵CCD驱动仿真
图像边缘检测的精确度是决定工件直径检测精度的关键。在以往对图像数据处理中,常采用阈值法,这种方法检测精度受到线阵CCD像元尺寸大小的限制,检测精度不高。系统采用亚像元边缘检测算法对采集到的一维图像数据进行处理,这种方法能够显著提高测量精度[7]。
亚像元边缘检测算法包括高斯滤波、差值计算、边缘检测和差值细分4个模块(图4)。图像经过高斯滤波平滑器后对其求梯度,图像梯度峰值的位置即为图像边缘点,检测出边缘点后即可采用差值细分方法求出图像边缘点的精确位置,其值如公式(5)所示,具体计算步骤请参见参考文献[6]
(5)
图4 线阵CCD边缘检测
在上面的亚像元边缘检测系统中,采用对5000个有效像元点进行处理。这种方法计算量大,浪费资源,为了减少计算量,系统对以往的亚像元检测算法做了改进。线阵CCD输出一帧数据含有5 000个有效像元点信息,最关心的是边缘点附近的信息,因此,如果能直接提取出图像的边缘点信息,则可简化计算量,节省资源。由上面公式(2)~式(3)所确定的亮点灰度值和暗点灰度值为阈值,找出灰度值在二者之间的像元点,这些点即为图像的边缘信息点。对这些边缘点做边缘检测,再利用亚像元边缘检测算法,计算边缘点位置,可减少后续的计算量。
在实际测量中,测量误差受到多种原因的影响,包括CCD器件制造误差、光源的不稳定、透镜的畸变、镜头的焦距和孔径的选取、工件位置的放置、放大镜的放大倍数,这些问题都会降低直径测量的精度。其中可采用双目视觉技术提高工件位置的放置精度。圆型工件由于具有截面投影各向同性特征,测量多通道均可获得截面顶点位置(即始终为测量圆形工件两平行切线位置,光路中除顶点外无遮挡),测量结果中直径为多通道剔除粗大误差后的均值,因此,配置较简单,测量结果准确。
(6)
(7)
(8)
图5 多通道测量原理图
为了分析系统的检测精度,系统对一个已知精度的、直径为12.732 mm的工件进行测量3次测量,测量结果如表1。
表1 实验测量结果
从表1中可以看出:单通道的单次测量误差在4 μm左右,单通道多次测量误差也大于2 μm,采用双通道多次测量技术时,系统测量误差降低到2 μm以内。
本文介绍了一种高精度双线阵CCD非接触直径测量系统的组成、原理及具体实现方法。重点介绍了通过改变光积分时间增强线阵CCD输出信号边缘特征,通过线阵CCD亮点和暗点像素值迅速找出边缘点的方法,为了减
小误差,采用双线阵CCD多通道多次测量取平均以提高测量精度,系统最小误差小于2 μm,满足工业应用高精度测量的要求。
参考文献:
[1]马登极,朱善安,王长军.线阵CCD在高精度测量系统中的应用[J].计算机测量与控制,2006,14(2).
[2]王晓丽,段春霞,周 阳.高精度非接触式自动外径测量方法研究[J].仪表技术与传感器,2011(8):79-81.
[3]徐光宪,张 庆,付 晓.基于FGPA的模拟视频采集控制器的研究与实现[J].仪表技器,2012(3):41-43.
[4]张建辉,宋平岗.线阵CCD技术及其在非接触测量中的应用[J].机械与电子,2004(8):63-65.
[5]胡晓东,马 娜.亚像元边缘检测的FPGA实现[J].光子学报,2010,39(1):173-176.
[6]刘 艳,赵 红,于效宇.一种可调线阵CCD信号采集处理系统[J].半导体光电,2009,30(2):294-299.
[7]谷 林,胡晓东,陈良益.基于FPGA的线阵CCD亚像元边缘检测片上系统[J].光子学报,2004,33(5):618-621.