APP下载

正交分光成像系统实时多光斑亚像素定位研究

2021-09-27段发阶

仪表技术与传感器 2021年9期
关键词:浮点数光斑分光

杜 睿,段发阶,李 遥,傅 骁

(1.天津大学,精密测试技术及仪器国家重点实验室,天津 300072;2.中国船舶工业系统工程研究院,北京 100861)

0 引言

随着智能制造水平的提高,空间点坐标测量的作用日益凸显。基于机器视觉的测量方法由于具有使用灵活、精度较高且非接触等优点,成为研究热点[1-6]。然而,传统面阵相机最高帧率仅约数百Hz,限制了其在高频测量领域的应用。正交分光成像系统是近年来出现的一种结构新颖的光学测量装置,其包含球面镜、柱面镜等光学结构与2套正交放置的线阵电荷耦合器件(线阵CCD)传感器。当成像系统拍摄光点时,光点在2套线阵CCD传感器上形成的光斑峰值坐标,可等效于面阵相机中成像点的x、y轴坐标。

正交分光成像系统在高频动态坐标测量领域具有独特优势。一方面,由于其使用2套线阵CCD传感器代替面阵传感器,因此帧率远高于普通面阵相机;另一方面,线阵CCD中光斑峰值位置提取速度高于面阵CCD,使得图像处理效率极大提升。因此正交分光成像系统在高频测量领域具有普通面阵相机无可比拟的优势。

目前,国内外对基于线阵相机的坐标测量已经开展了诸多研究[7-9],但针对正交分光成像系统中采用的光学结构,国外尚未见相关报道。国内天津大学对该成像系统进行了较深入的研究[10],刘昕彤采用正交分光成像系统,对刚体上多光点进行成像,通过对成像位置的解算,完成刚体的位姿测量[11];刘海庆等使用多台系统,搭建正交分光成像系统网络,通过立体视觉原理,实现对空间点的三维坐标测量[12]。但上述文献中,正交分光成像系统均采用商业线阵CCD相机搭建,相机将采集的整帧图像上传。上位机对图像中光斑峰值的亚像素级位置进行提取。这种情况下,单帧图像数据处理时间长于单帧图像生成时间,使得亚像素级光斑坐标难以实时获取,影响成像系统使用时的测量效率。

为解决此问题,本文采用现场可编程门阵列(FPGA)作为主控制器,搭建了正交分光成像系统。完成图像采集后,在FPGA内部通过模板匹配、阈值比较、曲线拟合等步骤,实现了多光斑峰值的实时亚像素定位,大幅减少了上位机数据处理压力,提升了测量效率。

1 正交分光成像系统原理及电路设计

1.1 正交分光成像系统原理

正交分光成像系统结构如图1所示。其主要包含球面镜组、柱面镜组、分光棱镜、线阵CCD等部分。成像时,入射光经球面镜组后,出射成为平行光束。平行光束进入50∶50分光棱镜后,部分光束按原方向出射,其余光束被折射90°后出射,即原本的平行光束被平分至正交方向。正交方向上均放置柱面镜组。柱面镜在平行于母线方向上等效于平行平板,在垂直于母线方向上等效于球面透镜。当平行光束入射至柱面镜组后,被柱面镜组在垂直于母线方向上压缩,成为垂直于母线方向的光斑。线阵CCD置于柱面镜组之后,且与柱面镜母线平行。正交方向上光束形成的光斑在2套线阵CCD上成像,成像位置可等效于光点在面阵相机相面上的横纵坐标。

图1 正交分光成像系统结构示意图

1.2 正交分光成像系统电路设计

正交分光成像系统内部包含2套独立的线阵CCD传感器,为提高数据处理速度,采用FPGA作为主控制器,整体电路结构如图2所示。FPGA驱动线阵CCD与A/D芯片获取图像,FPGA内部对图像中的峰值进行亚像素提取后,经FIFO缓存后通过以太网与交换机传入上位机,2套线阵CCD之间通过同步信号互连。

图2 正交分光成像系统结构示意图

选用TCD1209D型线性CCD传感器。暗黑条件下正交分光成像系统对8个共线等距、竖直平面内斜45°放置的LED光源成像,正交分光成像系统中2套线阵CCD输出图像如图3所示。图中横轴为各像素位置,纵轴为各像素输出模拟信号经A/D转换后的强度。由图3可知,光斑波形是比较理想的单峰图像,光点成像效果良好。

(a)x轴

2 基于FPGA的实时多光斑亚像素定位算法

亚像素计算是提升成像系统分辨率的有效方式。其中质心法是应用广泛的亚像素提取方法,其原理是对某个阈值之上的像素按像素值进行加权,将求得的质心坐标作为中心坐标[13]。然而使用FPGA进行峰值亚像素坐标提取时,质心法存在明显的缺点。质心法能够取得较好效果的前提,是参与计算的像素可以基本反映峰值整体分布情况。正交分光成像系统中光斑整体宽度约20像素,则至少需要光斑峰值左右共15像素参与运算,这将导致参与运算的像素较多,面积与速度两方面因素难以平衡。

为减少参与运算的像素数,本文主要使用曲线拟合法进行峰值定位。一般情况下,可直接以峰值像素为中心,对附近像素进行高斯或二次曲线拟合,根据拟合结果得到峰值亚像素位置。然而实际实验中发现,正交分光成像系统中,光斑峰值处的2个像素数值极为接近,受噪声影响,这2个像素数值将不存在确定的大小关系。若直接以最大像素为中心进行拟合,即使在目标点静止的情况下,连续多帧图像的拟合中心间会存在1像素的偏差,使得拟合结果出现较大的波动,重复定位误差增大。

为解决这一问题,在拟合之前,首先对图像进行模板匹配。设计与光斑强度分布相近的模板,使用模板与图像进行互相关运算,在光斑位置处即可得到稳定锐利的单峰图像。相关峰的位置为模板出现在图像中的位置,也反映了光斑峰值的像素级位置,实现了光斑峰值的粗定位。接着对相关峰进行高斯拟合,高斯曲线的峰值位置即可作为光斑中心的亚像素级位置。FPGA数据处理过程如图4所示,主要包括相关匹配、阈值比较与峰值检测、RAM乒乓存储、峰值位置拟合、FIFO数据缓存、以太网传输等部分。

图4 FPGA数据处理过程示意图

2.1 基于FPGA的模板匹配

模板匹配采用互相关函数来评价模板与图像之间的相似程度,表达式见式(1),其中G(n)为匹配模板,I(x)为对应位置的像素值。由于相关操作仅需移位、乘、加的运算,易于在FPGA内部实现。

(1)

进行互相关匹配之前,需针对匹配对象设计合理的匹配模板。对发光LED标志点在各位置的成像波形分析后可知,其峰值处波形近似为高斯分布。对多个位置处的光斑统计发现,标准差为2.63的高斯函数可对光斑进行较好拟合。在上述标准差下,5点高斯模板如式(2)所示:

G(n)=(0.171 8,0.213 4,0.229 4,0.213 4,0.171 8)

(2)

FPGA进行浮点数运算时会消耗大量的逻辑资源,为节省硬件开销,利用整数与移位操作对上述模板加以近似。近似结果如式(3)所示。误差如表1所示。

表1 高斯模板近似结果

(3)

计算中模板与对应位置的像素数值相乘相加后,将结果右移8位即可。FPGA内模板匹配部分的电路结构如图5所示,将像素移位、相乘、相加置于3条流水线上。经时序分析,该电路最高运行频率达170 MHz,高于20 MHz的线阵CCD采样频率,不会造成数据阻塞的问题,可稳定运行。

图5 FPGA相关运算示意图

2.2 阈值比较与乒乓缓存

实际情况下,正交分光成像系统同时对多光点进行测量,线阵CCD图像中将出现多处峰值。模板匹配后同样出现多个峰值,因此无法通过查找最大像素值的方式进行峰值位置定位。

由光斑信号的先验分布可知,图像中光斑内与暗处像素强度差异明显,由于模板中各元素之和为1,因此互相关计算后,整体像素强度不会改变。因此通过设定阈值,将相关值与阈值实时比对,即可判断像素是否位于光斑内。将阈值作为比较器的触发电平,从而输出图6所示的窗口信号。FPGA对单个窗口内的最大像素值进行查找,从而得到峰值像素位置[14]。将峰值像素及左右各1个像素的像素值、像素位置存入RAM中,用于后续的光斑中心亚像素计算。

图6 窗口信号示意图

为保证数据处理实时性,阈值比较与亚像素计算将在FPGA内并行进行。采用乒乓操作完成数据的缓存与处理,保证了上述2个部分的彼此独立。具体实现时,将当前帧中阈值比较与峰值像素提取后的数据存入RAM1内。将下一帧的数据存入RAM2中,同时将RAM1中的数据输入亚像素计算单元进行计算。RAM1与RAM2中的数据通过乒乓操作交替计算。由于亚像素计算时长小于接收一帧图像的时间,因此一帧图像经过阈值提取后的数据,会完整地进入亚像素计算单元。

2.3 基于FPGA的曲线拟合与亚像素提取

对模板匹配之后得到的峰值及周围各一个像素进行高斯拟合,高斯曲线的中心坐标即代表整体峰值的亚像素位置。三点高斯拟合的中心坐标计算方法见式(4),其中xm为拟合中心,即提取到的光斑亚像素位置,xi为像素位置,yi为xi对应的像素强度。

(4)

由于xi-1、xi、xi+1为相邻像素位置,因此式(4)可化简为

(5)

计算时,整数转换为浮点数、对数与浮点数加减乘除运算均可调用对应的IP核实现。计算过程如图7所示。浮点数相除需6个时钟周期,浮点数相乘需5个时钟周期,对数计算需21个时钟周期,浮点数加减需7个时钟周期。根据浮点数编码规则,浮点数第31~23位代表其指数部分,因此对该8位二进制数加1、加2,即可实现式(5)中的乘2、乘4运算。计算过程需要55个时钟周期。光斑亚像素位置最终以32位单精度浮点数的格式输出。

图7 亚像素计算过程示意图

在设计中,亚像素计算部分的时钟频率是像素采集频率的5倍,因此对于像素采集部分来说,仅相当于占用11个时钟周期即可完成计算。由于光斑整体宽度约20个像素,即单个光斑需约20个时钟周期才能完成采集,亚像素计算时间小于光斑采集时间,因此可实现光斑位置的实时提取。经测算,亚像素计算部分共消耗11 356个LUT资源,约占FPGA整体资源的14.6%。

3 实验结果

正交分光成像系统测试平台如图8所示。二维导轨带动LED标志点在像面内移动,正交分光成像系统将光点坐标传输至上位机进行分析。

图8 正交分光成像系统测试平台

3.1 重复定位测试

良好的重复定位精度是进行精密测量的前提。进行重复定位实验时,正交分光成像系统对4个位置处的静止光点连续拍摄300帧图像,统计成像系统直接输出的亚像素坐标。4个位置处x、y轴线阵CCD重复定位波动曲线如图9所示。

图9 4点重复定位波动曲线

统计结果见表2。根据统计结果,重复定位极差小于0.1像素,标准差为0.014像素,重复定位精度良好。

表2 4点重复定位精度统计结果 像素

3.2 分辨力测试

分辨力测试用来对光斑亚像素提取效果进行检测。相机标定后,导轨控制成像点沿x、y轴线阵CCD等距移动,取步距约合0.2像素长度,连续前进5步,之后再后退5步,共采集5 000张图像。x、y轴线阵CCD输出像点位置如图10所示。取每个位置下的像素均值,作为该位置下的光斑坐标。统计各相邻位置的坐标间隔均值与标准差,统计结果如表3所示。由表3可知,在步距长度约为0.2像素时,线阵CCD可准确分辨,分辨力达到亚像素级别。

(a)x轴

表3 分辨力测试实验结果统计 像素

4 结论

针对正交分光成像系统中光斑亚像素坐标难以实时提取的问题,使用FPGA作为主控制器,通过模板匹配、阈值比较、曲线拟合等步骤,完成了正交分光成像系统中多光斑峰值亚像素坐标的实时提取。通过实验对峰值亚像素提取效果进行验证,结果表明峰值重复定位极差小于0.1像素,且分辨力达到亚像素级别。该方法减少了上位机的数据处理压力,有效提升了正交分光成像系统使用过程中的测量效率。

猜你喜欢

浮点数光斑分光
光斑
紫外分光光度法测定水中总氮的关键环节
四种Python均匀浮点数生成方法
有趣的光斑
有趣的光斑
紫外分光光度法测定红枣中Vc的含量
在C语言中双精度浮点数线性化相等比较的研究
非精确浮点数乘法器设计
大光斑1064nmQ开关Nd:YAG激光治疗黄褐斑的临床研究
紫外分光光度法测定芒果苷苷元的解离常数