周 琦,毛晓楠,张 晴,马 翔,唯乐思
(1.上海航天控制技术研究所,上海 201109;2. 上海应用技术学院 计算机科学与信息工程学院,上海 201418;3. 上海旋极信息技术有限公司,上海 200233)
采用标记的高速多通道星敏感器图像处理算法
周 琦1,毛晓楠1,张 晴2,马 翔3,唯乐思1
(1.上海航天控制技术研究所,上海 201109;2. 上海应用技术学院 计算机科学与信息工程学院,上海 201418;3. 上海旋极信息技术有限公司,上海 200233)
为提高星敏感器测量角分辨率,同时保持高数据更新率,选用四百万门像素、多通道数据并行输出的光电探测器.为解决基于该类探测器的星敏感器图像处理问题,实现快速有效的提取星点质心,设计了一种采用标记的图像处理算法.算法分为多通道标记计算方法和通道边界的目标处理:多通道标记计算方法主要解决通道内的图像处理问题,各通道间并行处理;通道边界的目标处理主要解决当目标跨边界时的拼接问题.在时钟为100 MHz的高频率工况下,采用FPGA基于四级流水线并行处理体系结构实现算法,并实际测试验证.验证结果表明,算法可快速、正确地提取探测器像面上的目标点,提取的星点单星定位精度优于1/172像素,数据更新率优于9.5 Hz,满足星敏感器高精度、高数据更新率要求.
标记;高速;多通道;星敏感器;大面阵
星敏感器是卫星等航天器上一种广泛应用的姿态测量仪器.近年来,星敏感器探测器向着大面阵、多通道数据输出的方向发展,以达到高精度和高数据更新率要求.随着面阵大小及数据输出通道数的提高,快速有效地提取星点质心又保持高的数据更新率,是星敏感器设计中一项关键技术[1].国内学者对提取星点质心及提高数据更新率作了大量研究,文献[2-3]提出基于并行运算体系结构的星敏感器图像处理算法,但该算法无法在多通道数据并行输出情况下提取质心.文献[4-5]提出采用流水线并行处理提高星敏感器数据更新率的方法,但该方法在探测器面阵较大时,数据更新率显著减小,不能满足高数据更新率的要求.文献[6]采用DSP串行提取星点质心,串行处理效率较低,不满足高数据更新率要求,且此方法需配备缓存,硬件开销大.目前,国内尚未有相关文献针对该类大面阵、多通道数据输出的星敏感器图像处理算法作研究.本文基于面阵为2 048像素×2 048像素、数据输出通道数为4的探测器,提出并实现了一种新的图像处理算法,该方法对算法的实现进行了功能级仿真和产品级的确认测试,验证了算法的有效性.
1.1 问题提出
为提高星敏感器测量的角分辨率从而抑制随机误差,探测器面阵从1 024像素×1 024像素发展为2 048像素×2 048像素,同时,为保证星敏感器数据更新率,大面阵探测器的像素输出方式从单路发展为多路并行.以4路并行输出的2 048像素×2 048像素探测器为例,相对于单路输出的1 024像素×1 024像素探测器,数据吞吐率提高至4倍,且并行处理4路输出的像素,帧频保持不变.为提高帧频,则需提高数据处理频率,给星敏感器图像处理增加了难度.因此,需要设计一个在高的数据处理频率下,既适应多通道数据输出,又满足星敏感器实时处理要求的方法解决上述问题.
1.2 解决策略
1)数字图像处理中区域生长法的基本思想是将具有相似性质的像素(或小区域)合并起来构成区域[7].以该方法作为设计基础,将灰度值高于阈值的像素作为相似性质的像素,构成的区域满足四连通域原则.
2)采用标记的方法,将同属一个目标的像素快速有效的合并,并获取目标内所有对象的特征量.目标中像素的标记与特征量的计算并行处理.
3)按通道数,将图像分为4页,每页大小为512像素×2 048像素,4页独立并行计算.采用100 MHz的时钟频率处理,基于FPGA构建并行运算的体系结构,实时完成星点质心数据的运算.
星点质心的计算方法[8-9]为
传统算法提取质心时需要上方点、左上方点和左侧点信息参与计算[2],标记算法是基于图像像素标记的方法,在传统算法的基础上进行了裁剪和优化,计算时只需要上方点和左侧点的信息参与计算.
本文基于APS星敏感器进行图像处理算法设计,星图大小为2 048像素×2 048像素,输出通道为四通道,着重研究了3个问题:1)多通道标记计算方法.根据APS探测器大面阵、四通道输出特点,采用多通道并行标记计算方法实现四连通域目标识别;2)通道边界的目标处理.由于四通道并行计算,当目标星点位于相邻两个通道间时,标记计算方法不能解决该问题.针对该问题,在标记计算方法基础上,为每个通道提供3个新标记,在行尾增加一次判断和数据操作;3)采用四级流水线协同工作,且基于100MHz的高时钟频率设计,提高星敏感器的数据更新率.
1.2.1 页内计算方法
像素标记分为D0、B1、B2、IB和ID共5种,具体含义见表1.
表1 像素标记含义
当前像素处理后的标记L(i,j)由其左侧像素标记L(i-1,j)、上方像素标记L(i,j-1)和当前像素处理前的标记L0(i,j)共同决定,即
每页为标记分配一个长度为512的FIFO,每处理一个像素,将其标记存入FIFO中缓存,供处理下一行像素处理时使用.
表2, 3分别给出了当前像素点的灰度值高于阈值和低于阈值两种情况处理方法.
1)当前像素点灰度值高于阈值,算法见表2.
2)当前像素点灰度值低于阈值,算法见表3.
表2 质心提取算法(1)
表3 质心提取算法(2)
所有的目标特征量均累加至标记为B1的像素点,每一行计算完成后,将标记为B1的特征量保存.
1.2.2 页间计算方法
由于图像分4页同步处理,不可避免的存在目标位于两页之间的情况,即目标被分为左、右两部分,且右侧目标较左侧目标在时间上先计算出.
对第i页(i=1,2,3,下同)本行(指当前处理的一行,下文中的上一行指相对于本行的上一行)最后一个像素和第i+1页本行第1个像素进行标记处理(其中,第1页的第1个像素和第4页的最后一个像素不作处理),同时,根据上一行两页的边界是否连通分为两种情况处理,具体处理方法见表4,5.
1)上一行页边界不连通,处理方法见表4.
2)上一行页边界连通,处理方法见表5.
表4 上一行页边界不连通处理方法
表5 上一行页边界连通处理方法
1.2.3 四级流水线流程
若采用串行处理方式计算目标特征值,时间开销较大,不利于提高星敏感器的数据更新率,因此采用四级流水线方式,并行计算目标特征值,可以有效地提高星敏感器数据处理速率.FPGA软件总体结构及运行环境如图1所示.
标记算法采用四级流水线处理,如图2所示,主要包括:1)阈值计算;2)乘法计算、页内标记计算;3)页内数据计算、页间标记计算;4)页间数据计算.
本文已提出根据探测器四路输出的特性将星图分为4页并行处理,质心提取算法分为页内标记计算和页间标记计算.页间标记计算只在每页最后一个像素计算完成后,到下一个像素到来前的时间间隔内完成,即图2中的虚线框所示.
图2 质心提取算法四级流水线示意
2.1 试验方法
基于静态光星模[15]对本文所述算法进行验证,步骤如下:
1)分析设计的FPGA软件资源占用情况和静态时序分析结果;
2)室温条件下,将静态光星模与星敏感器对准,先通过地面测试软件拍摄星图,再求取静态光星模上的星点质心坐标,比对拍摄的星图上星点位置与星敏感器计算的星点位置的一致性;
3)室温条件下,将静态光星模与星敏感器对准,通过地测软件保存求取的质心数据,测试5 min,测试结束后,将静态光星模转动一定角度,重复上述测试,共测试3次.3次测试完成后,分析保存的数据,并任取测试结果中的3个星点,计算其单星定位精度,即星敏感器精度指标中的随机误差.
2.2 设计结果
设计采用ACTEL公司的FLASH型FPGA,芯片型号为A3PE3000,时钟频率约束为100 MHz,综合后,资源占用情况见表6.
表6 资源占用情况
布局布线后,静态时序分析时钟频率为100.462 MHz.
2.3 实际测试
该探测器每输出一个像素数据(10 bit)需要10个时钟周期(100 ns),4页数据同步输出,每页大小为512像素×2 048像素,因此,输出一帧图像时间为100×512×2 048=104 857 600=104.858 ms.文中所述的星点质心提取算法并行处理图像数据,一帧图像数据输出完成后即同步完成质心数据的提取,即质心数据每一帧刷新一次,由此可知,星敏感器的数据更新率可以达到9.5 Hz.
星敏感器通过LVDS将探测器拍摄的星图数据传出,同时,将星点质心数据标识到星图数据最后一行随星图传出,图3(a)是探测器拍摄的星图,可见的星点有13个,图3(b)是通过LVDS传输的星点质心算法提取出星点的坐标分布情况,共提取13个星点.比较两者星点坐标的一致性,可知两者得到的星点质心坐标一致.
图3 拍摄星图与实际提取的星点质心
采用本文所述的方法定量分析算法的精度和稳定性.图4~6分别是3次测量结果,从每次测量结果任取3个星点统计的分布结果.
表7列举了以上测量结果的精度统计值.
图4 第1次测试3个星点分布
图5 第2次测试3个星点分布
图6 第3次测试3个星点分布
测试序号单星定位精度/像素随机误差/(″)xyxy第1次测试星点11/2191/2480.1610.142星点21/2321/3060.1510.115星点31/2321/3370.1510.104第2次测试星点11/2801/2500.1250.141星点21/1721/4110.2040.086星点31/2941/1930.1200.182第3次测试星点11/3121/2630.1130.134星点21/3891/2170.0900.162星点31/2751/2250.1280.156
表7随机误差按照下式计算得到,其中,视场为20°,面阵为2 048像素.
随机误差=(视场(度)/面阵)×单星定位精度(像素)×3 600.
文献[10]采用补偿质心法,像元精度为近1/100像素,根据表7可知,本文中提出的算法计算的单星定位精度优于1/172像素,随机误差优于0.204″.
2.4 试验结论
目前国外主流星敏感器数据更新率可达8~10 Hz[4,13-14],星敏感器亚像元精度接近1/100像素[11-12].该算法经实际调试验证,可在时钟为100 MHz的高频率工况下实现,数据更新率达到9.5 Hz,算法提取的星点质心稳定,精度较高,优于1/172像素.
1)结合数字图像处理中区域生长法的定义和大面阵多通道数据输出探测器的结构特点,设计了一种基于标记的星敏感器图像处理算法.
2)本文提出的算法适合硬件实现,更具通用性,可满足各类分辨率 、单通道/多通道探测器星图处理要求.
3)采用FPGA实现该算法并实际测试验证,通过对测试数据的分析,证明了本文设计的图像处理算法在提高星敏感器精度和保持高数据更新率方面有显著效果.
[1] ZHANG Shaodi,ZHANG Zhijun,SUN Honghai,et al. High accuracy star image locating and imaging calibration for star sensor technology[C]//Proceeding of the Sixth International Symposium on Precision Engineering Measurements and Instrumentation. Hangzhou:SPIE, 2010,75442T. DOI:10.1117/12.885374.
[2] 毛晓楠,梁为升,郑循江. 基于并行运算体系结构的星敏感器图像处理算法[J].宇航学报,2011,32(3):611-619. DOI: 10.3873/j.issn.1000-1328.2011.03.024.
MAO Xiaonan, LIANG Weisheng, ZHENG Xunjiang. A parallel computing architecture based image processing algorithm for star sensor[J]. Journal of Astronautics,2011,32(3):611-619. DOI: 10.3873/j.issn.1000-1328.2011.03.024.
[3] 陈纾,张广军, 郑循江,等.小型化星敏感器技术[J]. 上海航天,2013,30(4):69-78. DOI:10.3969/j.issn.1006-1630.2013.04.015.
CHEN Shu,ZHANG Guangjun,ZHENG Xunjiang, et al. Technology of miniature star sensor[J]. Aerospace Shanghai,2013,30(4):69-78. DOI:10.3969/j.issn.1006-1630.2013.04.015.
[4] 钟红军,杨孟飞,卢欣.流水线并行处理提高星敏感器数据更新率[J].光学精密工程,2009,17(9):2230-2235. DOI:10.3321/j.issn:1004-924X.2009.09.024.
ZHONG Hongjun,YANG Mengfei, LU Xin. Increasing update rate for star sensor by pipelining parallel processing method[J]. Optics and Precision Engineering,2009,17(9):2230-2235. DOI:10.3321/j.issn:1004-924X.2009.09.024.
[5] 罗长洲,王杰,邵雷,等. 提高星敏感器数据刷新速率技术研究[J].应用光学,2013,34(1):111-116. DOI: 10.5768/JAO201334.0103004.
LUO Changzhou, WANG Jie, SHAO Lei, et al. Improving data update speed of star sensor[J]. Journal of Applied Optics,2013,34(1):111-116. DOI: 10.5768/JAO201334.0103004.
[6] 李德良,阮锦.一种适用于星敏感器的星点提取方法[J].激光与红外,2009,39(12):1348-1350.DOI: 10.3969/j.issn.1001-5078.2009.12.023.
LI Deliang, RUAN Jin. Method adapting to the star sensor’s star extraction[J]. Laser & Infrared,2009,39(12):1348-1350.DOI: 10.3969/j.issn.1001-5078.2009.12.023.
[7] 余松煜,周源华,张瑞.数字图像处理[M].上海:上海交通大学出版社,2007:307-309.
[8] 魏新国,张广军,江洁.星敏感器中星图图像的星体细分定位方法研究[J].北京航空航天大学学报,2003,29(9):812-815.DOI: 10.3969/j.issn.1001-5965.2003.09.014.
WEI Xinguo, ZHANG Guangjun, JIANG Jie. Subdivided locating method of star image for star sensor[J]. Journal of Beijing University of Aeronautics and Astronautics, 2003,29(9):812-815.DOI: 10.3969/j.issn.1001-5965.2003.09.014.
[9] 郝雪涛,江洁,张广军. CMOS星敏感器图像驱动及实时星点定位算法[J].北京航空航天大学学报,2005,31(4):381-384. DOI: 10.3969/j.issn.1001-5965.2005.04.002.
Hao Xuetao, Jiang Jie, Zhang Guangjun. CMOS star sensor image acquisition and real-time star centroiding algorithm[J]. Journal of Beijing University of Aeronautics and Astronautics,2005,31(4):381-384. DOI: 10.3969/j.issn.1001-5965.2005.04.002.
[10]贾辉.高精度星敏感器星点提取与星图识别研究[D].长沙:国防科学技术大学,2010.
[11]史少龙,尹达一. CMOS APS噪声对星斑质心定位精度的影响[J].光电工程,2013,40(6):11-16. DOI: 10.3969/j.issn.1003-501X.2013.06.003.
SHI Shaolong, YIN Dayi. CMOS APS noise effect on position accuracy of star tracker[J]. Opto-Electronic Engineering,2013,40(6):11-16. DOI: 10.3969/j.issn.1003-501X.2013.06.003.
[12]胡晓东,胡强,雷兴,等. 一种用于白天星敏感器的星点质心提取方法[J].中国惯性技术学报,2014,22(4):481-485. DOI: 10.13695/j.cnki.12-1222/o3.2014.04.011.
HU Xiaodong, HU Qiang, LEI Xing, et al. Method of star centroid extraction used in daytime star sensors[J].Journal of Chinese Inertial Technology,2014,22(4):481-485. DOI: 10.13695/j.cnki.12-1222/o3.2014.04.011.
[13]梁斌,朱海龙,张涛,等. 星敏感器技术研究现状及发展趋势[J].中国光学,2016,9(1):16-29.
LIANG Bin, ZHU Hailong, ZHANG Tao, et al. Research status and development tendency of star tracker technique[J].Chinese Optics,2016,9(1):16-29.
[14]何家维. 高精度全天时星敏感器关键技术研究[D].长春:中国科学院长春光学精密机械与物理研究所,2013.
[15]郑循江,张广军,毛晓楠. 一种甚高精度星敏感器精度测试方法[J].红外与激光工程,2015,44(5):1605-1609.
ZHENG Xunjiang, ZHANG Guangjun, MAO Xiaonan. A very high precision errors test method for star sensor[J].Infrared and Laser Engineering,2015,44(5):1605-1609.
(编辑 张 红)
A image processing algorithm with marker for high-speed and multi-channel star sensor
ZHOU Qi1, MAO Xiaonan1, ZHANG Qing2, MA Xiang3, WEI Lesi1
(1.Shanghai Institute of Spaceflight Control Technology, Shanghai 201109, China; 2.School of Computer Science and Information Engineering, Shanghai Institute of Technology, Shanghai 201418, China;3.Shanghai Watertek Information & Technology Co., Ltd., Shanghai 200233, China)
To improve the measurement angular resolution of star sensors while maintaining high update rates, the detector of four million pixels, parallel output data through multi-channels is chosen. The problem of star sensor’s image processing based on this kind of detector is solved by designing a method of using marker to achieve extraction of star centroid fast and efficiently. Algorithm is divided into markers calculation of multi-channel and target processing of channel boundary:markers calculation of multi-channel is mainly to solve the problem of image processing within the channel, while among channels using parallel processing method; target processing of channel boundary is mainly to solve the target cross border splicing problem. In the high frequency clock is 100 MHz, under the condition of using the FPGA implementation algorithm based on level 4 lines parallel processing architecture, and the actual test validation. The validation results show that the algorithm can quickly and correctly extracts as target point on the surface of the detector. Accuracy of positioning extraction of single star is better than 1/172 pixel, update rates is better than 9.5 Hz, which meets the requirement of the star sensor accuracy and high update rates.
marker;high speed;multi-channel;star sensor;large area array
10.11918/j.issn.0367-6234.2016.10.017
2015-06-02
国家自然科学基金(61401281); 上海市自然科学基金(14ZR1440700)
周 琦(1986—),男,硕士研究生
周 琦,zqxhjs@126.com
V448.22
A
0367-6234(2016)10-0119-06