Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020107267 - IMAGE FEATURE POINT MATCHING METHOD AND DEVICE

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30  

附图

1   2   3   4   5   6   7   8   9   10  

说明书

发明名称 : 一种图像特征点匹配方法及装置

技术领域

[0001]
本申请涉及图像处理领域,尤其涉及一种图像特征点匹配方法及装置。

背景技术

[0002]
图像特征点匹配被广泛应用于图像检测、图像识别、图像跟踪等多个应用场景中。通过提取图像特征点来对图像信息进行描述和表征,然后通过特征点匹配来计算两幅图像的相似性,为后续的图像跟踪、图像检测和图像识别等应用提供判断依据。在特征信息描述的场景中,通过特征点来进行描述图像,然后基于特征点进行图像匹配是一种常用的方法。
[0003]
传统的图像特征点匹配方法通常是采用暴力搜索的方法对整个特征点集合进行暴力穷举匹配,以覆盖所有的匹配可行性,即对于参考图像中的一个待匹配特征点,使用当前图像中的全部特征点进行逐一匹配,然后选择出最优的特征点作为与该待匹配特征点匹配的匹配特征点。但是,上述方法需要较长的匹配时间和较大的存储空间,因此匹配效率较低。
[0004]
发明内容
[0005]
本申请的实施例提供一种图像特征点匹配方法及装置,用于提高特征点匹配的效率。为达到上述目的,本申请的实施例采用如下技术方案:
[0006]
第一方面,提供一种图像特征点匹配方法,该方法包括:按照预设顺序将第一图像中的N个特征点集合存储在第一缓存器中,第一图像包括N个块,每个块对应一个特征点集合,N为正整数;对于第二图像的待匹配特征点,根据待匹配特征点在第二图像的位置从第一图像的N个块中确定M个块,第二图像包括N个块,M为大于或等于1的整数;从第一缓存器中获取M个块中每个块的特征点集合;根据待匹配特征点逐块匹配M个块中每个块的特征点集合,以从M个块的特征点集合中匹配出至少一个匹配特征点。上述技术方案中,按照预设顺序将第一图像中的N个特征点集合存储在第一缓存器中,能够提高后续获取M个块中每个块的特征点集合的效率,同时根据待匹配特征点在第二图像的位置从第一图像的N个块中确定M个块,能够有效减小匹配范围,进而后续根据待匹配特征点逐块匹配M个块中每个块的特征点集合时,能够以一个块的特征点集合为单位进行匹配,M个块的特征点集合通过流水式操作逐块进行匹配,从而降低了特征点匹配过程中的内存消耗和匹配时间,进而提高了图像特征点匹配的效率。
[0007]
在第一方面的一种可能的实现方式中,第一图像的N个块与第二图像的N个块一一对应,且对应的两个块的形状和尺寸相同。上述可能的实现方式中,能够提高确定第一图像中的所述M个块的准确性,即提高确定有效匹配范围的准确性,进而减少不必要的特征点匹配操作。
[0008]
在第一方面的一种可能的实现方式中,按照指定顺序将第一图像中的N个特征点 集合存储在第一缓存器中之前,该方法还包括:根据第一图像的尺寸和预设划分规则,将第一图像划分为N个块,并确定第一图像的N个块中每个块的特征点集合;其中,预设划分规则包括以下规则中的至少一个:贴合图像边缘划分、不贴合图像边缘划分、按区域划分、规则形状划分、不规则形状划分。上述可能的实现方式中,能够提高将第一图像划分为N个块的灵活性和多样性。
[0009]
在第一方面的一种可能的实现方式中,该方法还包括:根据N个特征点集合中每个特征点集合包括的特征点数量和预设顺序,确定每个块的特征点集合对应的位置索引,位置索引包括起始位置索引和/或结束位置索引,一个块的特征点集合对应的位置索引用于索引块的特征点集合在第一缓存器中的位置。上述可能的实现方式中,提供了一种简单有效的指示每个特征点集合的位置的方法,进而能够提高后续获取M个块的特征点集合的效率。
[0010]
在第一方面的一种可能的实现方式中,根据待匹配特征点在第二图像的位置从第一图像的N个块中确定M个块,包括:根据待匹配特征点在第二图像的位置和匹配半径,或者根据待匹配特征点在第二图像的位置、匹配半径和预设偏移量,确定匹配区域;根据匹配块选择策略,从第一图像的N个块中选择位于匹配区域内的M个块。上述可能的实现方式中,能够提高确定第一图像中的所述M个块的准确性,即提高确定有效匹配范围的准确性,进而减少不必要的特征点匹配操作。
[0011]
在第一方面的一种可能的实现方式中,根据待匹配特征点逐块匹配M个块中每个块的特征点集合,以从M个块的特征点集合中匹配出至少一个匹配特征点,包括:对于M个块,逐块确定每个块的特征点集合中的每个特征点与待匹配特征点之间的匹配信息;根据匹配信息,将每个块的特征点集合中满足预设条件的特征点确定为匹配特征点。上述可能的实现方式中,提供了一种有效的M个块的特征点集合中匹配出至少一个匹配特征点的方式。
[0012]
在第一方面的一种可能的实现方式中,该匹配信息包括:描述子距离和/或匹配角度差。上述可能的实现方式中,提供了一种简单有效的匹配信息。
[0013]
在第一方面的一种可能的实现方式中,满足预设条件的特征点是指特征点的匹配信息满足以下至少一项:最佳描述子距离、次佳描述子距离、最佳匹配角度差、或者次佳匹配角度。上述可能的实现方式中,提供了一种有效的确定匹配特征点的方式。
[0014]
在第一方面的一种可能的实现方式中,根据待匹配特征点逐块匹配M个块中每个块的特征点集合,以从M个块的特征点集合中匹配出至少一个匹配特征点,还包括:根据匹配信息和预设筛选策略,筛选每个块的特征点集合匹配出的匹配特征点,得到至少一个匹配特征点;其中,预设筛选策略包括以下策略中的至少一个:重复匹配筛选、角度差直方图筛选、描述子距离筛选、或者块匹配统计筛选。上述可能的实现方式中,能够提高筛选至少一个匹配特征点的灵活性和多样性。
[0015]
在第一方面的一种可能的实现方式中,当第一图像中的一个匹配特征点与第二图像中的第一待匹配特征点和第二待匹配特征点对应时,该方法还包括:确定第一图像中的匹配特征点与第一待匹配特征点和第二待匹配特征点中匹配信息最优的待匹配特征点对应。上述可能的实现方式中,能够避免同一匹配特征点与至少两个待匹配特征点对应的问题,进而解决特征点误匹配的问题。
[0016]
第二方面,提供一种图像特征点匹配装置,该装置包括:存储单元,用于按照预设顺序将第一图像中的N个特征点集合存储在第一缓存器中,第一图像包括N个块,每个块对应一个特征点集合,N为正整数;确定单元,用于对于第二图像的待匹配特征点,根据待匹配特征点在第二图像的位置从第一图像的N个块中确定M个块,第二图像包括N个块,M为大于或等于1的整数;获取单元,用于从第一缓存器中获取M个块中每个块的特征点集合;匹配单元,用于根据待匹配特征点逐块匹配M个块中每个块的特征点集合,得到至少一个匹配特征点。
[0017]
在第二方面的一种可能的实现方式中,第一图像的N个块与第二图像的N个块一一对应,且对应的两个块的形状和尺寸相同。
[0018]
在第二方面的一种可能的实现方式中,确定单元,还用于:根据第一图像的尺寸和预设划分规则,将第一图像划分为N个块,并确定第一图像的N个块中每个块的特征点集合;其中,预设划分规则包括以下规则中的至少一个:贴合图像边缘划分、不贴合图像边缘划分、按区域划分、规则形状划分、不规则形状划分。
[0019]
在第二方面的一种可能的实现方式中,确定单元,还用于:根据N个特征点集合中每个特征点集合包括的特征点数量和预设顺序,确定每个块的特征点集合对应的位置索引,位置索引包括起始位置索引和/或结束位置索引,一个块的特征点集合对应的位置索引用于索引块的特征点集合在第一缓存器中的位置。
[0020]
在第二方面的一种可能的实现方式中,确定单元,还用于:根据待匹配特征点在第二图像的位置和匹配半径,或者根据待匹配特征点在第二图像的位置、匹配半径和预设偏移量,确定匹配区域;根据匹配块选择策略,从第一图像的N个块中选择位于匹配区域内的M个块。
[0021]
在第二方面的一种可能的实现方式中,匹配单元,还用于:对于M个块,逐块确定每个块的特征点集合中的每个特征点与待匹配特征点之间的匹配信息;根据匹配信息,将每个块的特征点集合中满足预设条件的特征点确定为匹配特征点。
[0022]
在第二方面的一种可能的实现方式中,该匹配信息包括:描述子距离和/或匹配角度差。
[0023]
在第二方面的一种可能的实现方式中,满足预设条件的特征点是指特征点的匹配信息满足以下至少一项:最佳描述子距离、次佳描述子距离、最佳匹配角度差、或者次佳匹配角度。
[0024]
在第二方面的一种可能的实现方式中,匹配单元,还用于:根据匹配信息和预设筛选策略,筛选每个块的特征点集合匹配出的匹配特征点,得到至少一个匹配特征点;其中,预设筛选策略包括以下策略中的至少一个:重复匹配筛选、角度差直方图筛选、描述子距离筛选、或者块匹配统计筛选。
[0025]
在第二方面的一种可能的实现方式中,当第一图像中的一个匹配特征点与第二图像中的第一待匹配特征点和第二待匹配特征点对应时,确定单元,还用于:确定第一图像中的匹配特征点与第一待匹配特征点和第二待匹配特征点中匹配信息最优的待匹配特征点对应。
[0026]
第三方面,提供一种图像特征点匹配该装置,该装置包括:输入接口、运算器、第一缓存器;其中,输入接口,用于接收第一图像中的N个特征点集合,第一图像包 括N个块,每个块对应一个特征点集合,N为正整数;运算器,用于按照预设顺序将第一图像中的N个特征点集合存储在第一缓存器中;运算器,还用于对于第二图像的待匹配特征点,根据待匹配特征点在第二图像的位置从第一图像的N个块中确定M个块,第二图像包括N个块,M为大于或等于1的整数;从第一缓存器中获取M个块中每个块的特征点集合;运算器,还用于根据待匹配特征点逐块匹配M个块中每个块的特征点集合,以从M个块的特征点集合中匹配出至少一个匹配特征点。可选的,该装置还包括:输出接口,用于输出至少一个匹配特征点。
[0027]
在第三方面的一种可能的实现方式中,第一图像的N个块与第二图像的N个块一一对应,且对应的两个块的形状和尺寸相同。
[0028]
在第三方面的一种可能的实现方式中,运算器,还用于:根据第一图像的尺寸和预设划分规则,将第一图像划分为N个块,并确定第一图像的N个块中每个块的特征点集合;其中,预设划分规则包括以下规则中的至少一个:贴合图像边缘划分、不贴合图像边缘划分、按区域划分、规则形状划分、不规则形状划分。
[0029]
在第三方面的一种可能的实现方式中,运算器,还用于:根据N个特征点集合中每个特征点集合包括的特征点数量和预设顺序,确定每个块的特征点集合对应的位置索引,该位置索引包括起始位置索引和/或结束位置索引,一个块的特征点集合对应的位置索引用于索引块的特征点集合在第一缓存器中的位置。
[0030]
在第三方面的一种可能的实现方式中,运算器,还用于:根据待匹配特征点在第二图像的位置和匹配半径,或者根据待匹配特征点在第二图像的位置、匹配半径和预设偏移量,确定匹配区域;根据匹配块选择策略,从第一图像的N个块中选择位于匹配区域内的M个块。
[0031]
在第三方面的一种可能的实现方式中,运算器,还用于:对于M个块,逐块确定每个块的特征点集合中的每个特征点与待匹配特征点之间的匹配信息;根据匹配信息,将每个块的特征点集合中满足预设条件的特征点确定为匹配特征点。
[0032]
在第三方面的一种可能的实现方式中,该匹配信息包括:描述子距离和/或匹配角度差。
[0033]
在第三方面的一种可能的实现方式中,满足预设条件的特征点是指特征点的匹配信息满足以下至少一项:最佳描述子距离、次佳描述子距离、最佳匹配角度差、或者次佳匹配角度。
[0034]
在第三方面的一种可能的实现方式中,运算器,还用于:根据匹配信息和预设筛选策略,筛选每个块的特征点集合匹配出的匹配特征点,得到至少一个匹配特征点;其中,预设筛选策略包括以下策略中的至少一个:重复匹配筛选、角度差直方图筛选、描述子距离筛选、或者块匹配统计筛选。
[0035]
在第三方面的一种可能的实现方式中,当第一图像中的一个匹配特征点与第二图像中的第一待匹配特征点和第二待匹配特征点对应时,运算器,还用于:确定第一图像中的匹配特征点与第一待匹配特征点和第二待匹配特征点中匹配信息最优的待匹配特征点对应。
[0036]
本申请的又一方面,提供一种可读存储介质,可读存储介质中存储有指令,当可读存储介质在设备上运行时,使得设备执行第一方面或者第一方面的任一种可能的实 现方式所提供的图像特征点匹配方法。
[0037]
本申请的又一方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第一方面或者第一方面的任一种可能的实现方式所提供的图像特征点匹配方法。
[0038]
可以理解地,上述提供的任一种图像特征点匹配方法的装置、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

附图说明

[0039]
图1为本申请实施例提供的一种图像处理设备的结构示意图;
[0040]
图2为本申请实施例提供的一种图像特征点匹配方法的流程示意图一;
[0041]
图3为本申请实施例提供的一种多个特征点集合的存储示意图一;
[0042]
图4为本申请实施例提供的一种多个特征点集合的存储示意图二;
[0043]
图5为本申请实施例提供的一种图像特征点匹配方法的流程示意图二;
[0044]
图6为本申请实施例提供的一种规则形状和非规则形状的示意图;
[0045]
图7为本申请实施例提供的一种N个块的分布示意图;
[0046]
图8为本申请实施例提供的一种M个块的分布示意图;
[0047]
图9为本申请实施例提供的一种图像特征点匹配装置的结构示意图一;
[0048]
图10为本申请实施例提供的一种图像特征点匹配装置的结构示意图二。

具体实施方式

[0049]
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c或a-b-c,其中a、b和c可以是单个,也可以是多个。字符“/”一般表示前后关联对象是一种“或”的关系。另外,在本申请的实施例中,“第一”、“第二”等字样并不对数量和执行次序进行限定。
[0050]
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
[0051]
图1为本申请实施例提供的一种图像处理设备的结构示意图,该图像处理设备可以为手机、平板电脑、计算机、笔记本电脑、摄像机、照相机、可穿戴设备、车载设备、或终端设备等等。为方便描述,本申请中将上面提到的设备统称为图像处理设备。本申请实施例以该图像处理设备为手机为例进行说明,该手机包括:存储器101、处理器102、传感器组件103、多媒体组件104、音频组件105和电源组件106等。
[0052]
下面结合图1对手机的各个构成部件进行具体的介绍:
[0053]
存储器101可用于存储数据、软件程序以及模块;主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序,比如声音 播放功能、图像播放功能等;存储数据区可存储根据手机的使用所创建的数据,比如音频数据、图像数据、电话本等。此外,手机可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0054]
处理器102是手机的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器101内的软件程序和/或模块,以及调用存储在存储器101内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。在本申请实施例中,处理器102可集成应用处理器(Application Processor,AP)和专用集成电路(Application Specific integrated Circuit,ASIC);其中,AP主要处理操作系统、用户界面和应用程序等,ASIC是专门为某一项功能开发的专用集成芯片,比如ASIC可用于处理本申请实施例中图像特征点匹配的相关过程等。可以理解的是,上述ASIC也可以不集成到处理器102中。
[0055]
除此以外,处理器102还可进一步包括其他硬件电路或加速器,如现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器102也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等。
[0056]
传感器组件103包括一个或多个传感器,用于为手机提供各个方面的状态评估。其中,传感器组件103可以包括光传感器,如CMOS或CCD图像传感器,用于检测外部物体与手机的距离,或者在成像应用中使用,即成为相机或摄像头的组成部分。此外,传感器组件103还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器,通过传感器组件103可以检测到手机的加速/减速、方位、打开/关闭状态,组件的相对定位,或手机的温度变化等。
[0057]
多媒体组件104在手机和用户之间的提供一个输出接口的屏幕,该屏幕可以为触摸面板,且当该屏幕为触摸面板时,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。此外,多媒体组件104还包括至少一个摄像头,比如,多媒体组件104包括一个前置摄像头和/或后置摄像头。当手机处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0058]
音频组件105可提供用户与手机之间的音频接口,比如,音频组件105可以包括音频电路、扬声器和麦克风。音频电路可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,麦克风将收集的声音信号转换为电信号,由音频电路接收后转换为音频数据,再输出音频数据以发送给比如另一手机,或者将音频数据输出至处理器102以便进一步处理。
[0059]
电源组件106用于为手机的各个组件提供电源,电源组件106可以包括电源管理系统,一个或多个电源,及其他与手机生成、管理和分配电力相关联的组件。
[0060]
尽管未示出,手机还可以包括无线保真(Wireless Fidelity,WiFi)模块、蓝牙模 块等,本申请实施例在此不再赘述。本领域技术人员可以理解,图1中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0061]
图2为本申请实施例提供的一种图像特征点匹配方法的流程示意图,该方法的执行主体可以是图像处理设备,具体可以是图像处理设备中具有处理功能和存储功能的单元,比如上述图1所示的处理器102中的ASIC。参见图2,该方法包括以下几个步骤。
[0062]
S201:按照预设顺序将第一图像中的N个特征点集合存储在第一缓存器中,第一图像包括N个块,每个块对应一个特征点集合。
[0063]
其中,第一图像可以包括N个块,N为正整数,且第一图像中N个块的大小和形状可以相同,也可以不同。每个块对应一个特征点集合,可以是指该块内的特征点组成的集合。第一图像包括N个块,每个块对应一个特征点集合,从而第一图像有N个特征点集合,即N个特征点集合与第一图像的N个块一一对应。
[0064]
另外,预设顺序可以由本领域技术人员根据实际需要事先进行设置,比如预设顺序包括行顺序、列顺序、Z型顺序、X型顺序或者其他顺序等。示例性的,如图3所示,分别按照行顺序、列顺序和Z型顺序将第一图像中的N个特征点集合存储在第一缓存器。需要说明的是,图3中以第一图像包括16个块(即N=16)、且16个块的大小和形状均相同为例进行说明,每个块的特征点集合可通过该块内的标号进行表示。
[0065]
具体的,按照预设顺序将第一图像中的N个特征点集合存储在第一缓存器中时,可以按照预设顺序将N个特征点集合连续地存储在第一缓存器中,或者按照预设顺序将N个特征点集合非连续地存储在第一缓存器中;其中,同一特征点集合内的特征点之间是连续存储的。示例性的,以上述图3所示的按行顺序存储为例,则第一图像中16个块的特征点集合在第一缓存器中可以如图4所示,图4中的(a)以16个特征点集合为连续存储方式为例,图4中的(b)以16个特征点集合为非连续存储方式为例进行说明。
[0066]
可选的,在将第一图像中的N个特征点集合存储在第一缓存器中时,还可以确定每个特征点集合对应的位置索引。具体的,根据N个特征点集合中每个特征点集合包括的特征点数量和所述预设顺序,确定每个块的特征点集合对应的位置索引,该位置索引可以包括起始位置索引(用于指示在第一缓存器中的起始位置)和/或结束位置索引(用于指示在第一缓存器中的结束位置)。可选的,若一个块的特征点集合对应的位置索引包括起始位置索引,则该块的特征点集合在第一缓存器中的起始位置可由该起始位置索引确定,结束位置可通过该起始位置索引与该特征点集合包括的特征点数量计算得到;若一个块的特征点集合对应的位置索引包括结束位置索引,则该块的特征点集合在第一缓存器中的起始位置可通过该结束位置索引与该特征点集合包括的特征点数量计算得到,结束位置可由该结束位置索引确定;若一个块的特征点集合对应的位置索引包括起始位置索引和结束位置索引,则该特征点集合在第一缓存器中的起始位置可由该起始位置索引确定,结束位置可由该结束位置索引确定。
[0067]
示例性的,某一块的特征点集合包括的特征点数量为NUM,若该特征点集合对应的起始位置索引为Add_k,则该特征点集合在第一缓存器中的结束位置索引为 (Add_k+NUM-1);若该特征点集合对应的结束位置索引为Add_w,则该特征点集合在第一缓存器中的起始位置索引为(Add_w-NUM+1)。示例性的,若第一图像包括m个块、且m个块内的特征点数量为NUM{n_1,n_2,…,n_m)为例,则按行顺序存储,则相对于第一缓存器的起始地址而言,m个块的开始地址可以为ADDR_start{0,n_1,n_1+n_2,…,n_1+n_2+…+n_m-1},m个块的结束地址可以为ADDR_end{-1+n_1,-1+n_1+n_2,…,-1+sum(NUM)}。
[0068]
可选的,在确定每个特征点集合对应的位置索引之后,图像处理设备还可以存储第一图像中每个块的特征点集合对应的位置索引,比如,图像处理设备存储的第一图像中每个块的特征点集合对应的位置索引中包括:块标识和位置索引,块标识用于指示该位置索引对应的块。
[0069]
通常对第一图像进行特征点提取,提取得到的特征点是乱序存放的,比如不同块的特征点之间可能是相邻存储的,同一块的多个特征点是分散存储的,这样会导致后续读取同一块的多个特征点时需要花费较长的搜索时间和寻址计算时间。本申请实施例中通过对N个特征点集合进行有序化存放,即将属于同一块的多个特征点进行连续性存储,将不同块的特征点集合按照一定顺序存储,从而能够提高后续特征点的读取效率。
[0070]
进一步的,在S201之前,参见图5,该方法还可以包括:S200。
[0071]
S200:根据第一图像的尺寸和预设划分规则,将第一图像划分为N个块,并确定第一图像的N个块中每个块的特征点集合。
[0072]
其中,预设划分规则可以由本领域技术人员根据实际情况事先进行设置,比如,预设划分规则可以包括以下规则中的至少一个:贴合图像边缘划分、不贴合图像边缘划分、均匀划分、不均匀划分、按区域划分、规则形状划分、不规则形状划分。贴合图像边缘划分可以是指对完整的图像进行划分,此时是以图像本身的尺寸作为被划分区域的尺寸;不贴合图像边缘划分是指对图像中除边缘区域之外的区域进行划分,该边缘区域可以包括图像的一个或者多个边缘对应的区域,此时是以小于图像本身的尺寸作为被划分区域的尺寸;均匀划分可以是指划分得到的块的大小和形状是相同的;不均匀划分可以是指划分得到的块的大小和形状是不同的;按区域划分可以是指对图像中的不同区域进行不同的划分,比如不同区域对应划分得到的块的形状不同或者大小不同等;规则形状划分是指对图像划分得到的N个块的形状是规则形状,比如图6中的(a)所示的长方形、正方形、圆形、六边形、菱形或者三角形等;不规则形状划分是指对图像划分得到的N个块的形状是不规则形状,比如图6中的(b)所示的椭圆、十字形、梯形、L形、X形或者环形等。
[0073]
示例性的,如图7所示对上述预设划分规则进行举例说明。图7中的(a)对应的预设划分规则可以是:贴合图像边缘划分+均匀划分;图7中的(b)对应的预设划分规则可以是:不贴合图像边缘划分+均匀划分+规则形状划分;图7中的(c)对应的预设划分规则可以是:贴合图像边缘划分+按区域划分+规则形状划分;图7中的(d)对应的预设划分规则可以是:贴合图像边缘划分+规则形状划分。
[0074]
需要说明的是,上述所列举的划分规则仅为示例性的,在实际应用时还可以包括其他的划分规则,同时上述图6所示的规则形状和不规则形状也是示例性的,并不对 本申请实施例构成限定。
[0075]
此外,确定第一图像的N个块中每个块的特征点集合,可以包括:图像处理设备提取第一图像中的特征点,并根据每个特征点的位置和第一图像的N个块中每个块的位置范围,确定属于同一个块的多个特征点,即得到每个块的特征点集合。其中,特征点提取可以采用以下算法中的任一种:尺度不变特征转换(Scale-Invariant Feature Transform,SIFT)、快速鲁棒特征(Speeded Up Robust Feature,SURF)、带方向和旋转的BRIEF算子(Oriented FAST and Rotated BRIEF,ORB)、高斯函数差(Difference of Gaussian,DOG)、学习不变特征变换(Learned Invariant Feature Transform,LIFT)等算法。对第一帧图进行特征点提取,可以是通过不同缩放比例进行多层缩放提取的特征点,相应的坐标可以以映射回第一图像为准。在提取的特征点中记录的常用信息可以包括但不限于:坐标(x,y)、当前特征点所在的缩放层(octave)、响应分数值(response)、缩放比例或缩放系数(scale)、角度值(angle)、描述子(descriptor)、或者索引(index)等信息。此外,对提取得到的特征点可以直接使用,也可以采用不同的筛选方法进行筛选,如octree筛选等,本申请实施例对此不作具体限定。
[0076]
进一步地,在确定第一图像中每个块的特征点集合时,图像处理设备还可以统计每个块的块统计信息并进行存储。比如,一个块的块统计信息可以包括以下信息中的一个或者多个:块标识(用于唯一标识一个块,比如块序号等)、特征点数量、响应分数信息(比如,最大响应分数值、平均响应分数值、或者最小响应分数值等)、特征点分布信息(比如,基于octave的分布、基于块中心点坐标的分布、响应分数值分布的分布图等)。
[0077]
需要说明的是,上述对将第一图像划分为N个块的过程与提取第一图像的特征点的过程可以不分先后顺序。当先将第一图像划分为N个块,后提取第一图像的特征点时,可以在提取特征点的过程中统计每个块的块统计信息,这样图像处理设备无需等第一图像的所有特征点提取完成之后再进行统计,从而可以减小等待时间和重新读取第一图像的特征点的时间。
[0078]
S202:对于第二图像的待匹配特征点,根据该待匹配特征点在第二图像的位置从第一图像的N个块中选择M个块,M为大于或等于1的整数。
[0079]
其中,第二图像的尺寸与第一图像的尺寸相同,第二图像与第一图像中可以存在相同或者相似的特征,比如,第一图像和第二图像可以是同一视频流中相邻的两帧图像、或者是尺寸相同且相似的两帧图像。可选的,第二图像包括N个块且与第一图像的N个块一一对应,对应的两个块的形状、大小和位置可以是相同的。第二图像中的每个块可以有多个待匹配特征点,每个块中的多个待匹配特征点可以是该块内提取到的多个特征点。
[0080]
另外,该待匹配特征点在第二图像中的位置与其对应在第一图像中的位置对应,即可以认为该待匹配特征点在第二图像中的位置与其对应在第一图像中的位置相同。比如,第一图像和第二图像通过相同的坐标系进行表示,该待匹配特征点在两个坐标系中的位置相同。
[0081]
具体的,当第一图像和第二图像中相同或者相似特征的位置相差较小或者无变化时,可以根据该待匹配特征点在第二图像的位置和匹配半径确定匹配区域,比如在第 一图像中,以该待匹配特征点对应在第一图像中的位置为圆心(或者称为选取中心点),以匹配半径为半径,确定的圆形区域作为匹配区域。或者,当第一图像和第二图像中相同或者相似特征的位置相差较大时,还可以根据该待匹配特征点在第二图像的位置、匹配半径和预设偏移量确定初始匹配区域,比如在第一图像中,将该待匹配特征点对应在第一图像中的位置按照预设偏移量偏移之后的位置作为圆心,以匹配半径作为半径,确定的圆形区域作为匹配区域。之后,根据匹配块选择策略,从第一图像的N个块中选择位于该匹配区域内的M个块,比如,确定所述M个块中每个块对应的块标识。可选的,上述匹配块选择策略可以是矩形块集合、X型块集合、十字型块集合或者菱形块集合等。
[0082]
需要说明的是,上述匹配半径、预设偏移量、以及匹配块选择策略均可以由本领域技术人员根据实际情况事先进行设置或者在匹配过程中动态进行设置,比如根据待匹配特征点所在块的形状、大小、以及上述预设划分规则等进行设置;或者根据相关经验进行设置,或者使用配套的算法等自适应性的配置等。对于不同的待匹配特征点所在的块或者区域,可以设置相同的匹配半径、预设偏移量或者匹配块选择策略,也可以设置不同的匹配半径、预设偏移量或者匹配块选择策略,本申请实施例对此不作具体限定。
[0083]
示例性的,结合图3所示的第一图像的N个块,假设以该待匹配特征点对应在第一图像中的位置为圆心、以匹配半径为半径,确定的匹配区域如图8所示,则当上述匹配块选择策略为矩形块集合时,选择的M个块如图8中的(a)所示;当上述匹配块选择策略为十字型块集合时,选择的M个块如图8中的(b)所示;当上述匹配块选择策略为X型块集合时,选择的M个块如图8中的(c)所示。图4中上述圆心位于第一图像的标号10所在的块为例进行说明,图8中的圆所在区域表示上述匹配区域。
[0084]
S203:从第一缓存器中获取M个块中每个块的特征点集合。
[0085]
具体的,图像处理设备根据M个块中每个块的块标识,从存储每个块的特征点集合对应的位置索引的存储空间中,获取M个块中每个块的特征点集合对应的位置索引。进而,根据M个块中每个块的特征点集合对应的位置索引,从第一缓存器中获取每个块的特征点集合。可选的,可以一次性读取一个块的特征点集合,也可以连续逐个地读取一个块的特征点集合;或者,可以从一个块的特征点集合中一次并行读取多个特征点,也可以从M个块中多个块的特征点集合中并行读取不同块的特征点等(当以并行的方式读取时,后续步骤也可以并行执行)。
[0086]
S204:根据该待匹配特征点逐块匹配M个块中每个块的特征点集合,以从M个块的特征点集合中匹配出至少一个匹配特征点。
[0087]
对于M个块,可以使用该待匹配特征点逐块匹配M个块中每个块的特征点集合(即以块为单位进行匹配),进而从M个块的特征点集合中匹配出至少一个匹配特征点,匹配得到的至少一个匹配特征点中的每个匹配特征点与该待匹配特征点可以形成一个匹配对。在匹配过程中,可以使用最佳匹配(best matcher)算法、KNN匹配算法、或者左右双向匹配算法等对该块的特征点集合与该待匹配特征点进行匹配。其中,最佳匹配算法可以是指对于该待匹配特征点,从该块的特征点集合中选择一个最相似的特征点作为该待匹配特征点的匹配特征点。KNN(n=2)匹配算法可以是指对于该待 匹配特征点,从该块的特征点集合中选择n(比如,n=2)个最相似的匹配点作为该待匹配特征点的匹配特征点。左右双向匹配算法可以是指对于该待匹配特征点(表示为特征点P(x,y)),从该块的特征点集合中选择一个最相似的特征点(表示为特征点Q(x,y)),同时对于特征点Q(x,y),使用同样的方式从第一图像中选择一个最相似的特征点(表示为特征点P’(x,y)),若P’(x,y)与P(x,y)一致,则确定特征点Q(x,y)为该待匹配特征点P(x,y)的匹配特征点,否则匹配无效;使用左右双向匹配算法需要对匹配过程执行2次,所以匹配代价较大。上述三种匹配算法中,使用最佳匹配算法得到的至少一个匹配特征点的数量与M个块的数量相同,使用KNN匹配算法得到的至少一个匹配特征点的数量大于(此时,n≥2)或等于(此时,n=1)M个块的数量,使用左右双向匹配算法得到的至少一个匹配特征点的数量小于或等于M个块的数量。
[0088]
需要说明的是,图像处理设备在匹配时还可以使用其他不同的匹配算法,上述仅以最佳匹配算法、KNN匹配算法和左右双向匹配算法为例进行说明,并不对本申请实施例构成限定。
[0089]
进一步地,对于M个块中每个块的特征点集合,在匹配过程中,图像处理设备还可以确定该特征点集合中的每个特征点与该待匹配特征点之间的匹配信息,该匹配信息可以包括:描述子距离和/或匹配角度差。之后,图像处理设备根据该匹配信息,将该特征点集合中满足预设条件的特征点确定为匹配特征点,这里满足预设条件的特征点可以是指该特征点的匹配信息满足以下至少一项:最佳描述子距离、次佳描述子距离、最佳匹配角度差、或者次佳匹配角度。
[0090]
其中,该描述子距离可以是曼哈顿距离、欧几里德距离、汉明距离等。以匹配的两个特征点的描述子des1(x1,x2,x3,…,xn)与描述子des2(y1,y2,y3,…,yn)为例,其曼哈顿距离(D1)的计算可以如下公式(1)所示,欧几里德距离(D2)的计算可以如下公式(2)所示,汉明距离(D3)的计算可以如下公式(3)所示。上述公式(3)中的XOR为逻辑运算的异或运算符。
[0091]
D1=|x1–y1|+|x2-y2|+…+|xn-yn| (1)
[0092]
D2=((x1–y1)^2+(x2-y2)^2+…+(xn–yn)^2)^0.5 (2)
[0093]
D3=XOR(x1,y1)+XOR(x2,y2)+…+XOR(xn,yn) (3)
[0094]
另外,最佳描述子距离可以用于表示两个特征点的描述子最相似的距离,比如对于上述曼哈顿距离、欧几里德距离或者汉明距离而言,最佳描述子距离可以是指计算得到的所有描述子距离中最小非负值,此时对应的匹配特征点可以称为最佳匹配特征点。相应的,次佳描述子距离可以是指该特征点集合对应的所有描述子距离中仅次于最佳描述子距离的描述子距离,对应的匹配特征点可以称为次佳匹配特征点。
[0095]
匹配角度差可以是指匹配的两个特征点的角度之差,每个特征点的角度在提取该特征点时即可得到。最佳匹配角度差可以是指该特征点集合对应的所有角度差中的最小值,此时对应的匹配特征点可以称为最佳匹配特征点;次佳匹配角度可以是指该特征点集合对应的所有角度差中仅次于最佳匹配角度差的匹配角度差,对应的匹配特征点可以称为次佳匹配特征点。
[0096]
可选的,在匹配过程中,图像处理设备还可以将特征点匹配结果(即上述匹配对信息)、特征点的匹配状态和相关统计信息等进行存储。
[0097]
具体的,在匹配M个块中每个块的特征点集合的过程中,图像处理设备可以将特征点匹配结果存储在第二缓存器中,第二缓存器可以包括:待匹配特征点的索引号、最佳匹配特征点的索引号、最佳描述子距离、最佳匹配角度差等中的一个或者多个。可选的,第二缓存器中还可以包括:次佳匹配特征点的索引号、次佳描述子距离、次佳匹配角度差等。
[0098]
对于该特征点集合中的每个特征点,图像处理设备还可以将该特征点的匹配状态存储在状态寄存器中,该状态寄存器可以包括:该特征点的索引号、该特征点所在块的索引号、与该特征点匹配的待匹配特征点的索引号、与该特征点匹配的待匹配特征点所在块的索引号,最佳描述子距离、最佳匹配角度差等信息中的一个或者多个。
[0099]
对于该特征点集合,图像处理设备还可以将该特征点集合对应的匹配角度差的统计信息(比如,角度差直方图)存储在角度差统计寄存器中。比如,该角度差统计寄存器对[0,360]度角度均匀划分成m(m为正整数)个区间,每个区间为360/m度,统计m个区间(比如m=12,即均匀分成12个区间,每个区间为30度,m个区间范围可以为[0,30)、[30,60)、……、[330,360))中属于每个区间范围的匹配角度差的个数,如果某一匹配角度差为负值,则可以将匹配角度差加上360变成正数。比如,某一匹配特征点与待匹配特征点的匹配角度差为45度,则45度属于区间[30,60),[30,60)对应的特征点统计个数加1,该匹配特征点属于[30,60)区间,可通过[30,60)对应的角度区间索引(比如,序号)来表示,比如45/(360/12)向上取整=2,即该匹配特征点属于角度序号为2的区间。
[0100]
对于M个块中的每个块,图像处理设备还可以将该块的块匹配统计信息存储在块统计寄存器中,该块统计寄存器主要用于存储块信息和块的匹配结果等。该块统计寄存器可以包括:待匹配特征点所在块的索引号、第一图像中块的索引号、有效匹配点数、块内匹配特征点对应的最佳描述子距离的均值/最大值/最小值等。在实际应用中,图像处理设备还可以根据后续应用的需求对该块统计寄存器中的各项信息进行增加或者删除等,本申请实施例对此不作具体限定。
[0101]
进一步地,对于第二图像中的所有待匹配特征点,均可以按照上述步骤处理得到每个待匹配特征点对应的匹配特征点,从而实现第一图像与第二图像的特征点匹配。
[0102]
可选的,当第一图像中某个块的某一匹配特征点与第二图像中的第一待匹配特征点和第二待匹配特征点均对应时,可以确定第一图像中的所述匹配特征点与第一待匹配特征点和第二待匹配特征点中匹配信息最优的待匹配特征点对应,即将所述匹配特征点作为匹配信息最优的待匹配特征点的匹配特征点。
[0103]
在实际应用时,图像处理设备可以是以流水作业的方式进行处理的,上述第二缓存器也是按照流水作业的方式存储相应的信息,上述状态寄存器中也会记录每个特征点的匹配状态,本申请实施例可以采用如下方法处理上述重复匹配的问题,从而避免对已经写入的内存进行再次修改。
[0104]
具体的,如果待匹配特征点(表示为P(x,y))匹配后得到最佳匹配特征点(表示为Q(x,y)),Q(x,y)在上述状态寄存器中标记还未被匹配,则待匹配特征点P(x,y)与Q(x,y)匹配有效,将P(x,y)与Q(x,y)匹配的相关信息写入上述状态寄存器中。如果待匹配特征点P(x,y)匹配后得到最佳匹配特征点Q(x,y)、最佳描述子距离(表示为dist0), Q(x,y)在上述状态寄存器中标记已被匹配,被匹配点为特征点K(x,y)\最佳描述子距离为dist1,则比较最佳匹配距离dist1与dist0,如果dist0>=dist1,则P(x,y)与Q(x,y)不是最优的,丢弃掉;如果dist0<dist1,则P(x,y)与Q(x,y)更优需要保留,更新上述状态寄存器中特征点Q(x,y)对应的最佳匹配点为P(x,y),并更新最佳描述子为dist0和其他统计信息,将P(x,y)与Q(x,y)匹配的相关信息写入上述状态寄存器中。
[0105]
此外,在对第二图像中的所有待匹配特征点均进行匹配之后,图像处理设备还可以对上述状态寄存器和角度差统计寄存器进行更新,以避免因为处理上述重复匹配的问题而导致寄存器信息与实际情况不一致的问题。
[0106]
进一步地,在S204中,图像处理设备还可以根据该匹配信息和预设筛选策略,筛选第一图像的每个块内的匹配特征点,得到至少一个匹配特征点。预设筛选策略包括以下策略中的至少一个:重复匹配筛选、角度差直方图筛选、块描述子距离筛选、或者块匹配统计筛选。
[0107]
对于第一图像和第二图像匹配之后得到的所有匹配对(即第二图像中的每个待匹配特征点与其匹配得到的至少一个匹配特征点形成的匹配对),因为图像纹理存在相似性等因素而使得匹配结果中存在误匹配的问题,因此图像处理设备可以对得到的所有匹配对进行筛选。下面以一个匹配对为例进行说明,每个匹配对都可以采用相同的方法进行筛选,直到筛选完所有匹配对为止。
[0108]
具体的,图像处理设备使用重复匹配筛选策略的过程可以为:从第二缓存器中分别读取(比如,从起始地址开始读取)每个匹配对信息(即特征点匹配结果),比如读取的匹配对信息为第二图像中的特征点P(x,y)与第一图像中的特征点Q(x,y)的匹配结果,即图像处理设备根据每个匹配对信息查询上述状态寄存器,若查询得到的匹配结果与该匹配对信息一致,则确定当前匹配对有效,否则确定当前匹配对无效,比如根据特征点Q(x,y)查询得到的特征点为P’(x,y),若P’(x,y)与P(x,y)一致,则确定P(x,y)与Q(x,y)有效,否则确定P(x,y)与Q(x,y)无效。当确定P(x,y)与Q(x,y)无效时,图像处理设备可以在第二缓存器中将其标记为无效,或者直接从第二缓存器中删除相关信息。由于上述状态寄存器是在处理完上述重复匹配的问题之后更新的,所以上述状态寄存器的信息是最新的,无重复匹配对。
[0109]
上述角度差直方图筛选的原理在于:两张图像中的物体经过相似的空间变换,则正确匹配对的角度空间分配应该是相似的,所以分布应该是类似的,异常的角度差分布则可以认为是错误匹配。具体的,图像处理设备使用角度差直方图筛选策略的过程可以为:从上述角度差统计寄存器中读取第一图像中每个块的特征点集合对应的匹配角度差的统计信息,分析该统计信息的波形分布,并获取最大k(k≤m,k为正整数)个波峰所对应的角度序号集合{angle1,angle2,…,anglek},即表示最可能的角度差分布空间;根据先验信息、大数据分析、机器学习等方法从{angle1,angle2,…,anglek}中获得有效的w(1<=w<=k,w为正整数)个波峰集合ANGLE{bangle_1,bangle_2,…,bangle_m},或者由外部动态输入,该波峰集合ANGLE用来筛选匹配对;从第二缓存器中分别读取每个匹配对信息(即特征点匹配结果),该特征点匹配结果中包括所属的角度区间索引bangle;如果角度区间索引bangle属于上述ANGLE{bangle_1,bangle_2,…,bangle_m}集合中,则确定当前匹配对有效,否则确定当前匹配对无效。 当确定当前匹配对无效时,图像处理设备可以在第二缓存器中将其标记为无效,或者直接从第二缓存器中删除相关信息。
[0110]
块描述子距离筛选的原理在于:两张图像中的物体经过相似的空间变换,则正确匹配对所在的块也应该是相似的,所以块描述子距离应该是相似的,异常的块描述子距离可以认为是错误匹配。具体的,图像处理设备使用块描述子距离筛选策略的过程可以为:从上述块统计寄存器中读取第一图像中每个块的特征点集合对应的最佳描述子距离的统计信息,根据该统计信息中的最佳描述子距离的均值/最大值/最小值、或者最佳描述子距离的均值/最大值/最小值和每个块的有效匹配特征点数确定F个分块的判决阈值BDIST{dist_1,dist_2,…,dist_f},或者基于先验信息、大数据分析、机器学习等方法获取,或者由外部动态输入来获取;从第二缓存器中分别读取每个匹配对信息(即特征点匹配结果),该特征点匹配结果中包括当前匹配对的最佳描述子距离bdist和对应在第二图像中的块标识blk_i;查询blk_i在上述BDIST{dist_1,dist_2,…,dist_f}中对应的判决阈值为dist_i,若bdist<=dist_i,则当前匹配对有效,否则当前匹配对无效。当确定当前匹配对无效时,图像处理设备可以在第二缓存器中将其标记为无效,或者直接从第二缓存器中删除相关信息。
[0111]
上述块匹配统计筛选的原理在于:两张图像中的物体经过相似的空间变换,原先在第一图像中临近区域的特征点,经过相似的变换之后,在第二图像中也应该是在临近区域,所以可以通过分析第一图像中各个块的特征点映射到第二图像的特征点的聚合性来分析匹配对的有效性,即在第一图像中相同块中的特征点,在第二图像也应该聚集在相似的区域,空间跨度很大的异常分布的匹配对可以认为是错误匹配。具体的,图像处理设备使用块描述子距离筛选策略的过程可以为:从上述状态寄存器中读取每个匹配对应在第一图像中的块标识和在第二图像中的块标识;从上述块统计寄存器中读取第一图像的每个块的有效匹配特征点数,假设有A个块,A个块的有效匹配特征点数分别为NUM{b_1,b_2,…,b_a},总点数为B;获取第一图像的每个块内的有效匹配特征点对应在第二图像中的块标识集合,得到分布块标识数组BLKNUM[B],根据分布块标识数组BLKNUM[B]确定第一图像的每个块对应在第二图像中的最佳匹配块和次佳匹配块(可选的,存储在上述块统计寄存器中);从上述第二缓存器中确定每个匹配对信息(即特征点匹配结果),该特征点匹配结果包括当前匹配对的最佳描述子距离bdist、对应在第一图像中的块标识blk_i和对应在第二图像中的块标识blk_j;根据读取的匹配对信息查询上述块统计寄存器以获取blk_i所对应的blk_bestindex和blk_best2index,blk_bestinde表示blk_i对应的最佳匹配块,blk_best2index表示blk_i对应的次佳匹配块。选择有效块范围策略:
[0112]
1)以blk_bestindex为有效匹配块策略:如果blk_j等于blk_bestindex,则当前匹配对有效,否则当前匹配对无效;
[0113]
2)以blk_bestindex和blk_best2index构成有效区块策略:比如以blk_bestindex和blk_best2index连线所覆盖的块构成集合BLK_SET为有效集合,如果blk_j落在块集合BLK_SET内,则当前匹配对有效,否则当前匹配对无效;
[0114]
3)以blk_bestindex块为中心的多块策略:以blk_bestindex块为中心的矩形块(矩形块大小可设置)、十字型块、X型块等构成的集合BLK_SET,如果blk_j落在块集 合BLK_SET内,则当前匹配对有效,否则当前匹配对无效。
[0115]
需要说明的是,上述仅以不同的筛选策略为例进行说明,在实际应用中,图像处理设备还可以使用上述筛选策略中的两个或者两个以上的筛选策略同时进行筛选,或者采用其他的筛选策略等进行筛选。通过基于上述不同信息的筛选,可以提高正确匹配率,同时保证较高的筛选效率。
[0116]
进一步的,图像处理设备还可以输出上述第二缓存器和各个寄存器的信息,以输出最终的匹配结果,如果执行最佳匹配,则输出最佳匹配的相关结果,可以选择不输出次佳匹配的相关结果;如果执行最佳匹配和次佳匹配,则可以输出最佳匹配的相关结果和次佳匹配的相关结果。可选的,图像处理设备还可以在上述筛选过程中输出匹配结果,比如,在确定一个匹配对为有效匹配对时直接输出该匹配对,在确定一个匹配对为无效匹配对时不输出该匹配对。
[0117]
需要说明的是,当由ASIC执行本申请的方法时,ASIC可以通过流水式方式匹配待匹配特征点与第一图像的M个块中每个块的特征点集合,从而可以有效地节省ASIC中的存储资源,同时提高特征点的匹配效率。
[0118]
上述主要从图像处理设备的角度对本申请实施例提供的筛选局部特征点的方法进行了介绍。可以理解的是,该图像处理设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的网元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0119]
本申请实施例可以根据上述方法示例对筛选局部特征点的装置(例如,图像处理设备)进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0120]
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的一种图像特征点匹配装置的结构示意图,该装置包括:存储单元901、确定单元902、获取单元903和匹配单元904。其中,存储单元901用于支持该装置执行上述方法实施例中的S201;确定单元902用于支持该装置执行上述方法实施例中的S202和S200;获取单元903用于支持该装置执行上述方法实施例中的S203;匹配单元904用于支持该装置执行上述方法实施例中的S204。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0121]
图10为本申请实施例所涉及的另一种图像特征点匹配装置的结构示意图,该装置可以为图像处理设备中的处理器(比如,图1中的ASIC),该装置包括:输入接口1001、运算器1002和缓存器1003,缓存器1003包括第一缓存器。可选的,该装置还可以包括输出接口1004。
[0122]
其中,输入接口1001可用于支持该装置接收第一图像中的N个特征点集合、第一图像的尺寸、匹配半径、预设偏移量、第一图像、以及第二图像等。在一些可行的 实施例中,该输入接口1001接收的信息可以存储在外部的存储器中,比如图1所示的图像处理设备的存储器101中;在一些可行的实施例中,可以只有一个输入接口,也可以有多个输入接口。
[0123]
运算器1002,可用于支持该装置执行上述方法实施例中的S200-S204,和/或本文所描述的其他技术过程,具体描述参见上述方法实施例中的相关描述,本申请实施例在此不再赘述。
[0124]
缓存器1003,可用于缓存运算器1002执行上述方法实施例过程中需要缓存的相关信息,比如,第一图像中的N个特征点集合排列后的位置索引、第一图像中的特征点与待匹配特征点之间的匹配信息、以及满足预设条件的特征点等。缓存器1003还可以包括上述方法实施例中的第二缓存器、状态寄存器、角度差统计寄存器等。
[0125]
输出接口1004,可用于输出从M个块的特征点集合中匹配出至少一个匹配特征点等。在一些可行的实施例中,可以只有一个输出接口,也可以有多个输出接口。在一些可行的实施例中,该输出接口1004输出的处理结果可以送到外部的存储器中存储,也可以送到另外的处理流程中继续进行处理等。
[0126]
本申请实施例提供的上述图像特征点匹配装置的各组成部分分别用于实现相对应的前述图像特征点匹配方法的各步骤的功能,由于在前述的图像特征点匹配方法实施例中,已经对各步骤进行了详细说明,在此不再赘述。
[0127]
在本申请实施例中,按照预设顺序将第一图像中的N个特征点集合存储在第一缓存器中,能够提高后续获取M个块中每个块的特征点集合的效率,同时根据待匹配特征点在第二图像的位置从第一图像的N个块中确定M个块,能够有效减小匹配范围,进而后续根据待匹配特征点逐块匹配M个块中每个块的特征点集合时,能够以一个块的特征点集合为单位进行匹配,M个块的特征点集合通过流水式操作逐块进行匹配,从而降低了匹配过程中的内存消耗和匹配时间,提高了特征点匹配的效率。
[0128]
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0129]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0130]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0131]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质 上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得终端执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0132]
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

权利要求书

[权利要求 1]
一种图像特征点匹配方法,其特征在于,所述方法包括: 按照预设顺序将第一图像中的N个特征点集合存储在第一缓存器中,所述第一图像包括N个块,每个块对应一个特征点集合,所述N为正整数; 对于第二图像的待匹配特征点,根据所述待匹配特征点在所述第二图像的位置从所述第一图像的N个块中确定M个块,所述第二图像包括N个块,所述M为大于或等于1的整数; 从所述第一缓存器中获取所述M个块中每个块的特征点集合; 根据所述待匹配特征点逐块匹配所述M个块中每个块的特征点集合,以从所述M个块的特征点集合中匹配出至少一个匹配特征点。
[权利要求 2]
根据权利要求1所述的方法,其特征在于,所述第一图像的N个块与所述第二图像的N个块一一对应,且对应的两个块的形状和尺寸相同。
[权利要求 3]
根据权利要求1或2所述的方法,其特征在于,所述按照指定顺序将第一图像中的N个特征点集合存储在第一缓存器中之前,所述方法还包括: 根据所述第一图像的尺寸和预设划分规则,将所述第一图像划分为N个块,并确定所述第一图像的N个块中每个块的特征点集合;其中,所述预设划分规则包括以下规则中的至少一个:贴合图像边缘划分、不贴合图像边缘划分、按区域划分、规则形状划分、不规则形状划分。
[权利要求 4]
根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括: 根据N个特征点集合中每个特征点集合包括的特征点数量和所述预设顺序,确定每个块的特征点集合对应的位置索引,所述位置索引包括起始位置索引和/或结束位置索引,一个块的特征点集合对应的位置索引用于索引所述块的特征点集合在所述第一缓存器中的位置。
[权利要求 5]
根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述待匹配特征点在所述第二图像的位置从所述第一图像的N个块中确定M个块,包括: 根据所述待匹配特征点在所述第二图像的位置和匹配半径,或者根据所述待匹配特征点在所述第二图像的位置、匹配半径和预设偏移量,确定匹配区域; 根据匹配块选择策略,从所述第一图像的N个块中选择位于所述匹配区域内的M个块。
[权利要求 6]
根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述待匹配特征点逐块匹配所述M个块中每个块的特征点集合,以从所述M个块的特征点集合中匹配出至少一个匹配特征点,包括: 对于所述M个块,逐块确定每个块的特征点集合中的每个特征点与所述待匹配特征点之间的匹配信息; 根据所述匹配信息,将所述每个块的特征点集合中满足预设条件的特征点确定为匹配特征点。
[权利要求 7]
根据权利要求6所述的方法,其特征在于,所述匹配信息包括:描述子距离和/或匹配角度差。
[权利要求 8]
根据权利要求7所述的方法,其特征在于,所述满足预设条件的特征点是指所述特征点的匹配信息满足以下至少一项:最佳描述子距离、次佳描述子距离、最佳匹配角度差、或者次佳匹配角度。
[权利要求 9]
根据权利要求6-8任一项所述的方法,其特征在于,所述根据所述待匹配特征点逐块匹配所述M个块中每个块的特征点集合,以从所述M个块的特征点集合中匹配出至少一个匹配特征点,还包括: 根据所述匹配信息和预设筛选策略,筛选所述每个块的特征点集合匹配出的匹配特征点,得到所述至少一个匹配特征点;其中,所述预设筛选策略包括以下策略中的至少一个:重复匹配筛选、角度差直方图筛选、描述子距离筛选、或者块匹配统计筛选。
[权利要求 10]
根据权利要求6-9任一项所述的方法,其特征在于,当所述第一图像中的一个匹配特征点与所述第二图像中的第一待匹配特征点和第二待匹配特征点对应时,所述方法还包括: 确定所述第一图像中的所述匹配特征点与所述第一待匹配特征点和所述第二待匹配特征点中匹配信息最优的待匹配特征点对应。
[权利要求 11]
一种图像特征点匹配装置,其特征在于,所述装置包括: 存储单元,用于按照预设顺序将第一图像中的N个特征点集合存储在第一缓存器中,所述第一图像包括N个块,每个块对应一个特征点集合,所述N为正整数; 确定单元,用于对于第二图像的待匹配特征点,根据所述待匹配特征点在所述第二图像的位置从所述第一图像的N个块中确定M个块,所述第二图像包括N个块,所述M为大于或等于1的整数; 获取单元,用于从所述第一缓存器中获取所述M个块中每个块的特征点集合; 匹配单元,用于根据所述待匹配特征点逐块匹配所述M个块中每个块的特征点集合,得到至少一个匹配特征点。
[权利要求 12]
根据权利要求11所述的装置,其特征在于,所述第一图像的N个块与所述第二图像的N个块一一对应,且对应的两个块的形状和尺寸相同。
[权利要求 13]
根据权利要求11或12所述的装置,其特征在于,所述确定单元,还用于: 根据所述第一图像的尺寸和预设划分规则,将所述第一图像划分为N个块,并确定所述第一图像的N个块中每个块的特征点集合;其中,所述预设划分规则包括以下规则中的至少一个:贴合图像边缘划分、不贴合图像边缘划分、按区域划分、规则形状划分、不规则形状划分。
[权利要求 14]
根据权利要求11-13任一项所述的装置,其特征在于,所述确定单元,还用于: 根据N个特征点集合中每个特征点集合包括的特征点数量和所述预设顺序,确定每个块的特征点集合对应的位置索引,所述位置索引包括起始位置索引和/或结束位置索引,一个块的特征点集合对应的位置索引用于索引所述块的特征点集合在所述第一缓存器中的位置。
[权利要求 15]
根据权利要求11-14任一项所述的装置,其特征在于,所述确定单元,还用于: 根据所述待匹配特征点在所述第二图像的位置和匹配半径,或者根据所述待匹配特征点在所述第二图像的位置、匹配半径和预设偏移量,确定匹配区域; 根据匹配块选择策略,从所述第一图像的N个块中选择位于所述匹配区域内的M个块。
[权利要求 16]
根据权利要求11-15任一项所述的装置,其特征在于,所述匹配单元,还用于: 对于所述M个块,逐块确定每个块的特征点集合中的每个特征点与所述待匹配特征点之间的匹配信息; 根据所述匹配信息,将所述每个块的特征点集合中满足预设条件的特征点确定为匹配特征点。
[权利要求 17]
根据权利要求16所述的装置,其特征在于,所述匹配信息包括:描述子距离和/或匹配角度差。
[权利要求 18]
根据权利要求17所述的装置,其特征在于,所述满足预设条件的特征点是指所述特征点的匹配信息满足以下至少一项:最佳描述子距离、次佳描述子距离、最佳匹配角度差、或者次佳匹配角度。
[权利要求 19]
根据权利要求16-18任一项所述的装置,其特征在于,所述匹配单元,还用于: 根据所述匹配信息和预设筛选策略,筛选所述每个块的特征点集合匹配出的匹配特征点,得到所述至少一个匹配特征点;其中,所述预设筛选策略包括以下策略中的至少一个:重复匹配筛选、角度差直方图筛选、描述子距离筛选、或者块匹配统计筛选。
[权利要求 20]
根据权利要求16-19任一项所述的装置,其特征在于,当所述第一图像中的一个匹配特征点与所述第二图像中的第一待匹配特征点和第二待匹配特征点对应时,所述确定单元,还用于: 确定所述第一图像中的所述匹配特征点与所述第一待匹配特征点和所述第二待匹配特征点中匹配信息最优的待匹配特征点对应。
[权利要求 21]
一种图像特征点匹配装置,其特征在于,所述装置包括:输入接口、运算器和第一缓存器;其中, 所述输入接口,用于接收第一图像中的N个特征点集合,所述第一图像包括N个块,每个块对应一个特征点集合,所述N为正整数; 所述运算器,用于按照预设顺序将所述第一图像中的N个特征点集合存储在所述第一缓存器中; 所述运算器,还用于对于第二图像的待匹配特征点,根据所述待匹配特征点在所述第二图像的位置从所述第一图像的N个块中确定M个块,所述第二图像包括N个块,所述M为大于或等于1的整数;从所述第一缓存器中获取所述M个块中每个块的特征点集合; 所述运算器,还用于根据所述待匹配特征点逐块匹配所述M个块中每个块的特征点集合,以从所述M个块的特征点集合中匹配出至少一个匹配特征点。
[权利要求 22]
根据权利要求21所述的装置,其特征在于,所述第一图像的N个块与所述 第二图像的N个块一一对应,且对应的两个块的形状和尺寸相同。
[权利要求 23]
根据权利要求21或22所述的装置,其特征在于,所述运算器,还用于: 根据所述第一图像的尺寸和预设划分规则,将所述第一图像划分为N个块,并确定所述第一图像的N个块中每个块的特征点集合;其中,所述预设划分规则包括以下规则中的至少一个:贴合图像边缘划分、不贴合图像边缘划分、按区域划分、规则形状划分、不规则形状划分。
[权利要求 24]
根据权利要求21-23任一项所述的装置,其特征在于,所述运算器,还用于: 根据N个特征点集合中每个特征点集合包括的特征点数量和所述预设顺序,确定每个块的特征点集合对应的位置索引,所述位置索引包括起始位置索引和/或结束位置索引,一个块的特征点集合对应的位置索引用于索引所述块的特征点集合在所述第一缓存器中的位置。
[权利要求 25]
根据权利要求21-24任一项所述的装置,其特征在于,所述运算器,还用于: 根据所述待匹配特征点在所述第二图像的位置和匹配半径,或者根据所述待匹配特征点在所述第二图像的位置、匹配半径和预设偏移量,确定匹配区域; 根据匹配块选择策略,从所述第一图像的N个块中选择位于所述匹配区域内的M个块。
[权利要求 26]
根据权利要求21-25任一项所述的装置,其特征在于,所述运算器,还用于: 对于所述M个块,逐块确定每个块的特征点集合中的每个特征点与所述待匹配特征点之间的匹配信息; 根据所述匹配信息,将所述每个块的特征点集合中满足预设条件的特征点确定为匹配特征点。
[权利要求 27]
根据权利要求26所述的装置,其特征在于,所述匹配信息包括:描述子距离和/或匹配角度差。
[权利要求 28]
根据权利要求27所述的装置,其特征在于,所述满足预设条件的特征点是指所述特征点的匹配信息满足以下至少一项:最佳描述子距离、次佳描述子距离、最佳匹配角度差、或者次佳匹配角度。
[权利要求 29]
根据权利要求26-28任一项所述的装置,其特征在于,所述运算器,还用于: 根据所述匹配信息和预设筛选策略,筛选所述每个块的特征点集合匹配出的匹配特征点,得到所述至少一个匹配特征点;其中,所述预设筛选策略包括以下策略中的至少一个:重复匹配筛选、角度差直方图筛选、描述子距离筛选、或者块匹配统计筛选。
[权利要求 30]
根据权利要求26-29任一项所述的装置,其特征在于,当所述第一图像中的一个匹配特征点与所述第二图像中的第一待匹配特征点和第二待匹配特征点对应时,所述运算器,还用于: 确定所述第一图像中的所述匹配特征点与所述第一待匹配特征点和所述第二待匹配特征点中匹配信息最优的待匹配特征点对应。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6]  
[ 图 7]  
[ 图 8]  
[ 图 9]  
[ 图 10]