CPU-FPGA协同的影像特征高速检测与匹配系统的制作方法

文档序号:17744175发布日期:2019-05-24 20:30阅读:164来源:国知局
CPU-FPGA协同的影像特征高速检测与匹配系统的制作方法

本发明涉及地理空间信息领域,具体涉及一种基于cpu-fpga协同的影像特征高速检测与匹配系统。



背景技术:

影像匹配是数字摄影测量4d产品生成、城市三维建模以及遥感影像目标检测、跟踪等众多视觉应用的基础功能。新型高分卫星遥感平台的不断升空与运营、各种无人机以及影像传感器技术的快速发展、成熟,使得航空(天)影像数据量几何级增长。迄今为止,以sift、surf为代表的(类)仿射不变特征已能取得稳健、可靠的匹配结果,但计算复杂度、时间开销大,传统匹配处理模式难以满足海量遥感影像数据及时处理要求。由于多核处理器发展速度受半导体工艺限制,目前提升影像匹配效率的有效策略是构建异构处理器协同下的并行计算系统,主要有“cpu+gpu”和“cpu+fpga”两种方式。gpu采用simd(单指令流多数据流)方式虽大幅提升数据并行处理能力,但流水线深度受限,每个计算单元处理不同的数据包时需按统一步调做相同的事,导致输入输出延迟增加,存在延迟高(毫秒级)的“硬伤”。相比于gpu,通过软件编程定义器件硬件功能的第二处理器fpga具有更高计算效率、更低功耗及成本,可同时实现数据并行、流水线并行且延时极低(微秒级),能有效满足图像实时处理需求,但受制于fpga片上存储空间、逻辑阵列数量限制以及异于冯诺依曼结构顺序操作、实现上偏重加、乘法运算的特点,fpga功能开发困难、极具挑战性。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种cpu-fpga协同的影像特征高速检测与匹配系统,以解决现有技术中计算效率低的问题。

为实现上述目的及其他相关目的,本发明提供一种cpu-fpga协同的影像特征高速检测与匹配系统,该系统包括第一处理器和至少一个第二处理器;

所述第一处理器用于总体调度、图像数据传输、图像特征矢量描述及匹配结果存储、输出;

所述第二处理器用于图像特征点检测及特征矢量匹配计算;

第一处理器按设定顺序将图像像素数据传送至第二处理器;第二处理器实时处理得到图像特征点并返回给第一处理器;第一处理器同步生成影像特征矢量并存储,直至影像特征矢量全部生成;第一处理器将影像特征矢量数据传送至第二处理器,第二处理器将实时匹配计算得到的待匹配特征矢量的最佳匹配、次佳匹配距离值及最佳匹配编号并实时传回第一处理器。

可选地,该检测系统还包括数据缓存区,所述第二处理器与数据缓存区连接,第二处理器包括特征检测ip核;

所述数据缓存区,用于缓存第一处理器传输的图像像素流;

所述特征检测ip核,用于处理所述图像像素流获得特征点;特征检测ip核将所述特征点的位置传回所述第一处理器,

所述第一处理器根据所述特征点位置像素邻域信息生成特征矢量、完成特征二进制编码。

可选地,该系统还包括存储区,所述第二处理器还包括矢量匹配ip核,

所述第二处理器还用于实时接收所述第一处理器传输的待匹配影像的某一特征矢量;

所述矢量匹配ip核用于完成当前待匹配影像的特征矢量与数据缓存区中的所有基准影像特征矢量的海明距离,通过多个位异或单元及位累加器计算海明距离;

所述矢量匹配ip核还用于当前一批次的基准影像特征矢量与待匹配特征影像的特征矢量匹配完成后,再从存储区中导入下一批次基准影像特征矢量并重复进行匹配计算,直至存储区中全部基准影像特征矢量与待匹配影像的特征矢量完成匹配,记录当前待匹配特征矢量的最佳匹配、次佳匹配距离值及最佳匹配编号并实时传回第一处理器;

所述第一处理器还用于根据所述最佳匹配、次佳匹配距离比值判断是否为满足条件的匹配点,并记录、输出所述匹配点对坐标。

可选地,所述第一处理器为中央处理器,所述第二处理器为现场可编程门阵列。

如上所述,本发明的一种cpu-fpga协同的影像特征高速检测与匹配系统,具有以下有益效果:

本发明由cpu与fpga处理板组合构成,两者通过pci接口、usb3.0接口及千兆网接口连接,可根据接口设置、计算能需求扩展fpga板数量,成倍提高影像检测与匹配计算效率,可适用于台式电脑、便携笔记本电脑,具有扩展灵活的特点;若限定影像检测角点数不超过总像素数目千分之一,fpga外接3gb存储区内存芯片时可处理最高达60亿像素规模影像且对无尺寸限制,在0.33ms内可完成2048与2048个特征点的匹配,计算效率极其高且成本低、功耗小。本发明对于大幅面、海量遥感影像高效处理具有很好的实用价值。

附图说明

为了进一步阐述本发明所描述的内容,下面结合附图对本发明的具体实施方式作进一步详细的说明。应当理解,这些附图仅作为典型示例,而不应看作是对本发明的范围的限定。

图1是本发明实施例中的系统结构图;

图2是本发明实施例中的fpga处理板硬件框图;

图3是本发明实施例中的fpga匹配流程图;

图4是本发明实施例中的fpga矢量匹配ip核实现图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

本发明提供一种基于cpu-fpga协同的影像特征高速检测与匹配系统,该系统包括第一处理器和至少一个第二处理器;

所述第一处理器用于总体调度、图像数据传输、图像特征矢量描述及匹配结果存储、输出;

所述第二处理器用于图像特征点检测及特征矢量匹配计算;

第一处理器按设定顺序将图像像素数据传送至第二处理器;第二处理器实时处理得到图像特征点坐标并返回给第一处理器;第一处理器同步生成特征矢量并存储,直至影像特征矢量全部生成;第一处理器将影像特征矢量数据传送至第二处理器,第二处理器将实时匹配计算得到的同名特征对坐标返回给第一处理器输出。

具体地,于本实施例中,以cpu(中央处理器,centralprocessingunit)作为第一处理器,fpga(field-programmablegatearray,即现场可编程门阵列)作为第二处理器进行详细说明。

本系统影像特征检测与匹配实施过程分为特征检测、特征矢量(描述符)生成、特征矢量匹配三个阶段。特征检测阶段目的在于获取影像上的局部特征点,由系统中的fpga板特征检测ip核完成;特征矢量(描述符)生成阶段目的是对fpga板中检测出的特征点进行邻域信息二进制编码,由系统中的cpu完成;特征矢量匹配阶段目的是通过海明距离计算从全部特征矢量集合中获得同名(相似)特征对,由系统中的fpga板矢量匹配ip核完成。以上三个阶段中,特征检测和特征矢量(描述符)生成阶段在时序上重叠。

如图1所示,本实施例提供一套cpu-fpga协同的高计算效率、低功耗及成本的遥感cpu-fpga协同的影像特征高速检测与匹配系统,该系统硬件框架为多fpga处理板与电脑(cpu)连接构成,连接可采用pci、usb3.0或千兆网通信接口三种方式:当选用pci通信接口时可根据电脑主板上pci插槽数量灵活扩展fpga处理板数量;当选用usb3.0通信接口时则根据电脑主板上usb3.0接口数量灵活扩展fpga处理板数量;当选用千兆网口通信接口时则根据网络容量灵活扩展fpga处理板数量;也可混合pci、usb、千兆网通信接口扩展fpga处理板数量。

于本实施例中,pc电脑中的通用cpu负责任务总体调度、图像数据传输、图像特征矢量描述及匹配结果存储、输出;fpga处理板主要完成图像特征点检测及特征矢量匹配计算,其中每一个fpga处理板硬件配置完全相同,由pc电脑根据fpga处理板数量分配地址并进行协调控制,可通过扩展fpga处理板的数量来成倍增加其处理速度。系统调度方法为:cpu顺序将图像像素数据传送至fpga处理板;fpga处理板实时处理得到图像特征点坐标并返回给cpu;cpu同步生成进行图像特征矢量并存储,直至影像特征矢量全部生成;cpu将特征矢量数据传送至fpga处理板,fpga处理板将实时匹配计算得到的同名特征点坐标返回给cpu存储、输出。

如图2所示,本实施例中搭建的fpga处理板硬件包括有:fpga、8片512mbit存储区芯片、4片8mbitsram芯片、千兆网接口、usb3.0接口、pciex4接口。fpga可以采用altera公司的cyclonev系列芯片;通过外扩4片16位sram芯片构成64位宽的sram存储器共32mbit;通过外扩8片16位512mbit存储区芯片构成128位宽的存储区存储器一共4gbit;设计的外部接口有千兆网接口、usb3.0接口、pciex4接口,可以通过千兆网口、usb3.0接口或pci接口与电脑相连;处理板通过8位存储区芯片构成128位数据宽度数据总线,采用400m频率双通道内存方案传输数据。

于一实施例中,该检测系统还包括数据缓存区(下文用sram数据缓存区进行说有),所述第二处理器与数据缓存区连接,第二处理器包括特征检测ip核;

所述数据缓存区,用于缓存第一处理器传输的图像像素流;

所述特征检测ip核,用于处理所述图像像素流获得特征点;特征检测ip核将所述特征点的位置(x、y坐标)传回所述第一处理器,

所述第一处理器根据所述特征点位置像素邻域信息生成特征矢量、完成特征二进制编码。

于一实施例中,该系统还包括存储区(下文以ddr3进行说明),所述第二处理器还包括矢量匹配ip核,

所述第二处理器还用于实时接收所述第一处理器传输的待匹配影像的某一特征矢量;

所述矢量匹配ip核用于完成当前待匹配影像的特征矢量与数据缓存区中的所有基准影像特征矢量的匹配,通过多个位异或单元及位累加器实现海明距离计算;

所述矢量匹配ip核还用于当前一批次的基准影像特征矢量与待匹配特征影像的特征矢量匹配完成后,再从存储区中导入下一批次基准影像特征矢量并重复进行匹配计算,直至存储区中全部基准影像特征矢量与待匹配影像的特征矢量完成匹配,记录当前待匹配特征矢量的最佳匹配、次佳匹配距离值及最佳匹配编号并实时传回第一处理器;

所述第一处理器还用于根据所述最佳匹配、次佳匹配距离比值判断是否为满足条件(小于设置阈值)的匹配点,并记录、输出所述匹配点对坐标。

fpga特征检测的流程为:先缓存cpu通过pci、usb3.0或千兆网通信接口传输的图像像素流,再利用fpga板中设计的特征检测ip核处理缓存像素获得特征点,并利用通信接口将特征点位置(x、y坐标)传回电脑端,进而在电脑上生成64位二进制数的特征矢量、完成特征二进制编码。

如图3所示,本实施例中fpga匹配流程为:采用从存储区ddr3至sram分批导入,一个特征矢量对一批特征矢量并行匹配方式。将cpu传输的基准影像全部特征矢量保存在存储区ddr3中,并以n个特征矢量为单位分批从存储区ddr3导入sram数据缓存区;实时接收cpu传输的待匹配影像某一待匹配特征矢量,在特征矢量匹配ip核中完成当前待匹配特征矢量与sram数据缓存区中的所有(具体可以是2048个)基准影像特征矢量的匹配;一个时钟周期并行完成n/16个点的特征匹配。当前批次基准影像特征矢量与待匹配特征矢量匹配完成后,再从存储区ddr3中导入下一批次基准影像特征矢量并重复进行匹配计算,直至存储区ddr3中全部基准影像特征矢量与待匹配特征矢量完成匹配,记录当前待匹配特征矢量的最佳(最小)匹配、次佳匹配距离及最佳匹配编号并实时传回电脑cpu;通信数据的传输采用64位数据宽度,两个时刻周期完成一个数据传输,故每一特征矢量的传输需要16个时钟周期。

如图4所示,本实施例中fpga矢量匹配ip核实现图。在基准图像特征矢量写入存储区ddr3的同时,前2048个特征矢量写入ram数据块中,剩余的特征矢量则以2048个特征矢量为单位分批从存储区ddr3导入缓存数据块中,当前待匹配特征矢量与数据块中所有基准图像特征矢量匹配完成后,再导入下一批次基准图像特征矢量重复进行匹配计算,单个时钟周期完成128个点的特征匹配。此实施例中设计的数据缓存块是16位深,4096位宽的缓存块,共16个这样的数据缓存块,共消耗内在1mbit;时设计有128个512位异或单元,然后通过位累加实现海明距离计算;存储区ddr3中特征矢量的导入方式采用数据块的方式读入,每次读入块的大小为65536位,8位存储区芯片构成128位数据宽度数据总线,如果采用400m频率双通道内存方案fpga一个时钟周期传送的数据为:4*2*128=2048位,则32个时钟周期完成65536位的传输;当被匹配图像中特征点数不超过2048时,每个时钟周期完成与128个特征矢量的匹配,在主频为100mhz的情况下,完成2048与2048个特征点的匹配时间只需0.33ms;当被匹配图像中特征点数超过2048时,则分批导入。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1