Fisheye camera star identification method based on circular FOV segmentation
-
摘要: 海上星光导航是航海中一种重要的自主导航技术, 星图识别是其关键步骤。针对船载鱼眼相机星光导航系统超大视场带来的单幅图像数据量大、识别冗余、识别效率低等问题, 提出了一种基于圆形视场分割的鱼眼相机星图识别方法。对于拍摄到的星图, 利用同心圆将视场分割成若干个面积相等的环形和圆形区域; 在构造导航星特征库的过程中, 以星角距为特征构造散列函数, 将导航特征库分段存储成若干个子库; 在识别过程中, 利用基于中心星的多三角形识别算法, 从视场中心圆形区域开始依次向视场边缘环形区域进行识别。海上观测实验结果表明:该方法能够平均以2.5 s的识别时间达到90%以上的识别成功率, 且具有良好的实时性。Abstract: Maritime celestial navigation is an important autonomous navigation technology at sea, and the star identification is a key step in celestial navigation. Aiming at the problems of large data, redundant identification and low speed caused by the large field of view (FOV) of the fisheye camera celestial navigation system, a fisheye camera star identification method based on circular FOV segmentation was proposed. For the star image taken by a fisheye camera, the concentric circles were drawn around the center with different radii, and the FOV was divided into several equal-area circular areas. In the process of constructing the navigation feature database, the star argument was taken as the feature to construct a hash function, and the navigation feature database was stored into several sub-databases. In the identification process, a multi-triangulation identification algorithm based on the central star was used to proceed from the center to the edge of the circular FOV. The results of marine observation experiments show that the method can achieve an identification success rate of more than 90% with the time of 2.5 s on average, and it has good real-time performance.
-
引言
星光导航(又称天文导航, celestial navigation)是以已知准确空间位置的自然星体为基准, 通过观测获得星体的地平坐标, 经解算确定观测点经度、纬度、航向等信息的一种自主导航技术[1]。近年来GPS、北斗等人造卫星导航系统不断发展并得到广泛应用, 由于战争中卫星导航系统会成为敌方潜在的攻击目标, 星光导航具有抗干扰、生存能力强、精度不随时间漂移等优点使其成为海上船舶导航的必备技术之一[2]。
星图识别是星光导航的关键步骤, 其性能直接决定了星光导航系统的准确率和效率。星图识别算法主要分为3大类:星图特征类算法、模式识别类算法和其他识别算法。星图特征类算法是目前工程应用最成熟的星图识别算法, 具有原理简单、识别准确、稳定性高等优点[3]。1992年, Liebe等在航天器定姿应用中提出的三角形算法(triangle algorithm), 成为星图特征类算法中的经典[4]; 1996年, Quine等认为三角形算法中每个星点构成一个三角形即可, 并制定了三角形选取原则, 提高了三角形算法的识别效率[5]; 2004年, Mortari等提出了金字塔算法(pyramid algorithm), 一定程度解决了三角形算法复杂、冗余度高的问题[6]; 2006年, 张广军和魏新国等提出了一种改进的三角形星图识别方法, 该方法在导航空间存储方面比传统三角形算法有了提高[7]。近些年来, 新提出的星图特征类算法主要围绕优化算法的存储空间和匹配特征展开, 张磊等提出利用二维链表数组存储三角形的星角距, 避免了星角距重复查找并优化了匹配方式[8], 李辉等提出以星矢量外积作为匹配特征量将金字塔算法进行改进[9]。此外, 还有学者提出基于三角形内切圆半径、外接圆半径、三角形最大内角等匹配特征的三角形算法[10]。
由于海上观测条件的限制, 海上星光导航需要考虑以下两方面问题:首先, 星光导航在天文观测时需要有水平基准, 而船舶在海上航行时观测仪器无法整平, 限制了海上星光导航的开展; 此外, 海上天文观测时星光会受到大气层散射衰减和人工光源干扰, 单幅图像内观测星点数量有限。然而, 利用鱼眼相机的超大视场可以有效地解决以上两方面问题[11]。但是, 鱼眼相机产生的单幅图像内的大量观测数据会带来识别冗余、识别速度低等问题, 给识别成功率和识别效率带来考验, 目前还没有专门针对超大视场星光导航系统提出的星图识别方法。
本文针对船载鱼眼相机星光导航系统超大视场带来的单幅图像数据量大导致的识别冗余、识别效率低等问题, 提出了一种基于圆形视场分割的鱼眼相机星图识别方法, 能够有效地提高识别成功率和识别速度, 为船舶提供更准确、高效的海上导航。
1 鱼眼相机成像模型
鱼眼相机是利用仿生学原理, 模拟鱼眼可以观察水面上方超大视场空间而设计的一种相机, 其镜头焦距较短, 视场角可以达到甚至超过180°[12]。鱼眼相机星光导航系统水平方向上拍摄, 可以实现对180°视场、360°方位内景物一次成像, 超大视场可以同时获取全天区所有可见星体的图像, 为减小系统误差、提高导航定位精度提供了可能。另外, 鱼眼相机获取的海天线图像坐标为天体高度角的解算确定了水平基准, 避免了传统星光导航利用惯性系统确定水平基准存在的造价昂贵、结构复杂等缺点。
与采用相似成像原理的传统光学系统不同, 鱼眼相机镜头采用非相似成像原理, 可实现超大视场成像, 其成像模型包括等距投影、等立体角投影、正交投影和体视投影4种[12]。图 1为星点成像原理图。天体A、B发出的光经鱼眼镜头在CCD像面上所成的像为a、b, 入射光的半视场角为θi、θj。
在图像坐标系中, 星点图像a至图像中心o的距离r为
$$ r = \sqrt {{{({x_i} - {x_0})}^2} + {{({y_i} - {y_0})}^2}} $$ (1) 对于等立体角投影模型的鱼眼镜头, 成像模型可以表示为
$$ \theta = 2 {\rm{arcsin}} (\frac{r}{{2f}}) $$ (2) 由于鱼眼镜头中径向畸变远大于切向畸变, 仅考虑径向畸变, 则鱼眼镜头的成像畸变模型可以表示为
$$ \begin{array}{l} \theta = 2 {\rm{arcsin}} (\frac{r}{{2f}}) + {k_0}{( {\rm{arcsin}} (\frac{r}{{2f}}))^2} + \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {k_1}{( {\rm{arcsin}} (\frac{r}{{2f}}))^3} + {k_2}{( {\rm{arcsin}} (\frac{r}{{2f}}))^4} \end{array} $$ (3) 定义dij为通过CCD像面上星点a和b图像坐标解算出的星角距, 则dij可以表示为
$$ \begin{array}{*{20}{l}} {{d_{ij}} = {\rm{arccos}} ({\rm{ cos}} {\theta _i} {\rm{cos}} {\theta _j} + {\rm{sin}} {\theta _i} {\rm{sin}} {\theta _j} \times }\\ { {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\rm{cos}} \left| {{\rm{arctan}} \frac{{{y_i} - {y_0}}}{{{x_i} - {x_0}}} - {\rm{arctan}} \frac{{{y_j} - {y_0}}}{{{x_j} - {x_0}}}} \right|)} \end{array} $$ (4) 结合(1)~(4)式, 可以通过图像坐标解算出任意两星点之间的星角距dij。
2 星图识别方法设计
2.1 导航星特征库的构建
本文选用依巴谷(Hipparcos)星表作为原始星表, 为保证特征库内包括观测范围内的所有可见导航星, 且导航星具有均匀性和稳定性, 需要对原始星表进行以下处理:1)剔除原始星表中双星、高自行恒星; 2)由于海上天文观测会受大气层散射衰减和人工光源干扰, 探测恒星能力有限, 故剔除5 mv以下恒星。
采用存储星角距的形式来构建导航星数据库, 定义导航星库中两颗导航星的坐标矢量分别为Vi和Vj, 赤经分别为αi和αj, 赤纬分别为δi和δj, 则它们在天球坐标系下的坐标矢量可表示为
$$ \left\{ {\begin{array}{*{20}{l}} {{\mathit{\boldsymbol{V}}_i} = {{[ {\rm{cos}} {\alpha _i} {\rm{cos}} {\delta _i}, {\rm{cos}} {\alpha _i} {\rm{sin}} {\delta _i}, {\rm{sin}} {\delta _i}]}^{\rm{T}}}}\\ {{\mathit{\boldsymbol{V}}_j} = {{[ {\rm{cos}} {\alpha _j} {\rm{cos}} {\delta _j}, {\rm{cos}} {\alpha _i} {\rm{sin}} {\delta _j}, {\rm{sin}} {\delta _j}]}^{\rm{T}}}} \end{array}} \right. $$ (5) 这两颗导航星的星角距Dij定义为它们坐标矢量之间的夹角, 可表示为
$$ {D_{ij}} = {\rm{arccos}} \left( {\frac{{{V_i} \cdot {V_j}}}{{|{V_i}| \cdot |{V_j}|}}} \right) $$ (6) 为了提高星角距检索效率, 基于散列函数查找的思想, 将导航星特征库按星角距大小分块存储成若干个特征子库, 利用索引快速确定特征子库, 在特征子库内进行观测星角距和导航星角距的匹配。散列函数可构造为
$$ H(d) = fix (\frac{{2N \times d}}{{{\rm{FOV}}}}) + 1 $$ (7) 式中:d为星角距; N为导航星数据库分块总数; FOV为鱼眼相机的视场角; fix(x)表示x向零最近方向取整。每个特征子库的检索范围为FOV/2N, 导航星特征库存储结构如表 1所示。
表 1 导航星特征库存储结构表Table 1. Navigation star feature storage structure索引P 星角距D/(°) 星号numi 赤经αi/(°) 赤纬δi/(°) 星号numj 赤经αj/(°) 赤纬δj/(°) … … … … … … … … 2.2 圆形视场分割
本文利用基于同心圆的视场分割来解决鱼眼相机超大视场带来的单幅图像数据量过大问题。对于拍摄得到的星图, 根据标定的镜头视场中心坐标, 围绕视场中心以不同半径画多个同心圆(以7个为例), 将视场分割成Ⅰ~Ⅶ共7个面积相等的环形和圆形区域, 按照划分区域可以将鱼眼相机拍摄得到的星点分成7部分。首先识别视场中心圆形I区域内的星点, 然后选取I区域内的已识别星作为中心星, Ⅱ~Ⅶ区域内的待识别星分别围绕选取的中心星构建观测三角形, 从视场中心圆形区域开始依次向视场边缘环形区域进行识别, 基于同心圆的圆形视场分割如图 2所示, O点为鱼眼相机视场中心。
图 2给出了Ⅱ区域内待识别星与中心星构成的多三角形, P为已识别的中心星, A、B、C、D为待识别星。在匹配过程中, 本方法在传统三角形识别算法的基础上做出了两方面改进:一是匹配三角形数目由1个增加至4个, 4个三角形一起参与匹配判别; 二是在匹配过程中加入信息已知的中心星, 中心星信息由初始状态下遍历所有导航星识别得到, 中心星位于鱼眼相机视场中心I区域, 镜头畸变较小, 识别准确率高。匹配条件需满足(8)式和(9)式:
$$ \left\{ {\begin{array}{*{20}{l}} {{e_1} = {{({d_1} - {D_1})}^2} + {{({d_2} - {D_2})}^2} + {{({d_5} - {D_5})}^2}}\\ {{e_2} = {{({d_2} - {D_2})}^2} + {{({d_3} - {D_3})}^2} + {{({d_6} - {D_6})}^2}}\\ {{e_3} = {{({d_3} - {D_3})}^2} + {{({d_4} - {D_4})}^2} + {{({d_7} - {D_7})}^2}}\\ {{e_4} = {{({d_1} - {D_1})}^2} + {{({d_4} - {D_4})}^2} + {{({d_8} - {D_8})}^2}} \end{array}} \right. $$ (8) $$ \left\{ {\begin{array}{*{20}{l}} {e = \sqrt {e_1^2 + e_2^2 + e_3^2 + e_4^2} }\\ {e \le \varepsilon } \end{array}} \right. $$ (9) 式中:d1~d8分别为ΔAPB、ΔBPC、ΔCPD、ΔAPD各边的星角距; D1~D8分别为d1~d8在导航星特征库内检索到的星角距, ε为星角距的匹配误差门限。
3 星图识别流程
基于圆形视场分割的鱼眼相机星图识别方法流程图如图 4所示。具体步骤可以分为:
1) 初始化。读入导航星特征库、鱼眼相机参数、图像处理参数、星角距的匹配误差门限ε等;
2) 同心圆分割。围绕视场中心以不同半径画7个同心圆, 将视场分割成Ⅰ~Ⅶ共7个面积相等的环形和圆形区域, 将图像中的星点按分割区域分成Ⅰ~Ⅶ组;
3) 选取中心星。判断中心I区域是否存在3颗以上, 小于3颗不能识别, 运用三角形算法在I区域进行识别, 选取已识别星作为中心星P, 并保存其信息;
4) 构建观测三角形。对于Ⅱ~Ⅶ区域内的待观测星, 以选取的中心星P为顶点构建观测三角形, 计算三角形的星角距d, 星角距是否符合要求需进行判断, 判断星角距d的条件为
$$ \xi < d \le \frac{1}{2}{\rm{FOV}} $$ (10) 式中:ξ为光学系统弥散斑对应的角度; FOV为鱼眼相机的视场角;
5) 特征库检索。利用散列函数H(d)对三角形的星角距d在导航星特征库进行检索, 根据检索结果确定每次匹配的特征子库;
6) 匹配。利用基于中心星的多三角形识别匹配, 匹配顺序为从视场中心圆形区域依次向视场边缘环形区域。
4 实验结果分析
为了验证星图识别方法的性能, 2017年10月至2018年1月期间, 分别进行了3次海上观测实验, 拍摄得到的星图提取的星点坐标及同心圆分割如图 5所示。实验中, 选用尼康AF DX 10.5 mm F2.8 ED鱼眼镜头, 焦距10.5 mm, 视场角180°, 天文观测相机选用美国Apogee公司F9000型科学级CCD, 构成的鱼眼相机性能指标如表 2所示。其他仪器为:小型天文计时器、高精度电子水平仪。系统开发软件为:Windows 10操作系统, Visual Studio 2010, OpenCV 2.4.11。
表 2 鱼眼相机性能指标Table 2. Fisheye camera performance indicators参数 指标 视场(FOV)/(°) 180×180 传感器类型 KAF-09000 分辨率/pixel 3 056×3 056 像素尺寸/mm 12×12 传感器尺寸/mm 36.7×36.7 图像位数/bit 16 像素深度(典型值) 94 000 e- 系统噪声 16.1 e- RMS @ 2.90 MHz 为了减小实验随机误差, 对提出的星图识别方法性能进行综合评价, 每次海上观测实验在观测点都重复拍摄得到了100幅星图, 对每一幅星图利用本文星图识别方法进行处理, 并对实验结果进行统计, 识别结果与星空模拟软件Skymap的模拟星图进行比对, 为星图识别的正确性提供参考依据。星图识别实验结果如表 3所示。由于每一次实验地点气象条件和人工光源影响不同, 拍摄得到的有效星点数量也不相同, 在气象条件较好的情况下, 可以观测得到150~200个星点图像。其中第3次实验气象条件最好, 拍摄到了200颗以上的有效星点。从表 3可知, 该方法在观测条件较好的情况下, 可以在平均2.5 s的时间达到将近90%的识别成功率。
表 3 星图识别结果Table 3. Results of star identification次数 地点 识别星数 未识别星数 识别成功率/% 识别时间/s 1 大连 165 18 90.2 2.43 2 天津 129 15 89.6 1.91 3 大连 174 28 86.1 2.86 图 6给出了本文提出的星图识别方法在不同的圆形视场分割区域Ⅰ~Ⅶ的识别成功率和识别时间。从图 6可以看出, 由于鱼眼镜头从视场中心至边缘畸变逐渐增大, 星点中心定位精度降低, 导致星角距计算误差增大, 识别成功率从区域I的93%降至区域VII的80%, 若不考虑视场边缘畸变较大区域(Ⅵ和Ⅶ)的星点, 识别成功率会有明显地提高, 将达到90%以上。由于初始状态下, 中心星的识别需要遍历全天区导航星, 中心I区域具有最长的识别时间, 达到近600 ms; Ⅱ~Ⅶ区域的识别过程中, 识别时间降至200 ms, 由于镜头畸变, 星角距计算误差增大, 识别时间也随之逐渐增加。
图 7给出了本文提出的方法跟金字塔算法和三角形算法的识别成功率和识别时间的对比图, 实验采用150幅不同地点、不同观测条件拍摄得到的星图, 分别用3种算法对星图数据进行处理, 识别成功率和识别时间为多次实验测得的平均值。从图 7可以看出, 对于相同的超大视场星图数据, 本文提出的方法的识别成功率比金字塔算法和三角形算法高20%以上; 在识别时间方面, 由于在导航星特征库和视场分割方面的改进和优化, 本文提出的方法比其他两种算法快1.2 s以上。
5 结论
本文提出了一种基于圆形视场分割的鱼眼相机星图识别方法, 该方法利用同心圆将超大视场分割成若干个面积相等的环形和圆形区域, 采用以星角距为特征的散列函数检索导航星特征库, 并在匹配过程中引入了信息已知的中心星, 从视场中心圆形区域开始依次向视场边缘环形区域进行识别, 在数据存储、特征匹配方式等方面均进行了改进和优化。理论分析和海上观测实验结果表明, 该方法能够平均以2.5 s的识别时间达到90%以上的识别成功率, 应用于船载鱼眼相机星光导航系统, 可以实现更准确、高效的海上星光导航。
-
表 1 导航星特征库存储结构表
Table 1 Navigation star feature storage structure
索引P 星角距D/(°) 星号numi 赤经αi/(°) 赤纬δi/(°) 星号numj 赤经αj/(°) 赤纬δj/(°) … … … … … … … … 表 2 鱼眼相机性能指标
Table 2 Fisheye camera performance indicators
参数 指标 视场(FOV)/(°) 180×180 传感器类型 KAF-09000 分辨率/pixel 3 056×3 056 像素尺寸/mm 12×12 传感器尺寸/mm 36.7×36.7 图像位数/bit 16 像素深度(典型值) 94 000 e- 系统噪声 16.1 e- RMS @ 2.90 MHz 表 3 星图识别结果
Table 3 Results of star identification
次数 地点 识别星数 未识别星数 识别成功率/% 识别时间/s 1 大连 165 18 90.2 2.43 2 天津 129 15 89.6 1.91 3 大连 174 28 86.1 2.86 -
[1] 卢欣, 李春艳, 李晓, 等.星光导航技术现状与发展综述[J].空间控制技术与应用, 2017, 43(4):1-8. http://d.old.wanfangdata.com.cn/Periodical/kjkzjsyyy201704001 LU Xin, LI Chunyan, LI Xiao, et al. Current situation and development trends of starlight navigation technology[J]. Aerospace Control and Application, 2017, 43(4):1-8. http://d.old.wanfangdata.com.cn/Periodical/kjkzjsyyy201704001
[2] 王安国.现代天文导航及其关键技术[J].电子学报, 2007, 35(12):2347-2353. doi: 10.3321/j.issn:0372-2112.2007.12.023 WANG Anguo. Modern celestial navigation and the key techniques[J]. Acta Electronica Sinica, 2007, 35(12):2347-2353. doi: 10.3321/j.issn:0372-2112.2007.12.023
[3] ZHANG G J. Star identification[M]. New York:Springer, 2017.
[4] LEBEI C C. Pattern recognition of star constellations for spacecraft applications[J]. IEEE Aerospace & Electronic Systems Magazine, 1992, 8(1):31-39.
[5] QUINE B M, DURRANT-WHYTE H F. Rapid star pattern identification[J]. SPIE, 1996, 2739: 351-360. http://d.old.wanfangdata.com.cn/NSTLHY/NSTL_HYCC026101437/
[6] MORTARI D, SAMAAN M A, BRUCCOLERI C, et al. The pyramid star identification technique[J]. Navigation, 2004, 51(3):171-183. doi: 10.1002/j.2161-4296.2004.tb00349.x
[7] 张广军, 魏新国, 江洁.一种改进的三角形星图识别方法[J].航空学报, 2006, 27(6):1150-1154. doi: 10.3321/j.issn:1000-6893.2006.06.031 ZHANG Guangjun, WEI Xinguo, JIANG Jie. Star map identification based on a modified triangle algorithm[J]. Acta Aeronautica et Astronautica Sinica, 2006, 27(6):1150-1154. doi: 10.3321/j.issn:1000-6893.2006.06.031
[8] 张磊, 周宇, 林荣峰.一种快速三角形识别算法[J].应用光学, 2018, 39(1):71-75. doi: 10.5768/JAO201839.0102005 ZHANG Lei, ZHOU Yu, LIN Rongfeng. Fast triangle star pattern recognition algorithm[J]. Journal of Applied Optics, 2018, 39(1):71-75. doi: 10.5768/JAO201839.0102005
[9] 李辉, 王安国, 张磊.改进金字塔算法用于小视场星图识别[J].应用光学, 2013, 34(2):267-272. http://www.yygx.net/article/id/10170 LI Hui, WANG Anguo, ZHANG Lei. Modified pyramid algorithm for small FOV star image recognition[J]. Journal of Applied Optics, 2013, 34(2):267-272. http://www.yygx.net/article/id/10170
[10] 张同双, 郭敬明, 柏杨, 等.基于最大内角的三角形星图识别算法[J].光学精密工程, 2017, 25(1):208-216. http://d.old.wanfangdata.com.cn/Periodical/gxjmgc201701027 ZHANG Tongshuang, GUO Jingming, BAI Yang, et al. Star Identification algorithm based on the maximum interior angle in triangle[J]. Optics and Precision Engineering, 2017, 25(1):208-216. http://d.old.wanfangdata.com.cn/Periodical/gxjmgc201701027
[11] LI C H, ZHENG Y, ZHANG C, et al. Astronomical vessel position determination utilizing the optical super wide angle lens camera[J]. Journal of Navigation, 2014, 67(4):633-649. doi: 10.1017/S0373463314000058
[12] 王永仲.鱼眼镜头光学[M].北京:科学出版社, 2006. WANG Yongzhong. Fisheye lens optics[M]. Beijing:Science Press, 2006.
-
期刊类型引用(9)
1. 张坤,李京宸,孙思,谌庆荣,杨帆. 基于单传感器的三波段共口径光学系统设计. 中国光学(中英文). 2024(02): 382-389 . 百度学术
2. 贾永丹,孙建,聂云松. 高光学效率可见红外共口径/视场离轴系统设计. 航天返回与遥感. 2023(01): 126-134 . 百度学术
3. 彭礼威,张明磊,陈宇,蒋露松,董大鹏. 共孔径多模遥感相机光学系统设计. 红外与激光工程. 2023(10): 266-275 . 百度学术
4. 彭礼威,陈宇,董大鹏,谭勇. 多波段光谱接收与可见光成像共孔径光学系统设计. 红外与激光工程. 2022(07): 258-268 . 百度学术
5. 党更明,高明,吕宏. 双波段共口径连续变焦光学系统设计. 西安工业大学学报. 2022(06): 578-587 . 百度学术
6. 任兰旭,谭庆贵,张缓缓,呼新荣,李帅. 主三镜一体化离轴三反光学天线设计. 应用光学. 2021(01): 23-29 . 本站查看
7. 马占鹏,薛要克,沈阳,赵春晖,周藏龙,林上民,王虎. 可见/红外双色共孔径光学系统设计及实现. 光子学报. 2021(05): 32-40 . 百度学术
8. 刘尊辈,蔡毅,刘福平,马俊卉,张猛蛟,王岭雪. 分孔径紫外多波段成像光学系统设计. 中国光学. 2021(06): 1476-1485 . 百度学术
9. 宋晓,高明,吕宏. 基于双波段共口径的弹着点位置检测光学系统设计. 西安工业大学学报. 2021(06): 649-659 . 百度学术
其他类型引用(7)