CN110610457A - 全景图像拼接方法、装置以及系统 - Google Patents
全景图像拼接方法、装置以及系统 Download PDFInfo
- Publication number
- CN110610457A CN110610457A CN201810615785.1A CN201810615785A CN110610457A CN 110610457 A CN110610457 A CN 110610457A CN 201810615785 A CN201810615785 A CN 201810615785A CN 110610457 A CN110610457 A CN 110610457A
- Authority
- CN
- China
- Prior art keywords
- image
- source images
- characteristic point
- homography matrix
- feature point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 239000011159 matrix material Substances 0.000 claims abstract description 101
- 230000008569 process Effects 0.000 claims abstract description 52
- 238000013507 mapping Methods 0.000 claims abstract description 46
- 230000015654 memory Effects 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000001514 detection method Methods 0.000 claims description 60
- 230000004927 fusion Effects 0.000 claims description 31
- 238000011156 evaluation Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000007499 fusion processing Methods 0.000 claims description 8
- 238000005070 sampling Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 11
- 239000013598 vector Substances 0.000 description 10
- 238000007500 overflow downdraw method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Studio Devices (AREA)
Abstract
本发明公开了一种全景图像拼接方法、装置以及系统,属于图像处理领域。所述方法包括:获取特征点对集合,所述特征点对集合包括对同一场景进行图像采集得到的多个源图像中每两个相邻源图像之间匹配的特征点对;根据所述特征点对集合,获取所述多个源图像对应的单应性矩阵,所述单应性矩阵用于表示所述每两个相邻源图像的像素点之间的坐标映射关系;根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像。本发明通过无需进行查表过程,避免了需要较大的内存来存放拼接映射表的问题,降低了对内存的要求,适用性更好。
Description
技术领域
本发明涉及图像处理领域,尤其涉及一种全景图像拼接方法、装置以及系统。
背景技术
随着图像处理技术的发展,人们对图像的视觉要求越来越高,例如,人们希望看到更高分辨率更广视角的全景图像,因此,如何实现全景图像拼接就显得尤为重要。其中,全景图像拼接是指从不同角度获取同一场景的一组图像并进行拼接,从而形成广视角的全景图像。
目前,采用多个图像采集设备从不同的视角,同时对同一场景进行图像采集,得到多个源图像,并将该多个源图像实时发送给图像处理设备。当接收到该多个源图像时,图像处理设备可以查询内存中该多个图像采集设备的拼接映射表,确定多个源图像中各个坐标与全景图像中坐标之间的映射关系,将该多个源图像中各个像素点的像素值赋值给全景图像中对应坐标处的像素点,最后输出拼接结果即得到了全景图像。其中,每个图像采集设备的拼接映射表用于记录该图像采集设备采集的源图像与最终拼接成的全景图像之间的坐标映射关系。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
上述方法在实现全景图像拼接时需要依赖拼接映射表,图像处理设备需要较大的内存来存放该拼接映射表,因此,上述方法对图像处理设备的内存有较高要求,适用性差;而且对图像采集设备的依赖性太强,一旦设备发生更换则需要重新获取拼接映射表,上述方法的可移植性和可扩展性差;另外,对于那些对内存读取时钟周期远远大于计算时钟周期的平台来说,反复与内存交互来查询和读取数据,将会大大增加性能的消耗。
发明内容
本发明实施例提供了一种全景图像拼接方法、装置以及系统,可以解决相关技术适用性差、对设备依赖性强、可移植性和可扩展性差以及性能消耗大的问题。所述技术方案如下:
第一方面,提供了一种全景图像拼接方法,所述方法包括:
获取特征点对集合,所述特征点对集合包括对同一场景进行图像采集得到的多个源图像中每两个相邻源图像之间匹配的特征点对;
根据所述特征点对集合,获取所述多个源图像对应的单应性矩阵,所述单应性矩阵用于表示所述每两个相邻源图像的像素点之间的坐标映射关系;
根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像。
在一种可能实现方式中,所述根据所述特征点对集合,获取所述多个源图像对应的单应性矩阵,包括:
从所述特征点对集合中,随机选择预设数量的特征点对;
将所述预设数量的特征点对作为RANSAC(Random Sample Consensus,随机采样一致)算法的初始迭代参数,获取候选单应性矩阵;
遍历所述特征点对集合中剩余特征点对,获取内点数,所述内点数为符合所述候选单应性矩阵所表示的坐标映射关系的特征点对的数量;
重复上述选择特征点对并获取候选单应性矩阵的过程,直至所述特征点对集合中所有特征点对全部选择完后,将内点数最多的候选单应性矩阵作为所述单应性矩阵。
在一种可能实现方式中,所述获取特征点对集合,包括:
根据算子配置文件中的特征点检测算子,对所述多个源图像进行特征点检测,获取所述多个源图像的特征点,所述算子配置文件根据被选择的特征点检测算子生成;
从所述多个源图像的特征点中,获取所述每两个相邻源图像之间匹配的特征点对,得到所述特征点对集合。
在一种可能实现方式中,所述算子配置文件的生成过程包括:
遍历多个特征点检测算子;
输出所述多个特征点检测算子的评测数据,所述评测数据包括性能指标、执行过程中所需要的内存空间和特征点检测到的个数;
根据被选择的特征点检测算子,生成所述算子配置文件。
在一种可能实现方式中,所述获取多个源图像之间匹配的特征点对之前,所述方法还包括:
将所述多个源图像的数据类型从第一类型转换为第二类型,所述第二类型所占用的字节数小于所述第一类型所占用的字节数。
在一种可能实现方式中,所述根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像之后,所述方法还包括:
将所述全景图像的数据类型从所述第二类型转换为所述第一类型。
在一种可能实现方式中,所述根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像,包括:
根据所述单应性矩阵,对所述多个源图像进行拼接,得到拼接图像;
对所述拼接图像进行融合处理,得到所述全景图像。
在一种可能实现方式中,所述根据所述单应性矩阵,对所述多个源图像进行拼接,得到拼接图像,包括:
通过所述单应性矩阵,将所述多个源图像中像素点的坐标转换为所述拼接图像中像素点的坐标;
将所述多个源图像中像素点的像素值,赋值给像素值未知的所述拼接图像中对应坐标的像素点,得到所述拼接图像。
在一种可能实现方式中,所述对所述拼接图像进行融合处理,得到所述全景图像,包括:
采用多段融合算法,每次同时处理所述拼接图像的两个图像数据;
直至所述拼接图像的所有图像数据处理完成,得到所述全景图像。
第二方面,提供了一种全景图像拼接装置,所述装置包括:
获取模块,用于获取特征点对集合,所述特征点对集合包括对同一场景进行图像采集得到的多个源图像中每两个相邻源图像之间匹配的特征点对;
所述获取模块,还用于根据所述特征点对集合,获取所述多个源图像对应的单应性矩阵,所述单应性矩阵用于表示所述每两个相邻源图像的像素点之间的坐标映射关系;
拼接模块,用于根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像。
在一种可能实现方式中,所述获取模块用于:
从所述特征点对集合中,随机选择预设数量的特征点对;
将所述预设数量的特征点对作为RANSAC算法的初始迭代参数,获取候选单应性矩阵;
遍历所述特征点对集合中剩余特征点对,获取内点数,所述内点数为符合所述候选单应性矩阵所表示的坐标映射关系的特征点对的数量;
重复上述选择特征点对并获取候选单应性矩阵的过程,直至所述特征点对集合中所有特征点对全部选择完后,将内点数最多的候选单应性矩阵作为所述单应性矩阵。
在一种可能实现方式中,所述获取模块用于:
根据算子配置文件中的特征点检测算子,对所述多个源图像进行特征点检测,获取所述多个源图像的特征点,所述算子配置文件根据被选择的特征点检测算子生成;
从所述多个源图像的特征点中,获取所述每两个相邻源图像之间匹配的特征点对,得到所述特征点对集合。
在一种可能实现方式中,所述获取模块还用于:
遍历多个特征点检测算子;
输出所述多个特征点检测算子的评测数据,所述评测数据包括性能指标、执行过程中所需要的内存空间和特征点检测到的个数;
根据被选择的特征点检测算子,生成所述算子配置文件。
在一种可能实现方式中,所述装置还包括:
转换模块,用于将所述多个源图像的数据类型从第一类型转换为第二类型,所述第二类型所占用的字节数小于所述第一类型所占用的字节数。
在一种可能实现方式中,所述转换模块还用于将所述全景图像的数据类型从所述第二类型转换为所述第一类型。
在一种可能实现方式中,所述拼接模块用于:
根据所述单应性矩阵,对所述多个源图像进行拼接,得到拼接图像;
对所述拼接图像进行融合处理,得到所述全景图像。
在一种可能实现方式中,所述拼接模块用于:
通过所述单应性矩阵,将所述多个源图像中像素点的坐标转换为所述拼接图像中像素点的坐标;
将所述多个源图像中像素点的像素值,赋值给像素值未知的所述拼接图像中对应坐标的像素点,得到所述拼接图像。
在一种可能实现方式中,所述拼接模块用于:
采用多段融合算法,每次同时处理所述拼接图像的两个图像数据;
直至所述拼接图像的所有图像数据处理完成,得到所述全景图像。
第三方面,提供了一种全景图像拼接系统,所述全景图像拼接系统包括多个图像采集设备和计算机设备:
所述多个图像采集设备用于对同一场景进行图像采集,得到多个源图像;
所述计算机设备用于获取特征点对集合,所述特征点对集合包括所述多个源图像中每两个相邻源图像之间匹配的特征点对;
所述计算机设备还用于根据所述特征点对集合,获取所述多个源图像对应的单应性矩阵,所述单应性矩阵用于表示所述每两个相邻源图像的像素点之间的坐标映射关系;
所述计算机设备还用于根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像。
第四方面,提供了一种计算机设备,包括至少一个处理器和至少一个存储器;所述至少一个存储器存储有一个或多个程序,所述一个或多个程序被所述至少一个处理器执行时实现第一方面任一种实现方式所述的方法步骤。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有至少一条指令,所述至少一条指令被处理器执行时实现第一方面任一种实现方式所述的方法步骤。
本发明实施例提供的技术方案带来的有益效果是:
通过在进行全景图像拼接时,实时获取用于表示源图像之间坐标映射关系的单应性矩阵,进而根据单应性矩阵实现全景图像的拼接。由于无需进行查表过程,避免了需要较大的内存来存放拼接映射表的问题,降低了对内存的要求,适用性更好。另外,由于实时获取源图像之间的坐标映射关系,即使采集源图像的图像采集设备发生了更换,也不会影响图像拼接的实现,大大增加了方案的可移植性和可扩展性。此外,由于无需查表,也即无需与内存交互来查询和读取数据,对于那些对内存读取时钟周期远远大于计算时钟周期的平台来说,大大减少了性能的消耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种全景图像拼接系统的示意图;
图2是本发明实施例提供的一种全景图像拼接方法的流程图;
图3是本发明实施例提供的一种全景图像拼接方法的流程图;
图4是本发明实施例提供的一种特征点检测算子的可选配置策略的示意图;
图5是本发明实施例提供的一种坐标映射关系的示意图;
图6是本发明实施例提供的一种GPU内存划分的原理示意图;
图7是本发明实施例提供的一种GPU计算的原理示意图;
图8是本发明实施例提供的一种数据类型转换的示意图;
图9是本发明实施例提供的一种异步实现全景图像拼接流程的示意图;
图10是本发明实施例提供的一种同步实现全景图像拼接的示意图;
图11是本发明实施例提供的一种全景图像拼接装置的结构示意图;
图12是本发明实施例提供的一种全景图像拼接装置的结构示意图;
图13是本发明实施例提供的一种计算机设备1300的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种全景图像拼接系统的示意图,该全景图像拼接系统可以包括多个图像采集设备101和计算机设备102。
其中,多个图像采集设备101用于从不同的视角,对同一场景进行图像采集,得到多个源图像。图像采集设备101包括但不限于智能相机,智能相机是能够高速采集图像的设备。
计算机设备102用于对多个源图像进行特征点检测,从多个源图像的特征点中,获取多个源图像中每两个相邻源图像之间匹配的特征点对,得到特征点对集合。计算机设备102还用于根据该特征点对集合,获取该多个源图像对应的单应性矩阵,该单应性矩阵用于表示该每两个相邻源图像的像素点之间的坐标映射关系。计算机设备102还用于根据该单应性矩阵,对该多个源图像进行拼接,得到全景图像。
需要说明的是,本发明实施例仅以该多个源图像通过多个图像采集设备采集得到为例进行说明,实际上,该多个源图像也可以由一个图像采集设备得到,此情况下,该图像采集设备可以为多目全景摄像机,多目全景摄像机可以从不同的视角采集同一场景下的多个源图像。
图2是本发明实施例提供的一种全景图像拼接方法的流程图。参见图2,该方法包括:
301、获取特征点对集合,该特征点对集合包括对同一场景进行图像采集得到的多个源图像中每两个相邻源图像之间匹配的特征点对。
302、根据该特征点对集合,获取该多个源图像对应的单应性矩阵,该单应性矩阵用于表示该每两个相邻源图像的像素点之间的坐标映射关系。
303、根据该单应性矩阵,对该多个源图像进行拼接,得到全景图像。
本发明实施例提供的方法,通过在进行全景图像拼接时,实时获取用于表示源图像之间坐标映射关系的单应性矩阵,进而根据单应性矩阵实现全景图像的拼接。由于无需进行查表过程,避免了需要较大的内存来存放拼接映射表的问题,降低了对内存的要求,适用性更好。另外,由于实时获取源图像之间的坐标映射关系,即使采集源图像的图像采集设备发生了更换,也不会影响图像拼接的实现,大大增加了方案的可移植性和可扩展性。此外,由于无需查表,也即无需与内存交互来查询和读取数据,对于那些对内存读取时钟周期远远大于计算时钟周期的平台来说,大大减少了性能的消耗。
可选地,该根据该特征点对集合,获取该多个源图像对应的单应性矩阵,包括:
从该特征点对集合中,随机选择预设数量的特征点对;
将该预设数量的特征点对作为RANSAC算法的初始迭代参数,获取候选单应性矩阵;
遍历该特征点对集合中剩余特征点对,获取内点数,该内点数为符合该候选单应性矩阵所表示的坐标映射关系的特征点对的数量;
重复上述选择特征点对并获取候选单应性矩阵的过程,直至该特征点对集合中所有特征点对全部选择完后,将内点数最多的候选单应性矩阵作为该单应性矩阵。
可选地,该获取特征点对集合,包括:
根据算子配置文件中的特征点检测算子,对该多个源图像进行特征点检测,获取该多个源图像的特征点,该算子配置文件根据被选择的特征点检测算子生成;
从该多个源图像的特征点中,获取该每两个相邻源图像之间匹配的特征点对,得到该特征点对集合。
可选地,该算子配置文件的生成过程包括:
遍历多个特征点检测算子;
输出该多个特征点检测算子的评测数据,该评测数据包括性能指标、执行过程中所需要的内存空间和特征点检测到的个数;
根据被选择的特征点检测算子,生成该算子配置文件。
可选地,该获取多个源图像之间匹配的特征点对之前,该方法还包括:
将该多个源图像的数据类型从第一类型转换为第二类型,该第二类型所占用的字节数小于该第一类型所占用的字节数。
可选地,该根据该单应性矩阵,对该多个源图像进行拼接,得到全景图像之后,该方法还包括:
将该全景图像的数据类型从该第二类型转换为该第一类型。
可选地,该根据该单应性矩阵,对该多个源图像进行拼接,得到全景图像,包括:
根据该单应性矩阵,对该多个源图像进行拼接,得到拼接图像;
对该拼接图像进行融合处理,得到该全景图像。
可选地,该根据该单应性矩阵,对该多个源图像进行拼接,得到拼接图像,包括:
通过该单应性矩阵,将该多个源图像中像素点的坐标转换为该拼接图像中像素点的坐标;
将该多个源图像中像素点的像素值,赋值给像素值未知的该拼接图像中对应坐标的像素点,得到该拼接图像。
可选地,该对该拼接图像进行融合处理,得到该全景图像,包括:
采用多段融合算法,每次同时处理该拼接图像的两个图像数据;
直至该拼接图像的所有图像数据处理完成,得到该全景图像。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图3是本发明实施例提供的一种全景图像拼接方法的流程图。该方法由全景图像拼接装置执行,参见图3,该方法包括:
300、获取同一场景下的多个源图像。
本发明实施例中,该多个源图像可以通过图像采集设备对同一场景进行图像采集得到。例如,通过设置于同一场景下的多个图像采集设备,从不同的视角同时进行图像采集,得到多个源图像,并将该多个源图像实时发送给全景图像拼接装置,使得全景图像拼接装置可以获取到同一场景下的多个源图像。
需要说明的是,本发明实施例仅以该多个源图像通过多个图像采集设备采集得到为例进行说明,实际上,该多个源图像也可以由一个图像采集设备得到,例如该图像采集设备可以为多目全景摄像机,该图像采集设备可以从不同的视角采集同一场景下的多个源图像。本发明实施例对多个源图像的获取方式不做具体限定。
需要说明的是,本发明实施例是以图像采集设备进行图像采集后,将采集到的源图像实时发送给全景图像拼接装置,来执行后续的图像处理步骤为例进行说明,实际上,图像采集和图像处理可以由一个设备来执行,只要该设备同时具有图像采集设备的图像采集功能和全景图像拼接装置的图像处理功能即可。
301、将该多个源图像的数据类型从第一类型转换为第二类型,该第二类型所占用的字节数小于该第一类型所占用的字节数。
其中,第一类型可以为Float类型,第二类型可以为Half类型。
本发明实施例中,步骤300中获取到的多个源图像是RGB三值图,而每个值(R、G、B)都在0-255范围内,数据范围很小,再加上经过一定的缩放后数据范围会更小。相关技术在对RGB图像进行拼接计算时,往往直接使用Float类型数据做大量的计算,这样会带来大量的性能消耗,而且这种性能的消耗对结果的整体精度提升效果微乎其微。因此,为了减少性能的消耗,本发明实施例中,全景图像拼接装置可以将各个源图像的数据类型从Float类型转换成Half类型,将各个源图像的小数点后6位精度计算缩减至小数点后3位精度计算。
IEEE规定的浮点数表示法是一种科学计数法,用符号(正或负)、指数和尾数表示,底数被确定为2。也就说浮点数被表示为尾数乘以2的指数次方再带上符号。浮点型数据根据实际存储位数不一样,可以分为:
在一种可能实现方式中,全景图像拼接装置将Float类型的数据转换成为Half类型的计算步骤如下:
sign=((X>>16)&0x8000) 公式1-1
u=(X&0x7fffffff) 公式1-2
如果u>0x7f800000,那么Y=0x7fff。
如果,u>0x4777fefff,那么,Y=((X>>16)&0x8000)|0x7c00。
如果,u<0x32000001,那么,Y=((X>>16)&0x8000)|0x0000。
exponent=((u>>23)&0xff) 公式1-3
mantissa=(u&0x7fffff) 公式1-4
如果,exponent大于0x70,那么:
shift=13 公式1-5
exponent=exponent-0x70 公式1-6
如果,exponent小于等于0x70,那么:
shift=0x7e–exponent 公式1-7
mantissa|=0x800000 公式1-8
lsb=(1<<shift) 公式1-9
lsb_s1=(lsb>>1) 公式1-10
lsb_m1=(lsb-1) 公式1-11
remainder=(mantissa&lsb_m1) 公式1-12
mantissa>>=shift 公式1-13
Y=(sign|(exponent<<10)|mantissa) 公式1-14
其中,X为输入的Float类型数据,Y为输出的Half类型数据,其余变量都是中间计算变量。转换过程按上述公式的先后顺序依次执行。
需要说明的是,该步骤301为可选步骤,通过减小用于拼接计算的图像数据所占用的字节,可以减少计算量,加快全景图像拼接的速度。
302、对多个源图像进行特征点检测,获取该多个源图像的特征点。
本发明实施例中,全景图像拼接装置可以采用特征点检测算子,对步骤300中获取到的各个源图像进行特征点检测,从而获取各个源图像的特征点。目前常用的特征点检测算子有SIFT(Scale-invariant Feature Transform,尺度不变特征转换)、SURF(Speeded-Up Robust Features,稳定特征加速算法)或者ORB(Oriented FAST and Rotated Brief,面向快速旋转)等多种算子,这些算法各有各的优势,在不同的平台上有不一样的选择。不同算子的优势各不相同,例如,ORB对特征点的检测效果介于SIFT和SURF之间,但是其计算速度是SURF算法的10倍。
在一种可能实现方式中,全景图像拼接装置获取该多个源图像的特征点,包括:读取算子配置文件,该算子配置文件根据被选择的特征点检测算子生成;根据该算子配置文件中的特征点检测算子,对该多个源图像进行特征点检测,得到该多个源图像的特征点。
具体地,全景图像拼接装置可以提供根据用户的选择来配置特征点检测算子的功能。参见图4,提供了一种特征点检测算子的可选配置策略,具体可选配策略如下:全景图像拼接装置在实现全景拼接图像的过程中,会判断是否存在算子配置文件,也即是,以读取配置文件的方式去选择特征点检测算子;当不存在算子配置文件时,全景图像拼接装置可以遍历所有的特征点检测算子,将各个特征点检测算子全部执行一遍,然后输出各个特征点检测算子的评测数据,该评测数据包括性能指标、执行过程中所需要的内存空间和特征点检测到的个数等。在全景图像拼接装置向用户展示所有算子所需要的内存空间和性能指标等评测数据时,用户可以根据各个特征点检测算子的评测数据,结合自己的需求,选择特征点检测算子进行设置,全景图像拼接装置可以根据被用户选择的特征点检测算法,生成算子配置文件,用户可以通过相应操作触发全景图像拼接装置再次进行特征点检测,如读取算子配置文件,并根据算子配置文件中的特征点检测算法进行特征点检测。
需要说明的是,如果用户未设置任何特征点检测算子,考虑到性能优先原则,全景图像拼接装置可以默认根据ORB算子生成配置文件,当然,全景图像拼接装置也可以默认根据其他算子生成配置文件,本发明实施例对具体默认的算子种类或者类型不做具体限定。
通过采用用户可选配策略来选择特征点检测算子,这样,对于在不同场景下,用户可以根据现有的客观条件,选择是性能优先,还是精度优先的特征点检测算法。本发明提供的可选配置策略,可以使得上述全景拼接方案更加具有平台移植性。
需要说明的是,全景图像拼接装置可以仅针对该多个源图像中相邻源图像之间的重叠区域,执行该步骤302,也即是,对于每个源图像,全景图像拼接装置可以根据该源图像的重叠区域,对该源图像进行特征点检测,获取该重叠区域的特征点。
例如,全景图像拼接装置可以根据每个源图像的预设拼接顺序以及预设宽度,确定相邻源图像以及相邻源图像之间的重叠区域,对于两个相邻源图像中的任一源图像而言,如果预设拼接顺序为在该源图像的右边拼接另一源图像,则全景图像拼接装置可以将左边界距离该源图像的右边界预设宽度、右边界为该源图像的右边界、上边界为该源图像的上边界、下边界为该源图像的下边界的区域作为该源图像与该另一源图像之间的重叠区域(第一重叠区域);如果预设拼接顺序为在该源图像的左边拼接另一源图像,则全景图像拼接装置可以将右边界距离该源图像的左边界预设宽度、左边界为该源图像的左边界、上边界为该源图像的上边界、下边界为该源图像的下边界的区域作为该源图像与另一源图像之间的重叠区域(第二重叠区域)。
以3个源图像的拼接顺序从左向右为源图像1、源图像2和源图像3为例,对于源图像1和源图像2这两个相邻图像,全景图像拼接装置可以将源图像1中最右边的预设宽度范围(对应上述第一重叠区域)作为源图像1和源图像2之间的重叠区域,将源图像2中最左边的预设宽度范围(对应上述第二重叠区域)作为源图像2和源图像1之间的重叠区域。同理,对于源图像2和源图像3这两个相邻图像,全景图像拼接装置可以将源图像2中最右边的预设宽度范围作为源图像2和源图像3之间的重叠区域,将源图像3中最左边的预设宽度范围作为源图像3和源图像2之间的重叠区域。
303、从该多个源图像的特征点中,获取该每两个相邻源图像之间匹配的特征点对,得到特征点对集合。
本发明实施例中,当各个源图像的特征点被检测出来后,全景图像拼接装置可以对这些特征点进行匹配,以获取每两个相邻源图像之间匹配的特征点对,也即是相似度高的多对特征点。在一种可能实现方式中,以两个相邻源图像为源图像1和源图像2为例,全景图像拼接装置对源图像1和源图像2中特征点进行匹配的过程可以包括:
a、设定一个KNN(k-NearestNeighbor,最近邻)算法的阈值k。
本发明实施例中,全景图像拼接装置可以采用KNN算法,对图像进行特征点的初匹配,找到各个源图像可能匹配的特征点对。全景图像拼接装置可以设定一个KNN算法的阈值k,该阈值k属于经验值,可以根据多次实验结果进行调试得到,例如该阈值k可以为0.7。
b、利用KNN算法,确定源图像1和源图像2中初始匹配的特征点对。
其中,KNN算法是利用特征向量的欧氏距离来度量两个图像的相似程度。图像匹配本质上是特征点的匹配,图像由多个特征点组成,每个特征点可以表示成一个特征向量,也即是,图像可以表示成多个特征向量的组成。因此,如果两个图像具有相同的特征向量越多,则可以认为这两个图像的相似程度越高。而特征向量的相似程度通常是用它们之间的欧氏距离来衡量,欧式距离越小,则可以认为越相似。
相应地,对于步骤302中得到的每个特征点,全景图像拼接装置在利用KNN算法进行特征点匹配时,可以按照每个特征点的大小和方向信息,生成每个特征点对应的特征向量,然后利用KNN算法,获取特征点之间的匹配关系。以源图像1的特征点1和源图像2的特征点为例,如果特征点1的特征向量与特征点2的特征向量之间的欧氏距离小于阈值,则认为特征点1和特征点2匹配,特征点1和特征点2可以作为初始匹配的特征点对。
具体地,对于源图像1中的每个特征点,全景图像拼接装置可以对该特征点1与源图像2中的所有特征点分别求欧氏距离。以特征点1为例,全景图像拼接装置可以对该特征点1与源图像2中的n个特征点分别求欧氏距离,并按照从大到小的顺序对距离进行排序,如记为d1,d2,……dn。进而,根据欧氏距离的排序结果,确定源图像2中与特征点1的欧式距离最大的特征点,如特征点2,并将该特征点1和特征点2作为初始匹配的特征点对。通过该过程,全景图像拼接装置可以获取到源图像1和源图像2中所有初始匹配的特征点对。
c、根据阈值k,对初始匹配的特征点对进行筛选。
上述步骤b得到的初始匹配的特征点对往往存在错误匹配或是一对多的关系,因此,全景图像拼接装置还需对该初始匹配的特征点对进一步进行匹配,剔除错误匹配的特征点对,确定点与点之间的一对一关系,保证找到正确匹配的特征点对,
具体地,全景图像拼接装置可以利用最邻近点对应的欧式距离与次邻近点对应的欧式距离之间的比值,从初始匹配的特征点对中确定正确匹配的特征点对。对于任一特征点而言,最近邻点和次近邻点可以根据与该特征点的欧式距离来确定,以源图像1中的特征点1为例,如果源图像2中各个特征点与该特征点1的欧式距离按照从大到小的顺序为d1,d2,……dn,则该源图像1的最邻近点则是d1对应的源图像2中的特征点,该源图像1的次邻近点则是d2对应的源图像2中的特征点。
其中,用欧式距离的比值对初始匹配的特征点对进行筛选的过程包括:获取一个特征点到最邻近点的欧式距离以及该特征点到次邻近点的欧式距离,比较这两个欧式距离的比值与阈值k的关系,如果小于阈值k,则认为该特征点与其最邻近点为正确匹配的特征点对。以特征点1与源图像2中最近邻点(如特征点2)的欧氏距离为d1,特征点1与源图像2中次近邻点的欧氏距离为d2为例,如果d1/d2<k,则认为该特征点1和特征点2为正确匹配的特征点对,并保留该特征点1和特征点2中;如果d1/d2>k,则认为该特征点1和特征点2为错误匹配的特征点对,并删除该特征点1和特征点2。通过上述过程,可以得到正确匹配的特征点对。
d、根据预设拟合方程,对筛选后的特征点对进一步筛选,得到特征点对集合。
本发明实施例中,全景图像拼接装置还可以对特征点对集合中的特征点对进一步进行筛选,具体地,全景图像拼接装置可以对这些特征点对做一次线程拟合,剔除那些不符合拟合方程的特征点对。其中,拟合方程是由经验得到,也即是,根据之前多次实验后匹配得到的特征点对计算得到的拟合方程。
上述步骤a至d是以获取两个相邻源图像之间的匹配点对为例进行说明,对于该多个源图像中其他的相邻源图像,可以通过同样的方式,获取到该多个源图像中每两个相邻源图像之间匹配的特征点对。例如,待拼接的多个源图像为源图像1、源图像2和源图像3,源图像1和源图像2为相邻源图像,源图像2和源图像3为相邻源图像为例,全景图像拼接装置可以通过上述步骤a至d,获取源图像1和源图像2之间匹配的特征点对以及源图像2和源图像3之间匹配的特征点对。
通过先利用欧式距离的比值,对初始匹配的特征点对进行筛选,剔除错误的特征点对,然后再利用拟合方程进行进一步筛选,将筛选后的特征点对组成特征点对集合。
需要说明的是,上述步骤302至步骤303是获取特征点对集合的一种可能实现方式,该特征点对集合包括对同一场景进行图像采集得到的多个源图像中每两个相邻源图像之间匹配的特征点对。通过对源图像进行特征点检测后,获取各个源图像中相邻源图像之间匹配的特征点对,进而可以根据匹配的特征点对获取用于表示相邻源图像之间坐标映射关系的单应性矩阵。
需要说明的是,全景图像拼接装置可以仅针对该多个源图像中相邻源图像之间的重叠区域,执行该步骤303,也即是,对于每两个相邻源图像,全景图像拼接装置可以根据这两个相邻源图像之间的重叠区域的特征点,获取这两个相邻源图像的重叠区域之间匹配的特征点对。以源图像1和源图像2这两个相邻图像为例,全景图像拼接装置可以从第一重叠区域和第二重叠区域的特征点中,获取第一重叠区域和第二重叠区域之间匹配的特征点对,得到特征点对集合。其中,第一重叠区域为源图像1中与源图像的重叠区域,第二重叠区域为源图像2中与源图像的重叠区域。
304、根据该特征点对集合,获取该多个源图像对应的单应性矩阵,该单应性矩阵用于表示该每两个相邻源图像的像素点之间的坐标映射关系。
本发明实施例中,为了实现相邻源图像的拼接,全景图像拼接装置需要确定这些相邻源图像之间的坐标映射关系(投影变换模型),该坐标映射关系可以用单应性矩阵来表示。参见图5,提供了一种坐标映射关系的示意图,图5中的x1为拼接前的图像(源图像)的坐标点集合;x2是拼接后的图像(拼接图像)的坐标点集合;H是单应性矩阵;H11、H12、H21、H22表示尺度和旋转量;H13、H23表示水平和垂直方向的位移;H31、H32表示水平和垂直方向的变形量;H33默认为1。其中,单应性矩阵H是一个3х3的矩阵,通过图像之间的单应性矩阵,可以实现图像的配准。
在一种可能实现方式中,全景图像拼接装置可以使用RANSAC算法来求解该单应性矩阵,使用RANSAC算法求解单应性矩阵的过程是一个反复迭代的过程。具体地,单应性矩阵H的计算过程可以包括:从该特征点对集合中,随机选择预设数量的特征点对;将该预设数量的特征点对作为RANSAC算法的初始迭代参数,获取候选单应性矩阵;遍历该特征点对集合中剩余特征点对,获取内点数,该内点数为符合该候选单应性矩阵所表示的坐标映射关系的特征点对的数量;重复上述选择特征点对并获取候选单应性矩阵的过程,直至该特征点对集合中所有特征点对全部选择完后,将内点数最多的候选单应性矩阵作为该单应性矩阵。
例如,先随机选择4个匹配的特征点对,利用这些匹配的特征点对进行估计,得到一个单应性矩阵H0,再遍历剩余匹配的特征点对,验证一共有多少个特征点对符合该单应性矩阵H0所代表的坐标映射关系,这个数值称为内点数。重复以上过程足够多的次数,选择内点数最多的那个坐标映射关系对应的单应性矩阵H作为最终的结果。
305、根据该单应性矩阵,对该多个源图像进行拼接,得到拼接图像。
在一种可能实现方式中,全景图像拼接装置获取拼接图像的过程可以包括:通过该单应性矩阵,将该多个源图像中像素点的坐标转换为该拼接图像中像素点的坐标;将该多个源图像中像素点的像素值,赋值给像素值未知的该拼接图像中对应坐标的像素点,得到该拼接图像。
步骤301中获取的多个源图像是同一场景在不同坐标系下的二维投影,直接对该多个源图像进行拼接无法满足视觉一致性,所以需要将该多个源图像分别投影到同一个坐标系下,得到拼接图像,这样能够获得较好的视觉效果。因此,全景图像拼接装置可以将各个源图像中像素点的坐标转换为新的坐标,将各个源图像映射到同一坐标系下,并将各个源图像中像素点的像素值赋值给拼接图像中坐标对应的像素点,从而得到拼接图像。
在完成图像配准和拼接后,需要将拼接图像融合成一个无缝平滑的图像,也即是,要在拼接图像中看不到图像之间明显的拼接缝隙,具体的融合过程参见后续步骤306。
306、对拼接图像进行图像融合,得到全景图像。
其中,图像融合是指在完成图像的配准和拼接后,对拼接图像的拼接缝隙进行平滑处理,让拼接缝隙自然过渡。图像拼接缝隙是从一个图像的图像区域过渡到另一个图像的图像区域时,由于图像中的某些相关特性发生了跃变而产生。图像融合就是为了消除拼接图像的拼接缝隙,实现图像之间的无缝拼接,使得两个图像能真正融合成一个图像,也即全景图像。
常见的图像融合方法包括基于图像灰度的融合算法、基于颜色空间变换的融合算法、基于变换域的融合算法等。在基于图像灰度的融合算法中,常采用直接平均融合法、加权平均法、中值滤波法以及多段融合法。经实验测试得到,直接平均融合法、加权平均法、中值滤波法得到的图像,都会存在较为明显的拼接痕迹。由于图像融合算法的选择,对全景图像的展示效果有直接的影响,为了达到较好的融合效果,因此,本发明实施例可以采用多段融合算法,对拼接图像进行图像融合,最后获得整个场景的全景图像。多段融合法是一种融合效果比较好的融合算法,利用多段融合法得到的全景图像既清晰又光滑无缝,能避免缝隙问题和叠影现象。
在一种可能实现方式中,针对步骤301中将源图像的数据类型从字节数大的第一类型转换为字节数小的第二类型,在该步骤306中,全景图像拼接装置在采用多段融合算法进行图像融合的过程中,可以每次同时处理该拼接图像的两个图像数据;直至该拼接图像的所有图像数据处理完成,得到该全景图像。由于每次处理两个图像数据,可以减少多段融合法的计算量。
例如,全景图像拼接装置可以通过CPU(Central Processing Unit,中央处理器)和GPU(Graphics Processing Unit,图形处理器)并行计算的方式来获取全景图像。参见图6,提供了一种GPU内存划分的原理示意图,GPU在划分Block(块)时,会以偶数为单位划分,如图6所示,左边图中虚线内所示的数据块是对GPU划分的Block,其中,数据(像素点)1和数据2为每个Block块中的两个数据,该两个数据由一个线程处理,如图6中的右图所示,每个小方块代表一个线程,每个Block块可以对应多个线程,由该多个线程对该Block块中的数据进行处理。
参见图7,提供了一种GPU计算的原理示意图,如图7所示,在GPU的每个线程执行融合操作的过程中,由于处理的数据是Half类型,即2个字节,因此每个线程在执行融合操作的过程中,会一次同时处理2个数据,如图7的左边图中的数据1和数据2。
由于本发明会将1个图像中的相邻2个像素点合并在一起进行融合操作,相比于相关技术中处理Float类型的数据,即4个字节,本发明的计算量较小,相关技术处理1个图像的计算量,可以用于本发明处理2个图像,这样在计算能力一般的硬件平台上也可以执行本发明实施例提供的融合算法。
在一种可能实现方式中,全景图像拼接装置的CPU执行融合操作的过程可以包括下述步骤a至d:
a、对图像的宽高进行对齐操作。
考虑到图像的宽高可能是奇数,不能实现2个数据一起执行融合操作,所以先要对宽度或高度为奇数的图像进行补零操作,使得图像的宽高都是2的倍数。
b、GPU中每个线程以每2个的形式读取内存中的图像数据。
每个线程在读取内存中的图像数据时,是2个2个的形式读取图像数据,即2个Half类型的数据。
c、将2个图像数据进行合并,得到一个图像数据。
每个线程读取的2个数据所占用的内存均为2个字节,将这2个数据合并在一起,就变成了一个4字节的数据。以图8中的像素点1和2为例,每个线程将图7中的像素点1和2合并在一起,变成一个4字节的数据进行计算,高8位是图7中最左边的像素点1,低8位是图7中最左边的像素点2,经过多段融合法的计算后,得到像素点3。像素点3只是中间计算结果,在完成融合操作后,每个线程可以再次把高8位和低8位分开,得到图7中的像素点5和6。
需要说明的是,上述步骤305至步骤306是根据该单应性矩阵,对该多个源图像进行拼接,得到该全景图像的一种可能实现方式。由于实时获取单应性矩阵来表示源图像之间的坐标映射关系,即使用于采集源图像的图像采集设备发生了更换,也不会影响图像拼接的实现,增加了方案的移植扩展性。
307、将该全景图像的数据类型从该第二类型转换为该第一类型。
本发明实施例中,步骤306中得到的全景图像的数据类型为Half类型,全景图像拼接装置可以将Half类型的数据转换成为Float类型的数据后进行输出。在一种可能实现方式中,全景图像拼接装置将Half类型的数据转换成为Float类型的数据的计算步骤如下:
sign=((X>>15)&1) 公式2-1
exponent=((X>>10)&0x1f) 公式2-2
mantissa=((X&0x3ff)<<13) 公式2-3
如果exponent等于0x1f,那么:
mantissa=(mantissa?(sign=0,0x7fffff):0) 公式2-4
exponent=0xff 公式2-5
如果exponent不等于0,那么:
先设置,exponent=0x71,然后循环执行以下公式(公式2-6,公式2-7,公式2-8),直到变量msb不等于0为止。最后设置mantissa=mantissa&0x7fffff
msb=(mantissa&0x400000) 公式2-6
mantissa=2*mantissa 公式2-7
exponent=exponent-1 公式2-8
否则,exponent=exponent+0x70 公式2-9
然后,计算最后的输出值Y:
Y=((sign<<31)|(exponent<<23)|mantissa) 公式2-10
其中,X为输入的Half类型数据,Y为输出的Float类型数据,其余变量都是中间计算变量。转换过程按上述公式的先后顺序依次执行。
需要说明的是,该步骤307为可选步骤,通过在完成全景图像拼接后,将全景图像的数据类型转换为源图像的数据类型,可以便于全景图像用于其他的处理过程。
参见图8,提供了一种数据类型转换的示意图,如图8所示,源图像的数据类型为Float类型,在进行全景图像拼接之前,将源图像的Float类型转换成Half类型,在进行全景图像拼接时使用Half类型的数据进行计算,在完成全景图像拼接后,再将Half类型转换成Float类型,数据结果以Float类型输出。
通过将源图像的Float类型转换成Half类型,在GPU进行全景图像拼接计算时充分利用Half数据类型占用字节少的特性,将相邻两个像素点同时计算,节省了数据的计算量,大大提升了计算带宽和计算吞吐量。在完成全景图像拼接后,再将Half类型转换成Float类型,以方便其他模块使用。
上述步骤300至步骤307是实现全景图像拼接的具体过程,从整体上来看,本发明提供的全景图像拼接方案是充分利用硬件资源,采用一种新的处理方式来实现全景拼接。参见图9,提供了一种异步实现全景图像拼接流程的示意图,在图9中以分模块的方式介绍具体的实现过程。如图9所示,全景图像拼接装置可以包括CPU(Central Processing Unit,中央处理器)和GPU(Graphics Processing Unit,图形处理器),其中,GPU又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。CPU是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
在本发明实施例中,CPU和GPU以异步的方式实现全景图像的拼接,其中,图像采集模块用于执行上述步骤300,完成步骤所需的时间为T0;全景拼接初始化模块用于在全景图像拼接装置运行时进行初始化操作(包括内存的申请),还用于执行上述步骤302中读取算法配置文件中的特征点检测算子,完成步骤所需的时间为T1;第一数据格式转换模块用于执行上述步骤301,完成步骤所需的时间为T2;特征点检测模块用于执行上述步骤302,完成步骤所需的时间为T3;特征点匹配模块用于执行上述步骤303,完成步骤所需的时间为T4;图像拼接模块用于执行上述步骤304,完成步骤所需的时间为T5;图像融合模块用于执行上述步骤305,完成步骤所需的时间为T6;第二数据格式转换模块用于执行上述步骤306,完成步骤所需的时间为T7。
上述各个模块由GPU和CPU异步实现,也即是,在CPU实现图像采集模块、全景拼接初始化模块、第一数据格式转换模块和第二数据格式转换模块等模块的功能时,GPU同时实现特征点检测模块、特征点匹配模块、图像拼接模块以及图像融合模块等四个模块的功能。相比于CPU实现上述特征点检测模块、特征点匹配模块、图像拼接模块以及图像融合模块等四个模块的功能时,单路(一个拼接任务)的完成时间为(T3+T4+T5+T6)ms,本发明GPU和CPU异步实现上述四个模块的功能时,单路的完成时间小于(T3+T4+T5+T6)ms,当GPU和CPU异步实现上述所有模块的功能时,单路的完成时间大于(T0+T1+T2+T7)ms,小于(T0+T1+T2+T3+T4+T5+T6+T7)ms。当实现多路(多个拼接任务)时,由于GPU是并行实现,那么,多路完成特征点检测、特征点匹配、图像拼接以及图像融合等四个模块所需要的时间,几乎等于1路的(T3+T4+T5+T6)ms,而不是N*(T3+T4+T5+T6)ms。
参见图10,提供了一种同步实现全景图像拼接的示意图,如9所示,CPU以同步的方式实现全景图像的拼接,图10中所有模块的功能均由CPU实现,这样完成一路拼接任务的时间等于(T0+T1+T2+T3+T4+T5+T6+T7)ms。那么,如果处理多路拼接任务,由于CPU在实现任务时是按轮询的方式进行,所需时间基本就是N倍的(T0+T1+T2+T3+T4+T5+T6+T7)ms。
可见,相比于同步实现全景图像拼接的方式,异步实现全景图像拼接的方式可以大大减少拼接时间,不仅避免了传统算法中,繁琐查表的过程,还可以实现多路多张多通道1080p图像的实时拼接任务,而且节省了存储空间和带宽。
本发明实施例提供的全景图像拼接方案可以用于在硬件资源有限的设备平台(如嵌入式设备)上,做智能全景拼接,例如,该嵌入式设备可以是车载设备,通过上述全景图像拼接方案,可以实现车载全景图像拼接,得到车身周围的全景图像,便于驾驶员了解周围环境,从而控制车辆行驶。例如,本发明实施例提供的全景图像拼接方案可以在Hisi 3536嵌入式芯片上,轻松做到同时执行多路多张(如2路3张)1080p分辨率图像的拼接任务。当然,上述Hisi 3536嵌入式芯片仅是一个示例,实际上,上述全景图像拼接方案还可以适用于其他种类的嵌入式芯片,本发明实施例对此不做限定。
本发明实施例提供的方法,通过在进行全景图像拼接时,实时获取用于表示源图像之间坐标映射关系的单应性矩阵,进而根据单应性矩阵实现全景图像的拼接。由于无需进行查表过程,避免了需要较大的内存来存放拼接映射表的问题,降低了对内存的要求,适用性更好。
另外,由于实时获取源图像之间的坐标映射关系,即使采集源图像的图像采集设备发生了更换,也不会影响图像拼接的实现,大大增加了方案的可移植性和可扩展性。
此外,由于无需查表,也即无需与内存交互来查询和读取数据,对于那些对内存读取时钟周期远远大于计算时钟周期的平台来说,大大减少了性能的消耗。
图11是本发明实施例提供的一种全景图像拼接装置的结构示意图。参照图11,该装置包括:
获取模块1101,用于获取特征点对集合,该特征点对集合包括对同一场景进行图像采集得到的多个源图像中每两个相邻源图像之间匹配的特征点对;
该获取模块1101,还用于根据该特征点对集合,获取该多个源图像对应的单应性矩阵,该单应性矩阵用于表示该每两个相邻源图像的像素点之间的坐标映射关系;
拼接模块1102,用于根据该单应性矩阵,对该多个源图像进行拼接,得到全景图像。
可选地,该获取模块1101用于:
从该特征点对集合中,随机选择预设数量的特征点对;
将该预设数量的特征点对作为RANSAC算法的初始迭代参数,获取候选单应性矩阵;
遍历该特征点对集合中剩余特征点对,获取内点数,该内点数为符合该候选单应性矩阵所表示的坐标映射关系的特征点对的数量;
重复上述选择特征点对并获取候选单应性矩阵的过程,直至该特征点对集合中所有特征点对全部选择完后,将内点数最多的候选单应性矩阵作为该单应性矩阵。
可选地,该获取模块1101用于:
根据算子配置文件中的特征点检测算子,对该多个源图像进行特征点检测,获取该多个源图像的特征点,该算子配置文件根据被选择的特征点检测算子生成;
从该多个源图像的特征点中,获取该每两个相邻源图像之间匹配的特征点对,得到该特征点对集合。
可选地,该获取模块1101还用于:
遍历多个特征点检测算子;
输出该多个特征点检测算子的评测数据,该评测数据包括性能指标、执行过程中所需要的内存空间和特征点检测到的个数;
根据被选择的特征点检测算子,生成该算子配置文件。
可选地,参见图12,该装置还包括:
转换模块1103,用于将该多个源图像的数据类型从第一类型转换为第二类型,该第二类型所占用的字节数小于该第一类型所占用的字节数。
可选地,该转换模块1103还用于将该全景图像的数据类型从该第二类型转换为该第一类型。
可选地,该拼接模块1102用于:
根据该单应性矩阵,对该多个源图像进行拼接,得到拼接图像;
对该拼接图像进行融合处理,得到该全景图像。
可选地,该拼接模块1102用于:
通过该单应性矩阵,将该多个源图像中像素点的坐标转换为该拼接图像中像素点的坐标;
将该多个源图像中像素点的像素值,赋值给像素值未知的该拼接图像中对应坐标的像素点,得到该拼接图像。
可选地,该拼接模块1102用于:
采用多段融合算法,每次同时处理该拼接图像的两个图像数据;
直至该拼接图像的所有图像数据处理完成,得到该全景图像。
本发明实施例提供的装置,通过在进行全景图像拼接时,实时获取用于表示源图像之间坐标映射关系的单应性矩阵,进而根据单应性矩阵实现全景图像的拼接。由于无需进行查表过程,避免了需要较大的内存来存放拼接映射表的问题,降低了对内存的要求,适用性更好。另外,由于实时获取源图像之间的坐标映射关系,即使采集源图像的图像采集设备发生了更换,也不会影响图像拼接的实现,大大增加了方案的可移植性和可扩展性。此外,由于无需查表,也即无需与内存交互来查询和读取数据,对于那些对内存读取时钟周期远远大于计算时钟周期的平台来说,大大减少了性能的消耗。
需要说明的是:上述实施例提供的全景图像拼接装置在全景图像拼接时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的全景图像拼接装置与全景图像拼接方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图13是本发明实施例提供的一种计算机设备1300的结构示意图,该计算机设备1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(CentralProcessing Units,CPU)1301和一个或一个以上的存储器1302,其中,该存储器1302中存储有至少一条指令,该至少一条指令由该处理器1301加载并执行以实现上述各个方法实施例提供的方法。当然,该计算机设备1300还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备1300还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种存储有至少一条指令的计算机可读存储介质,例如存储有至少一条指令的存储器,上述至少一条指令被处理器执行时实现上述实施例中的全景图像拼接方法。例如,该计算机可读存储介质可以是只读内存(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,上述程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种全景图像拼接方法,其特征在于,所述方法包括:
获取特征点对集合,所述特征点对集合包括对同一场景进行图像采集得到的多个源图像中每两个相邻源图像之间匹配的特征点对;
根据所述特征点对集合,获取所述多个源图像对应的单应性矩阵,所述单应性矩阵用于表示所述每两个相邻源图像的像素点之间的坐标映射关系;
根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像。
2.根据权利要求1所述的方法,其特征在于,所述根据所述特征点对集合,获取所述多个源图像对应的单应性矩阵,包括:
从所述特征点对集合中,随机选择预设数量的特征点对;
将所述预设数量的特征点对作为随机采样一致RANSAC算法的初始迭代参数,获取候选单应性矩阵;
遍历所述特征点对集合中剩余特征点对,获取内点数,所述内点数为符合所述候选单应性矩阵所表示的坐标映射关系的特征点对的数量;
重复上述选择特征点对并获取候选单应性矩阵的过程,直至所述特征点对集合中所有特征点对全部选择完后,将内点数最多的候选单应性矩阵作为所述单应性矩阵。
3.根据权利要求1所述的方法,其特征在于,所述获取特征点对集合,包括:
根据算子配置文件中的特征点检测算子,对所述多个源图像进行特征点检测,获取所述多个源图像的特征点,所述算子配置文件根据被选择的特征点检测算子生成;
从所述多个源图像的特征点中,获取所述每两个相邻源图像之间匹配的特征点对,得到所述特征点对集合。
4.根据权利要求3所述的方法,其特征在于,所述算子配置文件的生成过程包括:
遍历多个特征点检测算子;
输出所述多个特征点检测算子的评测数据,所述评测数据包括性能指标、执行过程中所需要的内存空间和特征点检测到的个数;
根据被选择的特征点检测算子,生成所述算子配置文件。
5.根据权利要求1所述的方法,其特征在于,所述获取多个源图像之间匹配的特征点对之前,所述方法还包括:
将所述多个源图像的数据类型从第一类型转换为第二类型,所述第二类型所占用的字节数小于所述第一类型所占用的字节数。
6.根据权利要求5所述的方法,其特征在于,所述根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像之后,所述方法还包括:
将所述全景图像的数据类型从所述第二类型转换为所述第一类型。
7.根据权利要求1所述的方法,其特征在于,所述根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像,包括:
根据所述单应性矩阵,对所述多个源图像进行拼接,得到拼接图像;
对所述拼接图像进行融合处理,得到所述全景图像。
8.根据权利要求7所述的方法,其特征在于,所述根据所述单应性矩阵,对所述多个源图像进行拼接,得到拼接图像,包括:
通过所述单应性矩阵,将所述多个源图像中像素点的坐标转换为所述拼接图像中像素点的坐标;
将所述多个源图像中像素点的像素值,赋值给像素值未知的所述拼接图像中对应坐标的像素点,得到所述拼接图像。
9.根据权利要求7所述的方法,其特征在于,所述对所述拼接图像进行融合处理,得到所述全景图像,包括:
采用多段融合算法,每次同时处理所述拼接图像的两个图像数据;
直至所述拼接图像的所有图像数据处理完成,得到所述全景图像。
10.一种全景图像拼接装置,其特征在于,所述装置包括:
获取模块,用于获取特征点对集合,所述特征点对集合包括对同一场景进行图像采集得到的多个源图像中每两个相邻源图像之间匹配的特征点对;
所述获取模块,还用于根据所述特征点对集合,获取所述多个源图像对应的单应性矩阵,所述单应性矩阵用于表示所述每两个相邻源图像的像素点之间的坐标映射关系;
拼接模块,用于根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像。
11.根据权利要求10所述的装置,其特征在于,所述获取模块用于:
从所述特征点对集合中,随机选择预设数量的特征点对;
将所述预设数量的特征点对作为随机采样一致RANSAC算法的初始迭代参数,获取候选单应性矩阵;
遍历所述特征点对集合中剩余特征点对,获取内点数,所述内点数为符合所述候选单应性矩阵所表示的坐标映射关系的特征点对的数量;
重复上述选择特征点对并获取候选单应性矩阵的过程,直至所述特征点对集合中所有特征点对全部选择完后,将内点数最多的候选单应性矩阵作为所述单应性矩阵。
12.根据权利要求10所述的装置,其特征在于,所述获取模块用于:
根据算子配置文件中的特征点检测算子,对所述多个源图像进行特征点检测,获取所述多个源图像的特征点,所述算子配置文件根据被选择的特征点检测算子生成;
从所述多个源图像的特征点中,获取所述每两个相邻源图像之间匹配的特征点对,得到所述特征点对集合。
13.根据权利要求12所述的装置,其特征在于,所述获取模块还用于:
遍历多个特征点检测算子;
输出所述多个特征点检测算子的评测数据,所述评测数据包括性能指标、执行过程中所需要的内存空间和特征点检测到的个数;
根据被选择的特征点检测算子,生成所述算子配置文件。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
转换模块,用于将所述多个源图像的数据类型从第一类型转换为第二类型,所述第二类型所占用的字节数小于所述第一类型所占用的字节数。
15.根据权利要求14所述的装置,其特征在于,所述转换模块还用于将所述全景图像的数据类型从所述第二类型转换为所述第一类型。
16.根据权利要求10所述的装置,其特征在于,所述拼接模块用于:
根据所述单应性矩阵,对所述多个源图像进行拼接,得到拼接图像;
对所述拼接图像进行融合处理,得到所述全景图像。
17.根据权利要求16所述的装置,其特征在于,所述拼接模块用于:
通过所述单应性矩阵,将所述多个源图像中像素点的坐标转换为所述拼接图像中像素点的坐标;
将所述多个源图像中像素点的像素值,赋值给像素值未知的所述拼接图像中对应坐标的像素点,得到所述拼接图像。
18.根据权利要求16所述的装置,其特征在于,所述拼接模块用于:
采用多段融合算法,每次同时处理所述拼接图像的两个图像数据;
直至所述拼接图像的所有图像数据处理完成,得到所述全景图像。
19.一种全景图像拼接系统,其特征在于,所述全景图像拼接系统包括多个图像采集设备和计算机设备:
所述多个图像采集设备用于对同一场景进行图像采集,得到多个源图像;
所述计算机设备用于获取特征点对集合,所述特征点对集合包括所述多个源图像中每两个相邻源图像之间匹配的特征点对;
所述计算机设备还用于根据所述特征点对集合,获取所述多个源图像对应的单应性矩阵,所述单应性矩阵用于表示所述每两个相邻源图像的像素点之间的坐标映射关系;
所述计算机设备还用于根据所述单应性矩阵,对所述多个源图像进行拼接,得到全景图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810615785.1A CN110610457A (zh) | 2018-06-14 | 2018-06-14 | 全景图像拼接方法、装置以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810615785.1A CN110610457A (zh) | 2018-06-14 | 2018-06-14 | 全景图像拼接方法、装置以及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110610457A true CN110610457A (zh) | 2019-12-24 |
Family
ID=68887761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810615785.1A Pending CN110610457A (zh) | 2018-06-14 | 2018-06-14 | 全景图像拼接方法、装置以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110610457A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070674A (zh) * | 2020-09-04 | 2020-12-11 | 北京伟杰东博信息科技有限公司 | 一种图像合成方法及装置 |
CN112637505A (zh) * | 2020-12-25 | 2021-04-09 | 江西裕丰智能农业科技有限公司 | 一种720°全景图像、视频拼接方法 |
CN112712518A (zh) * | 2021-01-13 | 2021-04-27 | 中国农业大学 | 鱼类计数方法、装置、电子设备及存储介质 |
CN113066012A (zh) * | 2021-04-23 | 2021-07-02 | 深圳壹账通智能科技有限公司 | 场景图像的确认方法、装置、设备及存储介质 |
CN113781299A (zh) * | 2021-08-16 | 2021-12-10 | 兰州大学 | 一种基于改进ransac算法的多图像协同拼接方法 |
WO2023098045A1 (zh) * | 2021-12-02 | 2023-06-08 | 上海闻泰信息技术有限公司 | 图像对齐方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105144231A (zh) * | 2013-02-27 | 2015-12-09 | 汤姆逊许可公司 | 选择图像动态范围转换算子的方法和设备 |
CN106952225A (zh) * | 2017-02-15 | 2017-07-14 | 山东科技大学 | 一种面向森林防火的全景拼接方法 |
CN107852466A (zh) * | 2016-05-13 | 2018-03-27 | 深圳市赛亿科技开发有限公司 | 一种实现全景图像拼接的方法及系统 |
CN108009593A (zh) * | 2017-12-15 | 2018-05-08 | 清华大学 | 一种迁移学习最优算法选取方法及系统 |
CN108038822A (zh) * | 2017-11-23 | 2018-05-15 | 极翼机器人(上海)有限公司 | 一种手机云台全景照片拼接方法 |
-
2018
- 2018-06-14 CN CN201810615785.1A patent/CN110610457A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105144231A (zh) * | 2013-02-27 | 2015-12-09 | 汤姆逊许可公司 | 选择图像动态范围转换算子的方法和设备 |
CN107852466A (zh) * | 2016-05-13 | 2018-03-27 | 深圳市赛亿科技开发有限公司 | 一种实现全景图像拼接的方法及系统 |
CN106952225A (zh) * | 2017-02-15 | 2017-07-14 | 山东科技大学 | 一种面向森林防火的全景拼接方法 |
CN108038822A (zh) * | 2017-11-23 | 2018-05-15 | 极翼机器人(上海)有限公司 | 一种手机云台全景照片拼接方法 |
CN108009593A (zh) * | 2017-12-15 | 2018-05-08 | 清华大学 | 一种迁移学习最优算法选取方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070674A (zh) * | 2020-09-04 | 2020-12-11 | 北京伟杰东博信息科技有限公司 | 一种图像合成方法及装置 |
CN112070674B (zh) * | 2020-09-04 | 2021-11-02 | 北京康吉森技术有限公司 | 一种图像合成方法及装置 |
CN112637505A (zh) * | 2020-12-25 | 2021-04-09 | 江西裕丰智能农业科技有限公司 | 一种720°全景图像、视频拼接方法 |
CN112712518A (zh) * | 2021-01-13 | 2021-04-27 | 中国农业大学 | 鱼类计数方法、装置、电子设备及存储介质 |
CN112712518B (zh) * | 2021-01-13 | 2024-01-09 | 中国农业大学 | 鱼类计数方法、装置、电子设备及存储介质 |
CN113066012A (zh) * | 2021-04-23 | 2021-07-02 | 深圳壹账通智能科技有限公司 | 场景图像的确认方法、装置、设备及存储介质 |
CN113066012B (zh) * | 2021-04-23 | 2024-04-09 | 深圳壹账通智能科技有限公司 | 场景图像的确认方法、装置、设备及存储介质 |
CN113781299A (zh) * | 2021-08-16 | 2021-12-10 | 兰州大学 | 一种基于改进ransac算法的多图像协同拼接方法 |
CN113781299B (zh) * | 2021-08-16 | 2023-08-25 | 兰州大学 | 一种基于改进ransac算法的多图像协同拼接方法 |
WO2023098045A1 (zh) * | 2021-12-02 | 2023-06-08 | 上海闻泰信息技术有限公司 | 图像对齐方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110610457A (zh) | 全景图像拼接方法、装置以及系统 | |
US10593014B2 (en) | Image processing apparatus, image processing system, image capturing system, image processing method | |
US10726580B2 (en) | Method and device for calibration | |
TWI637355B (zh) | 紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法 | |
JP6657214B2 (ja) | 画像ベースの深さ検知システムの精度測定 | |
US11308655B2 (en) | Image synthesis method and apparatus | |
CN101553847B (zh) | 用于在对象空间中执行用户定义剪辑的方法和装置 | |
WO2019082797A1 (ja) | 再構成方法および再構成装置 | |
JP2020008972A (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN106488215A (zh) | 图像处理方法和设备 | |
CN108460794B (zh) | 一种双目立体红外显著目标检测方法及系统 | |
Werner et al. | Hardware implementation of a full HD real-time disparity estimation algorithm | |
KR20200006001A (ko) | 증강 현실 방법 및 장치 | |
Chen et al. | Salbinet360: Saliency prediction on 360 images with local-global bifurcated deep network | |
Shen et al. | Distortion-tolerant monocular depth estimation on omnidirectional images using dual-cubemap | |
CN111524086A (zh) | 运动物体检测装置、运动物体检测方法、存储介质 | |
Chang et al. | A pixel-based depth estimation algorithm and its hardware implementation for 4-D light field data | |
US10341683B1 (en) | Apparatus and method to reduce an amount of coordinate data representing an object taken by an imaging device in a three dimensional space | |
EP4064193A1 (en) | Real-time omnidirectional stereo matching using multi-view fisheye lenses | |
JP2020009185A (ja) | 画像処理装置、画像処理方法、プログラム | |
US11257235B2 (en) | Efficient sub-pixel disparity estimation for all sub-aperture images from densely sampled light field cameras | |
KR20220133766A (ko) | 멀티뷰 어안 렌즈들을 이용한 실시간 전방위 스테레오 매칭 방법 및 그 시스템 | |
US20220224813A1 (en) | Method of Controlling a Portable Device and a Portable Device | |
JP2020166652A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP2019046378A (ja) | 画像処理装置、画像処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |