刘明 侯作勋 李光耀 张炳先
(北京空间机电研究所,北京 100094)
空间机械臂是支持空间站组装、运营、维护和空间应用的关键装备。机械臂需配置空间视觉相机,在轨执行视觉监视和视觉测量任务[1],为机械臂操控提供必需的图像视觉信息和目标的位置、姿态信息。视觉相机是引导和辅助空间机械臂完成空间任务的重要设备,需要具有实时测量合作目标位姿和传输视频压缩图像的功能[2-4]。
已成功在轨工作的空间相机如“嫦娥二号”监视相机[5]等,大都采取以FPGA为核心的图像处理系统,核心器件FPGA主要起焦面驱动、时序控制、数据流控制等作用。这种图像处理系统具有电路结构简单的优势,但运算能力有限。当用户需求增多和任务复杂度增加,不仅需要相机拍摄图像,还需要其在轨对图像进行运算,但是以FPGA为核心的图像处理系统因其数字运算单元功能有限,无法实现诸如目标捕获跟踪、位姿测量、对图像压缩等类别的需求,亟需设计一种新的图像处理系统[6-8]。
空间机械臂多任务视觉相机在原有的 FPGA图像处理系统中加入数字运算单元 DSP,形成2FPGA+2DSP的异构多核心实时图像处理系统[9-10]。新系统中,利用FPGA严格的时序和并行处理数据特性,实现图像的采集和预处理;利用DSP强大的运算功能,实现图像压缩和位姿测量算法。通过合理的规划电路功能,将核心电路分为焦面电路、视频压缩模块、位姿测量模块,并且每个电路和模块可以独立开发,极大的缩短了开发时间。该系统可以满足现代图像处理系统对速率、数据量、成本、功耗等方面的要求,并具有实时性、轻小型化和模块化开发的特点,适应航天遥感对图像的高速处理要求。
相机采用光电集成化设计架构,分为镜头和电子学组件两部分。其中,镜头采用透射式光学系统、像方远心光路设计,确保相机在一定距离范围内均能够清晰成像,并且具有较小的畸变以满足测量的需求。电子学部分采用集成化的组件设计,图像采集、数据通信、视频压缩和位姿测量功能均由电子学组件承担。电子学设计为相机主要设计难点,在开展相机电子学总体架构设计时,重点考虑了如下四方面的因素。
1)空间机械臂视觉相机,需要具有高测量精度和高可靠性。相对于单目视觉处理架构,从精度方面考虑,采用双目视觉处理架构能够提升位姿测量精度;从可靠性角度考虑,采用完全并行的双目处理架构同样可以有效提升系统的可靠性,达到高可靠、长寿命使用要求。因此本文将相机设计成完全独立的双目相机,每目相机都可以独立完成视频图像传输和位姿测量,也可以实现双目位姿测量,兼顾可靠性和位姿测量精度提升的要求。
2)相机需要兼具图像采集、图像预处理、位姿测量和H.264视频压缩功能,因此,其电路系统要求具备较强的数据并行处理能力(最高帧频达到25帧/s)和复杂运算能力。而以FPGA为核心的图像处理系统数字运算单元功能有限,无法实现此类需求。所以,在原有的FPGA图像处理系统中加入数字运算单元DSP,形成FPGA+DSP的实时图像处理新系统。该系统中FPGA作为图像采集模块的核心,负责图像的采集和图像预处理;DSP作为运算核心,负责实现图像压缩和位姿测量算法。
3)由于图像采集和图像预处理需要较强的并行运算能力,而视频压缩[11-14]和位姿计算需要具备较强的算法运算能力。因此,图像采集和图像预处理分别采用1片FPGA,并采用了级联的模式;视频压缩和位姿计算分别采用1片DSP。视频压缩模块和位姿测量模块都采用FPGA+DSP架构,FPGA和DSP之间使用GPIO(通用接口)和UART(异步接口)接口进行通信、使用VPIF(视频接口)接口进行图像数据传输。
4)为了统一调度多片核心芯片处于相同的工作状态,测控通道由一片FPGA控制,由该FPGA作为整个硬件架构的控制中枢负责多片核心芯片的控制与状态遥测。
依据上述优化设计思路,将相机电子学组件按照模块化分为焦平面电路、视频压缩模块和位姿模块三部分。电路总体架构如图1所示。
图1 相机电路构架Fig.1 Structure of the camera circuit
CMOS探测器输出图像为Bayer图像,而彩色图像可带给地面观测更丰富的细节,因此需要对Bayer图像插值成RGB图像,再将RGB图像转换成YUV422图像,最后经过H.264图像压缩由网口传输。位姿测量最主要考虑图像的Y分量(明亮度),对Y分量图像进行直方图均衡、图像去噪、阈值分割后进行位姿测量。视频压缩算法主要由DSP(TMS320DM6467)内置硬核完成,在此对Bayer图像插值、RGB888转YUV422、位姿测量等主要算法进行介绍。
CMOS图像传感器表面覆盖着颜色滤波阵列(CFA),经过CFA后每个像素只能获得三基色中的一种分量,图2表示图像传感器成像得到的3×3像素阵列,每个像素只代表红、黄、绿1种颜色分量。为了获得彩色图像,需要利用周围像素点的值近似计算出被滤掉的颜色分量。
图2中共有成像的9个像素点,如中间像素5的DN值只表示像素5的绿色分量,则插值后像素5的RGB(红绿蓝)颜色分量r5,g5,b5的DN值可分别表示为:
图2 成像的3×3像素阵列Fig.2 An imaging array with 3×3 pixels
式中D2、D4、D5、D6、D8分别表示3×3像素阵列中像素2、像素4、像素5、像素6、像素8的DN值。式(1)将只有绿色的像素 5变为具有红、绿、蓝三个颜色分量的彩色像素 (r5,g5,b5)。其他像素点的插值方法类似,不再介绍。
通过式(1)完成了Bayer图像转换成RGB888格式图像,根据文献[15]并结合传感器的特性,对式(2)中矩阵的系数微调,实现RGB888格式图像与YUV422图像的转化[15]。
式中B、C、S分别表示任意像素点明亮度、色彩和饱和度;r、g、b表示任意像素点红、绿、蓝颜色分量的DN值。
相机通过识别合作视觉靶标上的特征点来完成位姿测量算法。首先,根据已知视觉靶标的特征点的形状、颜色、空间分布等信息,在成像图像中提取视觉标记点所对应的图像特征点,并通过轮廓法精确定位图像特征点中心的图像坐标[16-19],图3为视觉标记合作靶标,共有8个特征点供检测。
图3 视觉靶标Fig.3 The visual target
然后,将完成检测得到的图像特征点与视觉标记点的一一对应。相机的成像场景中可能有类似视觉标记靶标特征点的物体,图像中检测得到的特征点数量可能多于相机视场内视觉标记靶标特征点的数量。因此,在匹配过程中,首先筛选出用于匹配的图像特征点,再与标记点相对应。
最后,根据图像特征点的信息完成位姿测量。
相机成像可以用小孔成像模型表示[20-21],如图4。空间内任意一点A与相机光心O的连线投影在相机焦平面s上点a的位置,s′为焦平面的等效平面,其上像点A′由平面s上像点a经水平翻转和垂直翻转得到。
图4 相机成像模型Fig.4 The camera imaging model and its coordinate system
图4中三维笛卡尔坐标系Ow-XwYwZw为世界坐标系;三维笛卡尔坐标Oc-XcYcZc为相机坐标系,原点Oc与相机光心O重合,Zc轴与光轴重合,Xc、Yc轴与焦平面内X、Y轴平行;图像坐标系Oi-XiYi为二维笛卡尔坐标系,以物理长度为单位,原点Oi位于相机光轴与等效成像平面的交点处;图像坐标系OP-UV为二维笛卡尔坐标系,以像素为单位,原点OP坐标为(0,0),表示其位于OP-UV坐标系的0行0列。
(1)世界坐标与相机坐标的变换
空间中任意一点A的世界坐标为相机坐标记为像点A′以物理长度为单位的图像坐标记为Ai=(xi,yi)T,以像素为单位的图像坐标记为Ap=(u,v)T。则点A的世界坐标与相机坐标的变换关系为
(2)世界坐标与图像坐标的变换
相机小孔成像模型比例关系可以表示为
式中f为焦距,表示相机光心O到焦平面的距离。
由式(4)可以将点A的相机坐标变换为以物理长度为单位的图像坐标,即
设原点Oi在OP-UV坐标系中的坐标为(u0,v0),则以物理长度为单位的图像坐标与以像素为单位的图像坐标之间的转换关系为
式中dx、dy为每个像素分别在Xi、Yi轴方向上的物理尺寸,即像元尺寸。
综合上述坐标变换过程,当相机对空间任意一点成像时,该点的世界坐标与图像坐标(以像素为单位)的变换关系为:
式中ax,ay分别为U、V轴上的尺度因子,ax=f/dx,ay=f/dy;M1为相机内参数矩阵,M1为相机外参数矩阵,由相机坐标系相对于世界坐标系的位姿参数决定。
以绕Zc、Yc及Xc轴的顺序旋转坐标系,可得合成旋转矩阵如下:
式中α、β、γ为相机姿态参数,分别表示俯仰角、滚转角和偏航角。
(3)世界坐标系的R、T求解
相机的位置参数为其光心O在世界坐标系中的坐标由于O的相机坐标为Ooc=ROoc+T=(0 0 0)T,若已求得相机坐标系相对于世界坐标系的旋转矩阵R和平移向量T,则可求得相机位置参数Ooc=-R-1T。
根据上述分析,可将求解相机位姿参数转化为求解相机坐标系相对于世界坐标系的旋转矩阵R和平移向量T[22-24]。
采用正交迭代算法,通过空间中至少4 点求解位姿参数,以特征点物空间残差二范数之和作为目标函数,迭代求解令目标函数取得最小值的R和T。
设供检测的特征点数量为n,则第j(j=1,2,···,n)个特征点以像素为单位的归一化图像坐标为该点对应的世界坐标为Pwj=(xwj,ywj,zwj)T,则物空间残差向量为
式中I为单位矩阵;
以物空间残差的二范数之和作为目标函数E,则将位姿估计问题转化为求解令目标函数取得最小值的R和T,该问题可描述为
式中 minE(R,T)表示以旋转矩阵R和平移向量T构成方阵行列式的最小值。
根据目标函数,若R已知,则T存在如式(11)所示的闭式解。
可进一步定义中间变换矩阵Q为
则可以将式(10)改写为
求解R和T的过程如下:
1)令迭代次数k的初始值为0,R的初始值为R0。根据式(11)和式(12),由Rk求解Tk和Qk;
2)基于奇异值分解法[25]求解式(13)得到R;
3)令Rk+1=R,Tk+1=T(Rk+1)。定义误差目标ε,若式(14)成立则迭代结束,当前求得的R和T即为最终解,否则令k=k+1,返回第一步迭代计算。
将视觉靶标安装在六维运动机构上,六维运动机构由三维电动旋转台和三维导轨组合而成,三轴两两垂直。六维运动机构以三维转台三旋转轴中心为坐标原点,以坐标原点为零位,可实现X轴、Y轴、Z轴、俯仰方向、偏航方向和滚转方向的六个维度运动。
使用经纬仪对相机和视觉靶标进行建站标定,确定相机和视觉靶标的位置关系,以六维运动机构上视觉靶标为基准,设置其X、Y、Z轴的运动距离和俯仰、偏航、滚转的角度,验证相机位姿测量算法的准确性和精度。
相机在试验过程中,视觉靶标通过工装安装在六维运动机构上,随着六维运动机构实现平移和转动,相机实时传输视觉靶标的压缩图像和位姿测量信息。使用网络监视工具分析得出,压缩图像在传输过程中未发生中断和丢包现象;相机输出的视频图像见图5,视觉靶标完全呈现在左、右目相机视场内,视觉标记中白色特征点和黑色背景DN值之差大于70,左、右目相机可以独立完成对视觉靶标中特征点的识别、提取和定位,从而实现位姿测量功能。分析 1 051组测试数据得出,相机在距离视觉靶标[600,1 300]mm范围进行测量时,测量出的位置误差δx≤1.1948mm 、δy≤3.5285mm 、δz≤2.0620mm,姿态误差δα≤ 0.4030°、δβ≤ 0.3173°、δγ≤ 0.0612°,误差均满足指标要求。
图5 左、右目相机输出的视频图像Fig.5 Video images of the left eye camera and the right eye camera
本文针对空间机械臂视觉相机测量合作目标位姿和传输视频压缩图像的实时多任务需求,设计了异构多核心电子学架构,并根据任务特点,设计了2FPGA+2DSP的电子学电路;介绍了Bayer图像插值方法、RGB888转YUV422方法和位姿测量算法的具体实现方法;使用经纬仪对相机和视觉靶标进行建站标定,测试相机位姿算法的精度和视频压缩能力。结果表明,相机在距离视觉靶标[600, 1 300]mm内进行测量时,测量出的位置误差和姿态误差满足指标要求;相机试验过程中视频压缩图像传输无卡顿、中断和丢包现象发生,图像输出正常。采用该方法设计的空间视觉相机,可以实现位姿测量和压缩图像实时传输的多任务需求。
该相机的电子学架构具备模块化开发优势,可极大的缩小研发时间,并很好的满足图像处理系统对速率、数据量、图像处理系统体积、系统成本、功耗等方面的要求,可推广到其他空间实时多任务系统。