法律状态公告日
法律状态信息
法律状态
2019-05-03
授权
授权
2016-11-09
实质审查的生效 IPC(主分类):G06K9/00 申请日:20160512
实质审查的生效
2016-10-12
公开
公开
技术领域
本发明属于光学遥感图像预处理技术领域,具体涉及一种基于SoPC的遥感CCD原始数据指定目标区域自动提取实现方法。
背景技术
随着集成电路技术的飞速发展以及开发人员的设计水平的不断提高,嵌入式SoPC系统从规模、性能、体积、功耗、灵活性、研发周期等方面都得到了优化。2013年Xilinx公司推出的新一代Zynq-7000系列可编程逻辑器件将ARM处理器和28nm可编程逻辑资源集成在同一片芯片里,以可扩展处理器平台的形式打破了以往对SoPC概念的认识,Zynq-7000平台为开发人员从系统层面解决问题提供了可能,改变了系统开发人员和嵌入式软件开发人员的设计思路和设计理念。Zynq-7000系列专为要求高处理性能的嵌入式系统构建,其目标市场包括汽车驾驶员辅助、智能视频监控、工业自动化、航空航天与军用、广播及新一代无线应用等。
光学遥感获取的图像数据量较大,针对某些特定感兴趣区域,进行指定目标区域自动提取对于后续救灾、应急等需要快速响应的应用具有重要意义。目前遥感图像主要由CPU/GPU等进行处理,其在移动便携、实时处理等方面存在局限性,本发明充分考虑系统在功耗、体积、重量以及可靠性方面的设计约束并结合Zynq-7000平台特点,提出了基于SoPC的高分辨率遥感CCD原始数据指定目标区域自动提取实现方法。
发明内容
本发明为了降低遥感数据处理量,提高感兴趣区域数据提取的时效性,提出了一种基于SoPC的遥感CCD原始数据指定目标区域自动提取实现方法,该方法能够在FPGA+双核ARM(SoPC)上实现CCD原始数据指定区域自动提取,具有很好实时性和稳定性。
实现本发明的技术方案如下:
一种基于SoPC的遥感CCD原始数据指定目标区域自动提取实现方法,其中SoPC系统主要由FPGA和双核ARM构成;具体步骤如下:
步骤一、区域信息与辅助数据接收
指定目标点的位置信息以及待搜索的一轨CCD原始数据总长度L通过网口发送到SoPC系统,待搜索一轨CCD原始数据及所对应的辅助数据通过FMC接口发送到SoPC系统;SoPC系统根据所述总长度L和设定的图像区域长度,将CCD原始数据划分为N个图像区域,然后SoPC系统将原始数据与辅助数据分离后分别存入片外存储器DDR中;
步骤二、定位解算
双核ARM提取当前处理的图像区域的四个顶点并进行定位解算,获取四个顶点的位置信息;
步骤三、与目标点位置信息比对
进行指定目标点与当前处理的图像区域的比对,通过四个顶点的位置信息判断该目标点是否在当前处理的图像区域内,若是,则进入步骤四,否则,以当前处理的图像区域的下一区域作为当前处理的图像区域,并返回步骤二;
步骤四、返回搜索结果
如果搜索到目标点则通过网口返回相应的区域信息,否则返回未搜索到。
进一步地,本发明所述设定的图像区域的长度为256,
进一步地,所述步骤二中,按照由上至下的顺序对所划分的图像区域进行编号,若当前处理的图像区域为第一个区域时,由ARM CPU0解算图像区域中左侧两个顶点的位置信息,由ARM CPU1解算图像区域中右侧两个顶点的位置信息,若当前处理的图像区域的上一区域图像已经比对结束,则ARM CPU0解算图像区域中左下方顶点的位置信息,ARM CPU1解算图像区域中右下方顶点的位置信息,并以上一区域图像下方两顶点的位置信息作为当前处理的图像区域上方两顶点的位置信息。
进一步地,本发明每个顶点定位解算的具体过程为:
(1)建立地球固定参考系下的投影中心坐标转换到空间固定惯性参考系的转换关系为:
式中,PN(t)为岁差和章动矩阵,R(t)为地球自转矩阵,W(t)为极移矩阵;
(2)寄存器Q3载入地球固定参考系下的投影中心坐标[XS>S>S]CTS,W(t)为3×3的矩阵,寄存器Q0、Q1、Q2分别载入极移矩阵W(t)的三列,寄存器Q0、Q1、Q2中载入的数据分别与寄存器Q3中载入的数据相乘,并将相乘的结果缓存至寄存器Q4、Q5、Q6,将寄存器Q4、Q5、Q6对应元素相加得到的计算结果;
(3)依次将R(t)和PN(t)按照步骤(2)的形式进行处理,得到空间固定惯性参考系下的投影中心坐标[XS>S>S]CIS;
(4)建立像方向量与物方向量的严格对应共线方程为:
[xk,yk,-f]为顶点在传感器坐标系下的坐标;λ为缩放比例;RBS为传感器坐标系与本体坐标系间的转换矩阵,RFB为本体坐标系与轨道坐标系的转换矩阵,RGF为轨道坐标系与空间固定惯性参考系之间的转换矩阵;
(5)按照步骤(2)的方式进行矩阵计算,得到顶点的坐标(X,Y,Z)CIS。
有益效果
第一,本发明对原始CCD数据划分为小区域,采用严密几何成像模型对小区域覆盖范围解算,然后与指定目标点的位置信息比对,从而实现自动提取目标点区域遥感图像,降低后续应用遥感数据处理量的目的。
第二,本发明基于ARM双核处理器设计,根据算法特点合理分配计算任务,对提取区域组成的四边形的顶点由双核ARM并行执行定位解算,相较于传统单核处理实现方法可有效提高实时性。
第三,本发明定位解算时充分利用NEON可并行化的特点,采用NEON协处理器对定位过程中坐标系转换中的矩阵运算加速,实时性得到有效提高。
附图说明
图1为SoPC指定目标区域自动提取系统架构图;
图2为双核ARM实现指定目标区域自动提取流程图;
图3为NEON协处理器矩阵相乘计算流程;
图4为目标搜索坐标系示意图。
具体实施方式
下面结合附图对本发明方法的实施方式做详细说明。
本发明一种基于SoPC的遥感CCD原始数据指定目标区域自动提取实现方法,其具体实施过程如下:
步骤一、区域信息与辅助数据接收
如图1所示,该步骤的具体实施过程如下:
(1)将SoPC系统中的ARM主频设置为666MHz,FPGA主频为100MHz,ARM CPU0开启串口接收指定目标点的位置信息,即经纬度(经度:-180度~180度,纬度:-90度~90度)坐标。同时接收待搜索的一轨CCD原始数据总长度L,默认图像宽度为12288,接收完毕之后ARM CPU0将一轨CCD原始数据划分为N个长度为256的小图像区域。
(2)SoPC系统通过FMC接口实时接收待搜索CCD原始数据及其所对应的辅助数据,并将辅助数据和原始数据存入片外存储器DDR中。DDR开辟尺寸大小为12288*12288*8位的循环存储区存储图像数据。
步骤二、定位解算
SoPC系统进行行计数,累计超过256行时,启动一次搜索。ARM读取辅助数据,对提取区域的四个顶点进行定位解算,在第1次解算时由ARM CPU0解算0和2点的位置信息,由ARM CPU1解算1和3点的位置信息。在进行第2、3…次解算时,此时上一区域的2和3分别为下一区域的0和1,此时由ARM CPU0解算2点的位置信息,由ARM CPU1解算3点的位置信息,即可。
单点的定位解算采用严密几何成像模型,以对0点定位解算为例,具体过程为:
(1)由于投影中心(即卫星坐标)、像点(即0点)与物点在一条直线上即共线,将三个点的坐标转换到同一个坐标系下后根据共线关系建立共线方程;
因此,ARM CPU0将地球固定参考系(CTS)下的卫星坐标(投影中心)转换到空间固定惯性参考系(CIS),转换关系为:
式中,PN(t)为岁差和章动矩阵,R(t)为地球自转矩阵,W(t)为极移矩阵。
(2)由ARM CPU0完成PN(t)、R(t)与W(t)的解算,矩阵操作采用NEON协处理器完成。NEON计算流程参考图3,图中Q表示128(4*32)位浮点向量寄存器,NEON首先计算寄存器Q3载入XSYSZS对应图中y0y1y2,W(t)为3×3的矩阵,寄存器Q0、Q1、Q2分别载入W(t)的三列,寄存器Q0、Q1、Q2分别与寄存器Q3的y0y1y2相乘结果缓存至寄存器Q4、Q5、Q6,将寄存器Q4、Q5、Q6对应元素相加得到的计算结果。依次将R(t)和PN(t)代入计算以得到最终结果。
(3)像方向量与物方向量的严格对应共线方程为:
其中,[xk,yk,-f]为k点在CCD传感器坐标系下的坐标,是由像点k在图像坐标系下的坐标计算得出,此处点k即点0,f为相机焦距;(XS,YS,ZS)T为投影中心在空间固定惯性参考系下的坐标;λ为缩放比例;RBS为传感器坐标系与本体坐标系间的转换矩阵,RBS=R1(Ψx)R2(-Ψy),RFB为本体坐标系与轨道坐标系的转换矩阵,RFB=RYawRPitchRRoll,其中
RGF为轨道坐标系与空间固定惯性参考系之间的转换矩阵,其中,
由ARM CPU0完成转换矩阵RGFRyawRpitchRrollR1(ψx)R2(-ψy)的计算,矩阵相乘运算同样采用NEON协处理器完成。NEON计算流程参考图3,首先计算R2(-ψy)[xk>k>T并依次代入直到计算结束,得到0点的坐标(X,Y,Z)CIS。
(4)参考步骤二中的1)2)3),ARM CPU1对点1定位解算,ARM CPU0对点2定位解算,ARM CPU1对点3定位解算。CPU0和CPU1并行执行,通过共享片上RAM进行通信。
步骤三、与目标点信息比对
(1)由CPU0完成指定目标点与相应区域的比对,通过定位信息判断该目标点是否在该区域内,同时接收数据。参考图4,四个定位点两两连成一条直线,构成一个四边形,以经纬度(0,0)为原点,以经度线为Y轴以纬度线为X轴建立直角坐标系。
a0x+b0y+c0=0(1)
a1x+b1y+c1=0(2)
a2x+b2y+c2=0(3)
a3x+b3y+c3=0(4)
将目标点坐标代入上述四个公式,其中公式(1)(3)符号不同且公式(2)(4)符号不同则认为目标点在四边形内部,即在该区域内。如果查找成功则进入步骤4;否则等待累计超过256行启动下一次搜索,此时上一区域的2和3分别为该区域的0和1,ARM CPU0对点2定位解算,ARM CPU1对点3定位解算。
步骤四、返回搜索结果
(1)如果搜索到目标点则记录当前DDR循环存储区位置,如果当前循环存储区累积不足6144行,则继续累积数据使总行数为12288,如果当前累积行数大于等于6144行,则继续累积6144行数据。
(2)如果搜索到该目标点则通过网口返回相应的区域信息,否则返回未搜索到。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: CCD阵列用于高分辨率遥感应用的线性CCD阵列焦平面组件的小型低成本实现
机译: 基于遥感数据的高速多目标区域检测方法
机译: 基于遥感数据的高速多目标区域检测方法