基于FPGA的三维扫描测头反光标志点中心定位及匹配

2020-05-18 11:39:26王文祥柳燕飞李维诗
仪表技术与传感器 2020年4期
关键词:臂式标志点灰度

王文祥,柳燕飞,张 瑞,李维诗

(合肥工业大学仪器科学与光电工程学院,安徽合肥 230009)

0 引言

为了实现三维测量过程的自动化,工业制造领域通常将三维扫描测头与关节臂式机器人结合,称作三维扫描测量机器人。在测量过程中扫描测头的位置和姿态由关节臂式机器人确定,因此三维扫描测量机器人的测量精度依赖于关节臂式机器人的定位精度。关节臂式机器人定位精度容易受关节臂几何精度、装配误差、关节间隙等因素的影响。这些因素带来的机器人定位误差使得三维扫描测量机器人难以满足高精度场合的测量要求,特别是在检测领域。

为了提高三维扫描测量机器人的测量精度,本课题增加一套基于多相机的三维扫描测头视觉定位跟踪系统。在扫描测量过程中,视觉定位跟踪[1-2]系统同步测量扫描测头的位置和姿态。本课题采用的基于多相机(4台)的视觉定位跟踪系统,相较于传统的双相机视觉定位跟踪系统,在消除关节臂式机器人定位误差对系统测量精度影响的同时,大幅提高测量范围并降低遮挡现象出现的机率。但是由于多相机同时采样的数据量大,传统的串行处理器如(PC、DSP等)难以满足数据处理的实时性要求。提升系统处理速度的关键之一是提高对图像数据的处理能力。本课题以并行运行方式的FPGA作为核心数据处理单元,并对传统反光标志点中心定位算法加以改进,使其能够运用在FPGA上,同时采用高效的标志点编码方案使标志点匹配算法易于在FPGA上实现。以流水线的方式实现对三维扫描测头反光标志点中心的定位及匹配,实验结果表明系统数据处理的速度能够满足三维扫描测头位姿定位跟踪系统的实时性要求(>30 fps)。

1 系统方案

三维扫描测量机器人系统结构如图1所示。

图1 系统结构图

三维扫描测量机器人系统由关节臂式机器人、激光扫描测头、多相机定位跟踪系统(4台红外摄像机、数据处理单元)及PC组成。系统工作时关节臂式机器人带动激光扫描测头,按照规划好的路径,对被测工件的表面轮廓进行三维扫描测量。红外摄像机实时采集三维扫描测量机器人运动过程中测头的高清图像(2 048×2 048×8 bits),输至数据处理单元。数据处理单元由Camera Link采集子卡、FPGA主板及NET数据传输子卡组成。子卡与FPGA主板通过180-pin Samtec Connector接口相连接。Camera Link采集子卡将低压差分信号(LVDS)转换成并行信号。FPGA主板进行数据的处理,实现对扫描测头反光标志点中心定位及匹配。NET子卡通过双绞网线采用UDP协议将处理结果上传至PC端。PC端接收匹配结果并做进一步处理。

2 编码标志点匹配算法

2.1 交比不变性

交比是摄影几何学中基本的摄影不变量之一[3]。如图2所示,a,b,c,d及a′,b′,c′,d′分别为空间中任意的共线4点及其成像。2组共线点集a′,b′,c′,d′与点集a,b,c,d的交比分别如式(1)、式(2)所示。

图2 交比不变性

(1)

(2)

在摄影变换中点集的交比保持不变,即

R(a′,b′,c′,d′)=R(a,b,c,d)

(3)

2.2 编码方案设计

现有的编码方案[4]存在一个问题:当同时拍摄到2组编码标志点时难以分离2组编码标志点,导致误匹配。本文在现有编码方案的基础上,基于摄影测量的交比不变性设计新的编码方案,更易于2组标志点的分割,降低误匹配的概率。

编码原理如图3(a)所示,每组编码方案由6个相同的圆形反光标志点组成。其中O、C、D、E4点共线,由A、B点确定的直线与O、E点确定的直线相交于Q点。点O、C、D、E、Q按照特定的顺序取其中4点可以组合成2组不同的4点共线点集(R1、R2),每组点集有不同的固定的交比。依据交点Q的位置(在O、C之间,还是C、D之间)组合成4种不同的编码图案:

(1)点集R1、R2交比分别为:1.5、1.125,且Q位于C、D之间,如图3(b)所示;

(2)点集R1、R2交比分别为:2.0、1.125,且Q位于C、D之间,如图3(c)所示;

(3)点集R1、R2交比分别为:1.5、1.125,且Q位于O、C之间,如图3(d)所示;

(4)点集R1、R2交比分别为:2.0、1.125,且Q位于O、C之间,如图3(e)所示。

(a)

(b) (c) (d)(e)图3 编码原理

3 FPGA硬件系统

实现对大量高清图像数据实时处理的关键在于充分利用FPGA处理器并行运算的优势。以流水线[5]方式实现4路摄像机图像数据的同步解析、预处理、中心点定位及编码标志点匹配等算法,极大提升系统的运算速度。对流水线上各模块的数据采用“乒乓结构”的处理方式,避免存取数据的冲突。FPGA硬件系统如图4所示。开发平台配置有DDR3存储器用于系统工作过程中缓存图像数据。DDR3上每个内存单元为4 MB存储空间,用于缓存4路通道的处理结果。其中每路通道(下文简称:CH)分配有2个内存空间,用于实现“乒乓结构”。以CH1为例,假设当前时刻step1的处理结果存储在#1 CH1内存空间,此时step2将从#2 CH1内存空间中读取数据,以此类推。

图4 FPGA硬件结构图

3.1 数据解析

Camera Link是一种串行通信协议,使用低压差分信号(LVDS)进行数据传输。共有3种工作模式,分别为Base、Medium和Full。红外高速摄像机的图像为2 048×2 048×8 bits的灰度图。经过Camera Link采集子卡工作在Base模式,解析出的图像数据时序如图5所示。其中FVAL、LVAL分别为帧有效和行有效信号,当FVAL、LVAL信号同时有效,DATA[15∶0]数据有效。解析出的图像存储到DDR3对应的内存单元。

图5 Camera link 时序图

3.2 预处理

解析出的图像数据需要经过滤波以便后续步骤进一步处理。为了充分利用FPGA处理器并行运算的优势以及其特性,综合考虑后,采用8邻域均值滤波算法。即每个像素点滤波后的灰度由该像素点相邻的8个像素灰度平均值代替。FPGA平台上实现方式如图6所示,通过3×3窗口在图像上依次滑动计算每个像素点滤波后的灰度值。

图6 8邻域均值滤波

3.3 中心定位

上位机对于类圆形成像标志点的中心定位[6]一般流程为:先进行边缘检测,再通过椭圆拟合或者Hough变换[7]的方式,获得标志点中心位置。然而由于算法计算量大,这两种方式都不易于在FPGA处理器上实现。针对本系统类圆形成像标志点的图像特点,对传统的两步法连通域标记算法[8]进行改进,再通过灰度重心法求标志点中心的像素坐标。

两步法连通域标记算法的核心在于设计合适的扫描窗口,减少标记冲突的发生从而提高处理速度。因为系统的标志点成像均为类圆形,所以采用图7所示的改进扫描窗口,可以有效降低标记冲突的发生。

图7 改进连通域标记扫描窗口

上图中P为当前像素灰度值,L1、L2、L3、L4是与当前像素值邻近像素的连通域标号。

在连通域标记的基础上,通过灰度重心法[9]求得标志点中心在图像上的像素坐标。计算公式如式(4)所示。

(4)

式中:f(x,y)为连通域内坐标为(x,y)的像素的灰度值;Ω为连通域集合;(x′,y′)为连通域的中心坐标。

3.4 标志点匹配

在Step3中心定位得到的点集基础上。根据第3节所描述的标志点匹配算法,首先搜寻4点共线的标志点。其次通过交比约束确定点A、B坐标。最后通过直线AB与直线OE的交点位置确定图案编号及6个编码点的坐标。

3.5 Channel多路选择器(MUX)

Channel多路选择器(MUX)区分不同数据通道对外部存储器DDR3的读写访问,防止由同时对DDR3发起的多条读写操作引发的读写冲突。MUX状态机如图8所示,包括:空闲(Idel)、通道1读(Rd_CH1) 、通道1写(Wr_CH2)、通道2读(Rd_ CH2) 、通道2写(Wr_ CH2)等状态。在Idel状态下按优先级响应来自各通道的读写请求,进入对应的读写状态,在读写过程中屏蔽其他读写请求,读写完成后返回Idel状态,等待响应读写请求。

图8 MUX状态机

3.6 DDR3仲裁控制

为避免系统中多模块可能同时对DDR3的读写操作而产生读写冲突,需由仲裁[10]模块合理地控制和管理系统中的读写请求。在多个模块同时提出读写请求时,以一定的优先级仲裁读写请求。仲裁控制方案一般可分为2种:一般仲裁方案和环形罗宾仲裁方案。一般仲裁方案是简单优先级仲裁器,每个请求者被分配一个固定的优先级。环形罗宾仲裁方案是按一定顺序依次查询请求信号。如果当前被查询请求信号被置位则响应请求,执行完当前读写操作后继续向下查询请求信号。由于环形罗宾仲裁方案布置于FPGA上逻辑复杂,硬件资源消耗大,所以本系统选用一般仲裁方案。

4 实验

4.1 实验平台配置

搭建如图9(a)所示的系统,包括:关节臂式机器人、激光测头、红外摄像机、数据处理单元及PC等。图9(b)为Terasic TR4数据处理单元。

(a)系统总图

(b)TR4数据处理单元图9 系统实物图

4.2 实验结果分析

将本系统布置于Terasic TR4开发平台上,该开发平台以Altera Stratix IV FPGA (EP4SGX530C2)作为核心处理器,系统资源消耗如表1所示。

表1 系统资源消耗

为验证系统运行效果,将上述的标志点中心定位算法和标志点匹配算法在Intel Core i7-6700 3.4 GHz CPU,8 GB内存,Windows 10操作系统的PC上基于OpenCV3.0库函数实现。系统运行过程中编码标志点分布的2种情况如图10所示。对应的匹配结果如表2和表3所示。由表2可以看出,对于单组编码标志点,TR4开发平台4路图像数据处理速度达到35.7 fps,而PC平台为3.3 fps。而对于2组编码标志点,根据表3的数据,TR4开发平台对4路图像数据处理速度仍为35.7 fps,而PC平台为2.9 fps。

(a)单组编码标志点

(b)2组编码标志点

表2 单组编码标志点匹配结果

表3 2组编码标志点匹配结果

5 结束语

针对多相机定位跟踪系统数据量大,数据处理实时性要求高,普通串行通用处理器难以满足系统实时性要求等问题。选用FPGA处理器作为核心处理单元,充分利用其并行运算的特性,并改进反光标志点中心定位算法及标志点匹配算法。实验结果表明对于4路高清图像(2 048×2 048×8 bits),无论单组标志点图像,还是2组标志点图像,均能够实现35.7 fps的处理速度,满足系统实时性要求(>30 fps),相对于PC平台的处理速度(单组标志点图像3.3 fps,2组标志图像2.9 fps)提高了近10倍。

猜你喜欢
臂式标志点灰度
多尺度信息融合的船舶外板检测三维标志点识别方法
采用改进导重法的拓扑结构灰度单元过滤技术
基于灰度拉伸的图像水位识别方法研究
高技术通讯(2021年3期)2021-06-09 06:57:48
鼎力全球发布7款家族式模块化电动臂式系列产品
建筑机械(2020年3期)2020-03-01 05:10:38
服务全球 鼎力臂式系列发货意大利
建筑机械(2020年7期)2020-02-22 10:40:26
摆臂式复合桁架机器人的开发
标志点定向系统几何精度因子的计算方法
测控技术(2018年12期)2018-11-25 09:37:20
一种圆形编码标志点的设计及解码算法研究
基于最大加权投影求解的彩色图像灰度化对比度保留算法
自动化学报(2017年5期)2017-05-14 06:20:56
基于灰度线性建模的亚像素图像抖动量计算