CN111052176B - 无缝图像拼接 - Google Patents
无缝图像拼接 Download PDFInfo
- Publication number
- CN111052176B CN111052176B CN201880051657.7A CN201880051657A CN111052176B CN 111052176 B CN111052176 B CN 111052176B CN 201880051657 A CN201880051657 A CN 201880051657A CN 111052176 B CN111052176 B CN 111052176B
- Authority
- CN
- China
- Prior art keywords
- image
- camera
- images
- grid
- particular embodiments
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 218
- 238000003860 storage Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 9
- 238000005457 optimization Methods 0.000 description 64
- 230000008569 process Effects 0.000 description 47
- 238000002156 mixing Methods 0.000 description 37
- 239000011159 matrix material Substances 0.000 description 32
- 230000015654 memory Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 29
- 238000004422 calculation algorithm Methods 0.000 description 22
- 238000012937 correction Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 15
- 230000007423 decrease Effects 0.000 description 12
- 238000001514 detection method Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 9
- 238000006073 displacement reaction Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 238000003708 edge detection Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000009467 reduction Effects 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000014616 translation Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 238000009499 grossing Methods 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 241000251468 Actinopterygii Species 0.000 description 2
- 241000282412 Homo Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- RMMXTBMQSGEXHJ-UHFFFAOYSA-N Aminophenazone Chemical compound O=C1C(N(C)C)=C(C)N(C)N1C1=CC=CC=C1 RMMXTBMQSGEXHJ-UHFFFAOYSA-N 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 229960000212 aminophenazone Drugs 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 238000004826 seaming Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000002366 time-of-flight method Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- 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/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- 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
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Studio Devices (AREA)
Abstract
在一个实施例中,一种方法包括访问第一图像和第二图像,其中第一图像的至少一部分与第二图像的至少一部分重叠。将第一图像和第二图像划分为与第一栅格点集相关联的部分,其中第一栅格点集中的每个栅格点对应于第一图像或第二图像的一部分。确定第一图像与第二图像之间的重叠区域中的差异。基于确定的差异,相对于第一栅格点集中的一个或多个其他栅格点移动第一栅格点集中的一个或多个栅格点以及第一图像或第二图像的对应部分。
Description
技术领域
本公开总体涉及组合电子图像。
背景技术
可以由许多不同种类的电子设备来捕获场景的电子图像。例如,图像可以由具有内置于设备中的相机的移动设备(例如,移动电话或平板电脑)捕获。有时,可以捕获场景的两个或更多个图像。电子捕获的图像可以包括与在另一电子图像中捕获的场景的一部分重叠的场景的一部分。然而,重叠部分可以从不同的视角(例如,不同的角度或距离)获得,因此两个图像的重叠部分可能不相同。这些差异使得难以将两个图像合并到场景的一个图像中,因为可能无法通过将一个图像中的场景的一部分叠加在另一图像中的场景的一部分上来简单地混合图像。此外,即使有可能,采用该方法也会扭曲场景的其他部分。
发明内容
一个或多个实施例涉及无缝图像拼接。在一些实施例中,一种访问第一图像和第二图像的方法,其中,第一图像的至少一部分与第二图像的至少一部分重叠;识别第一图像中的一个或多个特征以及第二图像中的一个或多个对应特征,其中:一个或多个特征以及一个或多个对应特征在第一图像与第二图像之间的重叠区域中;并且一个或多个特征中的每一个未与其对应特征对准;对于每个特征,调整第一图像的包含特征的一部分或第二图像的包含对应特征的一部分,其中,调整基于:特征与对应特征之间的未对准量;以及由调整引起的第一或第二图像的一部分的失真量。
在一些实施例中,每个特征由特征点表示,每个对应特征由对应特征点表示;并且基于特征点与对应特征点之间的距离来确定未对准量。
在一些实施例中,调整还基于调整后的图像的第二部分的几何失真量,其中第二部分不包括特征或对应特征。
在一些实施例中,该方法还包括将第一图像和第二图像划分为多个单元,其中:每个单元由多个栅格点定义;并且调整第一图像的包含特征的一部分或第二图像的包含对应特征的一部分包括移动至少一个栅格点。
在一些实施例中,每个特征和对应特征在相同的单元内;并且调整第一图像的包含特征的一部分或调整第二图像的包含对应特征的一部分包括:调整第一图像或第二图像的多个栅格点中的一个或多个;并且基于由对包含特征的第一单元进行定义的至少两个第一栅格点定义的几何形状的变化来确定第一或第二图像的该部分的失真量,其中该变化是由调整引起的。
在一些实施例中,几何形状包括三角形,并且至少两个第一栅格点包括至少三个第一栅格点。
在一些实施例中,调整还基于至少部分地对调整后的图像的多个第二单元进行定义的一个或多个第二栅格点的移动量,其中,每个第二单元不包含特征或对应特征。
在一些实施例中,调整基于对成本函数的值最小化,该成本函数包括:第一和,包括调整后每个特征点与其对应特征点之间的距离的平方和;第二和,包括调整后每个第二栅格点的移动量的平方和;以及第三和,包括每个第一栅格点与对应点(如果第一栅格点被移动到对应点,则不会引起几何形状的变化)之间的距离的平方和。
在一些实施例中,第三和中的每个项与对应于该单元的显着性的权重相关联。
在一些实施例中,第一和与第一权重相关联,第一权重是与第二和相关联的第二权重的一百倍;并且第二权重是与第三和相关联的第三权重的十倍。
在一些实施例中,第一和第二图像在被访问之前彼此对准。
在一些实施例中,该方法还包括渲染调整后的第一图像和第二图像。
在一些实施例中,至少一个特征点或至少一个对应特征点被显示第一和第二图像的客户端设备的用户识别。
附图说明
图1示出使用现有/当前拼接技术获得的示例拼接图像以及示例改进拼接技术的结果。
图2示出示例3-D成像***架构。
图3示出示例相机立体对。
图4示出相机***的示例相机配置的局部平面图。
图5示出示例相机***的平面图。
图6示出由相机***的相机捕获的示例图像集。
图7示出示例相机***的侧视图。
图8示出由相机***的相机捕获的示例重叠图像集。
图9示出用于拼接离散图像的示例方法。
图10和图11示出用于拼接离散图像的其他示例方法。
图12示出图像的示例划分。
图13示出图像的示例特征点匹配。
图14示出示例顶部图像和示例主拼接图像。
图15示出在处理之后来自图14的示例顶部图像。
图16和图17示出用于拼接离散图像的示例方法。
图18是用于基于栅格优化来拼接图像的示例方法的流程图。
图19是示出栅格优化中涉及的步骤的示例方法的流程图。
图20是用于基于栅格优化来拼接图像的另一示例方法的流程图。
图21示出用于拼接的示例离散图像。
图22示出具有图像伪像的示例初始图像。
图23示出在图像中的边缘检测中获得的示例图像边缘或对比度线。
图24A至图24H以图示方式示出用于示例图像的示例栅格优化过程。
图25示出用于控制图像中的栅格点的移动的平滑或弹性约束。
图26示出示例接缝估计。
图27示出使用本公开的图像拼接技术的示例拼接图像。
图28A示出使用现有/当前拼接技术获得的示例拼接图像,而图28B示出示例改进拼接技术的结果。
图29示出用于将两个或更多个图像合并为单个图像的示例方法。
图30示出用于调整图像的各部分以校正合并的图像之间的未对准的示例方法。
图31示出用于确定总成本函数J的详细示例计算集。
图32示出用于使用双线性映射来确定特征的坐标的详细示例计算集。
图33示出示例计算机***。
具体实施方式
本文讨论的特定实施例涉及用于将两个或更多个电子图像无缝地拼接或组合在一起以产生拼接的图像(例如,全景图像或360°图像)的***、装置和方法。在特定实施例中,可以从相机***(例如,图21所示的图像2102-2116)、从单个相机、或者从存储图像的客户端或服务器设备接收多个图像。图像可能例如根据关于图8至图18示出和描述的拼接技术而已经受某种程度的初始拼接。作为另一示例,可以通过计算图像之间的点对点对应关系而针对场景中的所有图像来估计相机参数以及通过改变各种相机属性(例如,焦距、视场、透镜偏移)而优化它们之间的距离,来执行初始拼接。
现有的拼接技术可能不能产生平滑的图像,并且经常产生图像伪像,例如由图1中的附图标记102a和104a所示,以及图22所示的图像伪像2202-2210。图28A还示出由常规的拼接过程引起的图像伪像。每当将任意两种类型的图像拼接在一起时,都可能引入拼接伪像,并且在相对靠近观看者的场景的部分中和/或当对将用于生成3D图像的图像进行拼接时,伪像可能特别严重。可能会通过拍摄一系列图片的相机的空间移动或拍摄不同图片的多个相机之间的空间偏移而引入拼接伪像。另外,不总是可以计算出能够满足图像之间的所有点对应关系以使得图像完美对准的单个2D转换。
本文讨论的拼接技术的一项技术改进在于生成无缝的平滑图像并消除/最小化这些图像伪像,例如由图1中的附图标记102b和104b所示。在图27中示出使用本文讨论的示例技术所生成的示例拼接图像。为了拼接两个图像,可以首先将图像扭曲到球体上并且去鱼眼(defish)以产生直线图像。可以使用索贝尔(sobel)梯度对这些图像执行边缘检测,以计算图像边缘和对比度线(例如参见图23),从而可以将图像彼此进行比较。可以执行栅格优化以最小化两个图像的重叠区域的归一化梯度之间的差异。在特定实施例中,栅格优化涉及尽可能地对准两个图像的边缘图。具体地,栅格优化可以包括将图像中的每一个划分为栅格点(例如,参见图24A至图24F),并且递归地图像的移动栅格点和对应部分,以使在两个图像的重叠区域中的特征之间的边缘线的差异最小化或者使两个图像的重叠区域的归一化梯度之间的差异最小化。在特定实施例中,可以添加包括弹性(spring)或平滑约束集的力模型,该力模型将栅格点在两个图像之间或同一图像内的移动限制为某个阈值(例如,栅格点可以仅将特定像素从其原始位置向左/右/上/下移动)。可以采用金字塔等级技术,其中可以以多次迭代或步骤来进行优化(例如,将图像划分为栅格区域并移动栅格点),例如,开始时非常粗糙(例如,如图24B所示),并且随着金字塔等级的降低而逐渐变精细(例如,参见图24B至图24C或图24C至图24D)。在较高的金字塔等级中,算法以较大的窗口进行搜索,随着金字塔等级的降低,窗口减小。随着金字塔等级的降低,可以添加新的栅格点(例如,参见图24C至图24F)。可以从先前点的位置***新的栅格点的初始位置,然后栅格可以被再次优化。可以重复该过程,直到两个图像的重叠区域的归一化梯度之间的差异在某个阈值内或小于某个阈值。一旦差异在阈值之内(例如,两个图像的边缘或边缘线彼此重叠),就可以执行接缝估计和混合以产生组合的或拼接的图像,例如,如图27所示。在一些实施例中,在接缝和混合之前,可以可选地对图像执行颜色校正。颜色校正可以包括图像的曝光、晕影去除和白平衡校正。图像拼接技术可以在中央处理单元(CPU)或图形处理单元(GPU)上执行以更快地实现。本文讨论的用于图像拼接的栅格优化方法还可以适用于视频拼接、拼接顶部图像以及3D拼接。
在其他实施例中,将两个或更多个图像合并为单个图像可以通过基于多种考虑而调整图像来实现。例如,可以通过调整(例如,通过扭曲或变形)图像中的一个或两个的至少一部分以使未对准最小化,来校正重叠图像的未对准部分。然而,调整图像以使其完全对齐可能需要进行大量调整,以至于图像的其他部分变得未对准并且显示给观看者为失真的。因此,用于将两个或更多个图像合并在一起的考虑可以包括通过对图像的未对准部分进行对准而引起的图像失真的分析。如以下参考图29至图32所说明的,图像失真可以包括局部失真和全局失真两者,局部失真指的是正在被对准的部分附近的图像的失真;全局失真指的是不在图像的未对准部分附近的图像部分的失真。因此,将两个或更多个图像合并成单个图像可以平衡对准和图像失真的竞争考虑,以便减少未对准,同时还保持图像质量。
图2示出示例3-D成像***架构。在特定实施例中,用于捕获、编码和渲染360°3-D视频的***架构200可以包括相机***210、前端处理器220、拼接服务器230、内容服务器240和客户端***250。尽管本公开描述并示出了由特定***构成的特定3-D成像***,但是本公开涵盖由任何合适的***构成的任何合适的3-D成像***。此外,尽管下文描述了执行特定功能的特定组件,但是本公开涵盖任何合适的组件可以执行任何合适的功能。例如,本公开涵盖以下描述的处理可以适当地在服务器设备、客户端设备或两者上执行。
相机***210可以包括被配置为数字地捕获图像的多对相机212(参见图3至图5)。作为示例而非限制,捕获的图像可以对应于实时地捕获并处理的360°3-D视频。相机***210的相机212可以(例如,通过通用串行总线(USB))连接到前端处理器220。前端处理器220可以通过使来自各个相机212的图像的开始和停止同步来提供相机212的初始控制。前端处理器220还可以确定或设置相机参数,例如,快门速度或曝光时间。前端处理器220可以对来自相机***210的传入视频进行归一化、校正失真、压缩或编码。在特定实施例中,前端处理器220的数量可以基于相机***210的相机212的数量以及传入图像的大小(例如,帧速率或帧大小)。来自前端处理器220的图像数据可以(例如,通过传输控制协议(TCP)网络)被传送到拼接服务器230,该拼接服务器230对由相机***210捕获的离散图像执行拼接。
如下所述,拼接服务器230可以将来自各个相机的离散图像拼接在一起,以生成3-D视频的完整帧。在特定实施例中,拼接服务器230可以计算离散图像的图像对准并且将完整的帧分割成竖直条。拼接服务器230可以以不同的大小和比特率对条进行重新压缩以进行可变比特率控制。当不需要实时性能时,可以使用单个拼接服务器230,或者当正在消费高分辨率、高帧率、3D视频的实时执行时,可以使用多达数十或者甚至数百个拼接服务器230。3-D视频的帧可以被存储或发送到内容服务器240。
内容服务器240可以充当客户端***250的内容分发网络,并且与客户端***250进行通信以向观看者流传输所请求的3-D视频的适当部分。内容服务器240可以以每帧为基础向客户端***250发送所请求的3-D视频。在特定实施例中,内容服务器240的数量可以与接收3-D视频的客户端***250的数量成比例。
客户端***250可以用作用户观看由内容服务器240发送的3D视频的设备。此外,从客户端***250向内容服务器240的输入可以修改向客户端***250发送的3-D视频的部分。作为示例,可以基于来自客户端***250的对用户的观看视角已经改变加以指示的数据来调整3-D视频。在特定实施例中,客户端***250可以请求与直视(straight-on)视图相对应的帧以及在任一侧上的附加帧。在特定实施例中,客户端***250可以请求低分辨率、全帧图像并为观看者重建3-D。
图3示出示例相机212的立体对300。在特定实施例中,立体对300可以包括被分别称为左相机L和右相机R的两个相机212。左相机L和右相机R可以分别捕获与人的左眼和右眼相对应的图像,并且由相机L和R捕获的视频图像可以作为3-D视频向观看者回放。在特定实施例中,立体对300可以被称为对、立体对、相机对或相机的立体对。如下所述,相机***210可以使用多对300数字相机(“相机”)212捕获3-D图像,其中相机***210可以使用集成数字相机或到一个或多个外部数码相机的接口。在特定实施例中,数字相机可以指以数字格式捕获或存储图像或视频的设备。在此,术语“相机”可以指数字相机,并且术语“视频”可以指数字视频或以数字格式记录或存储的视频。
在特定实施例中,相机212可以包括图像传感器,该图像传感器被配置为捕获单独的照片图像或一系列图像作为视频。作为示例而非限制,相机212可以包括电荷耦合器件(CCD)图像传感器或互补金属氧化物半导体(CMOS)有源像素图像传感器。在特定实施例中,相机212的图像传感器可以具有约16:9、4:3、3;2或任何合适的纵横比(例如,传感器的宽度与高度之比)的纵横比。在特定实施例中,相机212的图像传感器宽度可以大于图像传感器高度。在特定实施例中,图像传感器的宽度和高度可以用沿着图像传感器的两个轴的像素数量来表示,并且图像传感器的宽度可以表示图像传感器的较长尺寸。作为示例而非限制,图像传感器的宽度或高度可以在500至8,000像素之间。作为另一示例而非限制,具有1,920个像素的宽度和1,080个像素的高度的图像传感器可以被称为具有16:9纵横比的图像传感器。在特定实施例中,相机212可以包括透镜或透镜组件,以将入射的光收集并聚焦到图像传感器的聚焦区域上。作为示例而非限制,相机212可以包括鱼眼透镜、超广角透镜、广角透镜或普通透镜,以将光聚焦到图像传感器上。虽然本公开描述并示出了具有特定图像传感器或特定透镜的特定相机,但本公开涵盖具有任何合适的图像传感器和任何合适的透镜的任何合适的相机。
在特定实施例中,相机212可以具有视场(FOV),该视场至少部分地取决于相机212的透镜组件的位置、焦距或放大率以及相机212的图像传感器的位置或尺寸。在特定实施例中,相机212的FOV可以指通过相机212可见的特定场景的水平、竖直或对角范围。相机212的FOV内的对象可以由相机212的图像传感器捕获,并且在FOV之外的对象可以不出现在图像传感器上。在特定实施例中,FOV可以被称为视角(AOV),并且FOV或AOV可以指可以由相机212捕获或成像的特定场景的角度范围。作为示例而非限制,相机212可以具有在30°与200°之间的FOV。作为另一示例而非限制,具有100°FOV的相机212可以指示相机212可以捕获位于相机212正在指向的方向或方位214的±50°内的对象的图像。
在特定实施例中,相机212可以具有两个特定的FOV,例如水平视场(FOVH)和竖直视场(FOVV),其中这两个FOV被定向为彼此大致正交。作为示例而非限制,相机212可以具有在30°与100°之间的范围内的FOVH和在90°与200°之间的范围内的FOVV。在图3的示例中,相机212具有约80°的FOVH。在特定实施例中,相机212可以具有比其FOVH宽的FOVV。作为示例而非限制,相机212可以具有约45°的FOVH和约150°的FOVV。在特定实施例中,相机212具有两个不相等FOV可能至少部分地由于相机212具有矩形形状的图像传感器(例如,相机212可以具有纵横比为16:9的图像传感器)。在特定实施例中,相机212可以被定位成使得其FOVV与相机212的图像传感器的宽度对准或相对应,并且其FOVH与图像传感器的高度对准。作为示例而非限制,图像传感器可以具有高度和宽度,其中宽度表示两个图像传感器维度中的较长者,并且相机212可以被定向为使得其图像传感器的宽度轴与FOVV相对应。虽然本公开描述并示出了具有特定视场的特定相机,但本公开涵盖具有任何合适的视场的任何合适的相机。
在特定实施例中,相机212可以具有表示相机212正在指向的角度或方向的取向214。在特定实施例中,取向214可以由沿着相机212的FOV的中心所指向的线或射线表示。在特定实施例中,相机212的取向线214可以被定向为大致沿着相机212的纵轴、大致与相机的透镜组件或图像传感器的表面正交、或大致与轴215正交,其中轴215表示立体对300的相机L和R之间的线。在图3的示例中,取向214-L和取向214-R各自大致正交于轴215,并且取向214-L和214-R各自大致沿着相机212的FOVH的相应中心而定向。在特定实施例中,立体对300的每个相机212可以具有相对于彼此的特定取向214。在特定实施例中,立体对300的左和右相机212可以各自指向大致相同的方向,并且左相机和右相机的取向214可以大致平行(例如,取向214之间的角度可以约为0°)。在图3的示例中,左相机取向214-L大致平行于右相机取向214-R,这指示相机L和R指向大致相同的方向。具有平行取向214的左相机和右相机212可以表示指向相同方向的相机,并且相机L和R可以被称为具有相同的取向。在特定实施例中,具有相同取向的左相机L和右相机R可以分别指在±0.1°、±0.5°、±1°、±2°、±3°内或在任何合适的角度值内彼此平行的取向214-L和214-R。在特定实施例中,立体对300的取向可以由平行的左相机和右相机212的取向214表示。作为示例而非限制,当第一对的每个相机相对于第二相机对的相机以30°定向时,第一立体对300可以被称为相对于第二立体对300具有30°取向。
在特定实施例中,左相机L和右相机R可以具有取向214-L和214-R,其中它们之间具有特定的非零角度。作为示例而非限制,立体对300的两个相机可以彼此稍微朝向或远离其取向之间的约为0.5°、1°、2°或任何合适的角度值的角度。在特定实施例中,立体对300的取向可以由取向214-L和214-R的平均值表示。尽管本公开描述并示出了具有特定取向的特定相机,但是本公开涵盖具有任何合适的取向的任何合适的相机。
在特定实施例中,一对相机(例如,L和R)的相机212之间的相机间间隔(ICS)可以表示两个相机彼此分开的距离。在特定实施例中,立体对300可以具有ICS在6cm与11cm之间的相机212,其中ICS可以在两个相机212的两个对应点或特征之间进行测量。作为示例而非限制,ICS可以对应于两个相机212的中点之间的距离、两个相机212的纵向轴之间的距离、或两个相机212的取向线214之间的距离。在特定实施例中,立体对300的相机L和R可以沿着轴线215分开ICS距离,其中轴线215表示连接相机L和R的线,并且相机取向214-L和214-R大致正交于轴线215。在图3的示例中,ICS是沿着分开轴215测量的相机L和R之间的距离。在特定实施例中,ICS可以对应于人眼的瞳孔之间的近似或平均距离或瞳孔间距离(IPD)。作为示例而非限制,ICS可以在6cm与7cm之间,其中6.5cm对应于人类的近似平均IPD值。在特定实施例中,立体对300可以具有高于平均IPD值的ICS值(例如,ICS可以为7cm-11cm),并且该更高的ICS值可以提供当向观看者回放时看起来具有增强的3-D特性的场景。虽然本公开描述并示出具有特定相机间间隔的特定相机对,但本公开涵盖具有任何合适的相机间间隔的任何合适的相机对。
图4示出了相机***210的示例相机配置的局部平面图。在图4的示例中,相机***210包括由L1和R1形成的第一相机对300、由L2和R2形成的第二相机对300以及由Ln和Rn形成的第n相机对300。在特定实施例中,相机***210还可以包括附加的相机对,例如,相机对L3-R3(其中相机L3未在图4中示出)或相机对Ln 1-Rn 1(其中相机Rn 1未在图4中示出)。尽管本公开描述并示出具有特定数量的相机对的特定相机***,但是本公开涵盖具有任何合适数量的相机对的任何合适的相机***。
在特定实施例中,相机***210的相机212可以沿着直线、曲线、椭圆(或椭圆的一部分)、圆(或圆的一部分)、或沿着任何其他合适的形状或任何合适的形状的一部分而布置。具有沿圆布置的相机212的相机***210可以被配置为在360°全景上记录图像。在图4的示例中,相机212沿着图4中的圆虚线所表示的圆的一部分而布置。图4所示的相机***210可以在半个圆上记录图像并且提供约180°的角度观看。在特定实施例中,相机***210的相机212可以均位于同一平面中。作为示例而非限制,相机***210的每个相机212可以位于水平面中,并且每个相机212可以具有沿着水平面而定向的FOVH和正交于水平面而定向的FOVV。在图4的示例中,相机212均位于同一平面中,并且每个相机212的FOVH也定向在该平面中。在特定实施例中,相机***210的相机212可以均位于同一平面中,并且每个相机212的取向214也可以位于同一平面中。在图4的示例中,相机212均位于同一平面中,并且相机取向(例如,214-L1、214-L2、214-R1和214-R2)也位于同一平面中,使得每个相机指向位于平面中的方向。在特定实施例中,相机212可以被定位为使得相机212的图像传感器的高度维度沿着水平面定向,从而图像传感器的高度与FOVH对准并且对应于FOVH。此外,相机212可以被定位为使得相机212的图像传感器的宽度维度与水平面正交地定向,从而图像传感器的宽度对应于FOVV。在特定实施例中,相机212可以捕获具有纵横比的图像,使得图像的竖直范围大于图像的水平范围。
在特定实施例中,相机***210可以包括相机212的多个对300,其中相机对300彼此交错。在特定实施例中,相机对300交错可以指相机配置,其中第一相机对具有位于邻近的第二相机对的相机之间的一个相机。此外,第二相机对也可以具有位于第一相机对的相机之间的一个相机。在特定实施例中,邻近或邻接的相机对300可以指彼此邻近或布置成使得一个相机对300的相机位于另一相机对300的两个相机之间的相机对300。在特定实施例中,交错的相机对300可以指具有第一和第二相机对的相机配置,其中第二相机对通过第一相机对中的至少一个相机而彼此分开。此外,第一相机对也可以通过第二相机对中的至少一个相机而彼此分开。在图4的示例中,相机对L2-R2与相机对L1-R1交错,反之亦然。相机对L1-R1和L2-R2交错,使得相机R2位于相机L1和R1之间,并且相机L1位于相机L2和R2之间。类似地,相机对L1-R1和Ln-Rn也彼此交错。相机对L1-R1和Ln-Rn交错,使得相机L1和R1至少被相机Ln分开,并且相机Ln-Rn至少被相机R1分开。在图4的示例中,相机对L1-R1与两个邻接的相机对(相机对L2-R2和相机对Ln-Rn)交错。
在特定实施例中,相机***210可以包括相机212的第一对300,其中第一对的相机通过相机212的第二对300中的至少一个相机212而彼此分开。在图4的示例中,相机对L1-R1的相机L1和R1通过相机对L2-R2的相机R2而彼此分开。此外,第一相机对可以具有与第二相机对的取向214不同的取向214。在图4的示例中,相机对L1-R1的取向(可以由取向214-L1或214-R1表示)不同于相机对L2-R2的取向(可以由取向214-L2或214-R2表示)。在特定实施例中,相机***210还可以包括第三相机对(例如,图4中的Ln-Rn),并且第一相机对(例如,L1-R1)还可以通过第三相机对(例如,Ln-Rn)中的相机(例如,相机Ln)而彼此分开。此外,第三相机对可以具有与第一和第二相机对的取向214不同的取向214。虽然本公开描述并示出了具有以特定配置而布置的特定相机的特定相机***,但本公开涵盖具有以任何合适的配置而布置的任何合适的相机的任何合适的相机***。
在特定实施例中,相机***210可以包括多个交错的相机对300,其中每个相机对300具有特定的取向214。在特定实施例中,每个相机对300的相机212可以均匀地布置,使得每个相机对300相对于一个或多个邻近相机对300以角度Θ而定向。在特定实施例中,角度Θ可以对应于相机212的邻近对300之间的角度间隔或取向214中的差异。在图4的示例中,相机L1和R1正在指向与由其大致平行的相应取向214-L1和214-R1所表示的相同的方向。类似地,相机L2和R2均正指向沿着由其大致平行的相应取向214-L2和214-R2所表示的方向,该方向不同于相机对L1-R1的取向。在特定实施例中,对于相机***210的每个相机对300,邻近相机对300之间的角度Θ可以大致相同,使得相机对300被布置为在其相应的取向214之间具有均匀的差异。作为示例而非限制,相机***210的邻近相机对300可以各自以相对彼此的约26°、30°、36°、45°、60°、90°的角度或任何合适的角度而定向。在图4的示例中,相机对L2-R2相对于相机对L1-R1以角Θ≈30°而定向。在特定实施例中,对于具有沿圆布置的n个均匀间隔的相机对300(其中n是正整数)的相机***210,每个邻近相机对之间的角度Θ可以表示为Θ≈360°/n。作为示例而非限制,对于具有以均匀间隔的圆形配置而分布的n=12对相机的相机***210,每个邻近相机对之间的角度Θ约为360°/12=30°。作为另一示例而非限制,对于具有以均匀间隔的圆形配置而分布的n=8对相机的相机***210,每个邻近相机对之间的角度Θ约为360°/8=45°。
在特定实施例中,第一和第二相机对300可以交错,使得第二相机对的右相机212与第一相机对的左相机212邻近,并且第二相机对的右相机212的FOVH的中心与第一相机对的左相机212的FOVH的中心相交。在图4的示例中,第一相机对L1-R1与第二相机对L2-R2交错,使得右相机R2与左相机L1邻近,并且相机R2的FOVH的中心(如由取向214-R2所表示)与相机L1的FOVH的中心(如由取向214-L1所表示)相交。在特定实施例中,第一和第三相机对300可以交错,使得第三相机对的左相机212与第一相机对的右相机212邻近,并且第三相机对的左相机212的FOVH的中心与第一相机对的右相机212的FOVH的中心相交。在图4的示例中,第一相机对L1-R1与第n相机对Ln-Rn交错,使得左相机Ln与右相机Rn邻近,并且相机Ln的FOVH的中心(如由取向214-Ln所表示)与相机R1的FOVH的中心相交(如由取向214-R1所表示)。尽管本公开描述并示出了以特定方式交错的特定相机对,但本公开涵盖以任何合适的方式交错的任何合适的相机对。
在特定实施例中,对于相机***210的一个或多个相机对300,邻近相机对300之间的角度Θ可以是不同的,使得相机对300可以具有不均匀的角度间隔。作为示例而非限制,相机***210中的相机对300的角度间隔或分布可以至少部分地基于每个相机212的FOVH而变化。例如,相机***210中的具有较窄的FOVH的一些相机对300可以具有30°的角度间隔,而具有较宽的FOVH的其他相机对300可以具有50°的角度间隔。虽然本公开描述并示出了具有按照特定角度间隔的特定相机对的特定相机***,但本公开涵盖具有按照任何合适的角度间隔的任何合适的相机对的任何合适的相机***。
在特定实施例中,左相机(例如,与人的左眼相对应的相机L1、L2等)集或右相机(例如,与人的右眼相对应的相机R1、R2、R3等)集中的每个FOVH可以与集合中的相邻相机具有角度重叠216。在图4的示例中,角度重叠216表示由相邻相机R1和R2捕获的图像之间的共享部分或重叠。在图4中,相机R2和R3、相机Rn和R1、相机L1和L2以及相机Ln和Ln-1也可以共享类似的角度重叠。在特定实施例中,具有角度重叠216的相邻相机212的水平FOV可以具有在10%与30%之间的重叠。作为示例而非限制,水平FOV具有10%-30%重叠的相邻相机均可以捕获在10%与30%之间重叠的图像。作为另一示例而非限制,每个具有FOVH≈50°和约10°的角度重叠216的相邻相机可以被称为具有约20%(=10°/50°)的角度重叠或图像重叠。在特定实施例中,并且如下所述,角度重叠216可以用于识别图像特征并创建拼接的图像,该拼接的图像无缝地显示由相机***210捕获的整个视图。虽然本公开描述并示出具有特定角度重叠的特定相机,但本公开涵盖具有任何合适的角度重叠的任何合适的相机。
图5示出了示例相机***210的平面图。如下所述,相机***210可以包括相机212的立体对300的空间布置,该相机212的立体对300被配置为以360度和立体3-D格式捕获图像并记录或流传输实时视频。在特定实施例中,相机***210可以包括形成n个相机对300的2n个相机212,其中n是正整数。在特定实施例中,相机***210可以包括n=1、2、3、4、6、8、10、12、14、16或任何合适数量的相机对300。作为示例而非限制,相机***210可以包括形成n=4个相机对300的8个相机212,或者相机***210可以包括形成n=8个相机对300的16个相机212。在图5的示例中,n等于12,并且相机***210包括形成12个相机对300(例如,相机对L1-R1至相机对L12-R12)的24个相机212。如上所述,相机***210的相机对300可以均匀地布置,使得邻近的相机对300相对于彼此以Θ≈360°/n的角度而定向。在图5的示例中,n等于12,并且相机对300相对于彼此以约30°(=360°/12)而定向,如由针对相机对300从相机***210的中心绘制的径向线R之间的30°角所表示的。
在特定实施例中,相机***210的相机212可以被配置为使得相邻的左相机的水平FOV重叠,并且类似地,使得相邻的右相机的水平FOV重叠。在图5的示例中,相邻的左相机的每一对(例如,相机L1和L2、相机L2和L3等)的水平FOV可以具有10%与30%之间的重叠。类似地,相邻的右相机中的每一对(例如,相机R1和R2、相机R2和R3等)的水平FOV可以具有10%与30%之间的重叠。在特定实施例中,左相机的每个集合(例如,图5中的相机L1-L12)可以被定向为捕获覆盖相机***210周围的全360°视角的对应的左图像集。类似地,右相机的每个集合(例如,图5中的相机R1-R12)可以被定向为捕获覆盖相机***210周围的全360°视角的对应的右图像集。
在特定实施例中,相机***210的相机212可以以大致圆形的配置来布置,其中相机212位于相机主体218的外边缘或圆周处或附近。在特定实施例中,相机主体218可以表示机械结构、外壳或壳体,其保持、容纳或封闭相机***210的相机212以及作为相机***210的一部分的其他设备(例如,一个或多个电源或处理器)。在图5的示例中,相机***210的24个相机212以圆形配置布置在具有圆形形状的相机主体218的外边缘附近。在特定实施例中,相机***210的每个相机对300可以被对准,使得其取向214被定向成远离公共中心点217或从公共中心点217径向朝外。在图5的示例中,中心点217表示相机***210的主体218的中心,并且由径向线R表示的每个相机对的取向被定向成从中心点217径向朝外。在特定实施例中,相机***210的相机主体218可以具有约10cm、15cm、20cm、25cm、30cm或任何合适尺寸的尺寸、宽度或直径219。在图5的示例中,相机主体218可以具有直径约为20cm的外边缘。在特定实施例中,相机***210在转动时可以具有与人类头部转动相当的尺寸。作为示例而非限制,相机主体218可以具有约20cm的直径,并且当人旋转其头部时,相机对300可以被定位成与人眼的位置相对应。虽然本公开描述并示出了具有特定尺寸、宽度或直径的特定相机***,但本公开涵盖具有任何合适的尺寸、宽度或直径的任何合适的相机***。
在特定实施例中,相机***210的两个或更多个相机212可以被称为彼此邻近。在特定实施例中,彼此邻近的两个相机212可以指彼此邻近或位于彼此附近的两个相机,在这两个相机之间没有其他相机。在图5的示例中,相机L1和R3彼此邻近,相机L2和R3彼此邻近。在图5中,相机R1与相机L11和相机L12邻近。在特定实施例中,可以在特定的相机集内识别邻近的相机,而不考虑不是该集的一部分的其他相机。作为示例而非限制,在左相机集内的两个相机可以被识别为彼此邻近,即使在这两个相机之间或附近可能存在右相机。在图5中,对于左相机集(相机L1至L12),相机L1与相机L2和L12邻近,而对于右相机集(相机R1至R12),相机R1和R2是邻近的。
图6示出了由相机***210的相机212捕获的示例图像集(I-1至I-8)。作为示例而非限制,图像I-1至图像I-8可以分别对应于由相机***210的左相机L-1至L-8捕获的图像。图像I-1至图像I-8可以表示使用类似于图4或图5所示的相机***210捕获的图像。在特定实施例中,由相机***210的左或右相机集212捕获的图像集可以具有在相邻图像之间的重叠区域610,其中重叠区域610表示与大致相同场景相对应的相邻图像的部分或区域。在图6的示例中,重叠区域6105-6表示相邻图像I-5和I-6之间的重叠,并且重叠区域6105-6中的捕获的场景包括云的右侧部分和桥的部分。类似地,重叠区域6106-7表示相邻图像I-6和I-7之间的重叠,并且重叠区域6106-7中的捕获的场景包括桥塔。
在特定实施例中,重叠区域610可以对应于相邻相机212的水平FOV的重叠。在特定实施例中,由相机***210的左或右相机212捕获的相邻图像可以具有在10%与30%之间的重叠。在特定实施例中,重叠的量或百分比对应于重叠区域610的高度、宽度或面积与对应图像的高度、宽度或面积的比率。在图6的示例中,图像I-5和I-6之间的重叠的量等于重叠区域6105-6的宽度604除以图像I-5或I-6的宽度606。在特定实施例中,重叠区域610的大小或图像的大小可以根据距离(例如,以mm或cm为单位)或根据像素的数量来表达。在图6的示例中,如果重叠区域宽度604是162个像素,并且图像宽度606是1,080个像素,则图像I-5和I-6之间的重叠是15%(=162/1080)。尽管本公开描述和示出了具有特定重叠区域或重叠量的特定图像,但本公开涵盖具有任何合适的重叠区域或重叠量的任何合适的图像。
在特定实施例中,相机212可以被定位成捕获具有使得图像的竖直范围607大于图像的水平范围606的纵横比的图像。作为示例而非限制,相机212可以捕获具有1920个像素的竖直范围607和1080个像素的水平范围606的图像。在图6的示例中,图像I-6的竖直范围607大于水平范围606。
在特定实施例中,邻近图像或相邻图像可以指共享公共重叠区域610的彼此相邻地定位的图像。在图6的示例中,图像I-2和I-3是邻近的,并且图像I-6与图像I-5和I-7邻近。在特定实施例中,邻近图像可以对应于由相应邻近相机捕获的图像。在图6的示例中,图像I-1至I-8可以分别对应于由左相机L1至L8(例如,图5的左相机L1至L8)捕获的图像。图像I-1和I-2是邻近图像,并且这些图像可以分别由邻近的左相机L1和L2捕获。
图7示出了示例相机***210的侧视图。在特定实施例中,相机***210可以包括一个或多个顶相机212T,其在由沿着相机***210的***布置的侧相机212捕获的如若圆柱形的侧视图上创建“顶”。在特定实施例中,侧相机212可以指以使其相应的取向214位于相同平面内的平面配置而布置的相机212,例如,图4或图5所示的示例相机212。在特定实施例中,顶相机212T可以提供可以与来自侧相机212的图像进行组合的向上视图,使得用户可以在观看3D视频时向上看(以及向其左侧或右侧看、或者在FOVV的向下范围内向下看)。在特定实施例中,相机***210可以包括向上指的一个或多个顶相机212T以及向下指的一个或多个底相机(图7中未示出)。作为示例而非限制,来自侧相机212的图像可以与来自顶相机212T和底相机的图像进行组合,使得用户可以在观看3D视频时在任何方向(例如,左、右、上或下)上看。在特定实施例中,相机***210可以包括两个或更多个顶相机212T(例如,可以形成立体对的左顶相机和右顶相机),并且来自顶相机212T的图像可以被组合以增强用户在观看3D视频并向上看时的3D感知。虽然本公开描述并示出具有特定顶相机或底相机的特定相机***,但本公开涵盖具有任何合适的顶相机或底相机的任何合适的相机***。
在特定实施例中,顶相机212T可以具有与一个或多个侧相机212的竖直视场FOVV重叠的视场FOVT。作为示例而非限制,来自顶相机212T的图像的外边缘部分可以与来自相机212的图像的上部重叠10%-30%。在图7的示例中,角度重叠216表示顶相机212T的FOVT与侧相机212的FOVV之间的重叠。在特定实施例中,顶相机212T可以具有相对高的FOVT。作为示例而非限制,顶相机212T可以包括鱼眼透镜,并且顶相机212T的FOVT可以在140°至185°的范围内。在特定实施例中,相机***210可以包括侧相机集212,并且可以不包括顶相机212T。作为示例而非限制,相机***210可以包括具有在140°至185°范围内的FOVV的侧相机212,并且侧相机212可以被配置为捕获全360°视角的全部或大部分,而不使用顶相机。在特定实施例中并且如图7所示,相机***210可以包括侧相机集212以及顶相机212T。在特定实施例中,具有顶相机212T的相机***210可以允许侧相机212相对于没有顶相机的相机***210具有减小的FOVV。作为示例而非限制,相机***210可以包括具有在100°至160°范围内的FOVV的侧相机212,其中FOVV与顶相机212T的FOVT重叠。
在特定实施例中,顶相机212T可以位于相机***210的顶表面附近,或者如图7所示,顶相机212T可以相对于相机***210的顶表面凹入或缩进。作为示例而非限制,顶相机212T可以位于凹入位置,该凹入位置可以提供与侧相机212的大重叠量。在特定实施例中,相机***210的侧相机212可以各自具有位于相机***210的水平面中的取向214,并且顶相机212T的取向214T可以大致正交于取向214。在图7的示例中,侧相机212水平地定向,并且顶相机212T具有竖直方向214T。尽管本公开描述并示出了包括具有特定布置、取向或视场的特定边缘相机和特定顶相机在内的特定相机***,但本公开涵盖包括具有任何合适布置、取向或视场的任何合适边缘相机和任何合适顶相机在内的任何合适相机***。
图8示出了由相机***210的相机212捕获的示例重叠图像集。在特定实施例中,具有n个相机对300和一个顶相机212T的相机***210可以针对视频的每一帧捕获2n+1个图像。可以使用类似于图7所示的相机***210的2n个侧相机212和顶相机212T来捕获图8所示的图像。在特定实施例中,如上所述,可以成对布置n个左相机212和n个右相机212,使得左相机图像I-L1至I-Ln重叠并且右相机图像I-R1至I-Rn重叠。在图8的示例中,重叠区域610L表示相邻的左相机的图像的重叠部分,并且重叠区域610R表示相邻的右相机的图像的重叠部分。作为示例而非限制,相邻的左相机2和3可以分别捕获具有对应的重叠区域610L2-3的图像I-L2和I-L3。在图8的示例中,图像I-Top表示由顶相机212T捕获的图像,并且重叠区域610T表示与来自侧相机212的图像的上部重叠的图像I-Top的外边缘部分。在特定实施例中,重叠区域610T可以用于将顶部图像I-Top与来自一个或多个侧相机212的图像进行拼接。
在特定实施例中,左相机和右相机212可以被布置成使得每个左相机重叠区域610L被捕获在对应的右相机212的单个图像内,并且每个右相机重叠区域610R被捕获在对应的左相机212的单个图像内。在图8的示例中,图像I-L1和图像I-L2的重叠区域610L1-2对应于图像I-R1,使得左相机L1与L2之间的重叠被右相机R1捕获。类似地,图像I-R2和I-R3的重叠区域610R2-3对应于图像I L3,使得相机R2和R3之间的重叠被包含在相机L3的视场内。在特定实施例中,并且如下所述,两个图像之间的重叠区域610可以用于识别图像特征并创建拼接的图像。另外,在拼接过程中还可以使用由另一相机捕获的重叠区域610。在图8的示例中,可以至少部分地基于位于两个图像的重叠区域610R1-2中的特征来将图像I-R1和I-R2拼接在一起。另外,由于图像I-L2捕获相同的重叠区域,因此图像I-L2也可以用于拼接处理或验证应用于图像I-R1和I-R2的拼接处理的准确性。虽然本公开描述并示出了被配置为捕获具有特定重叠区域的特定图像的特定相机***,但本公开涵盖被配置为捕获具有任何合适的重叠区域的任何合适的图像的任何合适的相机***。
在特定实施例中,相机***210可以包括用于获得关于图像中的对象的深度信息的一个或多个深度传感器。作为示例而非限制,一个或多个深度传感器可以位于相机***210的相机212之间或附近。在特定实施例中,深度传感器可以用于确定关于位于相机212的FOV内的对象的深度或距离信息。作为示例而非限制,深度传感器可以用于确定相机212的FOV内的人与相机***210相距约1.5米,而背景中的对象相距约4米远。在特定实施例中,可以基于三角测量技术来确定深度信息。作为示例而非限制,可以使用三角测量来分析由两个或更多个相应相机212捕获的两个或更多个图像,以确定图像中的对象距相机***210的距离。在特定实施例中,相机***210可以包括基于结构化光扫描技术进行操作的深度传感器。作为示例而非限制,结构化光3-D扫描仪可以用投射的光图案(例如,来自诸如激光或发光二极管的红外光源的一片光或平行条纹的光)来照亮场景,并且来自投射的光图案的反射或散射的光的图像可以(例如,通过作为深度传感器的部分的相机)被捕获,并且用于确定场景中对象的距离。在特定实施例中,相机***210可以包括深度传感器,该深度传感器基于飞行时间技术进行操作,在该技术中,根据光脉冲往返于对象所需的时间来确定到对象的距离。虽然本公开描述了以特定方式操作的特定深度传感器,但本公开涵盖以任何合适的方式操作的任何合适的深度传感器。
在特定实施例中,深度传感器可以提供关于位于相机***210附近(例如,在相机***210的0.1-10米内)的对象的深度信息,并且该深度信息可以用于增强拼接处理。如下所述,拼接处理可以使用来自邻近相机的重叠图像之间的对应关系来计算场景的几何形状。通过使用深度传感器,可以确定一个或多个相机212的FOV内的物体的相对深度或距离,而不是假设单个整体深度。在特定实施例中,深度传感器信息可以允许将图像的近处部分与远处部分单独地进行拼接。作为示例而非限制,通过考虑相机***210与图像中的对象之间的距离,对场景进行分割以使得对近处和远处的对象单独地进行拼接然后进行组合,从而可以提供改善的拼接结果。在特定实施例中,深度传感器可以提供对位于靠近相机***210的对象的图像的部分进行拉伸、压缩或扭曲的能力,从而改善对拼接的图像中的对象的渲染。作为示例而非限制,当对象靠近相机***210(例如,人在相机***210的0.5米内经过)时,考虑该对象的距离可以使得拼接图像具有减少的失真量。在特定实施例中,深度传感器可以提供从相机***210的阈值距离内的视图中排除对象的能力。作为示例而非限制,可以在图像处理期间去除被确定为非常靠近相机***210的对象(例如,在相机***210的0.1米内的人的手),使得该对象不遮挡场景的视图。
在特定实施例中,相机***210可以包括一个或多个红外(IR)相机,其中IR相机可以指对IR光(例如,波长在约0.8μm与14μm之间的光)敏感的相机。在特定实施例中,IR相机可以对热辐射敏感或者可以提供在可见光相机(例如,相机212)可能具有降低的灵敏度的低光情况下(例如,黑暗的房间或夜间户外)对场景进行成像的能力。作为示例而非限制,除了相机212(可以在可见光感测方面被优化)之外,相机***210还可以包括一个或多个IR相机,并且来自相机212和IR相机的信息或图像可以被组合以改善低光情况下的图像捕获或渲染。作为另一示例而非限制,相机***210可以包括被布置为捕获相机***210周围的360°全景视图的图像的IR相机集。作为又一个示例而非限制,相机***210的相机212可以被配置为对可见光以及红外光具有敏感性。尽管本公开描述并示出了具有特定的可见或红外相机的特定相机***,但本公开涵盖具有任何合适的可见光或红外相机的任何合适的相机***。
在特定实施例中,相机***210可以包括一个或多个辅助相机,该一个或多个辅助相机被配置为以比相机212更宽的FOV或以不同的视角来对场景进行成像。作为示例而非限制,相机***210可以包括如上所述的相机集212,并且相机***还可以包括FOV比相机212的FOV宽的一个或多个鱼眼相机或立体相机。在特定实施例中,即使当观看大范围的均匀颜色或纹理(例如,墙壁)时,具有较宽FOV的辅助相机也可以允许成功地拼接从相机212捕获的图像。在特定实施例中,相机212可以被配置为具有高分辨率(这可能导致相对窄的FOV),并且具有较宽FOV的辅助相机可以提供宽视场参考,该宽视场参考允许来自相机212的高分辨率图像成功地对准并拼接在一起。
在特定实施例中,相机212可以捕获大于或大致等于180度的竖直视场。作为示例而非限制,相机***210可以包括具有约185°的FOVV的相机212。在特定实施例中,相机***210可以包括FOVV大于或等于180°的相机212的集合,并且相机***210可以不包括顶相机212T,因为相机212可以提供完全观看覆盖。
在特定实施例中,相机***210可以包括一个或多个鱼眼相机,其中鱼眼相机可以指具有宽FOV(例如,大于或等于180度的FOV)的相机。作为示例而非限制,相机***210可以包括位于相机主体218的中心附近的2、3或4个鱼眼相机。作为另一示例而非限制,相机***210可以包括一对或多对鱼眼相机(例如,被配置为两对鱼眼相机的四个鱼眼相机)。一对鱼眼相机可以被配置为捕获3-D图像,并且可以包括以与IPD相对应的ICS距离分开的两个鱼眼相机。在特定实施例中,具有鱼眼相机的相机***210可以被配置为模拟3-D立体视觉(例如,对深度或3-D结构的感知),并且可以对应于位于图像范围内的一个或多个虚拟相机。
在特定实施例中,相机***210可以包括具有相对高FOVV和低FOVH的相机212。作为示例而非限制,相机212可以具有提供在竖直方向上比在水平方向上更宽视场的透镜(例如,像散透镜)。作为另一示例而非限制,相机212可以具有约180°的FOVV和约30°的FOVH。在特定实施例中,相对窄的水平FOV可以提供具有水平方向上相对低失真的捕获的图像。在特定实施例中,可以至少部分地基于透镜校准信息通过捕获后处理来逆转与相对宽的FOVV相关联的竖直方向上的失真。在特定实施例中,与去除沿水平和竖直方向两者的失真相比,去除竖直方向上的失真可以是更高效的过程。作为示例而非限制,具有相对低FOVH的相机212可以提供对失真去除的改善,因为图像失***要沿一个轴(例如,竖直轴)。
在特定实施例中,相机***210可以包括由中等FOV相机212构成的两个或更多个集合。作为示例而非限制,相机212可以具有30度至90度的竖直和水平FOV。在特定实施例中,相机***210可以包括由相机212构成的两个或更多个集合,其中所述集合以行布置(例如,相机212的一个集合或环位于另一集合之上)。相机212的每个集合可以被配置为捕获图像的环,每个环在水平方向上覆盖360度全景并且在竖直方向上覆盖中等FOV(例如,60度)。作为示例而非限制,相机***210可以包括相机212的三个集合,每个相机的具有约65度的FOVV,该FOVV与邻近集合重叠约15度。每个集合的相机212可以以高分辨率和相对低的失真来捕获图像,并且来自每个环的图像可以被组合以产生覆盖全景的高分辨率、低失真图像。
在特定实施例中,相机***210可以包括多个相机212,其中相机212可以不被组合成立体对。作为示例而非限制,相机***210可以包括被布置成具有重叠的水平FOV的12个相机,使得相机捕获360度全景。在特定实施例中,相机212可以被对准,使得其取向214定向为远离公共中心点217(例如,相机***210的主体218的中心)或从公共中心点217径向朝外。在特定实施例中,相机212可以不捕获3-D图像,并且可以在拼接或重构过程期间在图像捕获之后产生3-D效果。作为示例而非限制,可以将捕获后处理应用于图像以模拟立体视觉。
在特定实施例中,可以将校准程序应用于相机212或相机***210。作为示例而非限制,相机212、相机对300或相机***210可以具有由于生产公差引起的定位或对准误差,并且校准程序可以用于校正或补偿这些误差并允许改善图像的拼接。在特定实施例中,可以使用校准程序来确定相机212或相机对300具有位置或取向误差或偏移,并且可以在图像捕获期间或在捕获后处理期间校正所捕获的图像中的对应误差或偏移。作为示例而非限制,相机对300可以被制造为具有6.5mm的ICS,并且根据校准程序,可以确定相机对300具有7.0mm的ICS。可以在图像捕获期间或通过捕获后校正处理来校正相机对300的ICS与目标ICS之间的0.5-mm差异(例如,可以将与0.5mm相对应的偏移应用于由相机212中的一个所捕获的图像)。作为另一示例而非限制,相机对300可以被制造为在邻近相机对300之间具有均匀的30°角度间隔,并且根据校准程序,可以确定相机对300相对于邻近相机对300具有29°角度间隔。可以在捕获图像时或在捕获后校正过程期间校正相机对300之间的1°角度误差(例如,可以将与1°旋转相对应的偏移应用于从一个或多个相机212捕获的图像)。
在特定实施例中,可以在制造相机***210之后,在使用相机***210之前,以周期性间隔(例如,每月)或以任何合适的时间或时间间隔将校准程序应用于相机***210。作为示例而非限制,相机***210可以在捕获场景之前应用校准程序,这可以确保在图像捕获期间相机212的位置和取向是已知的,以确保成功的拼接过程。作为另一示例而非限制,可以将校准程序应用于相机***210以校正可能由温度变化、相机***210的老化或机械冲击(例如,如果相机***210在运输期间掉落)引起的相机212的未对准。在特定实施例中,一旦执行了校准程序,就可以将与相机212或相机对300的校准有关的数据存储在相机***210的非易失性存储器中。尽管本公开描述了以特定方式和在特定时间执行的特定校准程序,但本公开涵盖以任何合适的方式和在任何合适的时间执行的任何合适的校准程序。
在特定实施例中,可以使用投射的光来校准相机***210的相机212。在特定实施例中,可以使用广角投影仪、灯前的罩、或将光学校准图案投射到附近表面上的激光扫描仪或反射器来实施投射光校准。作为示例而非限制,激光束可以被衍射光栅或机动化的镜反射以产生投射到附近表面上的校准图案。投射的激光图案可以由相机212成像以确定相机校准参数。在特定实施例中,用于产生和投射校准图案的光学组件(例如,激光器、镜子或光栅)可以被机械化以当不使用时缩回到相机***主体218中或下方。在特定实施例中,光学校准组件可以被配置为进行旋转以在不同方向上投射校准图案,从而可以校准相机***210的不同相机212。在特定实施例中,相机***210可以被放置在受控房间或球形表面内部以提供改善的校准精度。尽管本公开描述了特定的投射光校准***,但本公开涵盖任何合适的投射光校准***。
在特定实施例中,可以使用物理或机械处理或结构来校准相机***210的相机212。作为示例而非限制,可以将机械校准结构(例如,扇状或伞状设备)容纳在相机212之间或相机***主体218下方或内部。在校准期间,可以将这些物理校准器机械地部署在相对于相机***210的已知位置处。物理校准器可以由相机212成像,并且可以将所捕获的图像与已知的几何形状进行比较以确定校准参数。在特定实施例中,机械校准设备可以是与相机***210分开的物理设备。作为示例而非限制,外部校准设备可以具有从球形外部主体向内延伸的内部辐条,以允许相机***210保持在相对于校准设备已知的精确位置。作为另一示例而非限制,外部校准设备可以包括光学传感器,该光学传感器允许相机***210相对于校准设备精确地定位。在特定实施例中,校准设备的内表面可以具有由相机212成像的校准标记,并且可以基于捕获到的校准标记的图像来确定相机212或相机对300的校准参数。在特定实施例中,相机***210可以包括将校准图案投射到校准设备的内表面上的光学组件。尽管本公开描述了特定的物理校准***,但本公开涵盖任何合适的物理校准***。
在特定实施例中,相机***210可以包括集成为相机***210的一部分的一个或多个处理器,或者相机***210可以耦接到位于相机***210外部的一个或多个处理器。作为示例而非限制,相机***210可以包括位于相机***210的主体218内部的一个或多个前端处理器220。作为另一示例而非限制,相机212可以通过USB连接到一个或多个前端处理器机器220的集合。在特定实施例中,前端处理器220可以执行相机212的初始控制、相机失真校正、图像的裁剪、视频的编码、图像数据的压缩、或视频的传输。作为示例而非限制,相机***210可以包括连接到相机212的独立前端处理器220,该独立前端处理器220执行初始图像调整、相机参数控制、或相机数据的初始编码以减少用于传输的视频有效载荷。在特定实施例中,与相机***210相关联的前端处理器的数量可以至少部分地取决于相机***210中的相机212的数量以及由相机212捕获的视频的大小或帧速率。作为示例而非限制,每个相机212可以连接到一个或多个专用处理器220。虽然本公开描述并示出了以特定方式耦接到特定处理器的特定相机***,但本公开涵盖以任何合适的方式耦接到任何合适的处理器的任何合适的相机***。
在特定实施例中,相机参数(例如,亮度、对比度、增益、曝光、白平衡、饱和度、聚焦或光圈设置)可以由一个或多个处理器220校准、控制或映射。在特定实施例中,针对每个相机212的白平衡设置可以独立于其他相机来设置或控制,因为每个相机212可以不同地看到场景。作为示例而非限制,位于窗户附近的相机212可以看到带蓝色的场景,而邻近相机212可以看到带红色的室内照明,并且这两个相机可以具有不同的白平衡设置。在特定实施例中,可以全局地控制一个或多个相机参数以确保邻近相机(例如,邻近的左相机212或邻近的右相机212)的设置不会偏离太大。作为示例而非限制,相机212的曝光或增益的设置可以至少部分地基于一个或多个邻近相机212的设置。作为另一示例而非限制,如果调整了曝光或增益设置,则处理器220可以确保针对同一眼睛的邻近相机(例如,邻近的左相机212或邻近的右相机212)的设置不会偏离太大,从而使图像条带或不可接受的拼接性能最小化。在特定实施例中,可以将相机212的焦点设置保持在无穷大以使可能由于相机焦点的变化而引起的拼接误差最小化。在特定实施例中,相机212可以被设置为具有减小的光圈以提供更大的景深,这可以导致拼接误差的减小。尽管本公开描述了以特定方式控制的特定相机参数,但本公开涵盖以任何合适的方式控制的任何合适的相机参数。
在特定实施例中,编码过程可以涉及每个相机210一个前端处理器220,或者单个相机220(具有单个核或多个处理器核)可以由多个相机210共享。前端处理器220可以使用加速器、专用集成电路(ASIC)、或子处理器来处理捕获、修改、压缩、存储或发送视频数据的任务的一部分。每个处理器220可以运行通用操作***,或者可以是以与中央控制处理器完全步伐一致或接近步伐一致的方式运行的ASIC本身。在特定实施例中,中央控制处理器可以充当用于与前端图像捕获处理器220对话的分配器或中央控制点。在特定实施例中,中央处理器可以被实现为单个大型ASIC的一部分,其具有重复的资源以连接到每个相机212并控制每个相机212。在这种情况下,相同代码或基于硬件的算法的多个线程或副本可以运行以与捕获过程并行化。在特定实施例中,前端处理器220可以使用处理器本地存储***,或者可以立即将数据流传输到一个或多个共享的存储资源。在特定实施例中,可以利用分散化存储,并且可以使用处理器本地存储作为拼接***的缓冲器,以实现***负载分配。
在特定实施例中,前端处理器220可以使用总线或网络以用于数据的传输。数据传输可以使用任何合适的数据传输格式。在特定实施例中,可以使用保证接收或否则通知接收者分组丢失的传输方法。在特定实施例中,发送组件可以重新发送损坏的分组,或者可以允许接收器将指示分组损坏发生的标记***存储的数据流中。在特定实施例中,拼接***然后可以根据需要补偿这种损坏或丢失的分组。
在特定实施例中,相机212相对于目标位置或取向214可能具有一些透镜失真以及一些偏差。在特定实施例中,对这些效果的校正可以是静态的,并且可以使用前端中的查找表对其进行预校正和校正。作为示例而非限制,可以将全景水平测量(panoramaleveling)、晕影校正、透镜失真校正、白平衡校正、曝光校正和匹配、或视点调整直接应用于图像。以这种方式,可以在任何压缩引起的颜色或特征偏移发生之前对图像进行操作,从而可以减少可见校正伪像的出现。另外,可以应用颜色校正以增强边缘清晰度、整体曝光或白平衡。在特定实施例中,可以将降噪应用于场景以减小图像的压缩大小。在特定实施例中,前端处理器220可以在一个或多个图像校正或增强步骤被应用之后对图像进行下采样。作为示例而非限制,不使用处理器密集的二次采样过程,而是可以对输出图像进行下采样。在特定实施例中,可以以比用于后续拼接的分辨率更高的分辨率来捕获图像,并且该高分辨率图像捕获可以帮助减轻可能与校正或增强步骤相关联的混叠或伪像。
在执行本文描述的栅格优化拼接技术之前,可以对图像对执行一个或多个初始拼接操作。在特定实施例中,拼接服务器230可以确定被拼接在一起的离散图像(例如,图像I-L1至I-Ln)的竖直对准和水平对准。在特定实施例中,可以比较来自多个相机的图像,从而将所有左图像与其他左图像(例如,I-L1至I-Ln)进行比较,并将所有右图像与其他右图像(例如,I-R1至I-Rn)进行比较。在图6的示例中,可以将图像I-6与邻近图像I-5和I-7进行比较。另外,可以将左图像与右图像(例如,I-L1和I-R1)进行比较,以确保它们相对于彼此正确地对准。作为示例而非限制,图像I-L1至I-L12可以分别对应于由图5的示例中所示的相机***210的左相机L1至L12捕获的图像。如上所述,与每只眼睛相对应的相机(例如,L6)的FOV与其邻居(例如,L5和L7)具有重叠,使得空间对准图像导致邻近图像(例如,I-6和I-7)之间的重叠区域610。如下所述,邻近图像的重叠区域610可以用于识别用于创建拼接图像的图像特征。在特定实施例中,由于相机***的已知几何形状,当执行某些拼接参数计算时可以进行假设。
图9示出用于拼接离散图像的示例方法。方法900可以在步骤910开始,在步骤910,从多个相机212接收多个图像。在特定实施例中,相机可以包括具有第一取向214的第一相机212和具有第二取向214的第二相机212。在特定实施例中,图像可以包括来自第一相机212的第一图像和来自第二相机212的第二图像。在步骤920,在第一图像和第二图像内检测多个特征点。在步骤930,确定位于第一图像和第二图像之间的重叠区域内的一对或多对对应特征点。在特定实施例中,对应特征点对包括来自第一图像和第二图像中的每一个的特征点中的相应一个。在步骤940,基于计算的每对对应特征点之间的偏移来对第一图像或第二图像进行空间调整。在步骤950,基于空间调整将第一图像和第二图像组合成合并或拼接的图像。在适当的情况下,特定实施例可以重复图9的方法的一个或多个步骤。尽管本公开将图9的方法的特定步骤描述并示出为以特定顺序发生,但是本公开涵盖图9的方法的任何合适步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于拼接离散图像的包括图9的方法的特定步骤在内的示例方法,但是本公开涵盖用于拼接离散图像的包括任何合适步骤的任何合适的方法,在适当的情况下,该任何合适的方法可以包括图9的方法的全部步骤、一些步骤或不包括这些步骤。此外,尽管本公开描述并示出了执行图9的方法的特定步骤的特定组件、设备或***,但是本公开涵盖执行图9的方法的任何合适步骤的任何合适的组件、设备或***的任何合适组合。
图10和图11分别示出了用于拼接离散图像的其他示例方法1000和1100。在特定实施例中,用于拼接图像的方法(例如,分别在图10或图11中示出的方法1000和1100)可以提供用于拼接图像的过程,该过程保留3-D感知并被自动执行(例如,该过程几乎不需要或不需要人工干预)。尽管本公开描述并示出了以特定顺序执行用于拼接图像的特定步骤的特定流程,但是本公开涵盖以合适顺序执行任何合适步骤的任何合适流程。
在特定实施例中,可以在拼接之前调整从相机***210的前端处理器220接收的图像的大小。如下所述,在确定对应特征点对时降低图像的分辨率可以加快拼接过程。另外,分辨率的降低可以提高对低光条件下的噪声的抵抗力,以及提高对用于特征检测的小尺度纹理的总体敏感性,如下所述。作为示例而非限制,针对实时3D拼接过程,可以将2-8兆像素(MP)图像的大小调整为易于管理的较低的分辨率。作为另一示例而非限制,可以将由相机212捕获的8MP图像的大小调整为2MP,并且可以将已调整大小的2-MP图像用作拼接过程的输入。在特定实施例中,已调整大小的图像可以被约束为具有最小大小(例如,1MP、2MP或任何合适的最小大小)。作为示例而非限制,可以将4MP和2MP图像的大小都调整为1MP。在特定实施例中,调整接收到的图像的大小可以减少图像中的噪声,该噪声可能影响使用局部对比度增强的特征检测。作为示例而非限制,可以使用缩放核(例如,Lanczos核)来最小化可能引起特征检测误差的核伪像。在特定实施例中,可以从大小被调整到比原始图像更低的分辨率的图像中确定拼接参数。作为示例而非限制,在使用已调整大小的图像(例如,2MP图像)集确定拼接参数之后,可以使用确定的拼接参数将由相机212捕获的原始高分辨率图像(例如,8MP图像)集拼接在一起。
在特定实施例中,从相机***210接收的图像可以被去扭曲以将图像拼接到矩形平面上。作为示例而非限制,可以对接收到的图像进行超采样以减少可能妨碍特征检测的伪像数量,如下所述。在特定实施例中,可以将去扭曲程序与缩放程序进行组合,这可以减少对超采样的需求。作为示例而非限制,接收到的图像可以经过组合的去扭曲和缩放程序,并且去扭曲和缩放的组合可以减少图像中的伪像。备选地,对接收到的图像的去扭曲可以用作作为位置函数的全局变换,并且对接收到的图像的像素数据的访问可以经过变换和超采样以产生合适的值。在特定实施例中,可以通过等式(1)来近似图像的去扭曲变换:
图像去扭曲:
其中,x是沿投射的3-D空间的纬度的位置,y是沿投射的3D空间的经度的位置,a..e是相机去扭曲参数,scale'是图像的缩放因子,translate'是水平或竖直空间转换参数,x'和y'分别是在去扭曲变换后的纬度和经度位置。在特定实施例中,可以基于相机***的相机中的一个或多个相机的特性,使用估计的比例因子来执行去扭曲过程。在特定实施例中,可以对初始图像的一个或多个集合执行去扭曲过程,并且可以使用去扭曲过程的提取来将去扭曲过程的简化版本应用于以后的图像。作为示例而非限制,可以提取对点和图像的访问以提供更快的去扭曲过程。
在步骤1105,可以检测形成场景的接收到的图像中的特征,如图11的示例所示。在特定实施例中,可以对图像I-6的灰度版本执行特征检测和匹配,并且可以在单独的操作中或通过查找表(LUT)将特定的对比度应用于图像I-6。在特定实施例中,可以使用局部对比度增强对图像I-6全局地执行特征检测。局部对比度增强增加了“局部”对比度,同时防止“全局”对比度增加,从而保护大规模的阴影/高光细节。作为示例而非限制,局部对比度梯度可以指示与特征相对应的边缘、角或“斑点”。可以使用特征检测算法(例如,尺度不变特征变换(SIFT)、加速稳健特征(SURF)、或oriented FAST and Rotated BRIEF(ORB),其中FAST代表“来自加速段测试的特征”,“BRIEF”代表“二进制稳健独立基本特征”)来检测图像I-6的特征。在特定实施例中,特征检测过程可以检测一个或多个特征点614(参见图13)。作为示例而非限制,可以通过取多个高斯平滑运算的差来检测特征点614。此外,可以存储特征点614的位置(例如,在栅格内或在搜索区域612内(参见图12))和每个搜索区域612的每个特征点614的对比度值。
图12示出图像的示例划分。在特定实施例中,可以将接收到的图像(例如,图像I-7至I-5)划分为多个搜索区域612。作为示例而非限制,图像I-7至I-5可以对应于与特定眼睛相对应的图像(例如,所有左或右图像),如图8的示例所示。在特定实施例中,接收到的图像(例如,I-7至I-5)可以被划分成以4×6矩形栅格布置的24个搜索区域,如图12的示例所示。如上所述,来自与特定眼睛相对应的邻近相机(例如,所有左相机)的图像(例如,I-7至I-5)具有与相应相机的FOV之间的角度重叠216成比例的重叠区域6106-7和6105-6。在特定实施例中,图像(例如,I-7至I-5)的重叠区域6106-7和6105-6可以对应于接收到的图像(例如,I-7至I-5)的右边缘和左边缘。在特定实施例中,特征点检测或匹配可以限于邻近图像的重叠区域。在图12的示例中,对于邻近图像I-6和I-7,特征点检测可以仅应用于重叠区域6106-7。可以不考虑重叠区域610外部的区域,这可以确保位于重叠区域外部的不相关或不必要的点不会影响拼接过程。
图13示出图像的示例特征点匹配。在步骤1110,可以在重叠区域6106-7的搜索区域上局部地执行特征点匹配,以使不相关点对拼接图像620的影响最小化,如图11的示例所示。作为示例而非限制,可以对检测到的特征点614A-614B执行特征点计算,以将图像I-6的特征点614A与图像I-7的对应特征点614B进行匹配。可以通过对重叠区域6106-7的搜索区域中的每个检测到的特征点614A-614B周围的区域进行局部比较来检测对应特征点614A-614B对。在特定实施例中,可以将相应图像I-7和I-6中的该特征点614A-614B的相应对比度设置应用为特征点614A-614B的匹配的一部分。作为示例而非限制,可以将图像I-7与I-6之间的对比度差异补偿为对比度曲线的偏移。在特定实施例中,可以利用附加比特(例如,对于8比特值使用带符号的16比特)来计算对比度曲线的该偏移以将其考虑在内。偏移的差异可能使得最佳匹配具有预先已知的均匀差异。
在特定实施例中,可以根据图像的大小来设置用于匹配特征点614的区域的大小。在特定实施例中,相机***210的几何形状可以是已知的,并且基于已知的相机***的几何形状,邻近图像I-6和I-7的搜索区域和重叠区域6106-7的大致像素数量可以是已知的先验。作为示例而非限制,由于相机***210的相机212的位置和取向相对于彼此固定,因此邻近的左相机(例如,相机L1和L2)或邻近的右相机(例如,相机R11和R12)是已知的,并且类似地,邻近的左或右相机(例如,相机L1和R1)之间的重叠也可以是已知的。在特定实施例中,可以使用最近邻居搜索算法来对特征点的对应对进行确定。作为示例而非限制,最近邻居搜索算法可以识别图像I-7的重叠区域6106-7的每个搜索区域内的特征点614B的模式,该特征点614B的模式与图像I-6的重叠区域6106-7的每个搜索区域内的特征点614A的对应模式相匹配。在特定实施例中,最近邻居算法可以使用围绕每个特征点614A-614B的搜索半径来确定对应特征点614A-614B对。作为示例而非限制,搜索区域可以具有32像素、64像素或任何合适的半径,或者搜索区域可以具有32像素×32像素、64像素×64像素的大小、或任何合适的大小。在特定实施例中,在最终单应性计算之前,可以使用次级精细化步骤来使对应特征点对重新对准。
在特定实施例中,特征匹配程序可以使用估计的参数,并且可以在重叠区域或搜索区域内应用一些搜索以优化位置。在特定实施例中,当特征搜索从图像(例如,图像I-6或I-7)的中心移动到边缘时,可以增加搜索半径。作为示例而非限制,由于与实际的参数和估计的参数(例如,实际的FOV相对于估计的FOV)之间的差异相关联的误差的增加,可以增加搜索半径。在特定实施例中,可以在少于对应特征点614A-614B对的预定数量(例如,3对)的情况下将附加特征点添加到区域612。作为示例而非限制,如果特征搜索揭示特定区域612中少于3个特征点,则可以将来自备份特征点集的备份特征点添加到特征集。在特定实施例中,备份、替代或附加特征点可以基于相机***210的特性、每个相机212的特性、校准数据或其任意组合,并且附加特征点可以在数据结构中被指示或标记。
在特定实施例中,可以在最后的优化中启发式地优化相机参数或图像(例如,I-6和I-7)以减少自由变量的数量,从而生成拼接图像620。作为示例而非限制,启发式优化可以用于优化或精细化一个或多个与相机有关的参数(例如,FOV、取向214或竖直或水平相机中心的位置)。特征匹配程序可以至少部分地基于已知的相机几何形状(例如,相机***210的相机212的位置或取向)或校准过程来使用估计的相机参数。例如,知道相机212的标称位置和取向可以允许对相机FOV、角度重叠216、相机取向214、或相机位置(例如,竖直和水平相机中心的位置)进行估计。在特定实施例中,可以迭代地或通过针对多个非线性值使用组数值方法来优化估计的相机参数。在特定实施例中,对于每个图像(例如,I-6和I-7),可以将对应特征点614A-614B对的位置彼此进行比较,并且可以基于相应特征点614A-614B的位置的偏移对对应的相机参数进行调整。作为示例而非限制,可以响应于检测到特征点614A-614B之间的平均径向偏移来调整FOV参数或取向参数。作为另一示例而非限制,可以响应于分别检测到特征点614A-614B之间的平均的竖直或水平偏移来调整(例如,平移)竖直或水平相机位置参数。
在步骤1115,可以基于匹配的对应特征点对,使用单应性矩阵来确定图像I-6和I-7之间的相机位移(例如,相机旋转或平移)的估计,如图11的示例中所示。在特定实施例中,可以基于由单应性矩阵确定的估计的相机位移来对图像I-6和I-7进行调整。可以使用单应性矩阵来计算用于调整和对准图像I-6和I-7以形成合并的拼接图像620的拼接参数。作为示例而非限制,可以针对图像I-6和I-7初始地计算单应性矩阵,并且可以基于计算出的单应性矩阵对后续图像进行调整。
可以对图像I-7和I-6进行调整,以将图像I-7和I-6适当地组合到拼接图像620中。在特定实施例中,可以进行调整以满足一个或多个优化标准。作为示例而非限制,优化标准可以是应将对应特征点614A-614B对的竖直或水平偏移最小化。作为另一示例,优化标准可以是在观看者看到重影之前,对应特征点614A-614B对的水平偏移应小于最大水平偏移。作为又一个示例,优化标准可以是对应特征点614A-614B对的竖直偏移应小于最大竖直偏移。
在特定实施例中,可以假设一个或多个初始条件来执行对图像I-6和I-7的调整。作为示例而非限制,初始条件可以假定第一相机对(例如,图5中的相机对L1-R1)具有定义相机***210的主光线(或偏航)的取向214。作为另一示例,初始条件可以假定剩余相机对(相对于第一相机对)围绕y-轴的取向214为Yi=(i-1)×360°/n,其中y-轴与相机***的平面正交,i=2…n,n是相机***的相机对的数量。作为示例而非限制,对于具有n=8个相机对的相机***210,相机对300相对于彼此以45度定向。作为又一个示例,初始条件可以假设相机***210的相机212沿x-轴和z-轴是水平的(例如,分别为零横滚和俯仰)。
在特定实施例中,可以通过最小化一个或多个优化成本来确定对图像I-6和I-7的调整。作为示例而非限制,对应特征点614A-614B对之间的距离可以表示基本的总优化成本。作为另一个示例,沿轴的旋转调整可以具有与加权的旋转位移成比例的成本(例如,围绕每个轴(偏航、俯仰和横滚)的kx(X'-X0)2,其中kx是加权系数)。此外,每个轴可以具有特定的加权系数,例如,对于偏航轴为kY,对于俯仰轴为kP,对于横滚轴为kR。在特定实施例中,图像I-6和I-7的FOV或平移调整可以具有每个轴kx|X'-X0|的线性成本。每个轴可以具有特定的加权系数,例如,用于FOV调整的kFOV,用于x-轴平移的kCX和用于y-轴平移的kCY。在特定实施例中,可以对优化成本进行函数化,使得可以将优化成本函数修改为处理极端情况。
在特定实施例中,可以通过使用启发式优化、初始条件、优化成本或其任何组合的结果而执行全局优化来将图像(例如,I-6和I-7)拼接在一起。可以使用例如Monte-Carlo、梯度下降、稀疏版本的高斯-牛顿、或其他合适的非线性优化求解器来对这些因子进行全局优化。在特定实施例中,可以通过由(2)表示的等式***来对参数***进行全局优化:
全局优化:
其中x’和y’是来自去扭曲操作的坐标;如上所述,从对应特征点对计算Homography Matrix(单应性矩阵);YPR是分别沿偏航、俯仰和横滚轴的旋转调整;scale是图像的缩放;translate是平移调整;x'’,y'’和z'’是优化的坐标。
由等式(2)描述的等式***可能遭受收敛失败。在步骤1125,如图11的示例中所示,在具有来自备份源(例如,校准)的40%以上特征点的图像上的失败收敛可能指示特定图像太白、太接近或缺少特征。在这种情况下,可以根据上述初始条件来调整特定图像。在特定实施例中,由于替换的特征点具有太大的空间偏移,所以由等式(2)描述的等式***的收敛可能失败。在这种情况下,替换的特征点的优化成本可能减半,并且全局优化再次执行。作为示例而非限制,可以以预定次数(例如,4次循环)来执行优化的减少和执行全局优化。此外,如果等式(2)继续收敛失败,则可以将特征点的贡献设置为零。
在特定实施例中,除了来自与特定眼睛相对应的邻近相机的图像具有重叠之外,来自与另一眼睛相对应的相邻相机的图像也可以与两个图像具有重叠。作为示例而非限制,来自相机L1和L2的图像可以具有重叠区域,并且相邻相机(例如,相机R1、R2或R3)也可以捕获包括相同重叠区域在内的图像。如图8的示例所示,图像I-L1和I-L2具有重叠区域610L1-2,并且图像I-R1也与这两个图像重叠。在特定实施例中,可以检测来自相邻相机(例如,相机R1)的图像(例如,图像I-R1)的特征,并且可以在邻近图像(例如,图像I-L1和I-L2)的重叠区域(例如,重叠区域610L1-2)和来自相邻相机的图像的重叠区域之间确定对应的特征点对。此外,可以基于检测到的邻近相机的重叠区域和来自相邻相机的图像的重叠部分的对应特征点对来计算单应性矩阵。在特定实施例中,可以将与邻近相机(例如,相机L1和L2)相对应的单应性矩阵的结果与对应于相邻相机(例如,相机R1)的单应性矩阵进行比较。另外,确定与左眼视图相对应的拼接图像和与右眼视图相对应的拼接图像之间的对应关系可以用于稳定拼接图像的立体对之间的竖直偏移。
在特定实施例中,如上所述,一旦计算出拼接参数或调整,就可以检查它们的正确性。在特定实施例中,可以使用由相机***210捕获的已知场景的图像来执行校准。对已知场景的对应特征点对的检测可以提供特征点集,该特征点集可以用作对拼接图像进行图像调整的基础。一旦拼接服务器检测到重叠区域内的对应特征点对,就可以在每个检测到的特征点周围的区域中执行误差计算(例如,差的平方和)。如果误差计算高于预定阈值,则可以将检测到的对应特征点对标记为可疑。如果对应特征点的对数下降到预定的阈值对数以下,则可以标记离散图像的拼接。在特定实施例中,可以用校准数据的特征点来替换标记的对应特征点对,从而迫使单应性计算认为图像处于校准取向。
在计算了单应性矩阵之后,可以检查它们的正确性。在步骤1135,可以检查连续单应性矩阵的偏航旋转之间的差,如图11的示例所示。如上所述,如果该差在基于校准数据的预期差的±2-3°以内,则可以认为图像调整是正确的。作为示例而非限制,可以计算用于12-相机***的单应性矩阵,其中每个相机间隔30°。如果偏航旋转差在预期值的预定范围内(例如,在27°与33°之间),则所计算的单应性矩阵可以被认为是可接受的。在特定实施例中,来自相机的图像被用于计算单应性矩阵。如果计算出的单应性矩阵或相机位置在预期位置和角度的±2度以内,则可以认为拼接良好。在步骤1145,如果对于某些图像的拼接失败,则如图11的示例所示,可以用来自校准数据的替代特征点替换检测到的对应特征点对,并且重新尝试拼接程序。在步骤1155,如果对于超过预定阈值数量的多个图像,拼接程序失败,则可以拒绝整个拼接,并且可以使用来自最后成功拼接的帧的单应性矩阵,如由图11的示例所示。在对于初始帧发生拼接失败的情况下,可以代替地使用基于校准数据计算的单应性矩阵。
图14示出了示例顶部图像I-Top和拼接图像620。顶部图像I-Top可以由顶相机212T捕获,并且拼接图像620可以由将左或右图像(例如,图像I-R1至I-Rn)拼接或组合在一起的拼接过程产生。在图14的示例中,拼接图像620包括图像I-1、I-2和I-3,所述图像I-1、I-2和I-3被拼接在一起以形成拼接图像620。在特定实施例中,在将来自相机212的图像拼接在一起以形成拼接图像620之后,来自顶相机212T的顶部图像I-Top可以被拼接或添加到拼接图像620的上部610U。类似地,在特定实施例中,来自底相机的图像可以被拼接或添加到拼接图像620的底部。在特定实施例中,将顶部或底部图像添加到拼接图像620可以提供增加的视图以迁就可能未覆盖±90°竖直FOV的拼接图像620。作为示例而非限制,可以将图8的示例中示出的左图像I-L1至I-Ln拼接在一起以形成具有与相机212的FOVV相对应的竖直范围的拼接图像620。例如,拼接图像620可以表示相机***210周围的360°水平全景图,并且全景图可以相对于相机***210的水平面覆盖±70°的竖直范围(对应于FOVV=140°)。在形成拼接图像620之后,可以将顶部图像I-Top拼接到拼接图像620的顶部,从而形成具有竖直范围在约-70°至约+90°范围内的360°全景图的图像。另外,底部图像也可以被拼接到拼接图像620的底部,从而形成在所有方向上延伸的图像(例如,覆盖在约-90°至约+90°的范围内竖直延伸的完全360°水平视图,其中-90°表示笔直向下,而+90°表示笔直向上)。尽管本公开描述并示出了具有特定水平和竖直范围的特定拼接图像,但是本公开涵盖具有任何合适的水平和竖直范围的任何合适的拼接图像。
在特定实施例中,顶部图像I-Top的部分可以与拼接图像620的部分重叠或相对应。此外,可以基于相机210的相机212的已知配置以及顶相机212T的已知配置,将顶部图像I Top的特定部分与特定图像(例如,图像I-1、I-2、I-3等)相关联。作为示例而非限制,由两个邻近的接缝线617确定边界的顶部图像I-Top的每个区域(例如,阴影区域619)可以对应于拼接图像620的特定图像。在图14的示例中,图像I-Top的阴影区域619可以对应于由相机***210的特定相机212捕获的图像I-2。组成拼接图像620的图像与顶部图像I-Top的部分之间的对应关系可以基于相机212的配置或取向214以及顶相机212T的配置。在特定实施例中,图像I-Top中的接缝线617可以对应于拼接图像620的接缝617M,其中接缝617M可以表示形成拼接图像620的邻近离散图像之间的边界。作为另一示例而非限制,中心线618可以对应于拼接图像620的离散图像的大致中心618M。在特定实施例中,线617和618可以分别表示在顶部图像I-Top被处理或优化以与拼接图像620进行拼接之前的接缝617M和中心618M的估计的位置。
在特定实施例中,拼接图像620的上部610U可以表示拼接图像620的与顶部图像ITop的外部环形区域610T重叠的区域。例如,拼接图像620可以对应于相对于水平取向214覆盖例如±70°的FOVV,并且顶部图像I-Top可以对应于从竖直方向(例如,+90°纬度)延伸到+60°的纬度的图像。图像I-Top的外部实心黑色圆可以对应于+60°的纬度,并且图像I-Top的较小的虚线圆610E可以对应于+70°的纬度。重叠区域610U和610T可以对应于图像I-Top和拼接图像620之间的10°重叠(例如,从纬度+60°至纬度+70°)。在特定实施例中,用于将顶部图像I-Top拼接到拼接图像620的算法可以包括搜索特征、确定位于重叠区域610U和610T中的对应特征点对(如上所述)、以及使用这些对应特征点对以将图像I-Top'拼接到拼接图像620(如下所述)。尽管本公开描述并示出了具有彼此对应或重叠的特定部分的特定顶部和拼接图像,但是本公开涵盖具有彼此对应或重叠的任何合适的部分的任何合适的顶部和拼接图像。
图15示出在处理之后来自图14的示例顶部图像。在特定实施例中,在被添加到拼接图像620之前,可以对顶部图像I Top的较小的虚线圆610E进行处理、变换或优化以形成处理后的图像I-Top',然后将该处理后的图像I-Top'拼接或添加到拼接图像620。在特定实施例中,应用于顶部图像I-Top的较小虚线圆610E的处理步骤可以包括旋转或移动线617或618,或者使顶部图像I-Top的较小虚线圆610E扭曲,使得处理后的图像I-Top'与拼接图像620匹配或混合。在特定实施例中,单个处理后的图像I-Top'可以与对应于左和右视图或眼睛的相应拼接图像620一起使用。作为示例而非限制,可以在变换过程之前裁剪顶部图像I-Top的重叠区域610T。在特定实施例中,可以将处理后的图像I-Top'添加到表示左眼视图的拼接图像和表示右眼视图的拼接图像。在特定实施例中,顶部图像I-Top的较小虚线圆610E可以基于分别与左眼和右眼视图相对应的拼接图像来经历两个处理例程,以生成单独的处理后的左和右顶部图像。作为示例而非限制,可以将处理后的左顶部图像添加到表示左眼视图的拼接图像,并且可以将处理后的右图像添加到表示右眼视图的拼接图像。
在特定实施例中,如上所述,对顶部图像I-Top的较小虚线圆610E进行处理以生成处理后的图像I-Top'可以包括检测重叠区域610T和610U中的对应特征点对。作为示例而非限制,可以检测位于接缝线617与图像I-Top的外边缘相交的位置附近的特征。可以将检测到的特征的一个或多个特征点与来自拼接图像620的对应特征点进行匹配,并且基于对应的特征点对之间的匹配,可以计算图像I Top的较小虚线圆610E相对于拼接图像620的偏移。在特定实施例中,在没有检测到对应的特征点对的情况下,可以基于相机的几何形状来确定特征点,或者可以使用相机校准来确定对顶部图像I-Top的较小虚线圆610E执行的处理。
在特定实施例中,可以确定围绕顶部图像I-Top的中心的径向扭曲,使得顶部图像I-Top的中心位置中心保持固定。另外,基于确定的径向扭曲,接缝线617可以被旋转以与拼接图像616的接缝617M结束的位置相交,并且中心线618可以被旋转以匹配在拼接离散图像以产生拼接图像620期间执行的任何偏航调整。作为示例而非限制,如果形成拼接图像620的离散图像(例如,图像I-1、I-2或I-3)之一经历了+2°的偏航调整,则可以将+2°旋转应用于对应的中心线618。
在特定实施例中,可以将图像I-Top'的较小虚线圆610E的外边缘的一个或多个部分拉出或拉入以匹配拼接图像620。作为示例而非限制,接缝线617或中心线618与图像I-Top的较小虚线圆610E的外边缘相交的位置可以被拉出或拉入以匹配拼接图像620的对应区域。作为示例而非限制,图像I-Top的较小虚线圆610E的外边缘可以通过适当地分别增加或减小接缝线617或中心线618的长度而被拉出或拉入。在特定实施例中,可以将处理后的图像I-Top'单独地保存为封面(cap)图像,或者可以将处理后的图像I-Top'集成到拼接图像620中。作为示例而非限制,可以对处理后的图像I-Top'应用极坐标到直线的变换,并且然后可以将处理后的图像I-Top'与拼接图像620进行混合,如下所述。
在特定实施例中,可以使用梯度混合来“混合”离散图像被拼接在一起以形成拼接图像620的接缝617M。作为示例而非限制,照度或亮度可以具有沿接近接缝617M的方向的梯度。例如,在从任一横向方向朝向接缝617M移动时,亮度可以减小。拼接图像620和处理后的图像I-Top’的外边缘的相交处可以以类似的方式混合。作为示例而非限制,拼接图像620与处理后的图像I-Top’之间的相交处的亮度可以具有与拼接图像620的尺度成比例的梯度,使得混合在高纬度处是平滑的。
离散图像的混合可以发生在包含接缝617M的重叠区域内。此外,混合可以沿着非线性路径发生,以减少来自混合路径的视觉不连续性。在特定实施例中,混合算法可以探索多个候选混合路径。可以在邻近离散图像的相交处周围的区域中执行边缘检测算法。如果候选混合路径击中任一图像的侧边缘,则候选混合路径可以在两个方向上跟随侧边缘,直到候选混合路径位于拼接图像620的底部边缘。如果候选混合路径相交,则候选路径可以沿其当前方向继续。在特定实施例中,从候选混合路径中选择混合路径可以基于选择到达拼接图像620的底部边缘的唯一候选混合路径,或者如果多个候选混合路径到达底部边缘,则选择最短候选混合路径。在特定实施例中,候选混合路径相对于该候选混合路径所位于的图像的中心凹入最少。对于“被跟踪”的部分,掩模梯度应50%直接在具有小的模糊半径的跟踪线上。
在特定实施例中,可以使用Voronoi-型接缝查找器进行空间稳定的拼接。这种空间稳定性可以确保可以重新使用共享的单应性矩阵和混合数据,从而可以减少混合边缘闪烁。如上所述,Voronoi-型接缝查找器可以用于进一步精细化特征匹配器的搜索区域,从而提高限制在最可能在输出图像中的区域(例如,重叠区域)内的特征点的单应性矩阵的准确性。该数据可以被实时反馈到前端处理器,以忽略在拼接图像620的拼接中可能未使用的图像数据。
在特定实施例中,当生成拼接图像620时,所捕获的图像中的对象的近场深度的变化可能是一个问题。如上所述,深度信息(例如,从深度传感器获得的或使用立体图像对从图像中的对象的三角测量获得的)可以用于分离基于特征点与相机的接近度进行匹配的特征点。距观看者或相机较近的对象与较远的对象相比具有用于拼接的不同的几何形状。在特定实施例中,远场对象的深度变化可能对拼接质量具有最小的影响,因此计算资源可以集中考虑近场深度变化上。在特定实施例中,拼接服务器230可以基于深度数据来确定一个或多个图像中的对象是否位于可以采取附加措施以改善拼接质量的区域内。作为示例而非限制,然后可以响应于检测到位于相机212或相机***210的预定阈值距离内的对象而触发单应性矩阵的计算(或重新计算)。
在特定实施例中,离散图像可以被划分成单独被拼接和混合的多个部分,或者可以优先考虑近场对象,因为这些对象比远场对象具有更多的可见拼接误差。作为示例而非限制,可以将近场对象与远场对象进行分离并单独地进行拼接。在特定实施例中,可以通过使用二进制掩模将近场对象放置在远场对象上,来将分离的近场对象利用掩模添加(masked)到具有远场对象的拼接图像620上。对于观察近场对象上的相同光斑的相机,近场对象可能看起来非常不同。在特定实施例中,拼接服务器可以选择使用邻近图像之一来拼接重叠区域中的对象。作为示例而非限制,可以使用接缝查找器(例如Voronoi-型)根据包含大部分的近场对象区域在内的图像来拼接近场对象。在特定实施例中,可以使用非均匀扭曲来组合用于近场对象的单应性矩阵和用于远场对象的单应性矩阵。例如,基于网格的扭曲可以在近场和远场对象之间的边缘处的两个单应性矩阵之间过渡,以拼接拼接图像620的前景和背景。
当对象从远场移动到近场时,单应性矩阵可能显著地改变。在特定实施例中,可以在与拼接过程分开的计算线程上执行单应性矩阵的计算。作为示例而非限制,一个计算线程可以执行离散图像的拼接,而另一计算线程可以针对单应性数据来分析离散图像并提供对共享存储的更新。剩余情况可以通过使用校准数据或使用最后可用的单应性矩阵进行管理。在特定实施例中,可以使用图形处理单元(GPU)来加速对单应性矩阵或拼接过程的计算。作为示例而非限制,***的中央处理单元(CPU)可以用于计算单应性矩阵,并且GPU可以用于使离散图像失真和混合。
在特定实施例中,可以执行特定于立体视频的拼接的一个或多个调整。在特定实施例中,来自与左眼和右眼视图相对应的拼接图像620的对应特征点对可以被投射到3-D球形投射空间上。在特定实施例中,左眼视图的起点和右眼视图的起点之间可能存在差异。可以通过初始条件来校正该差异,该初始条件为将第一相机位置用作开始位置并且第一相机具有零偏航。可以基于这些初始条件调整剩余相机。
在特定实施例中,可以使用共享的单应性矩阵来执行与左眼视图和右眼视图相对应的拼接图像620。计算调整以生成与左眼视图相对应的拼接图像620的拼接过程可以与计算调整以生成与右眼视图相对应的拼接图像620的拼接过程进行通信以确保整体单应性和图像调整在左眼视图与右眼视图之间是一致的。此外,图像参数或曝光校正应在左眼视图与右眼视图之间的合理范围内是一致的。在特定实施例中,立体视频可以具有在左眼视图与右眼视图之间被时间同步化的帧。
在特定实施例中,生成用于视频的拼接图像620可以使用前瞻方法。作为示例而非限制,可以针对当前帧和未来的一些预定数量的后续帧来计算拼接调整(例如,单应性矩阵)。在特定实施例中,响应于检测到未来帧中发生的对应特征点对的实质性变化(例如,对象从远场到近场的移动),来计算完全的拼接参数集。此外,可以设置改变标记,该改变标记使得拼接参数被内插(例如,正弦缓和)到新计算的拼接参数,使得拼接平滑地切换以应对场景中的变化。确定预定数量的后续帧应结合计算新的拼接调整所需的时间。
图16和图17分别示出了用于拼接离散图像的示例方法1600和1700。在特定实施例中,用于实时360°3-D视频的拼接的方法1600是在多个拼接服务器上分布各个帧的拼接,如图16的示例所示。单应性矩阵管理可以通过每个拼接服务器来完成,或者拼接服务器可以使用中央单应***器来共享单应性矩阵。在特定实施例中,中央单应***器可以派给各个服务器节点任务以计算单应性矩阵或拼接图像。用于完成拼接图像的服务器数量可以与期望的帧速率或拼接服务器的吞吐量成比例。作为示例而非限制,对于具有每秒1帧(FPS)吞吐量的单个拼接服务器,可以使用30个拼接服务器来产生30FPS的拼接视频。
在特定实施例中,用于实时360°3-D视频的拼接的另一种方法1700是在多个拼接服务器上分布视频段(例如,视频块或多个帧)的拼接,如图17的示例所示。多个拼接服务器可以同时处理视频的拼接,其中每个拼接服务器生成与接收到的视频段相对应的拼接视频段。收集服务器或视频组合器可以从拼接服务器接收各个视频段,然后将它们合并回去,以生成拼接视频。
在特定实施例中,离散图像可以被手动拼接以产生拼接的图像或视频。可以绕过特征提取和对应特征点对的确定,并且提供手动选择的对应特征点对。从这一点出发,可以如上所述执行拼接过程的剩余部分。
图18示出了用于拼接至少两个图像的示例方法1800。本文所述的拼接技术可以同时在两个图像上进行,也可以仅在一个图像上进行,而另一个图像保持不变。方法1800可以在接收输入的步骤1802开始。输入可以包括多个电子图像。可以从多个相机(例如,从相机212)或单个相机接收图像。作为示例,图像可以包括如图21所示的图像2102-2116。在特定实施例中,捕获此类图像的相机可以包括具有第一取向214的第一相机212和具有第二取向214的第二相机212,并且所接收的图像可以包括来自第一相机212的第一图像和来自第二相机212的第二图像。输入还可以包括初始拼接的全景图像(例如,参见图22),可以使用初始拼接技术(例如,以上描述的并且在图18至图26中示出的拼接技术)来生成该初始拼接的全景图像。如前所述,初始拼接图像可以包括图像伪像,例如,如图22所示的图像伪像2202-2210。本文讨论的图像拼接技术的一个技术优点是产生具有较少图像伪像的无缝且平滑的拼接图像,例如,图27中所示的图像。在特定实施例中,可以在栅格优化步骤1810期间使用初始拼接的图像,以确保栅格点不会移动太多,或者确保最终拼接/组合的图像与初始拼接图像没有太大差异。
在步骤1804,对图像进行去鱼眼。对图像进行去鱼眼可以包括消除来自鱼眼的失真,使其看起来像常规的直线图像。在步骤1806,可以可选地对图像进行重新缩放,例如用于加速图像拼接过程并减少***上的整体负载。在一些实施例中,重新缩放图像可以包括降低图像的分辨率(例如,1920×2180到2124×1868)或压缩图像的大小。重新缩放图像有时还可以减少边缘检测期间的噪声影响。在步骤1808,可以在图像的每一个中检测图像边缘线,例如,如图23所示。在特定实施例中,将从Sobel滤波器获得的梯度幅度用于边缘检测。有时,替代梯度幅度,在X和Y方向上的各个梯度可以单独地被对准。可以使用RGB颜色或灰度图像进行对准。可选地,可以仅对准特征(例如,SIFT/SURF/ORB等)匹配。其他边缘检测器(例如包括但不限于,Scharr、Laplacian、Roberts cross、相位拉伸变换(PST)、Prewitt、Canny(具有滞后性的阈值化))也可以用于图像检测。
在步骤1810,执行栅格优化。栅格优化可以包括将每个图像划分为栅格点(例如,参见图24A至图24F),其中每个栅格点对应于每个图像的一部分,并且递归地移动栅格点和图像的对应部分,以便使图像重叠区域的归一化梯度之间的差异最小化。如本文所使用的,在图像中移动栅格点还参考对图像中与栅格点相对应的部分进行移动。换句话说,一个或多个图像的一个或多个栅格点可以(并行或独立地)移动以使图像的重叠区域中的特征之间的边缘线的差异最小化(例如,以使第一图像中的特征与第二个图像中的对应特征之间的差异最小化,其中这些特征出现在这两个图像的重叠区域中)。为了保持图像质量,还可以移动图像的非重叠区域中的栅格点。在特定实施例中,可以添加一组弹性或平滑约束,该约束将栅格点在两个图像之间或同一图像内的移动限制为某个阈值(在以下进一步详细讨论)。
栅格点和图像的相应部分可以被移动,直到两个图像的边缘或边缘线相互重叠。作为示例并且参考图6,可以首先处理图像I-6和I-7以检测图像中的边缘(例如,类似于图23中所示的边缘),然后可以将这两个图像划分为栅格点(例如,类似于图24B所示的栅格点),并且移动这些图像中的每一个的栅格点。可以将图像进一步划分为更多的栅格点(例如,类似于图24C至图24F所示的栅格点),并且再次将栅格点从图像中的每一个的一个位置移动到另一位置,直到两个图像的重叠区域6106-7的边缘彼此重叠。在一个步骤中将所有点一起移动可能导致非常不规则的网格。例如,如果一次移动所有栅格点,则输出图像可能看起来不自然、失真并且与原始图像完全不同。因此,可以使用金字塔等级技术,其中可以在多个迭代或步骤中完成优化(例如,将图像划分为栅格区域并移动栅格点),即,在开始相对粗糙(例如,如图24B所示),并且在较低的金字塔等级逐渐变得更精细(例如,参见图24C至图24F)。在较高的金字塔等级中,该算法在较大的窗口中进行搜索,窗口随着金字塔等级的降低而减小。随着金字塔等级的降低,可以添加新的栅格点(例如,参见图24C至图24F)。可以从先前点的位置内插新栅格点的位置,然后可以再次优化栅格。
在特定实施例中,可以移动图像的栅格区域中的每个点以使围绕该点的小局部区域中的重叠图像的归一化梯度之间的差异最小化。该过程可以再金字塔中向下移动一个等级,其中新的栅格点可以被添加并且它们的位置可以使用原始栅格点而被内插。每个栅格点的局部窗口以及因此用于移动该栅格点的最大搜索距离可以随着金字塔等级的降低而减小。
搜索重叠的特征点可以在相同等级的栅格单元中发生(线性搜索),也可以在不同的金字塔等级的单元中发生(指数搜索)。在特定实施例中,可以使用线性搜索。在特定实施例中,可以使用指数搜索。备选地,特定实施例针对图像的不同金字塔等级(即,放大或缩小的版本)保持搜索区域恒定并且在该区域内搜索。因此,在特定实施例中,可以在图像的最小图上以恒定区域和最大步长来执行搜索。
图19示出了栅格优化的示例方法。在特定实施例中,步骤1902-1922可以作为栅格优化步骤1810的一部分并且在进行到图18的步骤1812之前执行。
图19的方法可以开始于步骤1902,其中针对图像中的每一个以期望水平设置栅格区域和位置。要优化的每个图像的栅格区域可以基于其邻居以及其邻居在球体上的位置。在特定实施例中,两个图像之间的接缝线周围的区域是最需要修改的区域。可以对图像执行初始接缝估计以获知接缝位于何处。在特定实施例中,基于接缝线的位置设置栅格区域,从而将接缝线保持在区域的中间。栅格区域中的点的数量由金字塔集的等级确定。在步骤1904,将最小差法线(minDiffNorm)值初始化并将迭代设置为零。minDiffNorm是两个图像的重叠区域的归一化梯度之间的最小差或误差,以便被认为适合拼接。在特定实施例中,在步骤1906,确定当前迭代是否小于特定数量N。N可以是移动组合或迭代的总可能数量。例如,N可以是5。如果确定的结果是肯定的,则在步骤1908,移动栅格点。栅格点可以同时在两个图像之间移动,或者栅格点可以仅在一个图像中移动,而另一个图像保持不变。在步骤1910,可以针对每个栅格点设置局部窗口,并且然后在步骤1912,对局部窗口中的梯度进行归一化。在步骤1914,计算图像的重叠区域的归一化梯度之间的差(S)。在步骤1916,确定差S是否小于在步骤1904中初始化的minDiffNorm值。如果确定的结果是肯定的,则在步骤1918,记录移动和对应的minDiffNorm,并且在步骤1922,与minDiffNorm值相对应地移动栅格点,并且该方法结束。另一方面,如果差S大于minDiffNorm值,则在步骤1920,在每个图像中添加新的栅格点(例如,参见图24B至图24C),并且迭代被递增(例如,iter=0到1),并且重复执行步骤1906-1916和1920,直到两个图像的边缘或边缘线彼此重叠,或者两个图像之间的差在minDiffNorm之内或小于minDiffNorm。
图24A至图24H示出了图19的栅格优化方法的示例表示。图24A示出了要拼接的初始图像集。图24B示出了应用于图像的初始栅格。尽管图24B示出了初始以直线形状布置的栅格,但是本公开涵盖用于初始格栅的任何合适的形状。图24C至图24F示出了栅格优化过程的每个迭代(即,金字塔等级)的结果。如图24D至图24F所示,栅格点(例如,区域2410中的栅格点)可以连同与栅格点相对应的图像的部分一起迭代地移动。一旦移动,栅格不再具有其相同的形状,例如,图24B的初始为直线的栅格在图24C至图24F中不再如此。如图24E至图24F所示,可以将在优化方法的附加迭代(即,金字塔的较低等级)中添加的栅格点添加在这些点之间的线上的相邻栅格点之间。这些栅格点连同现有栅格点一起可以在优化方法的未来迭代期间移动,以使得栅格点及其邻居不再排列成直线。本公开涵盖可以将栅格点引入任何合适的几何构造中,然后从任何合适的几何构造移动该栅格点。
如图24G至图24H所示,在图19的优化方法的一个或多个迭代之后,最终栅格(并且因此图像的对应部分)具有与初始栅格不同的形状。图24H示出了在图19的优化方法的一个迭代期间将栅格点和图像的对应部分从它们的初始位置(图24G)移动之后的示例最终栅格。如图24A至图24H所示,一些栅格点可以移动,而其他栅格点可以不在迭代期间或不在图19的整个优化过程期间移动。在一个迭代之后可以添加的附加栅格点未在图24G至图24H中示出。图24G至图24H可以例如对应于被拼接的两个图像之间的重叠区域中的栅格。
在适当的情况下,特定实施例可以重复图19的方法的一个或多个步骤。尽管本公开将图19的方法的特定步骤描述并示出为以特定顺序发生,但是本公开涵盖图19的方法的任何合适步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于栅格优化的包括图19的方法的特定步骤在内的示例方法,但是本公开涵盖用于栅格优化的包括任何合适步骤的任何合适的方法,在适当的情况下,该任何合适的方法可以包括图19的方法的全部步骤或仅一些步骤。此外,尽管本公开描述并示出了执行图19的方法的特定步骤的特定组件、设备或***,但是本公开涵盖执行图19的方法的任何合适步骤的任何合适的组件、设备或***的任何合适组合。例如,虽然图19中的步骤可以由中央处理单元(CPU)执行,但是那些步骤的任何组合可以由任何其他计算***(包括例如图形处理单元(GPU))执行,如稍后以下所讨论的。
在特定实施例中,在迭代中限制每个栅格点的移动防止由于移动过多而将伪像引入图像。在特定实施例中,可以添加一个或多个弹性或平滑约束,该约束将栅格点在两个图像之间或相同图像内的移动限制到某一阈值限制。可以考虑将弹性***的总能量最小化,其中弹性具有例如1)栅格点从其原始位置到其修改位置的弹性常量k1,以考虑该点移动多少,2)从栅格点的修改位置到该图像中其相邻栅格点的位置的弹性常量k2,以考虑图像中点的相对位移,以及3)从栅格点的修改位置到相邻图像中的相邻栅格点的弹性常量k3。在实施弹性模型的特定实施例中,在迭代处(即,在金字塔中的特定等级处)对栅格点的位移进行平滑然后等效于具有弹性结构的弹性关系问题,例如,如图25所示。这可以针对所有图像成对地来完成。
作为弹性约束的一个示例模型,令被合并的图像均具有M×N栅格点。令第一幅图像的点的优化位移为Pij,第二幅图像的点的优化位移为Qij。令pij和qij为具有最小能量的点的位置。令D1和D2分别为x和y方向上的点的原始位移矢量。然后,
类似地,对于第二图像,
类似地,对于第二图像,
sBij=D2-qij+qi+1j
***的总能量可以写成:
还可以以矩阵的形式将总能量写成为xTAx,其中x=[p0 0,p01,...,p0 N-1,p10,p1 1,...,p1 N-1,....,pM-1 0,pM-1 1,...,pM-1 N-1,q0 0,q0 1,...,q0 N-1,q1 0,q1 1,...,q1 N-1,....,qM-1 0,qM-1 1,...,qM-1N-1,1]T=[rT,1]T,并且A是(MN+1×MN+1)的对称正定矩阵。令其中AMN是MN×MN对称矩阵,则解为/>
在步骤1812,可以可选地在接缝估计和混合之前对图像执行颜色校正。在特定实施例中,确保来自所有相机的图像具有类似的校正,并且白平衡设置可以导致更好的接缝估计和混合。对于每个图像,可以使用标准图像融合技术将处于不同曝光设置(+1、0、-1曝光停止)的相同图像融合在一起,其中,每个曝光的权重可以通过对比度、饱和度和良好曝光度来确定。这可以产生具有类似曝光设置的图像,然后这些图像可以更易于混合。色彩校正的下一步是对图像的曝光、晕影去除和白平衡一起进行优化作为全景图。相机响应曲线用于对颜色空间进行归一化以进行颜色校正、晕影和曝光。令图像I0、I1、......IN-1被应用log2(a0)、log2(a1)、......log2(aN-1)的曝光偏移。为了求解a0、a1、……aN-1,需要在重叠区域将使用修改后的曝光的像素差最小化。为了最小化xTAx,使得其中x=[a0,a1,…,aN-1,1]T=[rT,1]T并且A是(N+1x N+1)对称正半定矩阵:
令其中AN是N×N对称矩阵,则解为r=AN -1b,被归一化使得/>可以以类似方式进行晕影和白平衡校正。
在步骤1814,可以执行接缝估计以获得无缝拼接,例如,没有任何重影。在特定实施例中,可以从图像之间的梯度幅度的绝对差来计算两个邻近图像之间的能量图。为了计算能量图,每个像素处的能量可以是相邻像素的加权平均值。具有最小能量的从上到下的路径被认为是两个图像之间的接缝线(例如,参见图26)。备选地,还可以使用接缝查找算法的加权组合。在每个像素处,基于点距图像中心的距离、梯度差等来指定权重,并且选择具有最小能量的接缝。每个图像在接缝估计过程中可以贡献两次。两个路径之间的区域被视为该图像的接缝掩模。应当注意的是,接缝估计不限于本文讨论的过程,并且其他接缝查找算法(例如,图切技术)也可以用于接缝估计。
在步骤1816,图像可以被混合以产生组合的或全景的图像,例如,如图27所示。可以使用多频带混合来执行混合。可以针对图像以及接缝掩模来构建图像金字塔,并且金字塔的每个等级都可以独立被混合。从所有混合的金字塔等级中恢复所得到的全景图。在特定实施例中,可以将混合宽度缩放到纬度值,使得可以在较高的纬度下实现平滑的混合。当全景图被投射到球体上时,这使混合宽度几乎保持恒定。令Φ为沿接缝线的点的纬度,d为当投射在球体上时所期望的混合宽度。然后,该点处的混合宽度应为
在适当的情况下,特定实施例可以重复图18的方法1800的一个或多个步骤。尽管本公开将图18的方法的特定步骤描述并示出为以特定顺序发生,但是本公开涵盖图18的方法的任何合适步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于基于栅格优化来拼接图像的包括图18的方法的特定步骤在内的示例方法,但是本公开涵盖用于基于栅格优化来拼接图像的包括任何合适步骤的任何合适的方法,在适当的情况下,该任何合适的方法可以包括图18的方法的全部步骤、一些步骤或不包括这些步骤。此外,尽管本公开描述并示出了执行图18的方法的特定步骤的特定组件、设备或***,但是本公开涵盖执行图18的方法的任何合适步骤的任何合适的组件、设备或***的任何合适组合。例如,尽管图18中的步骤可以由中央处理单元(CPU)执行,但是那些步骤的任何组合可以由任何其他计算***执行,包括例如稍后在以下讨论的图形处理单元(GPU)。
在特定实施例中,本文讨论的栅格优化技术可以应用于视频拼接,即,应用于视频中的图像帧的拼接。在视频拼接期间可以多次执行优化。优化的频率可以取决于单个优化的时间成本。在每个优化之后,像素移动可以被记录为变换图。可以将变换图应用于后续帧,直到下一个优化。在两个邻近的变换图之间,可以对记录的像素移动进行内插以使过渡平滑。
在特定实施例中,本文讨论的栅格优化技术可以应用于拼接顶部图像。具有估计的图像参数的顶部图像可以放置在(在混合步骤1816之后获得的)优化的全景图上。可以在优化的全景图和扭曲的顶部图像之间应用栅格优化,以拼接顶部图像。
在特定实施例中,本文讨论的栅格优化可以应用于3D拼接。为了良好的3D拼接,左和右全景图之间的竖直偏移应接近零。可以通过在金字塔搜索中记录y-轴移动来计算左和右图像中每个栅格点的竖直偏移。栅格优化应根据以下约束一起被应用于左全景图和右全景图两者的邻近对,该约束为:y-轴移动之间的差应受竖直偏移限制,并且x-轴移动之间的差不应超过常量EX、MAX(用户看到重影(即两个单独的图像而不是一个3D图像)之前可能发生的最大水平偏移)。接缝估计可以被一起应用于左和右全景图两者的邻近对,以具有更好的3D观看体验。
图20示出了基于栅格优化来拼接图像的另一示例方法2000。方法2000可以在访问或接收第一图像和第二图像的步骤2002开始。在一些实施例中,第一图像是可以从具有第一取向的第一相机212接收的图像,并且第二图像是可以从具有第二取向的第二相机212接收的图像。在一些实施例中,可以从同一相机接收第一图像和第二图像。在特定实施例中,第一图像的至少一部分与第二图像的至少一部分重叠,或者第一图像和第二图像之间具有重叠区域。作为示例,参考图6,第一和第二相机图像可以分别是I-6和I-7,其具有重叠区域6106-7。在一些实施例中,第一图像和第二图像中的一个或多个可以被重新缩放,这可以包括降低图像的分辨率或压缩图像的大小以加速整个过程并减少***负载,如本文其他地方所讨论的。
在步骤2004,将第一图像和第二图像中的每一个划分为第一栅格点集,例如,如图24B所示。在特定实施例中,每个栅格点对应于第一图像或第二图像的一部分。在步骤2006,确定第一和第二图像之间的重叠区域中的差异。在特定实施例中,为了确定差异,对图像执行边缘检测以计算图像边缘和/或对比度线(例如,参见图23),然后确定第一图像中的特征与第二幅图像中的对应特征之间的边缘线中的差异。可以使用如本文其他地方所讨论的sobel梯度来执行边缘检测。在步骤2008,一个或多个栅格点和第一图像或第二图像的对应部分相对于其他栅格点而移动,以使第一图像与第二图像之间的差异最小化。在特定实施例中,移动一个或多个栅格点包括将栅格点从一个位置移动到另一位置,以使第一和第二图像的重叠区域中的特征之间的边缘线的差异最小化,例如,如图24C至图24F所示。
在特定实施例中,可以针对每个栅格点定义局部窗口,并且可以将一个或多个栅格点中的每一个的移动限制在其各自的局部窗口内。栅格点中的每一个的局部窗口可以位于第一和第二图像之间的重叠区域中。在一些实施例中,第一和第二图像的栅格点可以同时移动或彼此独立地移动。可以至少部分地基于包括弹性或平滑约束集在内的力模型来移动栅格点,该弹性或平滑约束集可以被配置为抵抗栅格点的移动,如本文中其他地方所讨论的。例如,弹性约束集可以定义以下项中的一个或多个:第一栅格点相对于同一图像内的第二栅格点应移动多少(例如,像素);第一图像中的栅格点相对于第二图像中的栅格点应移动多少;以及第一图像中的栅格点相对于其原始位置应移动多少,例如,如参考图25所示和所讨论的。
在步骤2010,在移动第一和/或第二图像的栅格点和对应部分之后,再次确定两个图像之间的重叠区域中的差异。在步骤2012,确定重叠区域中的至少一个差异是否大于预定阈值。如果确定的结果是肯定的,则在步骤2013,第二/后续栅格点或新的栅格点集被添加到第一和第二图像中的每一个,例如,如图24B至图24C或图24C至图24D所示。在特定实施例中,随着后续/新的栅格点被添加到图像中,每个栅格点的局部窗口的尺寸减小。可以重复步骤2008-2012,直到重叠区域中的至少一个差异变得小于预定阈值。在特定实施例中,当第一和第二图像的边缘或边缘线彼此重叠时,该差异小于预定阈值。例如,如图1的元件102a和104a所示,两个重叠图像中的扶手之间的边缘可能未对准。如果步骤2012中的确定的结果为否定的,或者一旦第一和第二图像之间的重叠区域中的差异小于预定阈值,则在步骤2014中,将第一图像和第二图像进行组合以产生合并的图像(例如,全景图像),例如,如图27所示。例如,如图1的元素102b和104b所示,作为迭代栅格优化的结果,两个重叠图像中的扶手之间的边缘被充分对准。在特定实施例中,组合第一和第二相机图像可以包括识别两个图像之间的接缝线(如以上在图18的步骤1814中所讨论的),然后沿着接缝线混合图像以产生合并的图像(如以上在图18的步骤1816中所讨论的)。
在适当的情况下,特定实施例可以重复图20的方法2000的一个或多个步骤。尽管本公开将图20的方法的特定步骤描述并示出为以特定顺序发生,但是本公开涵盖图20的方法的任何合适步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于基于栅格优化来拼接图像的包括图20的方法的特定步骤在内的示例方法,但是本公开涵盖用于基于栅格优化来拼接图像的包括任何合适步骤的任何合适的方法,在适当的情况下,该任何合适的方法可以包括图20的方法的全部步骤、一些步骤或不包括这些步骤。此外,尽管本公开描述并示出了执行图20的方法的特定步骤的特定组件、设备或***,但是本公开涵盖执行图20的方法的任何合适步骤的任何合适的组件、设备或***的任何合适组合。例如,尽管图20中的步骤可以由中央处理单元(CPU)执行,但是那些步骤的任何组合可以由任何其他计算***执行,包括例如以下讨论的图形处理单元(GPU)。
为了减少单次优化的时间成本并提高优化频率,特定实施例可以使用图形处理单元(GPU)来加速栅格优化(步骤1810)、接缝估计(步骤1814)和混合(步骤1816)。作为示例而非限制,当在诸如Nvidia GTX 980之类的GPU上运行这些步骤时,性能比在Xeon 3.10GHz上运行的单线程CPU版本快6-18倍。以下将详细讨论基于GPU的栅格优化、接缝估计和混合步骤中的每一个。
当在GPU上进行栅格优化步骤1810时,对于每个栅格点,可以分配线程块用于计算。当针对栅格点A周围的局部窗口WA中的每个像素或每个像素堆优化特定栅格点(例如,栅格点A)时,可以分配单独的线程用于计算。使用归约算法,可以获得局部窗口WA中的最小值和最大值以进行归一化,还可以获取它们在WA中的和SA。可以使用最小SA来记录栅格点的移动。可以在两个步骤中对新的栅格点进行内插。如果金字塔等级未达到最小等级(如以上关于图18和图19所讨论的),则可以降低等级并且可以减小局部窗口WA以获得WA中的新的最小和最大值集,并且重复后续的步骤,直到金字塔等级达到最小等级。
由于sobel差和像素能量都是当场计算,并且每个像素的计算彼此独立,因此为每个像素分配一个线程可以利用GPU的并行能力。为了查找接缝,可以使用两种备选方法。在第一种方法中,可以在每一行上顺序地启动核函数。在计算完一行后,当前的核函数被停止,并且针对下一行启动另一核函数。在第二种方法中,针对每一行仅使用一个核,并且在核内部,一个线程被用于一列。在计算每一行后,可以同步块中的线程。在特定实施例中,由于接缝查找区域被限制为围绕接缝线的512个列,并且每个块的线程数量可以是2124,因此与第一种方法相比,优选第二种方法。
在特定实施例中,可以在第一行上使用归约方法以找到具有最小能量的接缝线的起始像素。接缝图可以被复制到CPU,并且可以由CPU完成接缝线查找,因为这仅需要一个线程。可以在所有接缝线之间填充接缝掩模。第一通道可以用于记录图像的索引,并且第二通道可以用于记录像素权重以进行混合。
在特定实施例中,可以针对包括接缝掩模的所有图像构建金字塔。针对每个像素,分配一个线程。在已经构建金字塔的一个等级后,索引大于当前等级的像素等级的线程被终止或结束。可以在每个等级中对图像进行混合。对于每个像素,基于当前等级中接缝掩模的第一通道值来选择图像。通过从下到上顺序地针对每个等级启动核,可以从金字塔恢复图像。
在特定实施例中,可以通过基于多种考虑而调整图像来实现将两个或更多个图像合并为单个图像。例如,可以通过调整(例如,通过扭曲或变形)图像中的一个或两个的至少一部分以使未对准最小化,来校正重叠图像的未对准部分。然而,调整图像以使其完全对齐可能需要进行大量调整,以至于图像的其他部分变得未对准并且显示给观看者为失真的。因此,用于合并两个或更多个图像的考虑可以包括由对图像的未对准部分进行对准而引起的图像失真的分析。如下所述,图像失真可以包括局部失真和全局失真两种,局部失真指的是在正被对准的部分附近的图像的失真;全局失真指的是不在图像的未对准部分附近的图像的部分的失真。因此,将两个或更多个图像合并成单个图像可以平衡对准和图像失真的竞争考虑,以便减少未对准,同时还保持图像质量。
图29示出了用于将两个或更多个图像合并成单个图像的示例方法2900。步骤2905涉及访问具有重叠区域的两个或更多个图像,即,每个图像都包含场景的相同部分。例如,图像可以由本文描述的相机捕获。
方法2900可以包括步骤2910,其中可以在步骤2905中访问的图像中识别特征。可以在两个图像的重叠区域中识别特征。在特定实施例中,当图像中的一个或多个邻近或附近像素在它们之间具有某些差异(例如,颜色梯度、亮度或其他模式的差异)时,可以识别特征。在特定实施例中,一个图像中的特征可以与另一图像中的对应特征相关联。例如,图1中的元件104a中所示的左侧扶手中的不连续性可以是图像特征,而右侧扶手中的不连续性可以是对应的图像特征。在特定实施例中,特征点可以用于识别图像中的特征的位置。例如,可以基于相关联的特征点的坐标来确定特征的坐标。
在特定实施例中,在步骤2910中可以识别除了特征之外的其他参数。例如,在特定实施例中,步骤2910可以包括访问或确定对在步骤2905中访问的图像进行拍摄的相机的相机属性。在特定实施例中,可以估计相机属性。例如,可以使用利用了诸如PTGUI、Hugin、Autopano Kolor或Panorama studio的软件的距离最小化技术。作为另一个示例,可以使用像Libpano这样的软件库来计算图像之间的直接透视/单应性变换,然后根据投射和透镜类型来调整这些图像。诸如OpenCV、VLFeat等的软件库可以利用透视估计算法,该透视估计算法可以用于执行或帮助执行此类调整。
在特定实施例中,识别特征可以包括接收特征的识别。在特定实施例中,识别特征可以包括计算或估计这样的特征。例如,DLT可以用于计算基本透视变换。本公开涵盖可以附加地或备选地使用其他方法。例如,可以使用RANSAC来过滤离群值,并且还可以使用其他算法,例如,最小二乘平方中值。本公开涵盖可以使用任何合适的方法或算法来识别图像集中的特征。
方法2900可以包括将图像的全部或部分划分成区域的步骤2915。这些区域在本文中称为“单元”。在特定实施例中,每个单元可以对应于能够被调整的区域。换句话说,可以将每个单元视为能够调整的变量,以实现两个或更多图像之间的最佳适配。因此,在特定实施例中,可以通过将图像划分成更多的单元来获得对图像调整的更多控制,从而引入更多可以被改变的变量。因为多个变量可以提供更多的控制,但是也可能需要更多的处理能力,所以在特定实施例中,单元的数量可以基于图像中识别的特征、所讨论的图像的类型(例如,2D与3D图像、实时与记录的图像)、图像之间的对准(或未对准)、和/或设备的处理能力。
在特定实施例中,单元可以由栅格或网格定义。图24G示出了示例网格和示例栅格。每个点2415可以被认为是栅格点,并且每个段2420可以被认为是网格的一部分。单元2425示出了由栅格点和/或网格定义的单元的示例。在特定实施例中,网格中的每个段或栅格中的栅格点可以是独立可变的。在特定实施例中,变量的数量可以由单元的大小、由定义单元的网格段的数量、和/或由定义单元的栅格点的数量来确定。在本公开讨论栅格和栅格点的情况下,本公开涵盖了在适当情况下也可以或备选地使用网格和段,反之亦然。
本公开涵盖可以通过任何合适数量和形状的栅格点来定义单元。例如,在图24G中,栅格点定义了方形的单元。换句话说,每个栅格点定义一个方形的角或顶点。然而,本公开涵盖了单元可以采用其他形状,例如,矩形或三角形。本公开涵盖图像中的单元的大小或形状可以变化。例如,可以使用在图像的不同部分中具有栅格点密度变化的栅格。例如,如果图像的中心是本文所述的拼接技术的焦点,则单元可以在图像的中心较小并且朝边缘逐渐变大。作为另一示例,可以识别图像中的对象,并且可以定义单元,使得栅格点绕过对象而不穿过它们。作为另一示例,单元的大小或形状可以基于所识别的特征或一个或多个像素属性的不连续性(例如,边缘)而变化。本公开涵盖了单元可以采用任何合适的大小或形状,并且可以由栅格点或网格段的任何合适的数量和形状来定义。
在特定实施例中,在步骤2905中访问的图像可以被投射到与用于拍摄图片的相机的参数相对应的坐标系。例如,相机可以使用“鱼眼透镜”来拍摄图片,使得视场在例如竖直和水平维度上不同。图23示出了将图像变换到其原始坐标系的示例,该变换在本文中也可以被称为“去扭曲”或“去鱼眼”。在特定实施例中,可以在对图像进行去鱼眼之后将图像(例如,通过定义栅格)划分为单元。在特定实施例中,可以在对图像进行去鱼眼之前将图像划分为单元,因此栅格也将被“去鱼眼”(即,将从初始被放置的坐标系变换到图像的坐标系)。
在特定实施例中,在步骤2905中访问的图像可以经历初始拼接或合并过程。例如,所访问的图像可以被对准或拼接。本公开涵盖用于初始对准和拼接的任何合适的方法,例如但不限于结合本文的图8至图18描述的对准和拼接技术。在特定实施例中,可以在访问步骤2905中的图像之后,例如,在对图像集进行去鱼眼之后,执行初始对准和拼接。在特定实施例中,在步骤2905中访问的图像可能已经经历了初始对准和拼接。因此,方法2900可以在初始对准和拼接之后发生,或者对准和拼接可以是方法2900的一部分。
在特定实施例中,方法2900可以包括在步骤2920中基于图像中的特征之间的未对准以及基于由调整图像引起的图像失真来调整一个或多个单元。图30示出了用于基于这些考虑来调整图像单元的示例方法。在特定实施例中,调整单元可以包括对定义该单元的一个或多个栅格点或网格进行调整,并且因此调整图像中与该栅格点或网格相关联的部分。
在特定实施例中,对合并在一起的一个或两个图像进行调整。在特定实施例中,当将两个以上图像合并在一起时,一个图像可以保持恒定(例如,作为参考图像),并且可以根据步骤2920来调整任何或所有剩余图像。在特定实施例中,当将两个以上的图像合并在一起时,可以针对每对图像顺序地执行步骤2920。换句话说,可以计算对图像对的调整,然后可以计算对下一图像对的调整。例如,参考图6,对图像I-8和I-7进行调整,然后对图像I-7和I-6进行调整,依此类推。在特定实施例中,当将两个以上的图像合并在一起时,可以针对每对图像并行地执行步骤2920。例如,参考图6,可以基于在图像之间的重叠区域610中识别出的特征,同时对所有图像进行调整。
在特定实施例中,方法2900可以包括多次执行步骤2920。例如,图30的示例方法可以迭代地重复100或1000次以便调整图像集。在特定实施例中,步骤2920可以被执行预定次数。在其他实施例中,可以执行步骤2920,直到达到特定对准量,或者直到某个其他参数(例如,以下描述的示例成本函数J)达到预定值。在特定实施例中,可以执行步骤2920,直到对准或某个其他参数(例如,以下描述的示例成本函数J)的改变量的改变小于在步骤2920的每个连续执行中的特定量。在特定实施例中,可以执行步骤2920,直到接收到指示对图像的调整不应再发生的用户输入。
方法2900可以包括步骤2925,其中调整后的图像被渲染。在特定实施例中,步骤2920可以例如通过输出与图像的特定部分相对应的网格或栅格点坐标来输出调整后的图像的坐标。例如,步骤2925可以例如使用与渲染网格所使用的相同内插技术来计算和输出网格系数。例如,如果使用双线性内插来计算系数,则可以使用双线性系数。可以使用其他内插技术(例如,最近邻、双三次或样条曲线)来计算和渲染网格。在特定实施例中,步骤2920可以输出要修改的单元的描述以及如何根据输入图像来修改这些单元。在特定实施例中,步骤2920可以输出调整后的图像。
本公开涵盖了步骤2925可以包括处理渲染的图像。例如,步骤2925可以包括将渲染的图像混合在一起,例如,以减少图像中接缝的出现。例如,可以通过使用图形分割算法或接缝切割和多频带混合算法来执行混合。本公开涵盖用于混合调整后的图像的任何合适的方法或技术。例如,可以使用enblend来估计图像之间的接缝。可以使用其他算法,例如,voronoi或图形切割接缝查找算法的变体。诸如多频带混合算法、线性算法或Laplacian算法等的算法可以用于混合图像。本公开还涵盖在步骤2925中可以执行任何其他合适的处理。
本公开涵盖“渲染”图像可以涉及处理图像并将它们存储在数据存储器中,诸如服务器或用户的客户端设备的数据存储器中。本公开涵盖步骤2925可以包括例如在包括本文所述的客户端设备在内的客户端设备的显示器上显示图像。本公开预期可以实时地执行方法2900,例如,以显示来自现场事件的图像。本公开还涵盖可以执行方法2900并且存储所得图像以供以后使用。
在适当的情况下,特定实施例可以重复图29的方法的一个或多个步骤。尽管本公开将图29的方法的特定步骤描述并示出为以特定顺序发生,但是本公开涵盖图29的方法的任何合适步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于调整图像的包括图29的方法的特定步骤在内的示例方法,但是本公开涵盖用于根据本文所述的考虑事项来调整图像的包括任何合适步骤的任何合适的方法,在适当的情况下,该任何合适的方法可以包括图29的方法的全部步骤或仅仅一些步骤。此外,尽管本公开描述并示出了执行图29的方法的特定步骤的特定组件、设备或***,但是本公开涵盖执行图29的方法的任何合适步骤的任何合适的组件、设备或***的任何合适组合。例如,尽管图29中的步骤可以由中央处理单元(CPU)执行,但是那些步骤的任何组合可以由包括例如图形处理单元(GPU)的任何其他计算***执行。作为另一示例,图29的步骤可以由服务器、客户端设备或其某种组合来执行。
图30示出了用于执行图29中的步骤2920的示例方法3000。在特定实施例中,方法3000评估对图像的潜在调整,通过移动与该部分相对应的特定栅格点来使图像翘曲。方法3000可以从步骤3005开始,该步骤计算被分析的图像中的特征点的未对准。例如,可以基于一个图像中的特征点与第二图像中应当对准的对应特征点之间的距离来计算未对准。这里,特征点之间的对准可以被称为“局部对准”。
局部对准可以定量地表示为图像中的特征点与重叠图像中的对应特征点之间的距离的平方和。该和可能超过未对准的所有特征点。换句话说,如果在图像(i)中存在j个特征点Fj(i),则在对应图像(i+1)中存在j个对应特征点Fj(i+1)。因此,这两个图像的总局部未对准Jlocal可以表示为图像(i)中的j个特征与重叠图像(i+1)中的j个对应特征之间的距离的平方和。
在单元由栅格定义的实施例中,局部对准项可以表示为:
其中Fj(i)表示第i个图像中第j个特征点的坐标。图32示出了用于在第j个特征点所位于的单元中使用双线性映射来确定特征点的坐标的示例方法。当计算Jlocal时,可以使用用于针对每个特征查找包含的单元的任何合适的方法,以及可以使用用于计算双线性映射的系数的任何方法。如果使用纹理内插的备选方法,则双线性映射可能被替换为对应的内插映射。
以上项Jlocal量化了两个重叠图像中特征的总未对准。如果考虑多个重叠图像,则Jlocal是开始合并在一起的重叠图像的每一对的Jlocal值的和。
方法3000可以包括步骤3010,其中确定不在特征点附近的图像单元的失真。这样的失真可以被称为“全局对准”。当使用栅格定义单元格时,全局对准项Jglobal等于栅格点的初始预调整位置与其最终的调整后位置之间的距离的平方。因此,与调整后的两个图像相比,项Jglobal惩罚初始被对准并被拼接的两个图像之间的未对准。在特定实施例中,在没有特征的区域中期望保持初始对准。在特定实施例中,在特征点及其对应的特征点非常接近对准的区域中,期望保持初始对准。
在特定实施例中,Jglobal是扭曲的顶点(栅格点)的坐标warp(i)(V(i))与顶点的原始坐标V(i)之间的距离的平方和。在特定实施例中,该和中的每个项可以由权重τ进行加权。因此,Jglobal可以表示为:
在特定实施例中,如果由被考虑的顶点定义的单元格不包含特征点,则权重τ可以为0。在特定实施例中,权重可以取决于该单元到包含特征的单元的距离,其中权重随着距离的增加而减小。在特定实施例中,权重τ可以通过以下方式确定:
方法3000可以包括步骤3015,该步骤试图通过确定由调整引起的几何失真来保持单元的几何形状。该确定也可以称为“平滑项”Jsmoothness。在特定实施例中,可以使用单元内或部分地由单元定义的形状的失真来计算参数Jsmoothness。例如,Jsmoothness可以表示由定义单元的三个顶点(栅格点)形成的三角形的形状的失真。例如,对于每个顶点V1 (i),以及它与邻近单元中的顶点形成的每个三角形Jsmoothness可以等于顶点的扭曲位置/>与使扭曲的三角形类似于原始三角形的点/>之间的距离的平方。在特定的实施例中:/>
其中:
其中加权项描述了特征所位于的是单元的显着性值。在特定实施例中,针对栅格中的所有顶点和所有三角形对Jsmoothness进行求和。
方法3000可以包括步骤3020,其中通过将对局部对准、全局对准和平滑度进行量化的项加在一起来计算总成本函数J。在特定实施例中,J可以是这些项的加权和。在特定实施例中,权重可以被归一化为赋予Jlocal的权重,使得:
J=Jlocal+αglobalJglobal+αsmoothJsmooth
在特定实施例中,αglobal=.01并且αsmooth=.001。在特定实施例中,可以基于单元大小和/或特征的分布来确定权重。
方法3000可以包括步骤3025,该步骤涉及调整单元以使总成本函数J最小化。在特定实施例中,总成本函数J关于网格顶点的扭曲位置是二次方的。在特定实施例中,可以找到对的直接解,尽管如果变量的数量相对较大,则直接解可能不可行。在这种情况下,可以使用梯度法来寻找解。例如,可以使用基于梯度下降或基于共轭梯度的算法及其变体。
图31示出了用于确定Jlocal、Jglobal、Jsmoothness和总成本函数J的一组详细的示例计算。然而,本公开涵盖了用于计算这些项的任何合适的方法。例如,可以使用不同的技术来计算平滑度项,以计算的位置。
在特定实施例中,显着性系数可以被扩展为包括单元的RGB颜色值的L2范数、边缘的丰度和/或跨越到邻近单元中的边缘的数量。
图32示出了一组详细的示例计算,用于基于图像(i)中包含特征j的单元的顶点X、Y、Z和W的坐标而使用双线性映射来确定特征的坐标。图32的输出确定图31中参考的系数α以计算Jlocal项。
图33示出了示例计算机***3300。在特定实施例中,一个或多个计算机***3300执行本文所描述或示出的一个或多个方法的一个或多个步骤。在特定实施例中,一个或多个计算机***3300提供本文所描述或示出的功能。在特定实施例中,在一个或多个计算机***3300上运行的软件执行本文所描述或示出的一个或多个方法的一个或多个步骤,或者提供本文所描述或示出的功能。特定实施例包括一个或多个计算机***3300的一个或多个部分。在本文中,在适当的情况下,对计算机***的引用可以包含计算设备,反之亦然。此外,在适当的情况下,对计算机***的引用可以包含一个或多个计算机***。
本公开涵盖任何合适数量的计算机***3300。本公开涵盖采用任何合适的物理形式的计算机***3300。作为示例而非限制,计算机***3300可以是:嵌入式计算机***、片上***(SOC)、单板式计算机***(SBC)(例如,模块上计算机(COM)或模块上***(SOM))、台式计算机***、膝上型或笔记本计算机***、交互式信息亭、大型机、计算机***网、移动电话、个人数字助理(PDA)、服务器、平板计算机***或这些项中的两个或更多个的组合。在适当的情况下,计算机***3300可以包括一个或多个计算机***3300;是单一的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,该云可以包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机***3300可以在没有实质的空间或时间限制的情况下执行本文所描述或示出的一个或多个方法的一个或多个步骤。作为示例而非限制,一个或多个计算机***3300可以实时地或以批处理模式来执行本文所描述或示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机***3300可以在不同时间或在不同位置处执行本文所描述或示出的一个或多个方法的一个或多个步骤。
在特定实施例中,计算机***3300包括处理器3302、存储器3304、存储装置3306、输入/输出(I/O)接口3308、通信接口3310和总线3312。尽管本公开描述并示出了处于特定布置的具有特定数量的特定组件的特定计算机***,但是本公开涵盖处于任何合适布置的具有任何合适数量的任何合适组件的任何合适的计算机***。
在特定实施例中,处理器3302包括用于执行指令(例如,构成计算机程序的指令)的硬件。作为示例而非限制,为了执行指令,处理器3302可以从内部寄存器、内部高速缓存、存储器3304或存储装置3306中检索(或获取)指令;解码并执行指令;然后将一个或多个结果写入内部寄存器、内部高速缓存、存储器3304或存储装置3306。在特定实施例中,处理器3302可以包括用于数据、指令或地址的一个或多个内部高速缓存。在适当的情况下,本公开涵盖包括任何合适数量的任何合适的内部高速缓存的处理器3302。作为示例而非限制,处理器3302可以包括一个或多个指令高速缓存、一个或多个数据高速缓存、以及一个或多个转换查找缓冲器(TLB)。指令高速缓存中的指令可以是存储器3304或存储装置3306中的指令的副本,并且指令高速缓存可以加速处理器3302对这些指令的检索。数据高速缓存中的数据可以是:存储器3304或存储装置3306中的用于指令在处理器3302处执行以进行操作的数据的副本;在处理器3302处执行的先前指令的结果,该结果被在处理器3302处执行的后续指令访问或用于写入存储器3304或存储装置3306;或其他合适的数据。数据高速缓存可以加速处理器3302的读或写操作。TLB可以加速处理器3302的虚拟地址转换。在特定实施例中,处理器3302可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开涵盖包括任何合适数量的任何合适的内部寄存器的处理器3302。在适当的情况下,处理器3302可以包括一个或多个算术逻辑单元(ALU);可以是多核处理器;或可以包括一个或多个处理器3302。尽管本公开描述并示出了特定处理器,但本公开涵盖任何合适的处理器。
在特定实施例中,存储器3304包括主存储器,用于存储供处理器3302执行的指令或供处理器3302操作的数据。作为示例而非限制,计算机***3300可以将指令从存储装置3306或另一个源(例如,另一计算机***3300)加载到存储器3304。然后,处理器3302可以将指令从存储器3304加载到内部寄存器或内部高速缓存。为了执行指令,处理器3302可以从内部寄存器或内部高速缓存检索指令并对指令进行解码。在执行指令期间或之后,处理器3302可以将一个或多个结果(可以是中间结果或最终结果)写入内部寄存器或内部高速缓存。然后,处理器3302可以将那些结果中的一个或多个写入存储器3304。在特定实施例中,处理器3302仅执行一个或多个内部寄存器或内部高速缓存中或存储器3304(与存储装置3306或其他地方相对)中的指令,并且仅对一个或多个内部寄存器或内部高速缓存中或存储器3304(与存储装置3306或其他地方相对)中的数据进行操作。一个或多个存储器总线(每个可以包括地址总线和数据总线)可以将处理器3302耦接到存储器3304。总线3312可以包括一个或多个存储器总线,如下所述。在特定实施例中,一个或多个存储器管理单元(MMU)驻留在处理器3302与存储器3304之间,并且便于访问处理器3302所请求的存储器3304。在特定实施例中,存储器3304包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器,并且在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口或多端口的RAM。本公开涵盖任何合适的RAM。在适当的情况下,存储器3304可以包括一个或多个存储器3304。尽管本公开描述并示出了特定存储器,但是本公开涵盖任何合适的存储器。
在特定实施例中,存储装置3306包括用于数据或指令的大容量存储装置。作为示例而非限制,存储装置3306可以包括:硬盘驱动器(HDD)、软盘驱动器、闪速存储器、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或这些项中的两个或更多个的组合。在适当的情况下,存储装置3306可以包括可移除或不可移除(或固定)的介质。在适当的情况下,存储装置3306可以在计算机***3300的内部或外部。在特定实施例中,存储装置3306是非易失性的固态存储器。在特定实施例中,存储装置3306包括只读存储器(ROM)。在适当的情况下,该ROM可以是:掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可变ROM(EAROM)或闪速存储器或这些项中的两个或更多个的组合。本公开涵盖采用任何合适的物理形式的大容量存储装置3306。在适当的情况下,存储装置3306可以包括便于处理器3302与存储装置3306之间的通信的一个或多个存储控制单元。在适当的情况下,存储装置3306可以包括一个或多个存储装置3306。尽管本公开描述并示出了特定的存储装置,但是本公开涵盖任何合适的存储装置。
在特定实施例中,I/O接口3308包括提供用于计算机***3300与一个或多个I/O设备之间的通信的一个或多个接口的硬件、软件或两者。在适当的情况下,计算机***3300可以包括这些I/O设备中的一个或多个。这些I/O设备中的一个或多个可以实现人与计算机***3300之间的通信。作为示例而非限制,I/O设备可以包括:键盘、键区、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态相机、触控笔、平板计算机、触摸屏、轨迹球、相机、另一合适的I/O设备或这些项中的两个或更多个的组合。I/O设备可以包括一个或多个传感器。本公开涵盖任何合适的I/O设备和用于它们的任何合适的I/O接口3308。在适当的情况下,I/O接口3308可以包括使得处理器3302能够驱动这些I/O设备中的一个或多个的一个或多个设备或软件驱动器。在适当的情况下,I/O接口3308可以包括一个或多个I/O接口3308。尽管本公开描述并示出了特定的I/O接口,但是本公开涵盖任何合适的I/O接口。
在特定实施例中,通信接口3310包括提供用于计算机***3300与一个或多个其他计算机***3300或一个或多个网络之间的通信(例如,基于分组的通信)的一个或多个接口的硬件、软件或两者。作为示例而非限制,通信接口3310可以包括:用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(例如,WI-FI网络)进行通信的无线NIC(WNIC)或无线适配器。本公开涵盖任何合适的网络和用于该网络的任何合适的通信接口3310。作为示例而非限制,计算机***3300可以与以下网络进行通信:ad hoc网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、体域网(BAN)或互联网的一个或多个部分或这些网络中的两个或更多个的组合。这些网络中的一个或多个网络的一个或多个部分可以是有线的或无线的。作为示例,计算机***3300可以与以下网络进行通信:无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信***(GSM)网络)或其他合适的无线网络或这些网络中的两个或更多个的组合。在适当的情况下,计算机***3300可以包括用于这些网络中的任何网络的任何合适的通信接口3310。在适当的情况下,通信接口3310可以包括一个或多个通信接口3310。尽管本公开描述并示出了特定的通信接口,但是本公开涵盖任何合适的通信接口。
在特定实施例中,总线3312包括将计算机***3300的组件彼此耦接的硬件、软件或两者。作为示例而非限制,总线3312可以包括:加速图形端口(AGP)或其他图形总线、增强型行业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、行业标准架构(ISA)总线、无限带宽(INFINIBAND)互连、低引脚数(LPC)总线、存储器总线、微通道架构(MCA)总线、***组件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线或其他合适的总线或这些项中的两个或更多个的组合。在适当的情况下,总线3312可以包括一条或多条总线3312。尽管本公开描述并示出了特定的总线,但是本公开涵盖任何合适的总线或互连。
在本文中,在适当的情况下,计算机可读的非暂时性存储介质或媒介可以包括一个或多个基于半导体的或其他的集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、SECURE DIGITAL卡或驱动器、任何其他合适的计算机可读非暂时性存储介质或这些项中的两个或更多个的任何合适的组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者是易失性和非易失性的组合。
在本文中,除非另有明确说明或通过上下文另有说明,否则“或”是包含性的而非排他性的。因此,除非另有明确说明或通过上下文另有说明,否则在本文中,“A或B”意味着“A、B或两者”。此外,除非另有明确说明或通过上下文另有说明,否则“和”意味着共同地和个别地。因此,除非另有明确说明或通过上下文另有说明,否则本文中“A和B”意味着“A和B,共同地或个别地”。
本公开的范围涵盖本领域普通技术人员将理解的对本文的示例实施例的所有改变、替换、变型、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文中的各个实施例描述或示出为包括特定的组件、元素、功能、操作或步骤,但是这些实施例中的任何实施例可以包括本领域普通技术人员将理解的、在本文的任何其他地方描述和示出的任何组件、元素、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中提及装置或***或装置或***的组件适用于、被布置为、能够、被配置为、使得能够、可操作用于或操作用于执行特定功能涵盖该装置、***、组件,无论其或特定功能是否被激活、接通或解锁,只要该装置、***或组件被适用于、被布置为、能够、被配置为、使得能够、可操作用于或操作用于如此即可。
Claims (12)
1.一种方法,包括:
访问第一图像和第二图像,其中,所述第一图像的至少一部分与所述第二图像的至少一部分重叠;
将所述第一图像和所述第二图像划分为由第一栅格点集定义的单元,其中,所述第一栅格点集中的每个栅格点对应于所述第一图像或所述第二图像的一部分,并且是所述单元的角或顶点;
针对所述栅格点中的每一个栅格点定义局部窗口,所述局部窗口在所述第一图像和所述第二图像之间的重叠区域中;
使用sobel梯度检测在所述第一图像和所述第二图像之间的重叠区域的图像边缘线;
确定所述第一图像与所述第二图像之间的重叠区域中的差异,所述差异包括检测到的图像边缘线的差异;
基于所确定的差异,相对于所述第一栅格点集中的一个或多个其他栅格点来在所述栅格点中的每一个栅格点的局部窗口内移动所述第一栅格点集中的一个或多个栅格点以及所述第一图像或所述第二图像的对应部分,以使所述第一图像和所述第二图像之间的重叠区域的图像边缘线的差异最小化;
在移动所述第一栅格点集中的栅格点以及所述第一图像或所述第二图像的对应部分之后,确定所述第一图像与所述第二图像之间的重叠区域中的差异;
确定所述第一图像与所述第二图像之间的重叠区域中的至少一个差异是否大于预定阈值;
响应于确定所述重叠区域中的所述至少一个差异大于预定阈值,将第二栅格点集添加到所述第一图像和所述第二图像中的每一个;以及
基于所述重叠区域中的所述至少一个差异,相对于所述第一栅格点集或第二栅格点集中的一个或多个其他栅格点来在所述栅格点中的每一个栅格点的局部窗口内移动所述第一栅格点集或第二栅格点集中的一个或多个栅格点以及所述第一图像或所述第二图像的对应部分,
其中每个栅格点与局部窗口相关联,并且其中所述第一栅格点集中的每个栅格点的局部窗口的尺寸大于所述第二栅格点集中的每个栅格点的局部窗口的尺寸。
2.根据权利要求1所述的方法,还包括:
响应于确定所述重叠区域中的所述至少一个差异小于所述预定阈值,将所述第一图像和所述第二图像组合成合并的图像。
3.根据权利要求1所述的方法,还包括:
在所述第一图像和所述第二图像中的每一个中检测边缘线,
其中,确定所述第一图像与所述第二图像之间的重叠区域中的差异包括:确定所述第一图像中的特征与所述第二图像中的对应特征之间的边缘线的差异。
4.根据权利要求1所述的方法,其中,与所述第一图像中的特征相对应的第一栅格点相对于所述第二图像中的与相同特征相对应的第二栅格点移动。
5.根据权利要求1所述的方法,其中,与所述第一图像中的第一特征相对应的第一栅格点相对于所述第一图像中的与第二特征相对应的第二栅格点移动。
6.根据权利要求1所述的方法,其中,至少部分地基于用于抵抗所述栅格点的移动的力模型来移动所述栅格点。
7.根据权利要求6所述的方法,其中,所述力模型包括弹性约束集。
8.根据权利要求2所述的方法,其中,组合所述第一图像和所述第二图像包括:
识别所述第一图像与所述第二图像之间的接缝线;以及
沿所述接缝线混合所述第一图像和所述第二图像以产生所述合并的图像。
9.根据权利要求1所述的方法,还包括:
在将所述第一图像和所述第二图像划分为与所述第一栅格点集相关联的部分之前,重新缩放所述第一图像或所述第二图像中的一个或多个。
10.一种存储有程序的计算机可读存储介质,所述程序在由至少一个处理器执行时执行根据权利要求1-9中任一项所述的方法。
11.一种装置,包括:
实施指令的一个或多个非暂时性计算机可读存储介质;以及
一个或多个处理器,耦接到所述存储介质,并且被配置为执行所述指令以:
访问第一图像和第二图像,其中,所述第一图像的至少一部分与所述第二图像的至少一部分重叠;
将所述第一图像和所述第二图像划分为由第一栅格点集定义的单元,其中,所述第一栅格点集中的每个栅格点对应于所述第一图像或所述第二图像的一部分;
针对所述栅格点中的每一个栅格点定义局部窗口,所述局部窗口在所述第一图像和所述第二图像之间的重叠区域中;
使用sobel梯度检测在所述第一图像和所述第二图像之间的重叠区域的图像边缘线;
确定所述第一图像与所述第二图像之间的重叠区域中的差异,所述差异包括检测到的图像边缘线的差异;
基于所确定的差异,相对于所述第一栅格点集中的一个或多个其他栅格点来在所述栅格点中的每一个栅格点的局部窗口内移动所述第一栅格点集中的一个或多个栅格点以及所述第一图像或所述第二图像的对应部分,以使所述第一图像和所述第二图像之间的重叠区域的图像边缘线的差异最小化;在移动所述第一栅格点集中的栅格点以及所述第一图像或所述第二图像的对应部分之后,确定所述第一图像与所述第二图像之间的重叠区域中的差异;
确定所述第一图像与所述第二图像之间的重叠区域中的至少一个差异是否大于预定阈值;
响应于确定所述重叠区域中的所述至少一个差异大于预定阈值,将第二栅格点集添加到所述第一图像和所述第二图像中的每一个;以及
基于所述重叠区域中的所述至少一个差异,相对于所述第一栅格点集或第二栅格点集中的一个或多个其他栅格点来在所述栅格点中的每一个栅格点的局部窗口内移动所述第一栅格点集或第二栅格点集中的一个或多个栅格点以及所述第一图像或所述第二图像的对应部分,
其中每个栅格点与局部窗口相关联,并且其中所述第一栅格点集中的每个栅格点的局部窗口的尺寸大于所述第二栅格点集中的每个栅格点的局部窗口的尺寸。
12.根据权利要求11所述的装置,其中,所述一个或多个处理器还被配置为:
响应于确定所述重叠区域中的所述至少一个差异小于所述预定阈值,将所述第一图像和所述第二图像组合成合并的图像。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762544463P | 2017-08-11 | 2017-08-11 | |
US62/544,463 | 2017-08-11 | ||
US15/994,994 US11049218B2 (en) | 2017-08-11 | 2018-05-31 | Seamless image stitching |
US15/994,994 | 2018-05-31 | ||
PCT/KR2018/009096 WO2019031873A1 (en) | 2017-08-11 | 2018-08-09 | CONTINUOUS IMAGE ASSEMBLY |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111052176A CN111052176A (zh) | 2020-04-21 |
CN111052176B true CN111052176B (zh) | 2024-02-13 |
Family
ID=65271721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880051657.7A Active CN111052176B (zh) | 2017-08-11 | 2018-08-09 | 无缝图像拼接 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11049218B2 (zh) |
EP (1) | EP3635678A4 (zh) |
KR (1) | KR102500759B1 (zh) |
CN (1) | CN111052176B (zh) |
WO (1) | WO2019031873A1 (zh) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018147329A1 (ja) * | 2017-02-10 | 2018-08-16 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 自由視点映像生成方法及び自由視点映像生成システム |
WO2019080043A1 (en) * | 2017-10-26 | 2019-05-02 | Harman International Industries, Incorporated | METHOD AND SYSTEM FOR MIXING QUICK IMAGES FOR OVERLAPPING REGIONS IN A PANORAMIC VIEW |
WO2019118319A1 (en) | 2017-12-15 | 2019-06-20 | Gopro, Inc. | High dynamic range processing on spherical images |
CN108377345B (zh) * | 2018-04-11 | 2020-04-03 | 浙江大华技术股份有限公司 | 一种曝光参数值确定方法、装置、多目摄像机及存储介质 |
CA3107013A1 (en) * | 2018-07-19 | 2020-01-23 | Acusensus Ip Pty Ltd | Infringement detection method, device and system |
JP6956051B2 (ja) * | 2018-09-03 | 2021-10-27 | 株式会社東芝 | 画像処理装置、運転支援システム、画像処理方法及びプログラム |
US10825131B2 (en) * | 2018-11-13 | 2020-11-03 | Intel Corporation | Circular fisheye camera array rectification |
US10846831B2 (en) * | 2018-12-19 | 2020-11-24 | GM Global Technology Operations LLC | Computing system for rectifying ultra-wide fisheye lens images |
CN111353946B (zh) * | 2018-12-21 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 图像修复方法、装置、设备及存储介质 |
US11076098B2 (en) * | 2019-02-12 | 2021-07-27 | VIAVI Solutions he. | Panoramic image capture for multispectral sensor |
US10853914B2 (en) * | 2019-02-22 | 2020-12-01 | Verizon Patent And Licensing Inc. | Methods and systems for automatic image stitching failure recovery |
US20200294194A1 (en) * | 2019-03-11 | 2020-09-17 | Nvidia Corporation | View synthesis using neural networks |
EP3726458B1 (en) * | 2019-04-15 | 2022-03-16 | Tata Consultancy Services Limited | System and a method for stitching images using non-linear optimization and multi-constraint cost function minimization |
CN114175091A (zh) * | 2019-06-11 | 2022-03-11 | 伊美景象公司 | 利用基于上下文分割层的自适应去扭曲的最优身体或面部保护的方法 |
US11158056B2 (en) * | 2019-06-26 | 2021-10-26 | Intel Corporation | Surround camera system with seamless stitching for arbitrary viewpoint selection |
CN110443774A (zh) * | 2019-07-05 | 2019-11-12 | 中国地质大学(武汉) | 一种城区正射影像镶嵌处理方法及*** |
US20210297647A1 (en) * | 2020-01-09 | 2021-09-23 | Jerry Nims | 2d image capture system, transmission & display of 3d digital image |
US20210321077A1 (en) * | 2020-01-09 | 2021-10-14 | JUC Holdings Limited | 2d digital image capture system and simulating 3d digital image sequence |
US20220051427A1 (en) * | 2020-01-09 | 2022-02-17 | JUC Holdings Limited | Subsurface imaging and display of 3d digital image and 3d image sequence |
US20220078392A1 (en) * | 2020-01-09 | 2022-03-10 | JUC Holdings Limited | 2d digital image capture system, frame speed, and simulating 3d digital image sequence |
US11917119B2 (en) * | 2020-01-09 | 2024-02-27 | Jerry Nims | 2D image capture system and display of 3D digital image |
CN113225613B (zh) * | 2020-01-21 | 2022-07-08 | 北京达佳互联信息技术有限公司 | 图像识别、视频直播方法和装置 |
US11948316B2 (en) | 2020-03-11 | 2024-04-02 | Samsung Electronics Co., Ltd. | Camera module, imaging device, and image processing method using fixed geometric characteristics |
US11146727B2 (en) * | 2020-03-16 | 2021-10-12 | Ke.Com (Beijing) Technology Co., Ltd. | Method and device for generating a panoramic image |
CN111524154B (zh) * | 2020-04-21 | 2021-12-28 | 南京航空航天大学 | 一种基于影像的隧道管片自动化分割方法 |
CN111507904B (zh) * | 2020-04-22 | 2023-06-02 | 华中科技大学 | 一种微观打印图案的图像拼接方法及装置 |
CN111640065B (zh) * | 2020-05-29 | 2023-06-23 | 深圳拙河科技有限公司 | 基于相机阵列的图像拼接方法、成像装置 |
EP3923241B1 (en) * | 2020-06-09 | 2022-04-06 | Axis AB | Aligning digital images |
KR102392631B1 (ko) * | 2020-06-10 | 2022-04-29 | 중앙대학교 산학협력단 | 딥매칭을 이용한 콘크리트 구조물 또는 교량의 파노라마 이미지 생성 및 업데이트 시스템, 이의 파노라마 이미지 생성 및 업데이트 방법 및 파노라마 이미지 생성 및 업데이트 프로그램 |
CN111784576B (zh) * | 2020-06-11 | 2024-05-28 | 上海研视信息科技有限公司 | 一种基于改进orb特征算法的图像拼接方法 |
CN111714883B (zh) * | 2020-06-19 | 2024-06-04 | 网易(杭州)网络有限公司 | 贴图的处理方法、装置及电子设备 |
NO346392B1 (en) * | 2020-08-05 | 2022-07-04 | Muybridge As | Multiple camera sensor system and method of providing a target image by a virtual camera |
US11334961B2 (en) * | 2020-08-06 | 2022-05-17 | Apple Inc. | Multi-scale warping circuit for image fusion architecture |
EP3971821A1 (en) * | 2020-09-22 | 2022-03-23 | Toyota Jidosha Kabushiki Kaisha | Image completion using self-attention and uncertainty |
CN112233154A (zh) * | 2020-11-02 | 2021-01-15 | 影石创新科技股份有限公司 | 拼接图像的色差消除方法、装置、设备和可读存储介质 |
CN116762100A (zh) * | 2020-11-12 | 2023-09-15 | 创峰科技 | 具有选择性局部细化分辨率的图像对准 |
CN112381719B (zh) * | 2020-11-24 | 2024-05-28 | 维沃移动通信有限公司 | 图像处理方法及装置 |
KR102452581B1 (ko) * | 2020-12-08 | 2022-10-07 | 광운대학교 산학협력단 | 비디오 스티칭 방법 및 장치 |
KR102405428B1 (ko) * | 2020-12-29 | 2022-06-03 | 서울과학기술대학교 산학협력단 | 이미지 스티칭 방법 및 장치 |
US11948315B2 (en) * | 2020-12-31 | 2024-04-02 | Nvidia Corporation | Image composition in multiview automotive and robotics systems |
KR102630106B1 (ko) * | 2021-04-01 | 2024-01-25 | 경희대학교 산학협력단 | 우선순위 사물 기반의 영상 정합 장치 및 그 방법 |
CN113225491B (zh) * | 2021-04-01 | 2023-01-31 | 桂林电子科技大学 | 一种嵌入式多镜头全景视频成像方法及装置 |
CN112967360B (zh) * | 2021-04-23 | 2024-05-03 | 自然资源部国土卫星遥感应用中心 | 顾及多维度的合成孔径雷达影像Voronoi多边形镶嵌方法 |
CN112995523B (zh) * | 2021-04-30 | 2021-07-30 | 武汉特斯雷信息技术有限公司 | 一种在线自助业务环境检测方法及*** |
CN113329149B (zh) * | 2021-05-10 | 2022-07-05 | 武汉大学 | 一种双相机钻孔孔壁全景成像探头、***及其全景图像生成方法 |
KR102529835B1 (ko) * | 2021-05-14 | 2023-05-08 | 주식회사 넥스트칩 | 차량의 운행 정보와 관련된 그래픽 객체 출력 방법 및 장치 |
US20220385807A1 (en) * | 2021-05-28 | 2022-12-01 | Jerry Nims | 2d digital image capture system and simulating 3d digital image and sequence |
CN113253968B (zh) * | 2021-06-01 | 2021-11-02 | 卡莱特云科技股份有限公司 | 一种异形led显示屏的异常切片画面判断方法及装置 |
US11989854B2 (en) | 2021-06-23 | 2024-05-21 | Apple Inc. | Point-of-view image warp systems and methods |
US20230138779A1 (en) * | 2021-11-03 | 2023-05-04 | Apple Inc. | Linear transform of undistorted image for fusion |
CN114071104B (zh) * | 2022-01-18 | 2022-04-19 | 山东捷瑞数字科技股份有限公司 | 基于着色器实现多投影机投影渐变融合的方法 |
WO2023219451A1 (en) * | 2022-05-13 | 2023-11-16 | Samsung Electronics Co., Ltd. | Method and apparatus for recognition of a motion in a video |
WO2024108298A1 (en) * | 2022-11-22 | 2024-05-30 | Airy3D Inc. | Edge angle and baseline angle correction in depth imaging |
CN117097017B (zh) * | 2023-08-09 | 2024-04-05 | 盐城工学院 | 一种具备远程监控功能的新能源双向充电站 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101960486A (zh) * | 2008-02-28 | 2011-01-26 | 因弗欧股份有限公司 | 图像处理方法、装置和单元 |
CN102947858A (zh) * | 2010-04-08 | 2013-02-27 | 帕斯科数码有限责任公司(商业用为奥姆尼克斯有限责任公司) | 包括重叠边缘对比的图像质量评价 |
CN105389787A (zh) * | 2015-09-30 | 2016-03-09 | 华为技术有限公司 | 一种全景图像拼接方法及装置 |
US9589350B1 (en) * | 2013-05-30 | 2017-03-07 | 360 Lab Llc. | Utilizing three overlapping images for exposure correction during panoramic image stitching |
CN106797460A (zh) * | 2014-09-22 | 2017-05-31 | 三星电子株式会社 | 三维视频的重建 |
CN106934764A (zh) * | 2016-11-03 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种图像数据处理方法、装置 |
Family Cites Families (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8430980D0 (en) | 1984-12-07 | 1985-01-16 | Robinson M | Generation of apparently three-dimensional images |
JPH07182535A (ja) | 1993-12-24 | 1995-07-21 | Olympus Optical Co Ltd | 三次元ボリュームデータ表示装置 |
US5850352A (en) | 1995-03-31 | 1998-12-15 | The Regents Of The University Of California | Immersive video, including video hypermosaicing to generate from multiple video views of a scene a three-dimensional video mosaic from which diverse virtual video scene images are synthesized, including panoramic, scene interactive and stereoscopic images |
US20020075258A1 (en) | 1999-05-12 | 2002-06-20 | Imove Inc. | Camera system with high resolution image inside a wide angle view |
US7015954B1 (en) | 1999-08-09 | 2006-03-21 | Fuji Xerox Co., Ltd. | Automatic video system using multiple cameras |
US20020028003A1 (en) | 2000-03-27 | 2002-03-07 | Krebs David E. | Methods and systems for distinguishing individuals utilizing anatomy and gait parameters |
US7085409B2 (en) | 2000-10-18 | 2006-08-01 | Sarnoff Corporation | Method and apparatus for synthesizing new video and/or still imagery from a collection of real video and/or still imagery |
US6975742B2 (en) | 2000-11-29 | 2005-12-13 | Xerox Corporation | Rate-distortion optimization system and method for image compression |
JP2002277220A (ja) | 2001-03-19 | 2002-09-25 | Hitachi Ltd | 膜厚計測のための計測点決定方法およびそれを用いた薄膜デバイスの製造方法並びに薄膜デバイスの製造装置 |
US20050226172A1 (en) | 2001-12-15 | 2005-10-13 | Richardson John W | Video conference call set up |
US20030179308A1 (en) | 2002-03-19 | 2003-09-25 | Lucia Zamorano | Augmented tracking using video, computed data and/or sensing technologies |
US6856344B2 (en) | 2002-04-02 | 2005-02-15 | Robert H. Franz | Vehicle undercarriage inspection and imaging method and system |
US7224382B2 (en) | 2002-04-12 | 2007-05-29 | Image Masters, Inc. | Immersive imaging system |
CN100342733C (zh) | 2002-06-28 | 2007-10-10 | 夏普株式会社 | 图像数据分发***及其图像数据发送装置及图像数据接收装置 |
KR100475060B1 (ko) | 2002-08-07 | 2005-03-10 | 한국전자통신연구원 | 다시점 3차원 동영상에 대한 사용자 요구가 반영된 다중화장치 및 방법 |
EP1586204A1 (en) | 2003-01-24 | 2005-10-19 | Micoy Corporation | Stereoscopic panoramic image capture device |
US7388693B2 (en) | 2003-02-28 | 2008-06-17 | Lexmark International, Inc. | System and methods for multiple imaging element scanning and copying |
US7619626B2 (en) | 2003-03-01 | 2009-11-17 | The Boeing Company | Mapping images from one or more sources into an image for display |
US7119816B2 (en) | 2003-03-31 | 2006-10-10 | Microsoft Corp. | System and method for whiteboard scanning to obtain a high resolution image |
US7463280B2 (en) | 2003-06-03 | 2008-12-09 | Steuart Iii Leonard P | Digital 3D/360 degree camera system |
US7343048B2 (en) * | 2003-09-18 | 2008-03-11 | Arcsoft, Inc. | Edge based alignment algorithm |
US7269299B2 (en) * | 2003-10-10 | 2007-09-11 | Orbimage Si Opco, Inc. | Image warp |
US7606441B2 (en) * | 2003-11-27 | 2009-10-20 | Seiko Epson Corporation | Image processing device and a method for the same |
JP2005157847A (ja) * | 2003-11-27 | 2005-06-16 | Seiko Epson Corp | 画像処理装置および処理方法 |
US7434153B2 (en) | 2004-01-21 | 2008-10-07 | Fuji Xerox Co., Ltd. | Systems and methods for authoring a media presentation |
US7889232B2 (en) | 2004-06-22 | 2011-02-15 | Stratech Systems Limited | Method and system for surveillance of vessels |
US7791638B2 (en) | 2004-09-29 | 2010-09-07 | Immersive Media Co. | Rotating scan camera |
SE0402651D0 (sv) | 2004-11-02 | 2004-11-02 | Coding Tech Ab | Advanced methods for interpolation and parameter signalling |
US7982777B2 (en) | 2005-04-07 | 2011-07-19 | Axis Engineering Technologies, Inc. | Stereoscopic wide field of view imaging system |
GB2425363A (en) | 2005-04-18 | 2006-10-25 | Sharp Kk | Panoramic adapter with mirrors formed by rotating conic section |
US7460730B2 (en) | 2005-08-04 | 2008-12-02 | Microsoft Corporation | Video registration and image sequence stitching |
JP5108768B2 (ja) | 2005-08-30 | 2012-12-26 | エルジー エレクトロニクス インコーポレイティド | オーディオ信号をエンコーディング及びデコーディングするための装置とその方法 |
US20070103558A1 (en) | 2005-11-04 | 2007-05-10 | Microsoft Corporation | Multi-view video delivery |
KR100724134B1 (ko) | 2006-01-09 | 2007-06-04 | 삼성전자주식회사 | 이미지 매칭 속도와 블렌딩 방법을 개선한 파노라마 영상제공 방법 및 장치 |
EP1865455A1 (en) | 2006-06-07 | 2007-12-12 | Seac02 S.r.l. | A virtual advertising system |
US8369419B2 (en) | 2006-06-16 | 2013-02-05 | Via Technologies, Inc. | Systems and methods of video compression deblocking |
KR100790890B1 (ko) | 2006-09-27 | 2008-01-02 | 삼성전자주식회사 | 파노라마 영상 생성장치 및 방법 |
IL181533A (en) | 2007-02-25 | 2010-12-30 | Sosmart Rescue Ltd | Inflatable life-saving swimming garment |
US8106936B2 (en) | 2007-03-16 | 2012-01-31 | Kollmorgen Corporation | Panoramic video imaging and display system |
US8041147B2 (en) | 2007-07-18 | 2011-10-18 | 3DHISTECH Kft; | Method for realistic stitching image blocks of an electronically recorded multipart image |
US8068693B2 (en) | 2007-07-18 | 2011-11-29 | Samsung Electronics Co., Ltd. | Method for constructing a composite image |
EP2088787B1 (en) | 2007-08-07 | 2015-01-21 | Panasonic Corporation | Image picking-up processing device, image picking-up device, image processing method and computer program |
TWI383666B (zh) | 2007-08-21 | 2013-01-21 | Sony Taiwan Ltd | 多重鏡頭相機系統之先進式動態接圖方法 |
US11325029B2 (en) * | 2007-09-14 | 2022-05-10 | National Institute Of Advanced Industrial Science And Technology | Virtual reality environment generating apparatus and controller apparatus |
WO2009060975A1 (ja) | 2007-11-08 | 2009-05-14 | Nec Corporation | 特徴点配置照合装置及び画像照合装置、その方法及びプログラム |
WO2009085961A1 (en) | 2007-12-20 | 2009-07-09 | Quantum Medical Technology, Inc. | Systems for generating and displaying three-dimensional images and methods therefor |
US20090163185A1 (en) | 2007-12-24 | 2009-06-25 | Samsung Electronics Co., Ltd. | Method and system for creating, receiving and playing multiview images, and related mobile communication device |
WO2009094643A2 (en) | 2008-01-26 | 2009-07-30 | Deering Michael F | Systems using eye mounted displays |
KR100934211B1 (ko) | 2008-04-11 | 2009-12-29 | 주식회사 디오텍 | 휴대용 단말기의 파노라마 이미지 생성 방법 |
US9786164B2 (en) | 2008-05-23 | 2017-10-10 | Leverage Information Systems, Inc. | Automated camera response in a surveillance architecture |
US8600193B2 (en) * | 2008-07-16 | 2013-12-03 | Varian Medical Systems, Inc. | Image stitching and related method therefor |
US8280191B1 (en) * | 2008-07-31 | 2012-10-02 | Abode Systems Incorporated | Banded seam carving of images with pyramidal retargeting |
US20100194851A1 (en) * | 2009-02-03 | 2010-08-05 | Aricent Inc. | Panorama image stitching |
US8179466B2 (en) | 2009-03-11 | 2012-05-15 | Eastman Kodak Company | Capture of video with motion-speed determination and variable capture rate |
US8341672B2 (en) | 2009-04-24 | 2012-12-25 | Delta Vidyo, Inc | Systems, methods and computer readable media for instant multi-channel video content browsing in digital video distribution systems |
US20120054664A1 (en) | 2009-05-06 | 2012-03-01 | Thomson Licensing | Method and systems for delivering multimedia content optimized in accordance with presentation device capabilities |
GB2473059A (en) | 2009-08-28 | 2011-03-02 | Sony Corp | A method and apparatus for forming a composite image |
JP5418127B2 (ja) | 2009-10-09 | 2014-02-19 | ソニー株式会社 | 画像処理装置および方法、並びにプログラム |
EP2502222B1 (en) | 2009-11-18 | 2018-08-29 | Thomson Licensing | Methods and systems for three dimensional content delivery with flexible disparity selection |
JP4886888B2 (ja) | 2009-12-01 | 2012-02-29 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
WO2011066848A1 (en) | 2009-12-04 | 2011-06-09 | Nokia Corporation | A processor, apparatus and associated methods |
US8294748B2 (en) * | 2009-12-11 | 2012-10-23 | DigitalOptics Corporation Europe Limited | Panorama imaging using a blending map |
CN101710932B (zh) | 2009-12-21 | 2011-06-22 | 华为终端有限公司 | 图像拼接方法及装置 |
US8964013B2 (en) | 2009-12-31 | 2015-02-24 | Broadcom Corporation | Display with elastic light manipulator |
KR101055411B1 (ko) | 2010-03-12 | 2011-08-09 | 이상원 | 입체 영상 생성 방법 및 그 장치 |
JP5564300B2 (ja) | 2010-03-19 | 2014-07-30 | 富士フイルム株式会社 | ヘッドマウント型拡張現実映像提示装置及びその仮想表示物操作方法 |
US8896671B2 (en) | 2010-04-09 | 2014-11-25 | 3D-4U, Inc. | Apparatus and method for capturing images |
JP5682149B2 (ja) | 2010-06-10 | 2015-03-11 | ソニー株式会社 | 立体画像データ送信装置、立体画像データ送信方法、立体画像データ受信装置および立体画像データ受信方法 |
US8571350B2 (en) | 2010-08-26 | 2013-10-29 | Sony Corporation | Image processing system with image alignment mechanism and method of operation thereof |
JP2012068380A (ja) | 2010-09-22 | 2012-04-05 | Sony Corp | 画像処理装置、撮像装置、および画像処理方法、並びにプログラム |
JP5409577B2 (ja) * | 2010-10-05 | 2014-02-05 | 株式会社ソニー・コンピュータエンタテインメント | パノラマ画像生成装置およびパノラマ画像生成方法 |
EP2613290B1 (en) * | 2010-10-26 | 2019-05-08 | Morpho, Inc. | Image processing device, image processing method, and image processing program |
US20120105574A1 (en) | 2010-10-28 | 2012-05-03 | Henry Harlyn Baker | Panoramic stereoscopic camera |
US9007432B2 (en) | 2010-12-16 | 2015-04-14 | The Massachusetts Institute Of Technology | Imaging systems and methods for immersive surveillance |
US9088835B2 (en) | 2010-12-17 | 2015-07-21 | Thomson Licensing | Method for adjusting depth or view of three-dimensional streaming video |
CN102918858B (zh) | 2010-12-24 | 2014-09-03 | 富士胶片株式会社 | 立体全景图像创建设备和方法、立体全景图像再现设备和方法 |
TWI417640B (zh) | 2010-12-31 | 2013-12-01 | Altek Corp | 鏡頭校準系統 |
JP2012156680A (ja) | 2011-01-25 | 2012-08-16 | Jvc Kenwood Corp | 3d画像処理装置 |
US9661205B2 (en) | 2011-02-28 | 2017-05-23 | Custom Manufacturing & Engineering, Inc. | Method and apparatus for imaging |
CN102812497B (zh) | 2011-03-03 | 2016-06-08 | 松下知识产权经营株式会社 | 能够提供随后体验影像的影像提供装置、影像提供方法 |
US8600194B2 (en) | 2011-05-17 | 2013-12-03 | Apple Inc. | Positional sensor-assisted image registration for panoramic photography |
JP6001826B2 (ja) | 2011-05-18 | 2016-10-05 | 任天堂株式会社 | 情報処理システム、情報処理装置、情報処理プログラムおよび情報処理方法 |
EP2706755A4 (en) | 2011-05-27 | 2014-07-16 | Huawei Tech Co Ltd | MEDIA TRANSMISSION PROCEDURE, MEDIA RECEPTION PROCEDURE, CLIENT AND SYSTEM THEREFOR |
US8184069B1 (en) | 2011-06-20 | 2012-05-22 | Google Inc. | Systems and methods for adaptive transmission of data |
AU2011205087B2 (en) * | 2011-07-29 | 2014-09-25 | Canon Kabushiki Kaisha | Multi-hypothesis projection-based shift estimation |
JP2013061848A (ja) | 2011-09-14 | 2013-04-04 | Panasonic Corp | 非接触入力装置 |
JP2013077296A (ja) | 2011-09-14 | 2013-04-25 | Ricoh Co Ltd | 画像処理装置、画像処理方法およびプログラム |
CN102420898A (zh) | 2011-09-27 | 2012-04-18 | 惠州Tcl移动通信有限公司 | 一种基于手机的全景照相实现方法及手机 |
US9268406B2 (en) | 2011-09-30 | 2016-02-23 | Microsoft Technology Licensing, Llc | Virtual spectator experience with a personal audio/visual apparatus |
AU2011253973B2 (en) | 2011-12-12 | 2015-03-12 | Canon Kabushiki Kaisha | Keyframe selection for parallel tracking and mapping |
US9479780B2 (en) | 2012-02-01 | 2016-10-25 | Google Technology Holdings LLC | Simplification of significance map coding |
CN103260046A (zh) | 2012-02-16 | 2013-08-21 | 中兴通讯股份有限公司 | 一种三维显示方法及*** |
KR101926577B1 (ko) | 2012-02-23 | 2018-12-11 | 한국전자통신연구원 | 확장형 3차원 입체영상 디스플레이 시스템 |
CN102595164A (zh) | 2012-02-27 | 2012-07-18 | 中兴通讯股份有限公司 | 一种视频图像发送方法、装置及*** |
US20130250040A1 (en) | 2012-03-23 | 2013-09-26 | Broadcom Corporation | Capturing and Displaying Stereoscopic Panoramic Images |
GB2501767A (en) | 2012-05-04 | 2013-11-06 | Sony Comp Entertainment Europe | Noise cancelling headset |
WO2013173728A1 (en) | 2012-05-17 | 2013-11-21 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer readable media for unified scene acquisition and pose tracking in a wearable display |
US9846960B2 (en) | 2012-05-31 | 2017-12-19 | Microsoft Technology Licensing, Llc | Automated camera array calibration |
US9767598B2 (en) | 2012-05-31 | 2017-09-19 | Microsoft Technology Licensing, Llc | Smoothing and robust normal estimation for 3D point clouds |
CN102692806B (zh) | 2012-06-04 | 2015-08-05 | 济南大学 | 自由视点四维空间视频序列的采集与形成方法 |
JP5881827B2 (ja) | 2012-06-11 | 2016-03-09 | 株式会社ソニー・コンピュータエンタテインメント | 画像撮像装置および画像撮像方法 |
JP5580855B2 (ja) | 2012-06-12 | 2014-08-27 | 株式会社ソニー・コンピュータエンタテインメント | 障害物回避装置および障害物回避方法 |
US9013558B2 (en) | 2012-07-02 | 2015-04-21 | Sony Corporation | System and method for alignment of stereo views |
US9314692B2 (en) | 2012-09-21 | 2016-04-19 | Luxand, Inc. | Method of creating avatar from user submitted image |
EP2905961A4 (en) | 2012-10-05 | 2016-07-06 | Lg Electronics Inc | METHOD AND DEVICE FOR PROCESSING A VIDEO SIGNAL |
JP6126820B2 (ja) | 2012-11-09 | 2017-05-10 | 任天堂株式会社 | 画像生成方法、画像表示方法、画像生成プログラム、画像生成システム、および画像表示装置 |
KR20140089146A (ko) | 2013-01-04 | 2014-07-14 | 삼성전자주식회사 | 영상 통화 방법 및 그 방법을 처리하는 전자 장치 |
US20140205203A1 (en) | 2013-01-22 | 2014-07-24 | University Of Central Florida Research Foundation, Inc. | System and Method for Visual Correlation of Digital Images |
US9154773B2 (en) | 2013-03-15 | 2015-10-06 | Seiko Epson Corporation | 2D/3D localization and pose estimation of harness cables using a configurable structure representation for robot operations |
US9070289B2 (en) | 2013-05-10 | 2015-06-30 | Palo Alto Research Incorporated | System and method for detecting, tracking and estimating the speed of vehicles from a mobile platform |
US10068334B2 (en) * | 2013-05-29 | 2018-09-04 | Capsovision Inc | Reconstruction of images from an in vivo multi-camera capsule |
KR102155001B1 (ko) | 2013-06-27 | 2020-09-11 | 엘지전자 주식회사 | 헤드 마운트 디스플레이 장치 및 그 동작방법 |
KR102082300B1 (ko) | 2013-07-01 | 2020-02-27 | 삼성전자주식회사 | 삼차원 영상 생성 또는 재생을 위한 장치 및 방법 |
WO2015039067A1 (en) | 2013-09-16 | 2015-03-19 | Duke University | Method for combining multiple image fields |
US20150080652A1 (en) | 2013-09-18 | 2015-03-19 | Cerner Innovation, Inc. | Lesion detection and image stabilization using portion of field of view |
US9478010B2 (en) | 2013-12-12 | 2016-10-25 | Google Technology Holdings LLC | Generating an enhanced image of a predetermined scene from a plurality of images of the predetermined |
IN2014DE00449A (zh) | 2014-02-17 | 2015-08-21 | Rockwell Collins Inc | |
US20150272547A1 (en) | 2014-03-31 | 2015-10-01 | Siemens Medical Solutions Usa, Inc. | Acquisition control for elasticity ultrasound imaging |
US9420176B2 (en) | 2014-06-19 | 2016-08-16 | Omnivision Technologies, Inc. | 360 degree multi-camera system |
US10209942B2 (en) | 2014-07-16 | 2019-02-19 | Sony Interactive Entertainment LLC | Collaboratively displaying media content using plurality of display devices |
US9900505B2 (en) | 2014-07-23 | 2018-02-20 | Disney Enterprises, Inc. | Panoramic video from unstructured camera arrays with globally consistent parallax removal |
KR101606539B1 (ko) | 2014-07-29 | 2016-03-25 | 주식회사 삼우소프트 | 360도 원형 디스플레이의 3차원 영상 렌더링 방법 |
US11205305B2 (en) * | 2014-09-22 | 2021-12-21 | Samsung Electronics Company, Ltd. | Presentation of three-dimensional video |
US9672586B2 (en) | 2015-10-22 | 2017-06-06 | Texas Instruments Incorporated | Image synthesis method with DSP and GPU |
US9911213B2 (en) * | 2015-12-18 | 2018-03-06 | Ricoh Co., Ltd. | Panoramic image stitching using objects |
US9947121B2 (en) * | 2016-04-04 | 2018-04-17 | Microsoft Technology Licensing, Llc | Image stitching |
CN109427040B (zh) * | 2017-08-22 | 2023-10-10 | 富联国基(上海)电子有限公司 | 图像处理装置及方法 |
-
2018
- 2018-05-31 US US15/994,994 patent/US11049218B2/en active Active
- 2018-08-09 EP EP18844632.2A patent/EP3635678A4/en active Pending
- 2018-08-09 WO PCT/KR2018/009096 patent/WO2019031873A1/en unknown
- 2018-08-09 KR KR1020207005705A patent/KR102500759B1/ko active IP Right Grant
- 2018-08-09 CN CN201880051657.7A patent/CN111052176B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101960486A (zh) * | 2008-02-28 | 2011-01-26 | 因弗欧股份有限公司 | 图像处理方法、装置和单元 |
CN102947858A (zh) * | 2010-04-08 | 2013-02-27 | 帕斯科数码有限责任公司(商业用为奥姆尼克斯有限责任公司) | 包括重叠边缘对比的图像质量评价 |
US9589350B1 (en) * | 2013-05-30 | 2017-03-07 | 360 Lab Llc. | Utilizing three overlapping images for exposure correction during panoramic image stitching |
CN106797460A (zh) * | 2014-09-22 | 2017-05-31 | 三星电子株式会社 | 三维视频的重建 |
CN105389787A (zh) * | 2015-09-30 | 2016-03-09 | 华为技术有限公司 | 一种全景图像拼接方法及装置 |
CN106934764A (zh) * | 2016-11-03 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种图像数据处理方法、装置 |
Non-Patent Citations (3)
Title |
---|
Fan Zhang and Feng Liu."Parallax-tolerant Image Stitching.2014 IEEE Conference on Computer Vision and Pattern Recognition.2014,第3262-3269页. * |
Parallax-tolerant Image Stitching;Fan Zhang and Feng Liu;2014 IEEE Conference on Computer Vision and Pattern Recognition;第3262-3269页 * |
Yu-Sheng Chen等."Natural Image Stitching with the Global Similarity Prior.INTERNATIONAL CONFERENCE ON FINANCIAL CRYPTOGRAPHY AND DATA SECURITY,SPRINGER,BERLIN,HEIDELBERG.2016,第186-201页. * |
Also Published As
Publication number | Publication date |
---|---|
EP3635678A4 (en) | 2020-06-03 |
CN111052176A (zh) | 2020-04-21 |
US20200020075A1 (en) | 2020-01-16 |
KR20200030603A (ko) | 2020-03-20 |
US11049218B2 (en) | 2021-06-29 |
WO2019031873A1 (en) | 2019-02-14 |
EP3635678A1 (en) | 2020-04-15 |
KR102500759B1 (ko) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111052176B (zh) | 无缝图像拼接 | |
CN110211043B (zh) | 一种用于全景图像拼接的基于网格优化的配准方法 | |
CN110663245B (zh) | 用于存储成像数据的重叠区以产生优化拼接图像的设备及方法 | |
US10609282B2 (en) | Wide-area image acquiring method and apparatus | |
US8803918B2 (en) | Methods and apparatus for calibrating focused plenoptic camera data | |
US11568516B2 (en) | Depth-based image stitching for handling parallax | |
US9900505B2 (en) | Panoramic video from unstructured camera arrays with globally consistent parallax removal | |
US8817015B2 (en) | Methods, apparatus, and computer-readable storage media for depth-based rendering of focused plenoptic camera data | |
US20110157387A1 (en) | Method and apparatus for generating image data | |
US8947501B2 (en) | Scene enhancements in off-center peripheral regions for nonlinear lens geometries | |
CN107925751A (zh) | 用于多视点降噪和高动态范围的***和方法 | |
US10482571B2 (en) | Dual fisheye, hemispherical image projection and stitching method, device and computer-readable medium | |
CN111292278B (zh) | 图像融合方法及装置、存储介质、终端 | |
GB2561368B (en) | Methods and apparatuses for determining positions of multi-directional image capture apparatuses | |
CN111598777A (zh) | 天空云图的处理方法、计算机设备和可读存储介质 | |
CN114697623A (zh) | 投影面选取和投影图像校正方法、装置、投影仪及介质 | |
CN111866523A (zh) | 全景视频合成方法、装置、电子设备和计算机存储介质 | |
CN111126418A (zh) | 一种基于平面透视投影的倾斜影像匹配方法 | |
CN116681732B (zh) | 一种基于复眼形态视觉的目标运动识别方法及*** | |
US20220321859A1 (en) | Real-time omnidirectional stereo matching method using multi-view fisheye lenses and system thereof | |
EP3761260A1 (en) | Storage and signaling of entrance pupil parameters for immersive media | |
CN111598997B (zh) | 一种基于聚焦堆栈单体数据子集架构的全局计算成像方法 | |
US20230072247A1 (en) | Method and device for processing image content | |
CN116757928A (zh) | 一种全景图像处理方法、***、电子设备和存储介质 | |
CN116883242A (zh) | 基于角度匹配的图像拼接方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |