APP下载

基于FPGA的近场无透镜图像检测系统设计

2021-08-16石海林冷从阳乔俊红魏晓波

仪表技术与传感器 2021年7期
关键词:光源传感器图像

石海林,付 敏,朱 革,陈 凡,冷从阳,乔俊红,魏晓波

(1.重庆理工大学机械检测技术与装备教育部工程研究中心时栅传感及先进检测技术重庆市重点实验室,重庆 400054;2.重庆理工大学机械工程学院,重庆 400054)

0 引言

随着工业生产的快速发展和生活的需要,图像检测技术已经广泛地运用到各行业中,如工业检测、仪器仪表、物联网等众多领域[1]。一般情况下,图像检测都需要一套完整的光学系统,通过镜头对入射光线进行传输引导,将被测对象的光信号引导至图像传感器对应的位置上,经光电转换成相应的电信号,这个过程叫做聚焦成像,其中图像传感器与镜头之间必须留有一定的距离来实现焦距调节与聚焦[2-3]。由于透镜的复杂性,以及图像传感器与透镜之间的距离,导致现有的图像检测装置尺寸较大,难以实现检测系统的微型化[4]。这样使得在空间距离短、目标物体小的检测条件下,难以完成光学成像系统的组装,从而导致检测效果不好,甚至无法检测[5-6]。因此,如何实现低成本、近距离、小范围图像检测,成为图像检测技术的一个关注热点。

近年来,随着近场图像检测需求的不断增加,为解决图像采集对光学成像系统的依赖,研究人员提出了多种不同的解决方案。文献[7]提出了基于编码孔径成像的无镜头相机架构,用特别设计的编码孔径替代镜头,直接安装在传感器的前面成像。为了进一步提高检测图像的分辨率,在原有编码孔径成像技术的基础上,增加一块编码遮光板放在镜头前,运用图像统计学原理对场景深度信息进行提取,并利用算法程序重新聚焦[8-9]。上面两种方法虽然实现了无镜头成像的测量,但是并没有减小成像装置的体积。用透射式LCD液晶光调制器来代替镜头,将其放在成像目标和传感器之间,通过控制光调制器的像素对光线进行选择性穿透,对透过的光进行压缩测量,利用算法来重建图像,完成无镜头的测量[10-11]。文献[12]采用相位衍射光栅与CMOS传感器阵列集成一种新的无镜头传感器,当传感器接收到各方向光线时,根据这些光强信息获得一幅扭曲的图像。为了得到正常的图像,通过对扭曲的图像进行算法处理即可实现,将成像装置的厚度减小至1 mm以内。日立公司在感光元件前面增加一块带有同心圆图案的光学薄膜,当光线穿过薄膜时会形成阴影,并被传感器接收;利用相关先验信息进行算法计算,将相近的同心圆叠加在阴影上,就会产生根据光线入射角形成的莫尔条纹,这些莫尔条纹经过处理后就可以实现无镜头成像[13-14]。这种方法不仅有效减小了成像装置的厚度,而且能够根据实际需要调节焦距。文献[15]提出了一种基于4f系统的全相位反射式压缩编码孔径光学成像系统,利用反射式空间光调制器对透过的光线进行处理,将采集的低分辨率图像进行解码重建。

虽然上述图像检测技术采用不同的方法实现了光线的传输和成像场景的聚焦,完成了无镜头成像的图像检测,但是基本上都是用尺寸较小的光学器件替代光学镜头,如LCD空间光调制器、编码掩膜、衍射光栅等;这些光学器件的成本比较高,难以安装,并且因光强调制过程复杂增大后续的图像处理算法难度。因此,为了实现近距离、小目标的图像检测,本文在现有无镜头成像技术的基础上,设计了一种低成本、无需光学镜头的近场图像检测系统。该系统将CMOS图像传感器看作一个精密排列的二维光敏阵列,FPGA驱动CMOS图像传感器,读取近场透光面在每个光敏单元的光强值,用阶梯图像算法对透光面的轮廓进行识别和图像重建,真正实现在无镜头条件下的光强直接成像,进一步减少成像装置的体积,并实现低成本、无镜头、近场图像检测功能。

1 FPGA图像驱动系统设计

1.1 驱动系统总体架构

FPGA图像驱动系统总体架构如图1所示,FPGA作为核心控制单元,负责图像传感器的驱动与初始化、图像数据的存储、数据的处理和图像的显示。首先,主控单元FPGA通过SCCB(serial camera control bus)协议产生控制信号对图像传感器进行初始化设置,并将初始化数据写入图像传感器内部的寄存器中,按照行、列的驱动方式并行驱动所有的像素单元;其次,将每个像元采集的光强值通过DVP(digital video port)接口缓存到外部存储器SDRAM中,并通过调用FIFO中的IP核进行数据的写入与读取;然后将采集的图像数据进行灰度转换,对处理后的数据用图像识别算法进行处理,得到光强图像信息;最后HDMI控制器将处理后的数据按照TMDS(transition minimized differential signal)协议的格式发送到显示器,实时地显示在无镜头条件下的图像传感器检测的图像信息。为了保证写入寄存器中数据的准确性,通过增设一个按键来进行控制数据的读写操作。

图1 驱动系统总体架构

1.2 图像传感器初始化

为了便于处理采集的图像数据,本系统选用低功耗、直接输出数字信号的CMOS传感器OV5640。该图像传感器内部有丰富的寄存器,需要通过SCCB协议写入数据来初始化CMOS图像传感器,使其按照行列的方式输出光强数据。为了完成图像传感器的初始化,需要先根据上电时序要求进行程序设计,完成上电操作。在图像传感器的初始化阶段中,FPGA作为SCCB接口的主设备,而CMOS传感器则为从设备。根据SCCB写数据的时序约束图,可以分为5个阶段:第一阶段在SIO_C高电平时,SIO_D信号被拉低,表示开始传输数据;第二阶段先发送CMOS传感器的地址和写入数据指令,再发送读写命令,以便进行读写操作;第三阶段是写内部寄存器的地址,由于SCCB每次只能写8位地址,而寄存器的地址是16位,所以需要发送2次才能完成;第四阶段将需要设置的数据写入相应的内部寄存器中;第五阶段为写数据的结束阶段,表示图像传感器初始化完成。图像传感器初始化RTL图如图2所示。

图2 图像传感器初始化RTL图

对设计的SCCB程序进行功能仿真如图3所示,并向某一地址的寄存器中写入数据,其实现过程与时序约束图一致,说明OV5640初始化成功。

图3 SCCB功能仿真图

1.3 图像数据的存储

完成图像传感器初始化设置后,在光源的照射下,图像数据通过DVP接口按照RGB的格式进行输出,其中16位的二进制数表示一个像素单元的数据。由于DVP接口一次只输出8 bit的数据,那么1个像素单元的数据就需要输出2次,在输出数据后需要将这2个字节的数据进行拼接。根据前面的分析发现图像传感器在发送数据之前需要一定的时间完成初始化,但是在这段时间内仍然有数据输出,为了确保发送的图像数据的正确性,本系统会将前面几帧的数据丢弃。

DVP输出的图像数据所占用的内存是很大的,而FPGA内部并没有这么大的存储空间来用于图像数据的存储,故需要将数据存入外部的SDRAM存储器中。在SDRAM中有许多个逻辑单元,通过行列地址和BANK地址对存入SDRAM存储器中的数据进行读写操作。要正确地使用SDRAM存储器,同样需要先对SDRAM进行初始化设置,其初始化仿真结果如图4所示。在完成SDRAM存储器的初始化设置后,便可以对采集的图像数据进行写入和读取操作。

图4 SDRAM功能仿真

考虑到SDRAM存储器和DVP接口之间速率的不匹配,或者后续的图像数据发送时钟不同步,引入了读写FIFO(WFIFO、RFIFO)来解决数据跨时钟域传输的问题。在数据写入SDRAM存储器时,先将数据写入WFIFO中,当写入WFIFO中的数据个数达到某一值时,再将数据写入SDRAM中;读RFIFO中的数据原理与其类似。

1.4 图像的显示

为了提高信号传输的可靠性和高效性,HDMI控制器将数据按照TMDS协议格式进行发送。首先HDMI控制器将FIFO中的数据在时序发生器中合成后面显示所需的标准时序;再将控制信号和数据按照TMDS协议合成10位并行编码;最后并行的10位编码数据经过并串转换模块转换成差分的串行数据。TMDS的编码实现主要是将原始数据通过逻辑运算来实现的,其中10位编码数据的前8位是原始数据经过异或运算得来的,第9位是指示前8位数据进行何种运算的指示信号。为了验证HDMI控制器设计的正确性,选取某一周期进行图像数据的传输,并以8’h5f等3个数据作为输入数据,其仿真结果如图5所示。根据仿真结果分析,该HDMI控制器设计合理,能够正确地传输图像数据信息。

图5 HDMI控制器仿真结果

在完成上述各模块的设计之后,用光源驱动电路作用于光源,对其光斑大小用设计的图像检测系统进行检测,其光斑形状如图6所示。在显示器上能够清晰地看到光源的光斑形状,说明该图像驱动系统设计成功。

图6 光源的光斑图像

2 近场图像测试

2.1 测试条件

该图像检测系统是为了实现在近场条件下,对微小尺寸物体的准确成像检测。成像系统结构模型及尺寸如图7所示,其中余弦透光面栅距为0.2 mm,余弦透光面长宽均为5 mm,余弦透光面与图像传感器之间的距离为4 mm,光源距离定极板3 mm。由于待检测物体的体积较小,必须通过固定装置将其固定在图像传感器的前方,保证光源、余弦透光面、图像传感器三者在同一直线上,从而获得较好的检测效果。光源对图像质量的优劣有着重要的影响,因此选择均匀性较好的LED光源。光源的照射范围较小使得光源与余弦透光面之间的距离进一步减小,这样整个图像检测系统总体呈现出近距离、尺寸小的特点。

图7 成像系统结构模型

2.2 检测平台搭建与测试

根据上述原理搭建如图8所示的图像检测平台,其中FPGA选用数字逻辑资源丰富的Intel 10CL025YU256C8。该实验平台以光场式时栅位移传感器为载体,选用均匀性较好的LED光源iC-TL46作为发光元件,照射在多排连续余弦阵列上,将余弦透光面通过固定支架固定在距离LED光源3 mm处的位置,并在其后方安装有CMOS图像传感器OV5640,用于接收透过透光面的光强信号。

图8 图像检测平台

在搭建好图像平台之后,利用光源驱动电路作用于LED光源,使其发生交变。在光源的照射下,LED光源透过透光面之后的光强被图像传感器OV5640接收,将接收到的数据先不进行算法处理,通过FPGA控制系统直接输出并在显示器上进行显示,得到直接驱动后无镜头检测图像如图9所示。

图9 直接驱动后的检测图像

3 算法优化及图像重建

由于在图像传感器前面没有镜头,不能对检测的图像进行聚焦,所以通过FPGA直接驱动的图像检测系统不能得到清晰的余弦透光面图像,需要运用算法程序重建原始场景图像。算法实现流程图如图10(a)所示。首先,在光源照射下,图像传感器检测到的彩色图像数据量较大,会占用很大的存储空间,因此需要通过灰度转换处理将图像传感器OV5640采集的彩色图像转换成灰色图像。其次,对于图像检测中存在的噪声问题,该系统采用中值滤波的方式来进行处理,中值滤波是一种能有效抑制噪声的非线性信号处理技术,中心点用该点的一个邻域中各点值的中值代替,消除图像中孤立的噪声点[16]。经去燥处理后的图像变得模糊,难以区分图像的边缘或轮廓信息,故需要通过直方图均衡化方法增强图中的有效信息,使模糊的图像变得更加清晰,便于后续的处理。直方图均衡化方法通过计算某一像素点和它具有微小距离的像素点之间的灰度差值,描绘检测图像的灰度直方图,在特定灰度范围将数据均匀分布,增强图像的对比度。然后运用阶梯图像算法识别图像的边缘,选取3×3的算法模板对每个像素点乘以相应的权值,进行加权运算;再分别从横向和纵向上一个像素点到下一个像素点进行差分运算,得到每个像素点的横纵方向梯度值;对得到的梯度值进行均值运算就能够得到每个像素点的梯度值。将得到的梯度值与设定的阈值进行比较,梯度值大于阈值的地方就是该图像的边缘处。经反复实验验证,当阈值为150的时候,该系统能够得到较好的边缘图像。在经过前面几步的处理之后,图像信息和其他无关信息已经被明显地区别开。最后,将图像传感器上每个光敏单元的光强值数据进行傅里叶变换,通过运行速度较快的全变分正则化算法实现图像重建,进而得到原始场景图像数据,对这些图像数据进行拼接即可得到清晰的光强图像。

图10 算法实现流程图

图像重建的算法实现过程如图10(c)所示,该算法通过并联卷积跳线的方式提取更加完整的图像信息;为了得到更高分辨率的图像,在求解最优解的时候,对最小二乘法的损失函数进行改进,在正则项中加入全变分约束条件。通过算法重建得到原始场景图像信息,对这些图像数据进行格式转换和拼接,合成彩色的光强图像,图像拼接过程如图10(b)所示。再次利用搭建的图像检测平台进行测试,得到经算法处理后的透光面图像如图11所示。该检测图像边缘清晰,能够正确分辨出每个余弦透光面的形状。

图11 算法处理后透光面图像

4 结论

本文对近距离、小目标、无镜头的光强直接成像图像检测系统的设计流程进行了详细阐述,搭建了相应的检测装置,并进行了实验验证。根据实验结果得到以下结论:

(1)该图像检测系统能够在不增加成本的条件下,通过独立检测图像传感器中每个光敏单元的光强信息,配合轮廓识别的阶梯图像算法实现光强成像;

(2)根据设计的检测系统和搭建的检测平台,完成了在5 mm范围内栅距为0.2 mm的多排连续透光面图像的直接测量,验证了该系统在近场、无镜头条件下,光强直接准确成像的可行性。该系统设计从检测光强变化的思路实现了无镜头成像,具有很好的应用价值。

猜你喜欢

光源传感器图像
改进的LapSRN遥感图像超分辨重建
康奈尔大学制造出可拉伸传感器
有趣的图像诗
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
绿色光源
两种LED光源作为拟南芥生长光源的应用探究
科技连载:LED 引领第三次照明革命——与传统照明的对比(一)
遥感图像几何纠正中GCP选取