基于CMOS+FPGA的高速视觉实时定位与跟踪系统

2015-03-14 09:01郑西点袁浩巍严佳玲
上海电气技术 2015年4期
关键词:定位

郑西点, 袁浩巍, 严佳玲, 陈 辰, 徐 胤, 陈 忠

1. 库卡机器人制造(上海)有限公司 上海 201614

2. 上海电气集团股份有限公司 中央研究院 上海 200070

基于CMOS+FPGA的高速视觉实时定位与跟踪系统

郑西点1,袁浩巍2,严佳玲2,陈辰2,徐胤2,陈忠2

1. 库卡机器人制造(上海)有限公司上海201614

2. 上海电气集团股份有限公司 中央研究院上海200070

摘要:针对机器视觉系统的高速与实时性需求,开发了一种基于CMOS和FPGA技术的高速视觉实时定位与跟踪系统。系统选用CMOS高速工业相机,经Camera link接口与信号转接子卡,实现1000帧/s的图像采集与传输。高性能FPGA板卡接收图像数据(带宽3.9 Gbit/s)并完成预处理后,由移植到FPGA板卡上的图像处理算法实时提取目标特征、计算目标的位置坐标,整个处理算法的周期为1ms。在特制的验证平台上,高速云台搭载视觉系统完成了对快速运动目标的实时定位与主动跟踪实验。

关键词:高速机器视觉; CMOS高速相机; FPGA板卡; 定位; 主动跟踪

Abstract:Aiming at the demand for high-speed and real-time machine vision systems, a high-speed and real-time visual positioning and tracking system was developed built on CMOS and FPGA technology. This system selected CMOS high-speed industrial camera to achieve 1000 frames/s image acquisition and transmission via the camera link interface and signal adapter board. After a high-performance FPGA board received the image data (bandwidth 3.9 Gbit/s) and completed the pre-treatment by the image processing algorithms transplanted to FPGA board could extract the target signature in real-time, calculate position coordinates of the target, the entire cycle period of the processing algorithms is 1 ms only. In a tailor-made verification platform, the high-speed pan and tilt head equipped with vision system completa an experiment for real-time positioning and active tracking of fast-moving targets.

Key Words:High Speed Machine Vision; CMOS High-speed Camera; FPGA Board; Positioning; Active Tracking

1概述

高速机器视觉系统在工业、军事与科研领域应用广泛,如激光焊接需要高速视觉系统对熔滴过渡和熔池形态进行实时、直观的观察与分析,继而控制焊机稳定工作,提高焊缝成形的一致性。高速机器视觉的发展趋势与需求是: 观测范围扩大、目标运动速度加快、实时性需求增强和检测精度提高,随之而来的是图像采集量与传输量剧增、图像处理的速度加快、处理的算法更高效。

高速机器视觉的采样率在100MSPS(Million Samples Per Second,即每秒模数转换器的采点数)以上,主要基于图像的分辨率与采集帧频。从这两个指标看,目前的工业相机产品已能满足采样率要求,除了采样频率,高速机器视觉系统需解决的瓶颈问题有: 如何将海量的图像数据实时地传输到处理单元;如何设计高效的图像处理算法并能移植到处理单元,继而快速得到处理结果。

近20年来,国内外不少高校和科研机构开展了对高速视觉实时定位与跟踪系统的研究。东京大学Ishikawa实验室在2000年推出了“1ms Column Parallel Vision System(CPV)”,此高速视觉系统包含一个128×128像素的图像探测器PD(Photo Detector)阵列和一个处理单元PE (Processing Elements)阵列,每个PE单元并列地与每一个PD直接相连,将图像数据的传输周期减小到1ms。CPV系统的图像预处理采用了普遍的模糊化与边缘检测算法,在目标跟踪中使用了滤波、自窗口与中心提取,简单高效,确保在1ms内提取出跟踪目标的中心特征信息。CPV系统显著缩短了视觉反馈的周期,但每帧图像分辨率小,限制视觉反馈覆盖的范围,且PD和PE都为定制,限制了该系统的通用性。

针对CPV系统的弱点,日本立命馆大学的Shimizu等人在2006年推出了CMOS+FPGA视觉系统,专门用于机械系统的快速视觉反馈。其中,CMOS(Complementary Metal Oxide Semico-nductor)是一种成像传感器,FPGA(Field-Program-mable GateArray)是现场可编程门阵列,该系统使用CMOS传感器,实现了对图像(256×256像素)高达1000Hz频率的捕捉。同时,在FPGA芯片上移植了复杂的图像处理算法(Matched Filter以及傅里叶变换和逆变换),在相同的频率下完成对图像特征信息的获取,为后续视觉伺服控制提供反馈信息,整个系统只有在往控制系统传送图像特征信息时有5ms的延迟时间。

哈尔滨工业大学的孙春凤等人于2007年开发了一种基于FPGA 和多DSP的多通道并行处理的高速视觉测量系统,其中DSP(Digital Signal Processor)是数字信号处理器,该系统在1280×1024分辨率情况下的图像采集频率为450帧/s。图像处理系统通过对图像数据进行图像去噪、增强、边缘检测、目标提取等处理,从大量图像数据中提取出被测运动目标的图像几何尺寸、位置及姿态等参数特征,通过接口电路将数据传输到决策系统或计算机中,并根据上述参数实现对运动目标的快速实时跟踪。该系统充分利用了FPGA和DSP芯片在运算速度和数据处理方面的特点,在对大量图像数据快速实时处理的速度上,已经取得很高的水准。

FPGA技术的发展,为大数据量的图像传输与处理提供了新的解决思路和方法。上海电气中央研究院于2014年开发了基于CMOS+FPGA的高速视觉实时定位与跟踪系统,CMOS高速相机完成高达1000帧/s的图像(分辨率: 816×600)采集,经由Camera link高速传输接口与信号转接子卡,将图像数据传入高性能的FPGA板卡中。FPGA板卡移植了专门设计的图像处理算法,可在1ms周期内完成了对快速运动目标的特征提取与坐标计算。验证实验表明,该高速视觉系统实现了对快速运动目标的实时定位与主动跟踪。

通过对高速场景(1000帧/s)下的定位和跟踪系统的研究,使该成果能够在工业、军事等领域得到应用。在此类场景中,泛用型的算法往往无法满足时间效率、精度以及鲁棒性等方面的要求,通常需要针对不同的场景设计不同的算法。选取最为常见的圆形物体作为定位和跟踪的目标,验证系统的可行性。在实际应用中,也可根据实际目标的不同对该部分算法进行调整,以达到更好的效果。

2高速视觉系统介绍

2.1 系统的硬件架构

高速视觉系统的硬件组成包含CMOS高速工业相机、信号转接子卡、FPGA板卡、PC机、高速云台以及连接线缆,如图1所示。

图1 系统的基本架构

2.1.1CMOS高速工业相机

系统选用Optronis公司的CL600×2面阵CMOS工业相机作为图像采集单元,如图2(a)所示。它采用大像元设计,拍摄高速运动时图像模糊少,输出图像为彩色Bayer格式。相机的传输接口为Camera link接口(图2(b)),采用Full模式传输图像数据,传输速率高达5.44 Gbit/s,即每个时钟周期可同时发送8个像素点(每像素8 bits)的Bayer图像数据信息(运行频率为85MHz)。此外,Camera link传输接口还带有离散控制差分信号和异步串行通信信号的通道,方便了上位机对相机的控制和通信设置。2.1.2FPGA板卡与信号转接子卡

图2 CL600×2面阵高速工业相机

综合考虑视觉系统的处理数据量、处理速度、算法复杂度和接口需求,选用Xilinx的Zc706评估板(如图3(a)所示)作为核心处理单元。Zc706在结构上分为处理器系统(PS)部分与可编程逻辑部分(PL)。PS部分包含ARM 双核处理器,带有1G的DDR3内存;PL部分包含FPGA芯片,1G的DDR3内存。充足的可编程逻辑资源,配合擅长实时处理的ARM硬核和丰富的可编程高速接口,使Zc706很适用于高频高带宽要求的图像处理场合。Zc706将完成相机配置、图像的DDR存储与读取、预处理、算法实现、处理结果的输出等任务。

图3 FPGA板卡与信号转接子卡

解决海量数据传输问题的是Camera link-FMC信号转接子卡,如图3(b)所示,在硬件接口上,它实现了相机的Camera link接口与板卡的FMC接口连接。在功能上,它将相机图像数据高速传输到Zc706的DDR内存中,同时接收相机配置参数并下传给相机。

PC端搭载人机用户界面,一方面帮助操作人员配置相机参数和其它参数,另一方面接收Zc706传回的图像处理结果,实时呈现系统的定位与跟踪效果。高速采集的图像流经抽帧操作,以60帧/s的速度通过HDMI接口和HDMI采集卡,显示在PC端显示器上。

2.1.3高速云台

视觉系统属于主动视觉系统,在实时定位与跟踪目标过程中,相机位置和视野都随伺服设备发生变化。由于没有现成的满足系统需求的高速伺服云台,因此设计了由伺服电机驱动的高速伺服云台,如图4(a)所示,可实现回转与俯仰自由度的高速运动。Zc706板卡经UART-FMC信号转接子卡(图4(b)),将控制指令发给电机驱动器,并接收电机编码器的反馈信息,实现对高速伺服云台的运动控制。系统的总体硬件框架及数据流方向如图5所示。图中,UART(Universal Asynchronous Recei-ver/Transmitter)是通用异步收发传输器,PL DDR3(Program Logic Double-Data-Rate Three Sync-hronous Dynamic Random Access Memory)是可编程逻辑同步动态随机存取存储器。

图4 高速云台与信号转接子卡

图5 系统总体硬件框架图

2.2 系统的算法设计

设计高效的图像处理与目标定位跟踪算法,对高速视觉系统的实现举足轻重。

目标定位算法相当于在霍夫变换逆过程的基础上增加了固定方向梯度的计算,以提高系统鲁棒性,在跟踪问题中,能够达到远高于霍夫变换的时间效率。相比于传统的RANSAC(Random Sample Consensus)方法,在定位精度和抗噪能力上都有一定优势。RANSAC方法是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。在基于100张图像的定位精度实验中,提出的算法最大定位误差在1像素以内,而RANSAC方法的平均误差达到3.637像素,并且在一些有噪声的图像中偏差较大,如图6所示。

图6 RANSAC方法结果与本文算法结果比较

采用的目标定位算法在达到每秒处理1000帧的基础上,实现了像素级的定位精度,并且对复杂的场景具备一定的适应能力。

2.2.1图像预处理

预处理算法的输入是Bayer格式的原始图像数据,其中,Bayer格式是相机采集到的彩色图像的格式,由Bryce Bayer发明。在Bayer格式图像中,单一像素点的颜色只有红(R)、绿(G)、蓝(B)中的一种,如图7所示为像素的颜色排列。Bayer格式无法直接用于算法,本系统主要采用形状特征,不要求颜色,故选择转成灰度图像进行后续处理。预处理算法将完成Bayer转RGB以及RGB转灰度的计算。

图7 Bayer图像的像素颜色排列

Bayer转RGB选用最邻近插值法,而单像素由RGB格式转灰度格式过程可由下式计算得到:

Gray=R×0.299+G×0.587+B×0.114

(1)

式中:Gray为像素的灰度值。

2.2.2目标的定位

本系统需定位与跟踪的目标为圆形目标,因此设计了基于圆拟合的定位算法,算法步骤如下。

① 对第一帧,在全图范围内搜索定位目标。对后续每帧,将根据上一帧的目标定位结果以及预计的运动速度,计算目标圆心的范围,据此再对图像进行开窗处理(ROI, Region of Interest)。

② 在ROI范围内枚举目标的位置和半径,每一组圆心位置及半径确定一个圆,将坐标集合计为:

(2)

式中:pi是圆心位置;N是圆心的个数。

③ 对圆周上像素的梯度值进行统计,得到各组圆的圆心半径的权值:

(3)

式中:i=1,2,…,N;diri为圆周上点i应该取什么方向的梯度;d(pi,diri)为点pi的diri方向的梯度。

④ 选择权值最大的一组圆心坐标和半径作为定位与跟踪结果。

2.2.3目标的跟踪

上述过程将得到基于图像坐标系{OfXfYfZf}的圆心坐标,后续的跟踪需要通过坐标系转换求出目标在世界坐标系{OwXwYwZw}下的坐标,继而提供高速伺服云台控制指令。图8所示中定义的坐标系统有: 世界坐标系{OwXwYwZw}、相机坐标系{OcXcYcZc}、图像坐标系{OfXfYfZf}、云台末端坐标系{OeXeYeZe}。其中,云台末端坐标系与相机坐标系及世界坐标系之间存在平移和转换的关系,这里作为相机坐标系到世界坐标系转换的中间坐标系。

图8 坐标系统定义

坐标系转换算法包括以下3个过程。

① 图像坐标系转到相机坐标系。将目标点的图像坐标齐次化为[uuv1]T,它与目标点在相机坐标系下的表示[XcYcZc]T具有如下关系:

(4)

式中:fx、fy为相机在X和Y方向的等效焦距;u0、v0是光轴与图像平面的交点坐标;fx、fy、u0、v0为摄像机内部参数,由相机标定过程得到。

② 相机坐标系转到云台末端坐标系。通过机器人手眼标定过程,可得到旋转矩阵R和平移向量T,按式(5)可完成转换。

(5)

③ 云台末端坐标系转到世界坐标系,这也是通过平移和旋转变换实现的(见式6),其中旋转矩阵R′可以根据云台的回转角Pan和俯仰角Tilt值得到。

(6)

设置云台在回转角Pan和俯仰角Tilt值为0时,云台末端坐标系与世界坐标系是平行的,平移向量T′通过测量两个坐标系原点间的距离得到。

以上三个过程叠加,将得到目标点在世界坐标系下的表示。

2.3 算法在FPGA板卡中的实现

采用FPGA硬件实现上述图像处理与定位跟踪算法,过程如下。

2.3.1图像格式转化

此模块主要选用最邻近插值法,完成图像从Bayer到RGB格式的转化。实现代码采用行缓冲加流水线的处理方式,针对奇偶行数据格式特点,将8位的Bayer格式实时转换成标准的24位RGB数据,相机每时钟周期并行处理8个像素。

RGB图像到灰度转化的处理是基于式(1)的,在FPGA中,为避免浮点运算和除法运算,并综合考虑精度,进行了近似计算:

Gray=(R×76+G×151+B×28)≫8

(7)

2.3.2灰度图像的处理与梯度计算

此模块利用灰度数据计算像素点的梯度,以服务于圆拟合定位算法。计算每个像素的梯度需要它的上一行和下一行数据,至少要暂存3行数据。为了使计算过程中后续的存灰度数据操作也能够同时进行,多定义了一行的数据存储空间。本模块共使用4个行寄存器与行完成标志位,通过控制存储过程,使数据从第一行到第四行依次循环存储,精简了存储空间。

Sobel算子是图像处理领域一种经典的边缘检测算子,笔者使用的梯度计算使用了这个算子。了解到目标在图像边缘出现的机会很少,只计算一定开窗范围内像素的梯度,以节约存储空间和缩短计算时间。

2.3.3圆拟合算法的实现

梯度数据被存入PL部分的RAM(Random Access Memory)中,以备后续使用。这里涉及到RAM的数据与对应的地址,故需要对地址有合理的规划。按照圆拟合算法的步骤,在一帧图像中逐行逐列扫描不同“圆”集合(式2定义)的梯度数据。为得到每个圆周上相应点的梯度值,就需要找到相应位置点在RAM中的存储地址。算法会找到圆周上梯度和最大的圆,这个圆即目标圆,输出其大小和位置坐标信息。

2.3.4坐标转化与云台控制

目标的大小和位置坐标信息将通过PL部分的GPIO(General Purpose Input Output,通用输入输出)模块传递到ARM端进行处理。ARM端接收到信息后,进行图像坐标到世界坐标的转换,然后通过板卡的Uart Lite模块,将处理结果转成控制信号下传给高速云台,控制云台跟踪目标运动。

2.4 快速目标定位跟踪的验证实验

为验证高速视觉系统对快速运动目标的实时定位与跟踪能力,设计了2项验证实验。第一项实验是定位并跟踪旋转圆盘上的圆形目标,如图9(a)所示,黑色圆盘相对背景板作快速旋转,而贴在圆盘边缘(距圆心180mm)的白色圆形贴纸(外径40mm)即为目标,云台带动相机定位白色圆形贴纸的圆心位置,并跟踪其运动,使目标一直保持在视野的中央附近,相机的采集帧频为1000帧/s(需要高亮LED补光),原始图像分辨率为816×600像素,以保证相机视野能够覆盖整个黑色圆盘。第二项实验是定位跟踪颠球时上下运动的乒乓球,如图9(b)所示,操作者在高速伺服云台前方1.5m处进行颠球操作,云台带动CMOS工业相机,定位上下运动的乒乓球(最高速度3m/s)。由于人操作的随意性,乒乓球运动轨迹不可预测,难度更大,相机的参数配置与第一项实验相同。

图9 验证平台与验证试验

2.5 实验结果与讨论

视觉系统稳定运行时,图像处理算法的运行周期为 1ms,即每隔 1ms 能得到快速运动目标的实时位置坐标信息,保证跟踪的实时性。

表1展示了图像帧数和算法处理次数的对比,红色线框内数据表示跟踪到目标时二者对应的数值,实线框外的数据表示未找到目标时二者对应的数值。未跟踪到目标时,帧个数: 算法次数≈37∶1,即算法在整张图片进行大区域搜索的时间,约为37ms;跟踪到目标后,帧个数: 算法次数=1∶1,此时,算法是根据上一帧的定位结果以及预计的目标速度,得出目标圆心所在的范围,再进行小区域搜索,处理周期为1ms。

表1 图像帧计数与算法处理次数比较

定位与跟踪的精度是高速视觉系统关注的另一个指标。在图像坐标系上,目标圆心的定位误差在1个像素以内。旋转圆盘上的圆形目标定位效果如图10所示,颠球中的乒乓球目标定位效果如图11所示。而转换到世界坐标系下,目标圆心的定位误差为10mm内(物距为1.5m),由于实验中引入了标定误差以及机械误差,定位精度仍有提高空间。

图10 定位旋转圆盘上的圆形目标

图11 定位颠球中的乒乓球目标

由于目标识别算法误差以及高速云台的响应延迟,在实际跟踪过程中,云台的运动滞后于圆盘转动,随之相机光轴不能跟上目标中心,造成目标圆心偏移图像中心点的现象。图12所示是目标在不同运动速度下的图像,图中红色的线表示目标的圆心点与图像中心点之间的偏差,表2为不同转速下实时跟踪图像中目标偏离中心点的数值,从表中的数据可以看出,定位目标的偏差量随着圆盘的转速升高而变大,在圆盘转速增大到120r/min(线速度约为 2.3m/s)时,实际跟踪误差已经到了42mm,超过了目标外径。在颠球跟踪中,相机的光轴与上下运动的乒乓球中心也存在偏差,在乒乓球与球拍碰撞的时候偏差较大,乒乓球在空中运动时较小,偏差量小于乒乓球的外径(约38mm)。在实时跟踪精度方面,系统还有较大的提升空间。

圆盘转速: (a) 12r/min;(b) 24r/min;(c) 48r/min;(d) 120r/min。图12 圆盘旋转时的实时跟踪图像

X、Y为跟踪过程中实时图像的目标中心点位置圆盘转速(r/min)X/PixelY/Pixel图像偏移目标中心点/Pixel/mm12398304117.37398301106.740629374.69平均值9.336.2524413291106.73903021812.0640530896.03平均值12.338.26484222832214.743873213020.14223121812.06平均值23.3315.631204122356543.554393526140.873873596342.21平均值6342.21

3总结

通过从硬件架构、算法设计、硬件算法移植、验证实验4个方面介绍了一种基于CMOS+FPGA的高速视觉实时定位与跟踪系统。

两项验证实验显示,高速视觉系统可在 1000帧/s的采样频率下,实现对快速运动目标的实时定位与跟踪,图像处理算法的周期控制在1ms。高速视觉系统具有高速性、实时性、主动性等优点,但在定位与实时跟踪精度上仍有待提高。

参考文献

马志峰,赵保军,何佩琨.基于DSPC64X高速图像采集和识别系统.北京理工大学学报,2005(7): 628-631.

Nakabo Y, Ishikawa M, Toyoda H, et al. 1ms Column Parallel Vision System and Its Application of High Speed Target Tracking. San Francisco, CA, Proceedings of the 2000 IEEE International Conference on Robotics and Automation.

Shimizu K, Hirai S. CMOS+ FPGA Vision System for Visual Feedback of Mechanical Systems. Orlando, FL, Proceedings of the 2006 IEEE International Conference on Robotics and Automation.

孙春凤,袁峰,丁振良.基于FPGA和多DSP的高速视觉测量系统的研究.电子技术应用,2008(7): 134-137.

Bayer B E. Color Imaging Array . U.S. Patent: 3971065,1976-7-20.

甄艳,刘学军,王美珍.一种改进RANSAC的基础矩阵估计方法.测绘通报,2014(4): 39-43.

Weng J, Cohen P, Herniou M. Camera Calibration with Distortion Models and Accuracy Evaluation. IEEE Transactions on Pattern Analysis & Machine Intelligence, 1992,14(10): 965-980.

Shiu Y C, Ahmad S. Calibration of Wrist-mounted Robotic Sensors by Solving Homogeneous Transform Equations of the Form AX=XB. IEEE Transactions on Robotics and Automation, 1989,5(1): 16-29.

文章编号:1674-540X(2015)04-018-08

中图分类号:TP242.6+2

文献标识码:A

作者简介:第一 郑西点(1988-),男,助理工程师,硕士,主要从事机器人主动视觉技术的研究工作,E-mail: richard.zheng@kuka-robotics.cn.

收稿日期:2015年8月

猜你喜欢
定位
《导航定位与授时》征稿简则
Smartrail4.0定位和控制
银行业对外开放再定位
一种新型回转定位锁紧装置
少儿智能定位鞋服成新宠
找准定位 砥砺前行
基于RFID的室内无线定位识别系统
基于S120的拧紧机定位控制系统的设计
青年择业要有准确定位
说定位:如何挖到第一桶金