1、长春理工大学学报(自然科学版)Journal of Changchun University of Science and Technology(Natural Science Edition)Vol.46No.1Feb.2023第46卷第1期2023年2月陈泽弈,等:基于FPGA的单星模拟器质心检测算法研究收稿日期:2022-05-22基金项目:吉林省科技厅重点研发项目(20220201089GX)作者简介:陈泽弈(1997-),男,硕士研究生,E-mail:通讯作者:王凌云(1977-),女,博士,教授,博士生导师,E-mail:基于 FPGA 的单星模拟器质心检测算法研究陈泽弈1,王凌云
2、1,2,郑茹1,2,李光茜1,刘笑1(1.长春理工大学光电工程学院,长春130022;2.长春市理工高精度光电测试产业技术研发中心,长春130022)摘要:星点质心检测是星模拟器检测技术中的关键技术之一,针对传统处理算法中运算量大、复杂度高、速度慢的问题,提出了一种基于 FPGA 的单星模拟器质心检测新算法。通过星图预处理和星点提取算法去除噪声,采用平方质心算法计算星点亚像素坐标,并设计了硬件体系结构,完成了高斯滤波、星点提取、质心计算等模块的设计,实现了星图流水化处理,提高了质心检测速度。测试结果表明,星点质心检测的误差小于 0.1 pixel,可通过单次扫描无须图像缓存即可计算出质心坐标,
3、极大地提高了处理速度,过程中无须消耗 RAM 存储器资源,大大节省了存储空间。关键词:质心检测;FPGA;平方加权质心法;离散噪声;单星模拟器中图分类号:V524.7文献标志码:A文章编号:1672-9870(2023)01-0052-07Centroid Extraction Algorithm ofSingle Star Simulator Based on FPGACHEN Zeyi1,WANG Lingyun1,2,ZHENG Ru1,2,LI Guangxi1,LIU Xiao1(1.School of Opto-Electronic Engineering,Changchun Un
4、iversity of Science and Technology,Changchun 130022;2.Science and Technology High-precision Optoelectronic Measurements Industry Technology Research andDevelopment Center of Changchun City,Changchun 130022)Abstract:Star centroid detection is one of the key technologies in star simulator detection te
5、chnology.Aiming at the problemsof large computational load,high complexity and slow speed in traditional processing algorithms,a new FPGA-based singlestar simulator centroid detection algorithm is proposed.The noise is removed by the star preprocessing and star extractionalgorithm,the sub-pixel coor
6、dinates of the star are calculated by the square centroid algorithm,and the hardware architec-ture is designed.The star image is streamlined to improve the centroid detection speed.The test results show that the errorof the centroid detection of star is less than 0.1 pixel,and the centroid coordinat
7、es can be calculated through a single scanwithout the need for image buffering.Greatly improved processing speed,and the RAM memory resources are not consumedin the process,which greatly saves storage.Key words:centroid extraction;FPGA;square-weighted centroid method;discrete noise;single star simul
8、ator在星敏感器检测中,单星模拟器为被测星敏感器提供无穷远处恒星目标,对单颗恒星星光的平行度、光谱、照度等特性进行模拟,因此单星模拟器模拟星光的质量至关重要1,而星点质心检测是单星模拟器检测技术水平中关键的一环。现场可编程门阵列(Field Programmable GateArray,FPGA)具有丰富的硬件资源,规模大,集成度高,可以进行复杂的时序逻辑设计,并行处理能力强2,可以重复编程,被广泛地用于图像处理。同时为了适应不同的使用环境,检测系统也要朝着高集成度和小型化的方向发展3,研究基于 FPGA 的星图数据处理算法是非常必要的。目前,常用的质心检测算法有质心法、Hough变换法、高
9、斯拟合法等4-5。质心法是一种被广泛用于亚像素细分的方法,其计算简便、速度快,有一定的测量精度,但其抗噪声性能却很差6。刘杰等人7提出一种基于三次样条拟合插值的高精度质心定位算法,这种算法能够得到较高精度的星点质心坐标,但是它的计算复杂度较高,很难在硬件系统中实现。毛晓楠等人8将质心法在 FPGA 中实现,该算法精度较高但是抗噪声能力差,仅适用于提取噪声较弱的光斑。欧迎春等人9结合 SOPC 和 FPGA 技术实现了星点检测,该算法具有速度快、电路面积小等优点,但 消 耗 较 多 RAM 资 源,仍 然 有 提 升 的 空 间。Hough 变换法花费时间较长10,且计算复杂,不适合硬件实现。高
10、斯曲面拟合法是通过二维高斯分布函数拟合了星点的灰度分布,然后通过最小二乘法对中心坐标进行计算11,该方法具有较高的精度,但运算复杂,速度慢。针对以上几种方法的优缺点,本文提出一种基 于 FPGA 的 单 星 模 拟 器 质 心 检 测 算 法,在FPGA 平台上采用流水线方式完成了硬件设计,只需扫描原始图像一次,即可在取得星点质心信息的同时去除噪声,再采用平方加权质心法计算质心信息,从而得到星点质心的中心位置坐标,实现过程不需要消耗 RAM 存储器,减少了资源的消耗,很大程度上提高了运算速度。1星点质心检测算法设计星点质心检测算法结构框图如图 1 所示,它包括三个方面:图像预处理、星点提取和质
11、心计算。图像预处理算法用于去除星图中的固定噪声和随机噪声,提高信噪比,利于质心提取;星点提取算法是用来提取星点质心,去除离散噪声;质心计算算法用于计算提取出的质心信息,从而得出星点亚像素中心。图 1星点质心检测算法框图1.1星图预处理从图像传感器的角度来看,恒星可以被视为一个无穷远处的点光源,在感光面上成像为点状光斑,光斑的灰度分布体现了星点亮度,其可以用二维高斯分布函数来近似表示12:g(x,y)=A22exp-(x-X)2+(y-Y)222(1)式中,A为光斑目标的总能量;(X,Y)为函数中心点位置坐标;为弥散斑半径。星点检测的输入是图像传感器捕捉到的星图,除了星点目标外,还包含噪声、感光
12、靶面疵点等干扰因素。在星图中,图像的噪声信号主要是由于图像传感器的长时间曝光而导致的高亮度离散噪声和图像采集卡等所生成的电噪声(包括光子计数噪声、读出噪声、热噪声、暗电流噪声,探测器非均匀性引起的固定图像噪声,A/D 转换引起的量化噪声13)。其中,由图像采集卡等产生的电噪声分布较均匀,随机围绕噪声平均值上下波动,可采用滤波处理进行去噪。本文利用高斯滤波过滤去除图像的噪声,其平滑性能较好,且边界保留较好。为了降低算法的运算量,采用如图 2 所示的 33 大小的高斯滤波离散模板,模板中的权值都是 2 的倍数,符合二进制数据的处理方式,适合于 FPGA 流水处理。图 233 高斯滤波模板陈泽弈,等
13、:基于FPGA的单星模拟器质心检测算法研究第1期53长春理工大学学报(自然科学版)2023年1.2星点提取星点目标主要集中在一个近似于圆形的像素区域内,其像素灰度值要比背景的噪声灰度值高,这一区域内有一个峰值,在峰值附近的像元灰度值逐渐减小,最后与背景噪声平均值相近。而在星图中,除星点目标之外,还存在单个独立的灰度值较高的离散噪声,如图 3 和图 4 所示。图 3星图x轴上的灰度分布图图 4星图y轴上的灰度分布图图像传感器捕捉到的星图分辨率为 2 0482 448,其中星点目标所占用像素最大轮廓为 2020,图像中大部分像素都是背景像素,其在质心计算中属于无效像素,影响了质心计算算法的效率,需
14、将其与星点目标进行分离。由于背景像素灰度值远远小于星点目标灰度值,可根据灰度值特征来设置阈值限制进行分离,应用阈值限制如公式(2)所示。在本文中,星图图像灰度值分布为 0255,图像灰度平均值为 10,标准偏差为 3,故本文预设灰度阈值T为 25。g(x,y)=f(x,y),f(x,y)T0,f(x,y)T(2)但阈值分割不能消除灰度值较高的离散噪声,通常处理这种噪声的方法是先将噪声作为单像素星点处理,按照星点中的像元个数过滤离散噪声,因为这种方法把噪声看作是星点,所以必须提高星点的预留存储空间,增加了存储器资源的消耗14。本文提出一种基于 FPGA 的不需要消耗 RAM 资源的星点提取算法,
15、具体流程如图 5 所示。图 5星点提取流程图1.3质心计算在星点提取的基础上采用平方加权质心算法,使星点坐标精度提高到亚像素级15。质心法是一种将灰度作为权值的加权质心法,而平方加权质心法是它的改进形式,将灰度平方值作为权值,突出了离中心近的像素点对质心位置的影响,如公式(3)所示:x0=x=1my=1nF2(x,y)xx=1my=1nF2(x,y),y0=x=1my=1nF2(x,y)yx=1my=1nF2(x,y)(3)54平方质心法需要用到灰度值平方以及累加,导致除法式中分子和分母的位宽急剧增加,严重增加了资源的消耗。因此,针对这一问题,本文不直接对质心信息进行计算而是采用坐标系变换的方
16、式进行计算,具体如下:(1)新坐标系坐标原点的选取本文选取第一个被判断为星点的像素作为新的坐标原点,并将其行列坐标值存入寄存器中,位于其后的星点像素都以该点为坐标原点生成一个新的相对行列坐标。(2)真实星点亚像素质心坐标计算利用相对行列坐标与灰度值进行平方加权计算,可得出星点质心的相对偏移量,再将计算结果与新坐标系坐标原点的行列坐标值相加,可以获得星点质心的实际亚像素位置坐标。采用这种坐标系变换的方式进行计算,可以将式(3)中两个公式的分子位宽从 34 位降低到27 位,有效地减少了资源的消耗。2基于 FPGA 的硬件结构设计本文基于 Xilinx 公司的 Vivado 软件环境对上述算法设计了单星模拟器质心检测算法硬件部分。星点质心检测算法的硬件体系结构如图 6所示,整个系统由高斯滤波模块、星点提取模块和质心计算模块组成,利用模块化的设计,可以对星图进行流水处理。图 6硬件结构图2.1高斯滤波模块星图数据按时钟依次传入 FPGA,由于数据中没有场行同步信号,在进行图像处理之前需利用有效数据信号进行行列计数,在产生场行同步信号后,将数据输入高斯滤波模块进行预处理。图 7 显示高斯滤波模