CN113469880A - 图像拼接方法及装置、存储介质及电子设备 - Google Patents
图像拼接方法及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN113469880A CN113469880A CN202110597189.7A CN202110597189A CN113469880A CN 113469880 A CN113469880 A CN 113469880A CN 202110597189 A CN202110597189 A CN 202110597189A CN 113469880 A CN113469880 A CN 113469880A
- Authority
- CN
- China
- Prior art keywords
- optical flow
- image
- screenshot
- calculating
- intermediate optical
- 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 126
- 230000003287 optical effect Effects 0.000 claims abstract description 895
- 239000011159 matrix material Substances 0.000 claims description 119
- 230000007704 transition Effects 0.000 claims description 115
- 238000004364 calculation method Methods 0.000 claims description 67
- 230000000875 corresponding effect Effects 0.000 claims description 56
- 238000013507 mapping Methods 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 11
- 230000002596 correlated effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 32
- 238000012549 training Methods 0.000 description 31
- 230000008859 change Effects 0.000 description 14
- 230000000007 visual effect Effects 0.000 description 14
- 238000013528 artificial neural network Methods 0.000 description 12
- 230000004927 fusion Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000001052 transient effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000004907 flux Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000007500 overflow downdraw method Methods 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002324 minimally invasive surgery Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
Images
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
- 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/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Studio Devices (AREA)
- Image Processing (AREA)
Abstract
本申请涉及图像处理技术领域,提供一种图像拼接方法及装置、存储介质及电子设备。所述方法包括:获取第一图像和第二图像;根据第一图像和第二图像,计算得到第一中间光流和第二中间光流,第一中间光流为中间图像和第一图像之间的光流,第二中间光流为中间图像和第二图像之间的光流,中间图像为视角介于第一图像和第二图像之间的图像,第一中间光流的尺寸与第一图像的尺寸相同,第二中间光流的尺寸与第二图像的尺寸相同;根据第一中间光流、第二中间光流、第一图像和第二图像,计算得到第一图像和第二图像的拼接图像。上述图像拼接方法不需要通过复杂的迭代对多个单应性矩阵进行计算即可完成图像拼接,因此可以提高图像拼接的效率。
Description
技术领域
本申请涉及图像处理领域,具体而言,涉及一种图像拼接方法及装置、存储介质及电子设备。
背景技术
图像拼接可以指将具有重叠区域的多个图像拼合在一起,得到无缝的全景图像的过程。近年来,图像拼接技术已被广泛应用于航空航天、医学微创手术、医学显微观测以及地质调查等领域。
在现有技术中,可以通过相机校准的方法来实现图像拼接,但这类方法计算量很大,需要通过迭代的方式计算多个单应性矩阵,使得拼接过程效率低下。
发明内容
本申请实施例的目的在于提供一种图像拼接方法及装置、存储介质及电子设备,以改善上述技术问题。
第一方面,本申请实施例提供一种图像拼接方法,包括:获取第一图像和第二图像;根据所述第一图像和所述第二图像,计算得到第一中间光流和第二中间光流,所述第一中间光流为中间图像和所述第一图像之间的光流,所述第二中间光流为所述中间图像和所述第二图像之间的光流,所述中间图像为视角介于第一图像和第二图像之间的图像,所述第一中间光流的尺寸与所述第一图像的尺寸相同,所述第二中间光流的尺寸与所述第二图像的尺寸相同;根据所述第一中间光流、所述第二中间光流、所述第一图像和所述第二图像,计算得到所述第一图像和所述第二图像的拼接图像。
上述图像拼接方法步骤简单,不需要通过复杂的迭代对多个单应性矩阵进行计算即可完成图像拼接,因此可以提高图像拼接的效率,让拼接过程变得更加实时,从而具有较高的实用性。并且,该方法计算出的第一中间光流的尺寸与第一图像的尺寸相同,第二中间光流的尺寸与第二图像的尺寸相同,从而便于利用第一中间光流和第二中间光流直接对第一图像和第二图像进行映射,进而快速地实现图像拼接。
在第一方面的一种实现方式中,所述根据所述第一图像和所述第二图像,计算得到第一中间光流和第二中间光流,包括:分别截取所述第一图像和所述第二图像中包含共同画面的图像区域,得到第一截图和第二截图;将所述第一截图和所述第二截图输入光流计算网络,得到第一截图光流和第二截图光流,所述第一截图光流为所述中间图像和所述第一截图之间的光流,所述第二截图光流为所述中间图像和所述第二截图之间的光流;将所述第一截图光流上采样至所述第一图像的尺寸,得到所述第一中间光流,以及,将所述第二截图的光流上采样至所述第二图像的尺寸,得到所述第二中间光流。
对于第一图像和第二图像中包含共同画面的图像区域,由于像素之间存在对应关系,因此能够比较准确地进行中间光流的估计,对于第一图像和第二图像中不包含共同画面的图像区域,由于像素之间没有对应关系,因此难以进行中间光流的估计。从而,如果直接利用完整的第一图像和第二图像进行中间光流估计,可能会得到不准确的结果。
在上述实现方式中,先利用第一截图和第二截图(对应第一图像和第二图像中包含共同画面的图像区域)进行光流估计,然后再对估计出的小尺寸光流进行上采样得到所需的中间光流,可以改善中间光流的精度。并且,由于多数情况下图像中目标的运动在全局和局部上是一致的,因此小尺寸的局部光流所反映的目标运动规律和大尺寸的全局光流(即中间光流)是相同的。从而,在上采样过程中产生的新光流值,其有效性可以保证。
在第一方面的一种实现方式中,所述根据所述第一中间光流、所述第二中间光流、所述第一图像和所述第二图像,计算得到所述第一图像和所述第二图像的拼接图像,包括:根据所述第一中间光流和所述第一图像,映射得到第一中间图像,以及,根据所述第二中间光流和所述第二图像,映射得到第二中间图像;根据所述第一中间光流和所述第二中间光流,计算得到目标光流;根据所述目标光流和所述第一中间图像,映射得到第一拼接图像,以及,根据所述目标光流和所述第二中间图像,映射得到第二拼接图像;根据所述第一拼接图像和所述第二拼接图像,拼接得到所述拼接图像。
待拼接的图像通常是针对同一目标(若第一图像和第二图像内容完全不相关,一般没有必要对其进行拼接)、在不同视角下采集的图像,而两张图像之间的光流可以认为是对目标在图像中所作运动的量化表示,这种运动既包括目标本身的运动,也包括摄像头位置(包括拍摄视角)的移动。从而,以中间图像为参照,第一中间光流(表示第一图像相对于中间图像的运动)对应采集第一图像的视角,第二中间光流(表示第二图像相对于中间图像的运动)对应采集第二图像的视角。
进一步的,由于目标光流至少是基于第一中间光流以及第二中间光流融合产生的,因此可以认为目标光流也对应一个特殊视角,在该视角下采集的图像中融合了第一图像以及第二图像的信息,从而可以反映被采集目标在不同视角下的状态,是比较理想的拼接图像。该拼接图像可以利用中间图像和目标光流进行计算,其具有较高的拼接质量,改善了传统图像拼接方法存在的伪影、失真、待拼接图像难以对齐等问题。
在第一方面的一种实现方式中,所述根据所述第一中间光流和所述第二中间光流,计算得到目标光流,包括:根据所述第一中间光流和所述第二中间光流,插值计算至少一个过渡光流;根据所述第一中间光流、所述至少一个过渡光流以及所述第二中间光流,融合得到所述目标光流。
根据上面的阐述,两张图像之间的光流可以认为是对目标在图像中所作运动的量化表示。从而,以中间图像为参照,第一中间光流对应采集第一图像的视角,第二中间光流对应采集第二图像的视角,利用第一中间光流和第二中间光流插值得到的每个过渡光流则对应一个位于第一图像和第二图像之间的过渡视角,过渡视角下采集的图像为过渡图像(并没有真的采集过渡图像,这里引出过渡图像的概念只是为了便于阐述方案原理)。
可以考虑一个虚拟的图像采集过程:在某个视角下采集第一图像,然后将摄像头依次移动至各个过渡视角下采集过渡图像,最后采集到第二图像,在这一过程中,由于相邻视角之间的视差较小,因此第一中间光流依次平缓地变化为各个过渡光流,最终变化为第二中间光流(也称为光流的平滑过渡)。
进一步的,由于上述实现方式中的目标光流是第一中间光流、至少一个过渡光流以及第二中间光流融合产生的,即其中包含了各个视角下光流信息,从而目标光流体现了上述虚拟图像采集过程中光流的渐变,因此可以认为目标光流也对应一个特殊的渐变视角,在该渐变视角下采集的图像中融合了第一图像、第二图像以及至少一个过渡图像的信息,从而可以全面地反映被采集目标在各个视角下的状态,正是比较理想的拼接图像。该拼接图像可以利用中间图像和目标光流进行计算,如上所述,由于该拼接图像反应了被采集目标的全貌,因此具有较高的拼接质量,改善了传统图像拼接方法存在的伪影、失真、待拼接图像难以对齐等问题。
在第一方面的一种实现方式中,所述根据所述第一中间光流和所述第二中间光流,插值计算至少一个过渡光流,包括:获取至少一个权重值;分别基于每个权重值,对所述第一中间光流和所述第二中间光流进行加权求和,得到所述至少一个过渡光流。
第一中间光流和第二中间光流可以视为插值运算的两个端点,插值运算即要估计这两个端点之间的至少一个位置的值,以实现光流的平滑过渡。上述实现方式中的加权求和运算属于线性插值,也可以采用非线性插值(例如,二次、三次、倒数插值等方式)。线性插值具有运算简单的优点,并且,在多数情况下,线性运动足以描述目标在第一图像和第二图像之间的运动,线性插值的效果也足够好。
在第一方面的一种实现方式中,所述权重值的大小与该权重值对应的过渡光流的视角位置相关。
在上述实现方式中,设置权重值时会考虑与该权重值对应的过渡光流的视角位置,这样利用权重值计算出的过渡光流与其所在的视角位置将具有一致性。
在第一方面的一种实现方式中,所述第一中间光流的加权系数和所述第二中间光流的加权系数之和为1,所述权重值为所述第一中间光流的加权系数,所述权重值的大小与该权重值对应的过渡光流的视角位置和所述第一中间光流的视角位置之间的接近程度正相关。
在第一中间光流的加权系数和第二中间光流的加权系数之和为1时,既可以将第一中间光流的加权系数视为权重值(此时第二中间光流的加权系数为1减去权重值),也可以将第二中间光流的加权系数视为权重值(此时第一中间光流的加权系数为1减去权重值),两种方案没有实质区别。
以前者为例,若过渡光流的视角位置和第一中间光流的视角位置之间越接近,就将权重值设置得越大,即增大第一中间光流的加权系数同时减小第二中间光流的加权系数,这样过渡光流的取值将更多地受到第一中间光流的影响,与其所在的视角位置具有一致性。并且,如果所有权重值均按照此规律设置,可以保证计算出的过渡光流之间是渐变的。
在第一方面的一种实现方式中,所述至少一个权重值在区间(0,1)内均匀分布。
在上述实现方式中,由于权重值在区间(0,1)内均匀分布,从而利用这些权重值计算出的过渡光流的视角位置在第一图像和第二图像之间的分布也是比较均匀的,这样的视角位置分布使得过渡图像能够充分地描述被采集目标在第一图像和第二图像所对应视角之间的全貌,因此,可视为融合了过渡图像信息的拼接图像具有较高的质量。
在第一方面的一种实现方式中,所述根据所述第一中间光流和所述第二中间光流,计算得到目标光流,包括:根据所述第一中间光流和所述第二中间光流,计算得到初步光流;将所述初步光流输入光流求逆网络,得到所述目标光流。
光流求逆不同于简单的矩阵求逆,计算过程比较复杂,在上述实现方式中采用神经网络进行光流求逆运算,一方面有利于简化运算、提高光流求逆的效率,一方面可以利用神经网络的学习能力提高光流求逆精度。
在第一方面的一种实现方式中,所述根据所述第一中间光流、所述至少一个过渡光流以及所述第二中间光流,融合得到所述目标光流,包括:获取N+2个权重矩阵,N为所述过渡光流的总数量;基于所述N+2个权重矩阵,对所述第一中间光流、N个过渡光流以及所述第二中间光流进行加权求和,得到所述初步光流;所述初步光流为所述目标光流,或者,将所述初步光流输入光流求逆网络,得到所述目标光流。
在上述实现方式中,利用权重矩阵对过渡光流进行加权求和,不同于一维的权重值,权重矩阵是二维的,从而可以更加灵活地在初步光流中组合不同光流的信息,使得初步光流能够反映第一中间光流到第二中间光流的渐变,自然基于初步光流得到的目标光流也能反映这种渐变。
在第一方面的一种实现方式中,所述权重矩阵中元素的最大值位置与该权重矩阵对应的光流的视角位置相关。
在上述实现方式中,以某个权重矩阵中元素的最大值位置与其对应的光流(可以是第一中间光流、过渡光流或第二中间光流)的视角位置一致(相关的一种方式)的情况为例,即该光流(也是一个矩阵)在其视角位置对应的光流值对初步光流的计算贡献最大,在其余位置对应的光流值对初步光流的计算贡献则相对较小。并且,如果所有权重矩阵均按照此规律设置,可以使得在初步光流中,对应于每个视角位置的光流值主要由该视角位置所对应的光流贡献,从而使得初步光流能够反映第一中间光流到第二中间光流的渐变,自然基于初步光流得到的目标光流也能反映这种渐变。
在第一方面的一种实现方式中,所述根据所述第一拼接图像和所述第二拼接图像,拼接得到所述拼接图像,包括:将所述第一拼接图像和所述第二拼接图像输入掩膜计算网络,得到拼接掩膜;基于所述拼接掩膜,将所述第一拼接图像和所述第二拼接图像进行拼接,得到所述拼接图像。
在上述实现方式中,利用拼接掩膜实现第一拼接图像和第二拼接图像在拼接处的平滑过渡,并且,该拼接掩膜并非是预先设定好的,而是掩膜计算网络学习到的,从而可以进一步提高拼接图像的质量。
在第一方面的一种实现方式中,所述第一中间光流和第二中间光流利用光流计算网络输出的第一截图光流和第二截图光流计算得到,所述目标光流利用光流求逆网络计算得到,所述拼接图像利用掩膜计算网络输出的拼接掩膜计算得到;所述方法还包括:获取第一真实截图光流、第二真实截图光流、真实目标光流以及真实拼接图像;根据所述第一截图光流、所述第二截图光流、所述第一真实截图光流和所述第二真实截图光流计算光流预测损失;根据所述目标光流和所述真实目标光流计算光流求逆损失;根据所述拼接图像和所述真实拼接图像计算图像拼接损失;根据所述光流预测损失、所述光流求逆损失和所述图像拼接损失计算总损失,并根据所述总损失更新所述光流计算网络、所述光流求逆网络和所述掩膜计算网络的参数。
上述实现方式给出了一种端到端的模型训练方法,可以用于训练图像拼接模型,图像拼接模型包括光流计算网络、光流求逆网络以及掩膜计算网络,在计算损失时同时考虑与三个网络对应的损失:光流预测损失、光流求逆损失以及图像拼接损失,即通过训练同时提高模型的中间光流预测精度、目标光流预测精度以及拼接掩膜预测精度,从而最终得到的图像拼接模型能够实现高质量的图像拼接。
在第一方面的一种实现方式中,所述目标光流根据所述第一中间光流、至少一个过渡光流以及所述第二中间光流融合得到,所述获取第一图像和第二图像,包括:根据所述中间图像和单应性矩阵,计算得到所述第一图像,以及,根据所述中间图像和所述单应性矩阵的逆矩阵,计算得到所述第二图像,所述中间图像为真实图像;所述获取第一真实截图光流、第二真实截图光流、真实目标光流以及真实拼接图像,包括:根据所述单应性矩阵计算第一真实中间光流,并根据所述第一真实中间光流计算所述第一真实截图光流;根据所述单应性矩阵的逆矩阵计算第二真实中间光流,并根据所述第二真实中间光流计算所述第二真实截图光流;根据所述单应性矩阵和所述单应性矩阵的逆矩阵,插值计算至少一个过渡矩阵,根据所述单应性矩阵、所述至少一个过渡矩阵以及所述单应性矩阵的逆矩阵,融合得到目标矩阵,并根据所述目标矩阵计算所述真实目标光流;根据所述中间图像和所述目标矩阵计算所述真实拼接图像。
在上述实现方式中,中间图像为真实图像,单应性矩阵可以是指定好的,利用中间图像和单应性矩阵就可以计算训练用的监督信号:真实截图光流、真实目标光流以及真实拼接图像。如果将一组待拼接图像(包括第一图像和第二图像)及其对应的监督信号视为一个训练样本,由于单应性矩阵可以任意指定,所以此种实现方式可以利用少量的真实图像快速地生成大量的训练样本,并且这些样本可以覆盖不同的场景,从而使训练得到的图像拼接模型具有良好的泛化能力。
第二方面,本申请实施例提供一种图像拼接装置,包括:图像获取模块,用于获取第一图像和第二图像;中间光流计算模块,用于根据所述第一图像和所述第二图像,计算得到第一中间光流和第二中间光流,所述第一中间光流为中间图像和所述第一图像之间的光流,所述第二中间光流为所述中间图像和所述第二图像之间的光流,所述中间图像为视角介于第一图像和第二图像之间的图像,所述第一中间光流的尺寸与所述第一图像的尺寸相同,所述第二中间光流的尺寸与所述第二图像的尺寸相同;图像拼接模块,用于根据所述第一中间光流、所述第二中间光流、所述第一图像和所述第二图像,计算得到所述第一图像和所述第二图像的拼接图像。
第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
第四方面,本申请实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的图像拼接方法的一种可能的流程;
图2示出了本申请实施例提供的图像拼接方法的一种可能的数据流向;
图3示出了本申请实施例提供的图像拼接方法的工作原理;
图4示出了利用鱼眼相机采集图像并获得待拼接图像的过程;
图5示出了本申请实施例提供的模型训练方法的一种可能的流程;
图6示出了本申请实施例提供的模型训练方法中训练样本的一种可能的产生方式;
图7示出了本申请实施例提供的图像拼接装置的一种可能的结构;
图8示出了本申请实施例提供的电子设备的一种可能的结构。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
图1示出了本申请实施例提供的图像拼接方法的一种可能的流程,图2示出了在图像拼接方法的执行过程中一种可能的数据流向,供阐述该方法的步骤时参考。图像拼接方法可以但不限于由图8示出的电子设备执行,关于该电子设备的结构,可以参考后文关于图8的阐述。参照图1,该方法包括:
步骤S110:获取第一图像和第二图像。
第一图像和第二图像为待拼接的图像,在图2中分别将二者记为I0和I1。第一图像和第二图像的来源不限,例如,可以是摄像头采集的图像,也可以是计算机视觉算法生成的图像,等等,后文主要以摄像头采集的情况为例。第一图像和第二图像的图像尺寸相同,或者,第一图像和第二图像在采集时就是相同的尺寸,或者,第一图像和第二图像在采集时尺寸不同,但采集后被处理为相同的尺寸。
本申请提出的图像拼接方法原则上并不对第一图像和第二图像的图像内容进行限定,但考虑到图像拼接的实际用途,不妨以第一图像和第二图像是针对同一目标的、从不同的视角下采集的图像为例(比如,图3中的I0和I1分别在视角0和视角1下采集)。这里的目标泛指可拍摄的对象,例如,人物、动植物、风景等等。
由于第一图像和第二图像的拼接结果(简称拼接图像)在尺寸上通常大于第一图像和第二图像,因此,为便于进行图像拼接过程中的运算,在一些实现方式中,对于采集到的原始第一图像和原始第二图像,可以先将二者粗略地对齐(图像对齐是一种操作,理想情况下,对齐后的两张图像中对应于目标的同一位置的像素能够重叠在一起),然后根据需要在粗略对齐后的图像周围进行补0(即填充取值为0的像素),将其填充成和拼接图像同样的尺寸,然后再将补0后的图像作为第一图像和第二图像进行后续的图像拼接。例如,图2中的I0和I1中黑色的部分(I0的左右侧和下部、I1的左侧)即为补0的部分。
下面再分别以通过广角相机和鱼眼相机进行图像采集的情况为例进行说明:
对于前者,先通过广角相机拍摄得到第一广角图像和第二广角图像,然后根据相机标定方法计算一个全局的单应性矩阵,再根据这个单应性矩阵将第一广角图像和第二广角图像进行粗略的对齐,再对粗略对齐后的图像周围进行补0,得到最终的第一图像和第二图像。
对于后者,先通过鱼眼相机拍摄得到第一鱼眼图像和第二鱼眼图像,这两张图像的拍摄位置相同,拍摄方向恰好相反,如图4左侧一列所示。根据展开参数,可以分别将第一鱼眼图像和第二鱼眼图像展开,得到展开后的第一展开图像和第二展开图像,如图4右侧一列所示。在展开的过程中,已经进行了补0操作,没有必要专门进行补0,并且,第一展开图像和第二展开图像已经粗略地对齐。第一展开图像分为两部分,分别是左侧的A1和右侧的B1,第二展开图像也分成两部分,分别是左侧的A2和右侧的B2,其中,A1和A2构成一组第一图像和第二图像,B1和B2构成另一组第一图像和第二图像。
步骤S120:根据第一图像和第二图像,计算得到第一中间光流和第二中间光流。
两张图像之间的光流可以认为是对目标在图像中所作运动的量化表示。这种运动既包括目标本身的运动,也包括拍摄两张图像的摄像头的位置移动(包括拍摄视角的变化),对于后者,因为运动是相对的,所以摄像头的位置移动了,目标在图像中的位置也发生变化,等效于目标本身的运动。具体地,目标的运动使得目标上的一点在两张图像中分别对应不同位置的像素,这两个像素之间坐标偏移量(一个向量)就是其中一个像素位置处的光流值,对于两张相同尺寸的图像,二者之间的光流也可以视为一张光流图,该光流图可以和这两张图像的尺寸相同,并且其中的每个像素值都是上面的光流值。
步骤S120中,中间图像是一张采集于中间视角下的虚拟图像(例如,图3中的视角m下采集的图像Im),中间视角是一个介于第一图像和第二图像的采集视角之间的视角,这里所说的采集中间图像应理解为虚拟意义上的采集,即如果将摄像头放到中间视角下对目标进行拍摄,可以采集到中间图像,但实际中并没有执行这样的图像采集行为。中间图像的尺寸和第一图像、第二图像均相同。
需要指出,对于图像拼接方法的某些应用场景(例如,应用在图像拼接模型的训练阶段,详见后文阐述),中间图像并不一定是虚拟图像,也可能是真实采集的图像,不过,在阐述图1的步骤时,不妨暂时将中间图像理解为一张虚拟图像。
第一中间光流是指中间图像和第一图像之间的光流,第二中间光流是指中间图像和第二图像之间的光流,有时为简单起见也将二者统称为中间光流。第一中间光流有两种方向,一种是中间图像Im到第一图像I0的光流,一种是第一图像I0到中间图像Im的光流,分别记为Fm→0和F0→m,在进行图像拼接时只需要使用其中一种方向的光流即可,图2中使用的是Fm→0。类似的,第二中间光流也有两种方向,一种是中间图像Im到第二图像I1的光流,一种是第二图像I1到中间图像Im的光流,分别记为Fm→1和F1→m,在进行图像拼接时只需要使用其中一种方向的光流即可,图2中使用的是Fm→1(要和Fm→0保持一致,光流都是从Im出发)。
在本申请的方案中,第一中间光流的尺寸与第一图像的尺寸相同,并且,第二中间光流的尺寸与第二图像的尺寸相同,从而便于在后续步骤中利用第一中间光流和第二中间光流直接对第一图像和第二图像进行映射(关于映射的意义,稍后阐述),进而快速地实现图像拼接。
在一些实现方式中,可以利用一个预训练的神经网络,以第一图像和第二图像为输入,估计出第一中间光流和第二中间光流。
然而,由于第一图像和第二图像是在不同视角下采集的,因此,两张图像中只有部分图像区域包含有共同的画面。例如,图2中的I0和I1只有车头部分是共同的,车身及车尾部分则只存在于I0中。根据前文对光流的定义,如果两张图像中分别包含对应于目标上同一点的像素,才能有效地进行光流估计,因此,对于第一图像和第二图像中包含共同画面的图像区域,由于像素之间存在对应关系,因此能够比较准确地进行中间光流的估计,对于第一图像和第二图像中不包含共同画面的图像区域,由于像素之间没有对应关系,因此难以进行中间光流的估计(或者说虽然能够计算光流值,但计算出的光流值不准确)。
从而,如果直接利用一个神经网络,基于完整的第一图像和第二图像进行中间光流估计,可能会得到较差的估计结果。因此,在一些实现方式中,可以先截取第一图像和第二图像中包含共同画面的图像区域,只在这部分区域之间利用神经网络进行光流估计,得到一个精度较高的小尺寸光流,然后再通过该小尺寸光流上采样得到大尺寸光流,即中间光流,这样有利于提高中间光流的估计精度。特别地,对于广角和鱼眼相机采集的图像,其重叠区域往往较大,非重叠区域则比较小,采用该方法更有利于得到高质量的光流估计结果。下面进行具体阐述:
步骤a:分别截取第一图像和第二图像中包含共同画面的图像区域,得到第一截图和第二截图。
例如,可以通过矩形框来截取第一图像和第二图像中包含共同画面的图像区域,截取出来的图像区域分别称为第一截图和第二截图,在图2中,第一截图和第二截图分别记为overlap-0和overlap-1。
步骤b:将第一截图和第二截图输入光流计算网络,得到第一截图光流和第二截图光流。
其中,光流计算网络是一个用于估计光流的神经网络,其训练方法在介绍图5时会进行阐述,该网络以第一截图和第二截图为输入,输出第一截图光流和第二截图光流,网络的具体结构不限定。
第一截图光流是指中间图像(更精确地说是中间图像中与截图区域对应的部分)和第一截图之间的光流,第二截图光流是指中间图像(更精确地说是中间图像中与截图区域对应的部分)和第二截图之间的光流,有时为简单起见也将二者统称为截图光流。类似于第一中间光流,第一截图光流和第二截图光流都有两个方向,图2中使用的是从中间图像到第一截图的光流以及从中间图像到第二截图的光流,分别记为Fm→overlap-0和Fm→overlap-1。
步骤c:将第一截图光流上采样至第一图像的尺寸,得到第一中间光流,以及,将第二截图光流上采样至第二图像的尺寸,得到第二中间光流。
由于第一截图光流的尺寸和第一截图相同,小于第一图像的尺寸,所以要得到第一中间光流,需要对第一截图光流进行上采样,类似的,对于第二截图光流也要进行上采样。由于光流也可以视为每个像素值都是一个向量的特殊图像,因此对光流进行上采样的方法可以采用针对图像的插值算法,例如最近邻插值、双线性插值、双三次插值等,当然也可以采用一些基于深度学习的上采样方法,例如DUpsampling、Meta-Upscale,等等。
由于在多数情况下,图像中目标的运动在全局和局部上是一致的,因此小尺寸的局部光流(即截图光流)所反映的目标运动规律和大尺寸的全局光流(即中间光流)是相同的,从而,在上采样过程中插值产生的新光流值,其有效性可以保证。换句话说,对于第一图像和第二图像中不包含共同画面的图像区域,按照上采样计算出的光流值也是比较可靠的。进一步的,即使按照上采样计算出的一些光流值不够准确,在一些实现有拼接掩膜的实现方式中(见后文阐述),通过改变掩膜中像素的取值,也能够在一定程度上削弱因光流值计算不准确带来的负面影响。
关于步骤S120,还有一个问题需要澄清,就是采集中间图像的中间视角到底是指什么位置。准确来说,中间视角是指第一图像和第二图像对应的视角位置之间的某个预期的视角位置。以中间光流通过光流计算网络进行估计的情况为例,该预期的视角位置是在训练光流计算网络时就确定下来的,即训练数据使得光流计算网络要估计哪个位置的中间光流(准确地说是先估计截图光流再计算中间光流),训练好的光流计算网络就能估计哪个位置的中间光流,该位置就是采集中间图像的视角位置,即中间视角的位置。比如,根据后文对图5的阐述,中间视角的“中间”可以是利用单应性矩阵确定的、投影变换意义上的“中间”,而并非是指第一图像和第二图像对应的视角位置的正中。
步骤S130:根据第一中间光流、第二中间光流、第一图像和第二图像,计算得到第一图像和第二图像的拼接图像。
可选的,步骤S130可以进一步包括以下子步骤:
步骤A:根据第一中间光流和第一图像,映射得到第一中间图像,以及,根据第二中间光流和第二图像,映射得到第二中间图像。
第一中间图像和第二中间图像可以理解为中间图像的一部分(二者拼接后可得到中间图像),在图2中分别将二者记为Im←0和Im←1。根据前文的阐述,光流反映了被采集目标上的同一点在两张图像上所对应的像素之间的坐标偏移量,因此,已知两张图像中的一张以及两张图像之间的光流,可以估算出另一张图像,这种估算方式称为映射(warping)。
具体地,根据第一中间光流对第一图像进行映射,可以得到第一中间图像。根据第一中间光流方向的不同,这里存在两种不同的映射方式,如果第一中间光流为Fm→0,则采用后向映射(backward warping),映射过程可以表示为Im←0=backward_warping(I0,Fm→0);如果第一中间光流为F0→m,则采用前向映射(forward warping),映射过程可以表示为I0→m=forward_warping(I0,F0→m),在后文中,主要以目前应用得较为广泛的后向映射为例进行阐述。类似的,根据第二中间光流对第二图像进行映射,可以得到第二中间图像,映射过程可以表示为Im←1=backward_warping(I1,Fm→1)。
步骤B:根据第一中间光流和第二中间光流,计算得到目标光流。
可选的,步骤B可以进一步包括以下子步骤:
步骤B1:根据第一中间光流和第二中间光流,插值计算至少一个过渡光流。
首先引出过渡视角和过渡图像的概念。类似于中间图像,过渡图像是采集于过渡视角下的虚拟图像(例如,图3中的视角v下采集的图像Iv),过渡视角是介于第一图像和第二图像的采集视角之间的视角,这里所说的采集过渡图像应理解为虚拟意义上的采集。
显然,理论上存在无数个过渡视角,例如,图3下方示出了4个过渡视角,分别命名为视角0.2、视角0.4、视角0.6以及视角0.8,每个过渡视角都对应一张过渡图像。这里的权重值0.2、0.4、0.6以及0.8(关于权重值表示的定义见后文的阐述)大致表示了各视角之间的位置关系,即从视角0开始,按照“视角0→视角0.2→视角0.4→视角0.6→视角0.8→视角1”的顺序,可以过渡至视角1。
定义了过渡视角和过渡图像之后,可以考虑一个虚拟的图像采集过程:在某个起始视角(例如,图3中的视角0)下采集第一图像,然后将摄像头依次移动至各个过渡视角(例如,图3中的视角0.2、视角0.4、视角0.6以及视角0.8)下采集过渡图像,最后在一个终止视角(例如,图3中的视角1)下采集到第二图像。可以形象地理解这个过程:拍摄者拿着一台手机,绕着某个拍摄目标移动,并在移动过程中用手机从不同的角度对目标进行持续拍摄。
以中间图像为参照物,将所有的采集到的图像都视为基于中间图像和光流进行映射的结果,那么每个视角下采集的图像可以与中间图像和该图像之间的光流对应起来。比如,第一图像对应第一中间光流,第二图像对应第二中间光流,过渡图像则对应过渡光流,过渡光流即中间图像和过渡图像之间的光流,按照图3可以记为Fm→v(当然也有可能是Fv→m)。当然,由于视角和图像具有对应关系,所以视角和光流之间也具有对应关系。
结合上面的虚拟的图像采集过程,该过程也可以视为第一图像依次变换为各个过渡图像,最终变换为第二图像的过程,在这一图像渐变的过程中,由于被采集图像和光流的对应关系,第一中间光流也依次变换为各个过渡光流,最终变换为第二中间光流。在这一光流渐变的过程中,由于相邻视角下采集的图像之间的视差较小,因此不同光流之间的过渡是比较平滑的,特别是在过渡视角选取得较多的情况下更是如此。
根据上面的分析,从第一中间光流到第二中间光流是平滑过渡的,从而将第一中间光流和第二中间光流视为两个端点,可以通过插值来计算这两个端点之间的任意位置的过渡光流,具体的插值算法不限,例如可以采用线性插值、二次插值、三次插值、距离倒数插值等方式,后文会以线性插值为例进行介绍,这里暂不展开阐述。
至于具体要计算哪些位置的过渡光流、要计算多少个过渡光流,可以根据实际需求确定,但至少应计算一个过渡光流。例如,在图3中,共计算了4个过渡光流,这些过渡光流分别位于视角0.2、视角0.4、视角0.6以及视角0.8的位置。但需要注意,并不需要先确定视角0.2的具体位置,再进行过渡光流Fm→0.2的计算,而是直接按照权重值0.2(关于权重值的定义见后文的阐述)插值计算出过渡光流Fm→0.2即可,Fm→0.2对应的位置自然就是视角0.2的位置。对于视角0.4、视角0.6以及视角0.8的情况也是类似,按照权重值0.4、0.6以及0.8可以分别插值计算出过渡光流Fm→0.4、Fm→0.6以及Fm→0.8。
步骤B2:根据第一中间光流、至少一个过渡光流以及第二中间光流,融合得到目标光流。
根据步骤B1中的阐述,第一中间光流、至少一个过渡光流以及第二中间光流之间是渐变的。步骤B2中的“融合”泛指一种光流合并操作,此操作将第一中间光流、至少一个过渡光流以及第二中间光流合并为一个光流,称为目标光流,并且使得目标光流能够体现出各光流之间渐变特性。可能采取的融合操作包括加权求和、拼接等,后文会以利用权重矩阵实现光流融合为例进行阐述。
进一步的,由于目标光流包含了各个视角下光流的信息、并且体现了各个视角下光流的渐变特性,因此可以认为目标光流也对应一个特殊的渐变视角,在该渐变视角下采集的图像中融合了第一图像、第二图像以及至少一个过渡图像的信息,从而可以全面地反映被采集目标在各个视角下的状态。即,渐变视角下采集的图像就是较为理想的拼接结果,也就是最终要计算的第一图像和第二图像之间的拼接图像(简称拼接图像),从而,也可以将目标光流视为中间图像与拼接图像之间的光流,用于拼接图像的计算。可以形象地理解渐变视角:拍摄者拿着一台手机,从一个起始视角开始、到一个终止视角结束,绕着某个目标移动拍摄,在拍摄过程中,手机不断地将从不同的角度下采集的图像拼接在一起,没有遗漏某个视角下的信息,最终构成的图像能够反映目标在起始视角和终止视角之间的全貌。
在一些实现方式中,步骤B2可以分为两个子步骤:
首先,根据第一中间光流、至少一个过渡光流以及第二中间光流,融合得到初步光流;然后,将初步光流输入一个光流求逆网络,得到光流求逆网络输出的目标光流,图2示出了这两个子步骤。进行光流求逆的原因如下:
如果第一中间光流、至少一个过渡光流以及第二中间光流都是从中间图像出发的光流,则对他们直接融合得到的初步光流也是从中间图像出发的,在图2中记为Fm→0~1,即中间图像到拼接图像的光流,如果直接将Fm→0~1作为目标光流,那么步骤C中的映射(详见步骤C的阐述)只能采用前向映射,而前向映射目前由于存在一些缺陷导致应用得不太广泛,所以在上述实现方式中通过光流求逆将Fm→0~1转化为一个逆向的光流F0~1→m,即拼接图像到中间图像的光流,并将F0~1→m作为目标光流,在步骤C中就可以使用后向映射了。应当理解,如果有较好的前向映射方法,直接将Fm→0~1作为目标光流也是可以的。
需要指出,光流求逆不同于简单的矩阵求逆,其计算过程比较复杂,因此在上述实现方式中采用神经网络进行光流求逆运算,一方面有利于简化运算、提高光流求逆的效率,一方面可以利用神经网络的学习能力提高光流求逆精度,光流精度的提高显然有利于改善后续得到的拼接图像的质量。关于光流求逆网络的训练方法,在介绍图5时会进行阐述。光流求逆网络的具体结构不限。例如,在一些较简单的实现方式中,可以用L(L>1)个连续的卷积层构成光流求逆网络。其中第一个卷积层以初步光流为输入,最后一个卷积层输出目标光流。比如,取L=2,卷积核的尺寸取3×3,即光流求逆网络只包括2个3×3的卷积,那么光流求逆网络的计算过程可以表示为F0~1->m=conv(conv(Fm->0~1,3,3),3,3),其中,conv表示卷积操作。
这样简单的网络设计很适合对广角相机或鱼眼相机拍摄到的图像进行拼接的情况,由于广角相机和鱼眼相机的拍摄范围都比较大,相对来说目标在画面中的运动幅度就比较小,所以各个光流(第一中间光流、第二中间光流、过渡光流)中的光流值的变化比较平缓,不容易出现大幅度的光流值变化,对于融合得到的初步光流亦是如此,对于这样的初步光流容易取逆,没有必要使用太复杂的网络结构,简单的网络反而能够提高光流求逆的效率。
在步骤B的另一些实现方式(不同于步骤B1和B2)中,也可以不计算过渡光流,而是直接根据第一中间光流和第二中间光流融合得到目标光流(类似于上面的方案,可以先融合得到初步光流,然后将初步光流直接作为目标光流或者利用光流求逆网络计算得到目标光流),此时目标光流的渐变特性虽然不如上面的方案(指步骤B1和B2),但计算起来更为简单。
参照上面的分析,可以认为此时的目标光流对应一个退化的渐变视角(从第一图像的视角直接过渡至第二图像的视角),在该渐变视角下采集的图像中融合了第一图像以及第二图像的信息,虽然其中没有融合过渡图像的信息,但已包含了用于图像拼接的所有原始信息(第一图像和第二图像),并且也可以反映被采集目标在不同视角下的状态,从而也是比较理想的拼接图像,该拼接图像同样可以通过目标光流和中间图像进行计算。步骤C:根据目标光流和第一中间图像,映射得到第一拼接图像,以及,根据目标光流和第二中间图像,映射得到第二拼接图像。
第一拼接图像和第二拼接图像可以理解为步骤D中要计算的拼接图像的一部分(二者拼接后可得到拼接图像),在图2中分别将二者记为I0~1←m←0和I0~1←m←1。I0~1←m←0中的下标0~1←m←0是(0~1)←(m←0)的简写,表示利用第一拼接图像Im←0和目标光流F0~1→m进行后向映射的结果,I0~1←m←1中的下标0~1←m←1是(0~1)←(m←1)的简写,表示利用第二拼接图像Im←1和目标光流F0~1→m进行后向映射的结果。如果采用前向映射,也可以类似表示,不再具体阐述。步骤B中提到,可以将目标光流视为中间图像与拼接图像之间的光流,从而这样的映射是可行的。
步骤D:根据第一拼接图像和第二拼接图像,拼接得到第一图像和第二图像的拼接图像。
步骤C中已经得到了第一拼接图像和第二拼接图像,将二者拼接起来就可以得到最终的拼接图像。例如,在图2中将第一拼接图像的左边图像区域和第二拼接图像的右边图像区域进行拼接即可得到拼接图像,记为I0~1。
如果目标光流的精度足够高,那么计算出的第一拼接图像和第二拼接图像已经是对齐的,直接将二者叠加在一起就可以得到拼接图像。但考虑到目标光流的计算精度受很多因素影响(例如,光流计算网络的预测精度、光流上采样精度等),其精度未必足够高,进而基于目标光流计算出第一拼接图像和第二拼接图像并不能很好地对齐,因此在一些实现方式中,可以通过设置拼接掩膜来实现第一拼接图像和第二拼接图像在拼接之处的平滑过渡,以改善拼接图像的质量。其具体做法如下:
首先,将第一拼接图像和第二拼接图像输入掩膜计算网络,得到掩膜计算网络输出的拼接掩膜;然后,基于该拼接掩膜,将第一拼接图像和第二拼接图像进行拼接,得到拼接图像。图2示出了利用掩膜实现图像拼接的步骤,拼接掩膜记为mask。
其中,掩膜计算网络是一个预训练的神经网络,具体的结构不限,其的训练方法在介绍图5时会进行阐述。掩膜计算网络的输入至少包括第一拼接图像和第二拼接图像,但也不排除包括其他信息,例如,目标光流。利用神经网络的学习能力,可以比较精确地预测掩膜,有利于提高拼接图像的质量。
拼接掩膜也可以视为一张图像,其尺寸与第一拼接图像(或第二拼接图像)的图像尺寸相同。可选的,拼接掩膜中的像素值可取区间[0,1]之间的数值,具体取值由掩膜计算网络进行计算。对于像素位置(x,y),获取第一拼接图像在该位置处的像素值p1、第二拼接图像在该位置处的像素值p2以及拼接掩膜在该位置处的像素值m,则拼接图像在(x,y)处的像素值p可以按照公式p=m×p1+(1-m)×p2进行加权计算,m代表p1的加权系数。当然如果m代表p2的加权系数,该公式可以改为p=(1-m)×p1+m×p2,与前一个公式并无本质区别。
例如,若拼接掩膜中的像素值代表第一拼接图像中像素值的加权系数,则一个可能的拼接掩膜如下:
该拼接掩膜左右两列的值分别为1和0,中间两列的值为0.5,表示拼接图像的左侧两列取第一拼接图像中的像素值,右侧两列取第二拼接图像中的像素值,中间两列则取两张拼接图像中像素值的均值。这样取值是合理的,中间两列很可能位于两张拼接图像中包含共同画面的图像区域,通过取均值使得第一拼接图像和第二拼接图像在该区域得以平滑过渡。
注意,由于是举例,所以该拼接掩膜只有6×6的尺寸,并不适于图2中图像的拼接。但图2中示出的实际拼接掩膜和该例子也十分类似,左侧为白色代表像素取值为1,右侧为黑色代表像素取值为0,中间为灰色代表像素取区间(0,1)之内的值。
可以理解的,并非必须通过掩膜才能拼接第一拼接图像和第二拼接图像,例如,也可以先将两张拼接图像叠加在一起,然后通过平滑滤波改善画面中过渡比较突兀的部分。
在步骤S130的另一些实现方式(不同于步骤A至D)中,也可以先计算第一中间图像和第二中间图像(类似步骤A);然后拼接第一中间图像和第二中间图像(直接拼接或者利用掩膜拼接),得到中间图像;再根据第一中间光流和第二中间光流计算目标光流(类似步骤B);最后根据中间图像和目标光流,映射得到拼接图像。各步骤细节可以参考步骤A至D,不再重复阐述。
综上所述,本申请实施例提供的图像拼接方法计算过程比较简单,不需要像某些传统的图像拼接方法一样通过复杂的迭代对多个单应性矩阵进行运算,从而可以使图像拼接变得更加实时,实用性得到加强。
在该方法的一些实现方式中,通过计算目标光流实现图像拼接。由于目标光流是第一中间光流、至少一个过渡光流以及第二中间光流融合产生的(也可能不包含过渡光流,可类似分析),所以其中包含了各个视角下光流信息,考虑到图像和光流之间的对应关系,根据目标光流计算出的拼接图像,也融合了第一图像、第二图像以及至少一个过渡图像的信息,从而可以全面地反映被采集目标在第一图像和第二图像之间的各个视角下的状态,即一个比较理想的拼接结果。该方法获得的拼接图像质量较高,改善了传统图像拼接方法存在的伪影、失真、待拼接图像难以对齐等问题,在第一图像和第二图像具有较大视差的情况下,也能有效地进行图像拼接。
应当理解,如果要对两张以上的图像进行拼接,可以连续地应用上述图像拼接方法。例如,要对第一图像、第二图像以及第三图像进行拼接,可以先利用该方法拼接第一图像和第二图像,得到一个中间拼接结果,再利用该方法将中间拼接结果与第三图像进一步拼接,得到最终的拼接图像。
下面,在上述实施例的基础上,继续介绍步骤B1中通过线性插值计算过渡光流的方法。
已知两个端点(第一中间光流、第二中间光流)的情况下进行线性插值,实际上就是进行加权求和运算。其具体做法可以是:
首先,获取至少一个权重值;然后,分别基于每个权重值,对第一中间光流和第二中间光流进行加权求和,得到至少一个过渡光流。
其中,权重值的数量和过渡光流的数量相同,例如,权重值取4个,则通过加权求和计算4个过渡光流,具体数量可以根据需求确定。权重值可以预先设置好(例如,写在配置文件或程序里),需要计算过渡光流时直接读取使用,当然也可以在计算过渡光流时通过一定的算法生成权重值。
在进行加权求和时,需要两个加权系数,分别是第一中间光流的加权系数和第二中间光流的加权系数,这两个加权系数是相互制约的,只要知道了其中一个加权系数,另一个加权系数也就可以相应地计算。
比如,限定加权系数在区间(0,1)内取值,且两个加权系数之和为1。此时,可以将取值范围在区间(0,1)内的权重值w作为其中一个中间光流的加权系数,例如第一中间光流的加权系数,则第二中间光流加权系数为1-w。过渡光流的计算公式可以表示为:
Fm->v=w×Fm->0+(1-w)×Fm->1
可以理解的,若将权重值w作为第二中间光流的加权系数,则第一中间光流加权系数为1-w。过渡光流的计算公式可以表示为:
Fm->v=(1-w)×Fm->0+w×Fm->1
以上两个公式并没有实质性区别。线性插值具有运算简单的优点,并且,在多数情况下(特别是第一图像和第二图像的采集时间间隔不太长的情况下),线性运动足以描述目标在第一图像和第二图像之间的运动,线性插值计算出的过渡光流精度也足够高。当然,如前文所述,也可以采取其他非线性插值的方式。
下面进一步说明权重值的一些设置原则:
作为一项原则,可以将权重值的大小设置为与该权重值对应的过渡光流的视角位置相关,这样设置可以确保利用权重值计算出的过渡光流与其所在的视角位置是一致的,进而确保后续利用过渡光流计算的目标光流能够体现光流渐变的特性。
例如,假定第一中间光流的加权系数和第二中间光流的加权系数之和为1,且权重值为第一中间光流的加权系数,则可以将权重值的大小设置为:与该权重值对应的过渡光流的视角位置和第一中间光流的视角位置之间的接近程度正相关(或者说,与该权重值对应的过渡光流的视角位置和第二中间光流的视角位置之间的接近程度负相关,二者等价)。
具体而言,若过渡光流的视角位置和第一中间光流的视角位置之间越接近,就将权重值设置得越大,即增大第一中间光流的加权系数同时减小第二中间光流的加权系数,这样过渡光流的取值将更多地受到第一中间光流的影响而更少地受到第二中间光流的影响,与其所在的视角位置具有一致性;类似的,若过渡光流的视角位置和第一中间光流的视角位置之间越远离,就将权重值设置得越小,即减小第一中间光流的加权系数同时增大第二中间光流的加权系数,这样过渡光流的取值将更多地受到第二中间光流的影响而更少地受到第一中间光流的影响,与其所在的视角位置具有一致性。
例如,在图3中,视角0.2、视角0.4、视角0.6、视角0.8与视角0的接近程度逐渐减小,所以视角0.2下计算过渡光流Fm->0.2的权重值w=0.8>视角0.4下计算过渡光流Fm->0.4的权重值w=0.6>视角0.6下计算过渡光流Fm->0.6的权重值w=0.4>视角0.8下计算过渡光流Fm->0.8的权重值w=0.2,相应的过渡光流可以按照以下公式计算:
Fm->0.2=0.8×Fm->0+0.2×Fm->1
Fm->0.4=0.6×Fm->0+0.4×Fm->1
Fm->0.6=0.4×Fm->0+0.6×Fm->1
Fm->0.8=0.2×Fm->0+0.8×Fm->1
想象有若干个过渡光流分布在第一中间光流和第二中间光流之间,若所有过渡光流对应的权重值均按上述规律(指正相关规律)设置,则从第一中间光流到第二中间光流,各过渡光流受到第一中间光流的影响从强到弱,受到第二中间光流的影响则从弱到强,从而可以保证计算出的过渡光流之间是渐变的。
需要指出,将权重值的大小设置为与该权重值对应的过渡光流的视角位置相关,并不是说要先精确地计算出过渡光流的视角位置,才能进一步确定相应的权重值,只是说设置权重值的时候要考虑过渡光流的视角位置这一因素。例如,设置权重值w=0.8的时候,并不需要量化地计算出视角0.2的位置,只需要知道视角0.2比视角0.4、视角0.6、视角0.8都更接近于视角0,且视角0.2与视角0之间的夹角大致占视角0和视角1之间的夹角的20%即可,权重值w=1-20%=0.8。
作为另一项原则,可以将至少一个权重值设置为在区间(0,1)内均匀分布。例如,若只有一个权重值,则该权重值可取0.5,该权重值与0和1的间隔都是0.5,属于均匀分布;若有M(M>1)个权重值,则这些权重值可取i/(M+1)(i取1至M之间的整数),任意两个权重值之间的间隔都是1/(M+1),并且第一个权重值和0之间的间隔、第M个权重值和1之间的间隔也是1/(M+1),属于均匀分布。比如,图3就是M=4的情况。
在这些实现方式中,由于权重值在区间(0,1)内均匀分布,从而不严格地来说,利用这些权重值计算出的过渡光流的视角位置也在第一图像和第二图像之间均匀分布,这样的视角位置分布使得所采集的过渡图像能够充分地描述被采集目标在第一图像和第二图像所对应视角之间的全貌(而没有偏重于某些视角),由于拼接图像可视为融合了所有过渡图像的信息,因此这样得到的拼接图像质量较高。
当然,权重值在区间(0,1)内均匀分布并不是强制的,例如,也可以将权重值设置为在(0,1)中的某些区间内分布的密集一些,在另一些区间内分布得稀疏一些。
应当理解,上述两项权重值的设置原则也可以结合在一起使用。
下面,在上述实施例的基础上,继续介绍步骤B2中根据第一中间光流、至少一个过渡光流以及第二中间光流,融合得到目标光流的方法。
在一些实现方式中,可以利用权重矩阵实现光流融合,具体做法为:
首先,获取N+2个权重矩阵,N为过渡光流的总数量(N≥1);然后,基于N+2个权重矩阵,对第一中间光流、N个过渡光流以及第二中间光流进行加权求和,得到初步光流;最后,根据实现方式的不同,可以将该初步光流直接作为目标光流或者求逆后作为目标光流。
以要进行光流求逆的情况为例,可以用公式来表示初步光流的计算过程。其中,Ft表示待融合光流,可以是第一中间光流、过渡光流或者第二中间光流,Wt表示Ft对应的权重矩阵,即第t个权重矩阵,×表示矩阵乘法。权重矩阵中的每个元素都可以视为加权求和的一个权重值,可选的,权重矩阵中的元素在区间[0,1]内取值,各权重矩阵中的元素满足关系Wt(i,j)表示第t个权重矩阵中第i行第j列的元素。
利用权重矩阵对过渡光流进行加权求和,不同于利用一维的权重值进行加权求和(例如,计算过渡光流),权重矩阵是二维的,从而可以更加灵活地在初步光流中组合不同的待融合光流的信息,使得初步光流能够反映第一中间光流到第二中间光流的渐变,进一步使得通过光流求逆算出的目标光流也能反映这种渐变。
例如,可以按照以下规则设置权重矩阵中的元素:使权重矩阵中元素的最大值位置与该权重矩阵对应的光流的视角位置相关。
例如,上面的“相关”可以是指权重矩阵中元素的最大值位置与其对应的待融合光流的视角在整个视角范围内(指第一图像的视角和第二图像的视角之间的区域)的位置一致。
结合图3对“一致”的含义进行解释,同时为简单起见不妨假设Ft矩阵只有6列:
F1(图3中的Fm->0)是第一中间光流,对应的视角就是视角0,该视角位于整个视角范围(从视角0到视角1)的最左侧,从而按照上述规则设置的W1,最左侧一列取最大值,其余各列的可以逐渐减小,或者按照其他方式设置,例如,下面两个W1都满足上述规则:
F2(图3中的Fm->0.2)是位于F1之后的过渡光流,对应的视角就是视角0.2,该视角位于整个视角范围的左起大约20%的位置,从而按照上述规则设置的W2,左起第二列取最大值,其余各列的可以逐渐减小,或者按照其他方式设置。例如,下面两个W2都满足上述规则:
对于F3、F4、F5、F6(图3中的Fm->0.4、Fm->0.6、Fm->0.8、Fm->1),其对应的权重矩阵W3、W4、W5、W6的设置方式是类似的,不再详细阐述。
可选的,各个权重矩阵中元素的最大值可以保持统一,例如在上面的W1和W2中,元素的最大值或者均为1,或者均为0.8。上面的例子容易推广到光流包含更多列的情况,此时权重矩阵中取最大值的元素可能为一列或多列。例如,对于图3场景中的W2(此时不再限定光流为6列),就是矩阵总列数×20%位置处的一列或者附近的几列取最大值。
某个权重矩阵中元素的最大值位置与其对应的待融合光流(也是一个矩阵)的视角位置一致,则利用该权重矩阵进行加权计算后,可使得待融合光流的光流矩阵中,在其视角位置对应的那些光流值对初步光流中同位置的光流值计算贡献最大,在其余位置对应的光流值对初步光流中同位置光流值的计算贡献则相对较小。如果所有权重矩阵均按照上述规则设置,并且保证各个权重矩阵中元素的最大值一致,可以使得在初步光流的光流矩阵中,对应于每个视角位置的光流值主要由该视角位置所对应的待融合光流贡献,从而使得初步光流能够反映第一中间光流到第二中间光流的渐变,进一步使得通过光流求逆算出的目标光流也能反映这种渐变。
例如,仍然考虑待融合光流只有6列的情况,将Wt(t取1至6的整数)设置为第t列元素均取1,其余各列元素均取0的形式。则进行加权求和后,在得到的初步光流Fm->0~1中,第t列来自Ft,或者说每个Ft贡献了Fm->0~1中与其视角位置对应的一列元素值,因此Fm->0~1够反映从F1到F6的光流渐变。作为对比的,如果采用一维的权重值(假设记为wt)对待融合光流进行加权求和,由于wt不加区分地作用于Ft中的每个光流值,所以并不能很好地体现出Ft中不同位置的光流值对Fm->0~1中的光流值在计算贡献上的区别,因此所得到的Fm->0~1不能很好地反映从F1到F6的光流渐变。
需要指出,上面的“相关”也可以采取其他定义,权重矩阵中元素的最大值位置与其对应的待融合光流的视角在整个视角范围内的位置也可以不严格一致,只是大致上一致,等等。
考虑这样一种场景,以上阐述的图像拼接方法是基于一个称为图像拼接模型的神经网络模型实现的,该模型包括三个子网络,分别是光流计算网络、光流求逆网络以及掩膜计算网络。其中,光流计算网络用于估计第一截图光流和第二截图光流,进而可以计算出第一中间光流和第二中间光流(见步骤b);光流求逆网络用于计算初步光流的逆向光流,得到目标光流(见步骤B2);掩膜计算网络用于计算拼接掩膜,进而可以计算出拼接图像(见步骤D)。
以上三个子网络的功能前文已经详细介绍,不再重复阐述,下面在以上实施例的基础上,介绍图像拼接模型的训练方法。其可能的流程如图5所示。该模型训练方法可以但不限于由图8示出的电子设备执行,关于该电子设备的结构,可以参考后文关于图8的阐述。参照图5,该方法包括:
步骤S210:利用图像拼接模型计算第一图像和第二图像的拼接图像。
步骤S220:获取第一真实截图光流、第二真实截图光流、真实目标光流以及真实拼接图像。
步骤S230:根据第一截图光流、第二截图光流、第一真实截图光流和第二真实截图光流计算光流预测损失。
步骤S240:根据目标光流和真实目标光流计算光流求逆损失。
步骤S250:根据拼接图像和真实拼接图像计算图像拼接损失。
步骤S260:根据光流预测损失、光流求逆损失和图像拼接损失计算总损失,并根据总损失更新光流计算网络、光流求逆网络和掩膜计算网络的参数。
其中,步骤S210可以采用本申请实施例提供的图像拼接方法实现(相应的步骤要使用图像拼接模型中的三个子网络),不再重复阐述。但须注意,由于图8是一种训练方法,应用于模型训练阶段,因此步骤S210中的第一图像和第二图像是训练用的图像,步骤S110中则没有限定第一图像和第二图像是训练用的图像还是推断用的图像。
步骤S220中的第一真实截图光流、第二真实截图光流、真实目标光流以及真实拼接图像均为监督信号。其中,第一真实截图光流和第二真实截图光流在步骤S230中用于计算光流预测损失,以监督光流计算网络的训练;真实目标光流在步骤S240中用于计算光流求逆损失,以监督光流求逆网络的训练;真实拼接图像在步骤S250中用于计算图像拼接损失,以监督掩膜计算网络的训练。当然,针对于图像拼接模型中靠后的子网络所计算出的损失对于图像拼接模型中靠前的子网络也可能存在监督作用,例如,光流求逆损失对于光流计算网络也可能会起到监督作用,图像拼接损失对于光流计算网络和光流求逆网络也可能会起到监督作用。
步骤S220至步骤S250在执行顺序上比较灵活,下面进行说明:
步骤S220中的三项监督信号可以一起获取,也可以分别获取,这里所说的“获取”包括进行计算或者直接读取的情况。对于分别获取的情况,可以在获取某项监督信号后,立即进行相应损失的计算,例如,获取第一真实截图光流和第二真实截图光流后,就执行步骤S230进行计算光流预测损失(前提是第一截图光流和第二截图光流已经计算好),并不一定要等到三项监督信号都获取完毕后才执行步骤S230。
步骤S220的执行时机和步骤S210没有必然的关系,可以在步骤S210之前执行,可以在步骤S210之后执行(图8示出的情况),也可以和步骤S210并行执行。
步骤S230至步骤S250中三项损失的计算时机不限。例如,可以等步骤S210执行完了之后再计算这三项损失,此时第一截图光流、第二截图光流、目标光流、拼接图像都在执行步骤S210的过程中算出,从而可以进行损失计算,并且此时三项损失的计算顺序是无所谓的。又例如,可以在步骤S210的过程中就计算损失,比如,计算出第一截图光流和第二截图光流后就可以执行步骤S230计算(前提是第一真实截图光流和第二真实截图光流已经获取),不必等到拼接图像计算完毕后才计算。
步骤S260中根据光流预测损失、光流求逆损失和图像拼接损失计算总损失,可以采用加权求和、计算乘积等方式,以加权求和为例,总损失可以表示为:Loss=α×Loss1+β×Loss2+γ×Loss3。其中,α、β、γ为加权系数,Loss1、Loss2、Loss3分别是光流预测损失、光流求逆损失和图像拼接损失。根据总损失进行反向传播,可以实现图像拼接模型的参数更新。
上述模型训练方法由于同时考虑了与三个子网络对应的损失:光流预测损失、光流求逆损失以及图像拼接损失,即通过训练同时提高模型的中间光流预测精度、目标光流预测精度以及拼接掩膜预测精度,从而最终得到的图像拼接模型能够实现高质量的图像拼接。
应当理解,在某些实现方式中,即使图像拼接模型包括上述三个子网络,也可以只计算其中一项或者两项损失,并不需计算全部三项损失,例如,由于图像拼接损失对于光流计算网络和光流求逆网络也能起到监督作用,所以也可以只计算图像拼接损失。显然,若某些损失不计算,相应的监督信号也无需获取。
还应当理解,图像拼接方法的某些步骤也可能不利用神经网络来实现,从而图像拼接模型也不一定会包含上述三个子网络。例如,也可以通过其他方法进行光流求逆,这样图像拼接模型将不包含光流求逆网络,相应的光流求逆损失自然也就无需计算。
在一些实现方式中,可以将真实图像作为中间图像来生成步骤S210中的第一图像和第二图像。这里所说的真实图像,可以是真实采集的图像,当然也可以是计算机视觉算法生成的图像,总之,此时的中间图像是已知的、实际存在的图像,与前文对中间图像的解释不同(前文在介绍步骤S120时,将中间图像视为一张虚拟图像)。生成一组第一图像和第二图像的方法为:
根据中间图像和某个单应性矩阵,计算得到第一图像,以及,根据中间图像和该单应性矩阵的逆矩阵,计算得到第二图像。图6示出了这一图像生成过程,其中h表示某个单应性矩阵,h-1表示h的逆矩阵,基于中间图像,分别利用h和h-1进行投影变换就可以得到第一图像和第二图像。
显然,对于一张给定的中间图像,只需改变h,就可以得到一组不同的第一图像和第二图像,从而该方法可以基于少量的真实图像“创造”出大量供训练用的待拼接图像。单应性矩阵h可以预先设置好,也可以通过算法临时生成。
进一步的,步骤S220中的三项监督信号可以通过以下方式生成:
(1)真实截图光流的生成
根据h计算第一真实中间光流,并根据第一真实中间光流计算第一真实截图光流,以及,根据h-1计算第二真实中间光流,并根据第二真实中间光流计算第二真实截图光流。真实截图光流应理解为理想情况下的截图光流估计结果。
单应性矩阵所代表的投影变换给出了两张图像像素之间的对应关系,因此已知单应性矩阵很容易计算两张图像之间的光流。
从而,利用中间图像和第一图像之间的单应性矩阵h,可以计算二者之间的光流,称为第一真实中间光流,获得第一真实中间光流后,通过截图(截取第一图像和第二图像中包含共同画面的图像区域)就可以得到第一真实截图光流。类似的,利用中间图像和第二图像之间的单应性矩阵h-1,可以计算二者之间的光流,称为第二真实中间光流,获得第二真实中间光流后,通过截图就可以得到第二真实截图光流。
(2)真实目标光流的生成
根据h和h-1,插值计算至少一个过渡矩阵,根据h、至少一个过渡矩阵以及h-1,融合得到目标矩阵,并根据目标矩阵计算真实目标光流。真实目标光流应理解为理想情况下的初步光流求逆结果。
这里采用的插值方法和前面计算过渡光流时的插值方法类似(例如,利用权重值加权求和),这里采用的融合方法则和前面计算目标光流时的融合方法类似(例如,利用权重矩阵加权求和),虽然前面的计算方法针对的对象是光流,但从数学意义上看,单应性矩阵和光流都是矩阵,并没有本质区别,所以之前针对光流的计算方法可以应用在此处。需要指出,这里融合h、至少一个过渡矩阵以及h-1之后,就可以直接得到目标矩阵,并不需要计算逆矩阵(目标光流要通过初步光流求逆得到),因为对于单应性矩阵的融合来说,求逆需要在融合之前对矩阵本身进行,但对h求逆就是h-1,对h-1求逆就是h,只是将二者交换了一下而已,所以矩阵求逆的步骤就可以省略了。
由于目标矩阵也可以视为中间图像和真实拼接图像之间的单应性矩阵(如图6所示),所以根据目标矩阵可以计算二者之间的光流,即真实目标光流。
另外,如果某个可选方案中并不需要计算过渡光流,那么上面的过渡矩阵也无需计算,直接根据h和h-1计算目标矩阵就可以了。
(3)真实拼接图像
根据中间图像和目标矩阵可以计算真实拼接图像,与计算第一图像和第二图像类似,不再重复阐述。真实拼接图像应理解为理想情况下第一图像和第二图像的拼接结果。
在上述实现方式中,如果将一组待拼接图像(包括第一图像和第二图像)及其对应的监督信号视为一个训练样本,由于单应性矩阵可以任意指定,所以此种实现方式可以利用少量的真实图像(这些图像可以位于训练集中)快速地生成大量的训练样本,并且选取不同的单应性矩阵,可使得这些样本覆盖不同的场景,从而使训练得到的图像拼接模型具有良好的泛化能力。
介绍了训练数据的生成后,可以对中间图像中“中间”作出更为明确的解释,这里的“中间”可以指利用单应性矩阵确定的、投影变换意义上的“中间”,即在该“中间”位置采集的图像,通过某个单应性矩阵可以变换得到第一图像,并且,通过该单应性矩阵的逆矩阵,可以变换得到第二图像。可以理解的,如果采用其他方式生成训练数据,“中间”的定义也会相应地变换。
图7示出了本申请实施例提供的图像拼接装置300的结构。参照图7,图像拼接装置300包括:
图像获取模块310,用于获取第一图像和第二图像;
中间光流计算模块320,用于根据所述第一图像和所述第二图像,计算得到第一中间光流和第二中间光流,所述第一中间光流为中间图像和所述第一图像之间的光流,所述第二中间光流为所述中间图像和所述第二图像之间的光流,所述中间图像为视角介于第一图像和第二图像之间的图像,所述第一中间光流的尺寸与所述第一图像的尺寸相同,所述第二中间光流的尺寸与所述第二图像的尺寸相同;
图像拼接模块330,用于根据所述第一中间光流、所述第二中间光流、所述第一图像和所述第二图像,计算得到所述第一图像和所述第二图像的拼接图像。
在图像拼接装置300的一种实现方式中,中间光流计算模块320根据所述第一图像和所述第二图像,计算得到第一中间光流和第二中间光流,包括:分别截取所述第一图像和所述第二图像中包含共同画面的图像区域,得到第一截图和第二截图;将所述第一截图和所述第二截图输入光流计算网络,得到第一截图光流和第二截图光流,所述第一截图光流为所述中间图像和所述第一截图之间的光流,所述第二截图光流为所述中间图像和所述第二截图之间的光流;将所述第一截图光流上采样至所述第一图像的尺寸,得到所述第一中间光流,以及,将所述第二截图光流上采样至所述第二图像的尺寸,得到所述第二中间光流。
在图像拼接装置300的一种实现方式中,图像拼接模块330根据所述第一中间光流、所述第二中间光流、所述第一图像和所述第二图像,计算得到所述第一图像和所述第二图像的拼接图像,包括:根据所述第一中间光流和所述第一图像,映射得到第一中间图像,以及,根据所述第二中间光流和所述第二图像,映射得到第二中间图像;根据所述第一中间光流和所述第二中间光流,计算得到目标光流;根据所述目标光流和所述第一中间图像,映射得到第一拼接图像,以及,根据所述目标光流和所述第二中间图像,映射得到第二拼接图像;根据所述第一拼接图像和所述第二拼接图像,拼接得到所述拼接图像。
在图像拼接装置300的一种实现方式中,图像拼接模块330根据所述第一中间光流和所述第二中间光流,计算得到目标光流,包括:根据所述第一中间光流和所述第二中间光流,插值计算至少一个过渡光流;根据所述第一中间光流、所述至少一个过渡光流以及所述第二中间光流,融合得到所述目标光流。
在图像拼接装置300的一种实现方式中,图像拼接模块330根据所述第一中间光流和所述第二中间光流,插值计算至少一个过渡光流,包括:获取至少一个权重值;分别基于每个权重值,对所述第一中间光流和所述第二中间光流进行加权求和,得到所述至少一个过渡光流。
在图像拼接装置300的一种实现方式中,所述权重值的大小与该权重值对应的过渡光流的视角位置相关。
在图像拼接装置300的一种实现方式中,所述第一中间光流的加权系数和所述第二中间光流的加权系数之和为1,所述权重值为所述第一中间光流的加权系数,所述权重值的大小与该权重值对应的过渡光流的视角位置和所述第一中间光流的视角位置之间的接近程度正相关。
在图像拼接装置300的一种实现方式中,所述至少一个权重值在区间(0,1)内均匀分布。
在图像拼接装置300的一种实现方式中,图像拼接模块330根据所述第一中间光流和所述第二中间光流,计算得到所述目标光流,包括:根据所述第一中间光流和所述第二中间光流,计算得到初步光流;将所述初步光流输入光流求逆网络,得到所述目标光流。
在图像拼接装置300的一种实现方式中,图像拼接模块330根据所述第一中间光流、所述至少一个过渡光流以及所述第二中间光流,融合得到所述目标光流,包括:获取N+2个权重矩阵,N为所述过渡光流的总数量;基于所述N+2个权重矩阵,对所述第一中间光流、N个过渡光流以及所述第二中间光流进行加权求和,得到所述初步光流;所述初步光流为所述目标光流,或者,将所述初步光流输入光流求逆网络,得到所述目标光流。
在图像拼接装置300的一种实现方式中,所述权重矩阵中元素的最大值位置与该权重矩阵对应的光流的视角位置相关。
在图像拼接装置300的一种实现方式中,图像拼接模块330根据所述第一拼接图像和所述第二拼接图像,拼接得到所述拼接图像,包括:将所述第一拼接图像和所述第二拼接图像输入掩膜计算网络,得到拼接掩膜;基于所述拼接掩膜,将所述第一拼接图像和所述第二拼接图像进行拼接,得到所述拼接图像。
在图像拼接装置300的一种实现方式中,所述第一中间光流和第二中间光流利用光流计算网络输出的第一截图光流和第二截图光流计算得到,所述目标光流利用光流求逆网络计算得到,所述拼接图像利用掩膜计算网络输出的拼接掩膜计算得到;所述装置还包括:
监督信号获取模块,用于获取第一真实截图光流、第二真实截图光流、真实目标光流以及真实拼接图像;
损失计算模块,用于根据所述第一截图光流、所述第二截图光流、所述第一真实截图光流和所述第二真实截图光流计算光流预测损失;以及,根据所述目标光流和所述真实目标光流计算光流求逆损失;以及,根据所述拼接图像和所述真实拼接图像计算图像拼接损失;
参数更新模块,用于根据所述光流预测损失、所述光流求逆损失和所述图像拼接损失计算总损失,并根据所述总损失更新所述光流计算网络、所述光流求逆网络和所述掩膜计算网络的参数。
在图像拼接装置300的一种实现方式中,所述目标光流根据所述第一中间光流、至少一个过渡光流以及所述第二中间光流融合得到,图像获取模块310获取第一图像和第二图像,包括:根据所述中间图像和指定的单应性矩阵,计算得到所述第一图像,以及,根据所述中间图像和所述单应性矩阵的逆矩阵,计算得到所述第二图像,所述中间图像为真实图像;
监督信号获取模块获取第一真实截图光流、第二真实截图光流、真实目标光流以及真实拼接图像,包括:根据所述单应性矩阵计算第一真实中间光流,并根据所述第一真实中间光流计算所述第一真实截图光流;根据所述单应性矩阵的逆矩阵计算第二真实中间光流,并根据所述第二真实中间光流计算所述第二真实截图光流;根据所述单应性矩阵和所述单应性矩阵的逆矩阵,插值计算至少一个过渡矩阵,根据所述单应性矩阵、所述至少一个过渡矩阵以及所述单应性矩阵的逆矩阵,融合得到目标矩阵,并根据所述目标矩阵计算所述真实目标光流;根据所述中间图像和所述目标矩阵计算所述真实拼接图像。
本申请实施例提供的图像拼接装置300,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
图8示出了本申请实施例提供的电子设备400的一种可能的结构。参照图8,电子设备400包括:处理器410、存储器420以及通信接口430,这些组件通过通信总线440和/或其他形式的连接机构(未示出)互连并相互通讯。
其中,处理器410包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器410可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network ProcessingUnit,简称NPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器410为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
存储器420包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,简称EEPROM)等。
处理器410以及其他可能的组件可对存储器420进行访问,读和/或写其中的数据。特别地,在存储器420中可以存储一个或多个计算机程序指令,处理器410可以读取并运行这些计算机程序指令,以实现本申请实施例提供的图像拼接方法。
通信接口430包括一个或多个(图中仅示出一个),可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。通信接口430可以包括进行有线和/或无线通信的接口。
可以理解,图8所示的结构仅为示意,电子设备400还可以包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。图8中所示的各组件可以采用硬件、软件或其组合实现。电子设备400可能是实体设备,例如PC机、笔记本电脑、平板电脑、手机、服务器、智能穿戴设备等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。并且,电子设备400也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机的处理器读取并运行时,执行本申请实施例提供的图像拼接方法。例如,计算机可读存储介质可以实现为图8中电子设备400中的存储器420。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种图像拼接方法,其特征在于,包括:
获取第一图像和第二图像;
根据所述第一图像和所述第二图像,计算得到第一中间光流和第二中间光流,所述第一中间光流为中间图像和所述第一图像之间的光流,所述第二中间光流为所述中间图像和所述第二图像之间的光流,所述中间图像为视角介于第一图像和第二图像之间的图像,所述第一中间光流的尺寸与所述第一图像的尺寸相同,所述第二中间光流的尺寸与所述第二图像的尺寸相同;
根据所述第一中间光流、所述第二中间光流、所述第一图像和所述第二图像,计算得到所述第一图像和所述第二图像的拼接图像。
2.根据权利要求1所述的图像拼接方法,其特征在于,所述根据所述第一图像和所述第二图像,计算得到第一中间光流和第二中间光流,包括:
分别截取所述第一图像和所述第二图像中包含共同画面的图像区域,得到第一截图和第二截图;
将所述第一截图和所述第二截图输入光流计算网络,得到第一截图光流和第二截图光流,所述第一截图光流为所述中间图像和所述第一截图之间的光流,所述第二截图光流为所述中间图像和所述第二截图之间的光流;
将所述第一截图光流上采样至所述第一图像的尺寸,得到所述第一中间光流,以及,将所述第二截图光流上采样至所述第二图像的尺寸,得到所述第二中间光流。
3.根据权利要求1或2所述的图像拼接方法,其特征在于,所述根据所述第一中间光流、所述第二中间光流、所述第一图像和所述第二图像,计算得到所述第一图像和所述第二图像的拼接图像,包括:
根据所述第一中间光流和所述第一图像,映射得到第一中间图像,以及,根据所述第二中间光流和所述第二图像,映射得到第二中间图像;
根据所述第一中间光流和所述第二中间光流,计算得到目标光流;
根据所述目标光流和所述第一中间图像,映射得到第一拼接图像,以及,根据所述目标光流和所述第二中间图像,映射得到第二拼接图像;
根据所述第一拼接图像和所述第二拼接图像,拼接得到所述拼接图像。
4.根据权利要求3所述的图像拼接方法,其特征在于,所述根据所述第一中间光流和所述第二中间光流,计算得到目标光流,包括:
根据所述第一中间光流和所述第二中间光流,插值计算至少一个过渡光流;
根据所述第一中间光流、所述至少一个过渡光流以及所述第二中间光流,融合得到所述目标光流。
5.根据权利要求4所述的图像拼接方法,其特征在于,所述根据所述第一中间光流和所述第二中间光流,插值计算至少一个过渡光流,包括:
获取至少一个权重值;
分别基于每个权重值,对所述第一中间光流和所述第二中间光流进行加权求和,得到所述至少一个过渡光流。
6.根据权利要求5所述的图像拼接方法,其特征在于,所述权重值的大小与该权重值对应的过渡光流的视角位置相关。
7.根据权利要求6所述的图像拼接方法,其特征在于,所述第一中间光流的加权系数和所述第二中间光流的加权系数之和为1,所述权重值为所述第一中间光流的加权系数,所述权重值的大小与该权重值对应的过渡光流的视角位置和所述第一中间光流的视角位置之间的接近程度正相关。
8.根据权利要求5-7中任一项所述的图像拼接方法,其特征在于,所述至少一个权重值在区间(0,1)内均匀分布。
9.根据权利要求3-8中任一项所述的方法,其特征在于,所述根据所述第一中间光流和所述第二中间光流,计算得到目标光流,包括:
根据所述第一中间光流和所述第二中间光流,计算得到初步光流;
将所述初步光流输入光流求逆网络,得到所述目标光流。
10.根据权利要求4-8中任一项所述的图像拼接方法,其特征在于,所述根据所述第一中间光流、所述至少一个过渡光流以及所述第二中间光流,融合得到所述目标光流,包括:
获取N+2个权重矩阵,N为所述过渡光流的总数量;
基于所述N+2个权重矩阵,对所述第一中间光流、N个过渡光流以及所述第二中间光流进行加权求和,得到初步光流;
所述初步光流为所述目标光流,或者,将所述初步光流输入光流求逆网络,得到所述目标光流。
11.根据权利要求10所述的图像拼接方法,其特征在于,所述权重矩阵中元素的最大值位置与该权重矩阵对应的光流的视角位置相关。
12.根据权利要求3至11任一项所述的图像拼接方法,其特征在于,所述根据所述第一拼接图像和所述第二拼接图像,拼接得到所述拼接图像,包括:
将所述第一拼接图像和所述第二拼接图像输入掩膜计算网络,得到拼接掩膜;
基于所述拼接掩膜,将所述第一拼接图像和所述第二拼接图像进行拼接,得到所述拼接图像。
13.根据权利要求3-12中任一项所述的图像拼接方法,其特征在于,所述第一中间光流和第二中间光流利用光流计算网络输出的第一截图光流和第二截图光流计算得到,所述目标光流利用光流求逆网络计算得到,所述拼接图像利用掩膜计算网络输出的拼接掩膜计算得到;
所述方法还包括:
获取第一真实截图光流、第二真实截图光流、真实目标光流以及真实拼接图像;
根据所述第一截图光流、所述第二截图光流、所述第一真实截图光流和所述第二真实截图光流计算光流预测损失;
根据所述目标光流和所述真实目标光流计算光流求逆损失;
根据所述拼接图像和所述真实拼接图像计算图像拼接损失;
根据所述光流预测损失、所述光流求逆损失和所述图像拼接损失计算总损失,并根据所述总损失更新所述光流计算网络、所述光流求逆网络和所述掩膜计算网络的参数。
14.根据权利要求13所述图像拼接方法,其特征在于,所述目标光流根据所述第一中间光流、至少一个过渡光流以及所述第二中间光流融合得到,所述获取第一图像和第二图像,包括:
根据所述中间图像和单应性矩阵,计算得到所述第一图像,以及,根据所述中间图像和所述单应性矩阵的逆矩阵,计算得到所述第二图像,所述中间图像为真实图像;
所述获取第一真实截图光流、第二真实截图光流、真实目标光流以及真实拼接图像,包括:
根据所述单应性矩阵计算第一真实中间光流,并根据所述第一真实中间光流计算所述第一真实截图光流;
根据所述单应性矩阵的逆矩阵计算第二真实中间光流,并根据所述第二真实中间光流计算所述第二真实截图光流;
根据所述单应性矩阵和所述单应性矩阵的逆矩阵,插值计算至少一个过渡矩阵,根据所述单应性矩阵、所述至少一个过渡矩阵以及所述单应性矩阵的逆矩阵,融合得到目标矩阵,并根据所述目标矩阵计算所述真实目标光流;
根据所述中间图像和所述目标矩阵计算所述真实拼接图像。
15.一种图像拼接装置,其特征在于,包括:
图像获取模块,用于获取第一图像和第二图像;
中间光流计算模块,用于根据所述第一图像和所述第二图像,计算得到第一中间光流和第二中间光流,所述第一中间光流为中间图像和所述第一图像之间的光流,所述第二中间光流为所述中间图像和所述第二图像之间的光流,所述中间图像为视角介于第一图像和第二图像之间的图像,所述第一中间光流的尺寸与所述第一图像的尺寸相同,所述第二中间光流的尺寸与所述第二图像的尺寸相同;
图像拼接模块,用于根据所述第一中间光流、所述第二中间光流、所述第一图像和所述第二图像,计算得到所述第一图像和所述第二图像的拼接图像。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-14中任一项所述的方法。
17.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求1-14中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110597189.7A CN113469880A (zh) | 2021-05-28 | 2021-05-28 | 图像拼接方法及装置、存储介质及电子设备 |
PCT/CN2022/080233 WO2022247394A1 (zh) | 2021-05-28 | 2022-03-10 | 图像拼接方法及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110597189.7A CN113469880A (zh) | 2021-05-28 | 2021-05-28 | 图像拼接方法及装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113469880A true CN113469880A (zh) | 2021-10-01 |
Family
ID=77871814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110597189.7A Pending CN113469880A (zh) | 2021-05-28 | 2021-05-28 | 图像拼接方法及装置、存储介质及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113469880A (zh) |
WO (1) | WO2022247394A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022247394A1 (zh) * | 2021-05-28 | 2022-12-01 | 北京迈格威科技有限公司 | 图像拼接方法及装置、存储介质及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106803899A (zh) * | 2015-11-26 | 2017-06-06 | 华为技术有限公司 | 合并图像的方法和装置 |
CN106997579A (zh) * | 2016-01-26 | 2017-08-01 | 华为技术有限公司 | 图像拼接的方法和装置 |
CN107369129A (zh) * | 2017-06-26 | 2017-11-21 | 深圳岚锋创视网络科技有限公司 | 一种全景图像的拼接方法、装置及便携式终端 |
CN107451952A (zh) * | 2017-08-04 | 2017-12-08 | 追光人动画设计(北京)有限公司 | 一种全景视频的拼接融合方法、设备以及系统 |
US20180137633A1 (en) * | 2016-11-14 | 2018-05-17 | Htc Corporation | Method, device, and non-transitory computer readable storage medium for image processing |
US20190068876A1 (en) * | 2017-08-29 | 2019-02-28 | Nokia Technologies Oy | Method Of Image Alignment For Stitching Using A Hybrid Strategy |
CN111696035A (zh) * | 2020-05-21 | 2020-09-22 | 电子科技大学 | 一种基于光流运动估计算法的多帧图像超分辨率重建方法 |
CN112104830A (zh) * | 2020-08-13 | 2020-12-18 | 北京迈格威科技有限公司 | 视频插帧方法、模型训练方法及对应装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113469880A (zh) * | 2021-05-28 | 2021-10-01 | 北京迈格威科技有限公司 | 图像拼接方法及装置、存储介质及电子设备 |
-
2021
- 2021-05-28 CN CN202110597189.7A patent/CN113469880A/zh active Pending
-
2022
- 2022-03-10 WO PCT/CN2022/080233 patent/WO2022247394A1/zh unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106803899A (zh) * | 2015-11-26 | 2017-06-06 | 华为技术有限公司 | 合并图像的方法和装置 |
CN106997579A (zh) * | 2016-01-26 | 2017-08-01 | 华为技术有限公司 | 图像拼接的方法和装置 |
US20180137633A1 (en) * | 2016-11-14 | 2018-05-17 | Htc Corporation | Method, device, and non-transitory computer readable storage medium for image processing |
CN107369129A (zh) * | 2017-06-26 | 2017-11-21 | 深圳岚锋创视网络科技有限公司 | 一种全景图像的拼接方法、装置及便携式终端 |
CN107451952A (zh) * | 2017-08-04 | 2017-12-08 | 追光人动画设计(北京)有限公司 | 一种全景视频的拼接融合方法、设备以及系统 |
US20190068876A1 (en) * | 2017-08-29 | 2019-02-28 | Nokia Technologies Oy | Method Of Image Alignment For Stitching Using A Hybrid Strategy |
CN111696035A (zh) * | 2020-05-21 | 2020-09-22 | 电子科技大学 | 一种基于光流运动估计算法的多帧图像超分辨率重建方法 |
CN112104830A (zh) * | 2020-08-13 | 2020-12-18 | 北京迈格威科技有限公司 | 视频插帧方法、模型训练方法及对应装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022247394A1 (zh) * | 2021-05-28 | 2022-12-01 | 北京迈格威科技有限公司 | 图像拼接方法及装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2022247394A1 (zh) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xu et al. | Quadratic video interpolation | |
JP7093886B2 (ja) | 画像処理方法及び装置、電子機器並びに記憶媒体 | |
Wu et al. | Learning sheared EPI structure for light field reconstruction | |
Yeh et al. | Semantic facial expression editing using autoencoded flow | |
CN114549731B (zh) | 视角图像的生成方法、装置、电子设备及存储介质 | |
Wu et al. | Revisiting light field rendering with deep anti-aliasing neural network | |
Zhang et al. | Non-local kernel regression for image and video restoration | |
WO2021238500A1 (zh) | 全景视频插帧方法、装置及对应的存储介质 | |
Guo et al. | Deep spatial-angular regularization for light field imaging, denoising, and super-resolution | |
CN113256529B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN110246161B (zh) | 一种360度全景图像无缝拼接的方法 | |
Guan et al. | Srdgan: learning the noise prior for super resolution with dual generative adversarial networks | |
Dutta | Depth-aware blending of smoothed images for bokeh effect generation | |
Navarro et al. | Learning occlusion-aware view synthesis for light fields | |
Yue et al. | Real-rawvsr: Real-world raw video super-resolution with a benchmark dataset | |
Nguyen et al. | Single image super-resolution via a dual interactive implicit neural network | |
Nam et al. | Neural image representations for multi-image fusion and layer separation | |
Elwarfalli et al. | Fifnet: A convolutional neural network for motion-based multiframe super-resolution using fusion of interpolated frames | |
WO2022247394A1 (zh) | 图像拼接方法及装置、存储介质及电子设备 | |
Zeng et al. | Real-time video super resolution network using recurrent multi-branch dilated convolutions | |
Zhang et al. | Pseudo-LiDAR point cloud magnification | |
Salvador et al. | Patch-based spatio-temporal super-resolution for video with non-rigid motion | |
Shi et al. | Deep residual architecture using pixel and feature cues for view synthesis and temporal interpolation | |
Qi et al. | Virtual view synthesis for 3D light-field display based on feature reprojection and fusion | |
Yan et al. | Stereoscopic image generation from light field with disparity scaling and super-resolution |
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 |