CN112104854A - 相机视图之间的鲁棒虚拟视图生成的方法和系统 - Google Patents
相机视图之间的鲁棒虚拟视图生成的方法和系统 Download PDFInfo
- Publication number
- CN112104854A CN112104854A CN202010225870.4A CN202010225870A CN112104854A CN 112104854 A CN112104854 A CN 112104854A CN 202010225870 A CN202010225870 A CN 202010225870A CN 112104854 A CN112104854 A CN 112104854A
- Authority
- CN
- China
- Prior art keywords
- image
- image data
- merged
- images
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 193
- 230000004075 alteration Effects 0.000 claims description 123
- 230000006870 function Effects 0.000 claims description 16
- 230000002123 temporal effect Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 97
- 238000012545 processing Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 18
- 238000009877 rendering Methods 0.000 description 18
- 239000002131 composite material Substances 0.000 description 15
- 238000003860 storage Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000009499 grossing Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000007670 refining Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000011514 reflex Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000282693 Cercopithecidae Species 0.000 description 1
- 208000003464 asthenopia Diseases 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
-
- 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/18—Image warping, e.g. rearranging pixels individually
-
- 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
- G06T5/00—Image enhancement or restoration
- G06T5/77—Retouching; Inpainting; Scratch removal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/122—Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- 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/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
-
- 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/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- 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
-
- 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/20228—Disparity calculation for image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- Image Processing (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
本公开涉及相机视图之间的鲁棒虚拟视图生成的方法和系统。论述了与从已知输入图像的位置之间的位置生成场景的虚拟视图以呈现给观看者有关的技术。这种技术包括应用基于梯度的孔洞填充插补。
Description
技术领域
本公开一般涉及机器视觉领域,更具体地涉及相机视图之间的鲁棒虚拟视图生成的方法和系统。
背景技术
诸如两个或更多个对齐的相机之类的相机阵列正在诸如平板设备、智能电话、膝上型电脑、显示设备、网真系统、电影摄制和视频制作系统等等之类的多种设备实现中变得越来越常见。在由这种相机阵列生成的观看体验的情境中,相机位置之间的中间虚拟视图被生成并被提供给用户以供显示。
高效地并且以最低限度的视觉伪像在捕捉的相机视图之间的位置处渲染逼真的虚拟图像,是持续的目标。用于从多个相机图像渲染虚拟视图的当前技术包括从图像对场景进行体积性3D重建和使用3D图形渲染技术来渲染虚拟视图。然而,3D重建在计算上是昂贵且容易出错的,导致了渲染的图像中的视觉伪像。基于图像的渲染(image-basedrendering,IBR)技术避免了3D几何结构的显式重建,而是改为直接从捕捉的图像渲染虚拟视图。例如,IBR插值可使用两个图像和其像素对应图来将图像变形到期望的位置。然而,IBR技术经常具有多噪声的像差图(disparity map)以及相机视图之间的大相机视差(或者偏移或观看角度),导致显著的不合需要的可见图像伪像。另外,提供更好准确性的那些IBR技术经常具有很大的计算负担,这有碍于视频序列渲染期间的合成或者虚拟视图生成的实时操作。
发明内容
本公开的实施例提供了一种用于生成场景的虚拟视图图像的设备,包括:存储器,用于存储分别与同一场景的第一视图位置和第二视图位置相对应的第一输入图像和第二输入图像;以及耦合到存储器的处理器,处理器被布置为通过以下方式来操作:通过合并与第一输入图像和第二输入图像相关联的变形图像来生成第一视图位置和第二视图位置之间的目标虚拟视图的合并图像;并且在通过使用合并图像生成的目标虚拟视图处填充虚拟视图图像上的孔洞,并且包括求解对以下两项做出比较的能量等式:(1)在等式中都未知的最终插补当前像素值和最终插补相邻像素值之间的差异,以及(2)当在合并图像上的与正被计算的最终插补当前像素值相对应的当前像素位置处不存在图像数据时,通过使用变形图像的图像值和至少一个插补权重生成的梯度。
附图说明
在附图中以示例方式而非限制方式图示了本文描述的素材。为了图示的简单和清晰,附图中图示的元素不一定是按比例绘制的。例如,为了清晰,一些元素的尺寸相对于其他元素可被夸大。另外,在认为适当时,附图标记在附图之间被重复以指示出对应的或相似的元素。在附图中:
图1图示了用于生成场景的虚拟视图的示例设备;
图2是根据本文的至少一个实现方式的相机视图之间的鲁棒虚拟视图生成的方法的流程图;
图3是根据本文的至少一个实现方式的相机视图之间的鲁棒虚拟视图生成的方法的详细流程图;
图4A和4B分别是示例左和右输入图像;
图5图示了左和右图像之间的示例像差图;
图6图示出根据本文的至少一个实现方式的示例置信图;
图7A-7B是根据本文的至少一个实现方式的用于相机视图之间的鲁棒虚拟视图生成的插补和孔洞填充的示例方法的流程图;
图7C是根据本文的至少一个实现方式的用于图7A-7B的插补和孔洞填充的示例像素图案的示意图;
图8图示了根据本文的至少一个实现方式的形成为与孔洞的合并图像的示例图像引导场;
图9图示了根据本文的至少一个实现方式的示例最终插补虚拟图像;
图10是根据本文的至少一个实现方式的维持时间相干性以执行相机视图之间的鲁棒虚拟视图生成的示例方法的流程图;
图11是根据本文的至少一个实现方式的加速相机视图之间的鲁棒虚拟视图生成的示例方法的流程图;
图12A至12D-1是示出公开的虚拟视图生成方法和其他三种传统方法的实验结果的第一场景图像;
图13A-13B是另一实验的第二场景的输入图像;
图13C是第二场景的输入图像的像差图;
图13D至13G-1是示出公开的虚拟视图生成方法和其他三种传统方法的实验结果的第二场景图像;
图14A-14B是另一实验的第三场景的输入图像;
图14C是第三场景的输入图像的像差图;
图14D至14G-1是示出公开的虚拟视图生成方法和其他三种传统方法的实验结果的第三场景图像;
图15A-15B是另一实验的第四场景的输入图像;
图16是第四场景的光流的图像;
图17是使用本文的至少一个实现方式的第四场景的细化最终虚拟图像;
图18是用于生成场景的虚拟视图的示例系统的示意图;
图19是示例系统的示意图;并且
图20图示了全都根据本公开的至少一些实现方式布置的示例设备。
具体实施方式
现在参考附图描述一个或多个实现方式。虽然论述了具体配置和布置,但应当理解这么做只是为了说明性目的。相关领域的技术人员将认识到,在不脱离描述的精神和范围的情况下,可以采用其他配置和布置。相关领域的技术人员将会清楚,本文描述的技术和/或布置也可用在与本文所述不同的多种其他系统和应用中。
虽然接下来的描述阐述了可例如在诸如片上系统(system-on-a-chip,SoC)体系结构之类的体系结构中显现的各种实现方式,但本文描述的技术和/或布置的实现方式不限于特定的体系结构和/或计算系统,而是可由任何体系结构和/或计算系统为类似的目的而实现。例如,采用例如多个集成电路(integrated circuit,IC)芯片和/或封装的各种体系结构和/或诸如机顶盒、智能电话、平板设备、相机阵列等等之类的各种计算设备和/或消费电子(consumer electronic,CE)设备可实现本文描述的技术和/或布置。另外,虽然接下来的描述可阐述许多具体细节,例如逻辑实现方式、系统组件的类型和相互关系、逻辑分区/集成选择等等,但要求保护的主题可在没有这种具体细节的情况下实现。在其他情况中,为了避免模糊本文公开的素材,可能没有详细示出一些素材,例如控制结构和完整软件指令序列。
本文公开的素材可以用硬件、固件、软件或者其任何组合来实现。本文公开的素材也可实现为存储在机器可读介质上的指令,这些指令可被一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机构。例如,机器可读介质可包括只读存储器(read only memory,ROM);随机访问存储器(random access memory,RAM);磁盘存储介质;光存储介质;闪存设备;电的、光的、声的或者其他形式的传播信号(例如,载波、红外信号、数字信号等等),以及其他。在另一形式中,诸如非暂态计算机可读介质之类的非暂态物品可结合上文提及的任何示例或者其他示例使用,只不过其不包括暂态信号本身。其确实包括除了信号本身以外的可以“暂态”方式暂时保存数据的那些元件,例如RAM等等。
说明书中提及“一个实现方式”、“一实现方式”、“一示例实现方式”等等指示的是描述的实现方式可包括特定的特征、结构或特性,但可能不一定每个实现方式都包括该特定特征、结构或特性。另外,这种短语不一定指同一实现方式。另外,当联系一实现方式来描述特定的特征、结构或特性时,认为联系其他实现方式(无论本文是否明确描述)来影响这种特征、结构或特性是在本领域技术人员的知识范围内的。
本文描述了与相机视图之间的鲁棒虚拟视图生成有关的方法、设备、装置、计算平台和物品。
如上所述,希望生成作为从在两个真实相机视图或位置之间的位置或视点形成的场景的图像的虚拟或合成(或目标)图像。实时提供的高质量虚拟图像对于诸如虚拟现实(virtual reality,VR)系统之类的沉浸式体验经常是希望的,例如在VR系统中VR图像应当被实时示出。
虚拟图像可通过使用来自彼此相隔视差的两个相机的两个图像来形成,其中两个图像具有视野(field of view,FOV)的差异。对于具有例如至少大约100像素的大视差的图像和视频插补居间或中间视图经常导致不良质量的目标(或者虚拟或合成)图像。一些现有的插补技术通常需要通过生成准确的深度图或重建3D场景来估计代理几何结构并随后使用它们作为引导来执行插补任务。然而,诸如光流之类的跟踪运动或3D重建的准确代理几何结构估计算法是非常耗时的,从而使得经常无法执行实时操作。可替换地,也使用代理几何结构的基于立体匹配的方法可高效地估计像差,但对于具有大视差的图像和/或视频通常生成噪声很多并且不准确的结果。对这种不准确的代理几何结构估计的依赖可导致合成的视图中的不可接受的伪像。
否则,高级的技术使用更精细的过程,例如轮廓变形、稀疏3D重建、超像素变形和/或梯度移位来生成重映射的视图,该视图随后被用优化方法来进一步细化。诸如变形和稀疏3D重建之类的这些高级技术需要稀疏地重建场景,这是极为耗时的。梯度移位方法只在修正的图像上起作用,然后将插补的图像重投影回到原始位置,这增加了大量的计算负担和时间消耗。软3D重建技术为输入图像构建体积内容并且基于光线跟踪来合成新的视图。然而,这些体积重建技术是既耗时而且也存储器密集的。
为了解决这些问题,本文论述的技术高效地、完全自动化地并且在没有或者只有最低限度视觉伪像的情况下在捕捉的相机视图之间的位置处渲染逼真的虚拟视图图像。为了实现这一点,本文公开的高效视频插补方法为具有大视差的图像和视频插补居间视图,其中两个图像可具有至少约100像素的视野(FOV)差异,同时利用不准确的估计像差图仍保持鲁棒。应当注意,术语“虚拟视图”可以指视图本身和与图像分离的位置,或者取决于上下文可以指虚拟视图的位置处的图像。从而,术语形成或生成虚拟视图一般将指例如在虚拟视图的位置处生成像素图像数据的图像。
更详细地说,本文公开的方法取可具有大视差的两个图像(称为左图像和右图像)作为输入,然后估计左到右(LR)和右到左(RL)像差图。这些初始的RL-LR像差图,或者单个双向像差图,随后被用于形成像素级置信值,这些像素级置信值指示出一方面的利用初始像差图重投影的左和右图像和另一方面的原始左和右输入图像之间的相似性。这对于单个像素位置指示出了像差图的准确性。初始像差图也被用于形成输入图像或者目标图像或虚拟视图之间的目标像差图。这是通过向初始像差图应用插补比率或权重来执行的。然后,目标像差图被用于在目标或虚拟视图位置形成左和右变形图像。接下来,置信值和变形图像随后都被用于通过只使用充分高的置信像差值的图像数据来生成采取合并图像形式的图像引导场(image guidance field)。这被称为原始左和右输入图像的重映射或变形。
由于遮挡和不准确的像差估计,当前的插补视图或合并图像仍将具有没有任何RGB图像数据填充孔洞的区域(或者孔洞或遮挡)。取代使用试探规则来填充这些区域,然后细化它们,所公开的方法将孔洞填充视为修补(inpainting)问题并且在使用基于泊松梯度的图像编辑方法生成最终插补视图的同时直接填充孔洞。应当注意,在这里,孔洞一般指的是图像的缺失图像数据的任何大小或形状的区域。
泊松图像编辑或者说梯度域图像处理在为目标或虚拟视图图像生成插补图像值的插补和孔洞填充能量等式中,使用当前像素及其相邻像素之间的色度和/或亮度图像数据的差异或梯度,而不是直接使用来自原始左或右图像的原始像素值。例如,参见Pérez,P.等人所著的“Poisson image editing(泊松图像编辑)”,美国计算机学会ACM图形学汇刊(Transactions on graphics,TOG)22.3,313-318(2003)。从数学上来讲,图像梯度可表示图像的导数。从而,新的图像,或者图像的一部分,可通过对梯度积分来构造,这可通过使用泊松等式来求解。一般来说,该过程可包括生成梯度值,然后通过找到尽可能近地近似期望梯度的图像数据来求解泊松等式。这是通过求解泊松等式来执行的,泊松等式是通过利用梯度能量(或平滑)项来最小化能量等式来求解的,该梯度能量(或平滑)项利用诸如共轭梯度求解器之类的迭代算法对最终图像值和最终邻居图像值与梯度求差。通过用能量等式最小化L2误差(均方)来保持梯度。
梯度能量项中使用的梯度值可以是在图像引导场数据(或合并图像)存在时通过使用这种图像数据来计算的梯度。当合并图像在合并图像中的像素处缺失图像数据时,则像差引导重投影梯度值被用于填充被构造的虚拟视图图像的孔洞,并且改为保持来自像差引导梯度的梯度。这些像差引导重投影梯度值是通过使用插补权重来计算的,这些插补权重被用于在图像被合并来形成图像引导场的合并图像之前从变形的左和右图像形成目标像差图和图像值。
为了确保更高的准确性,也通过使用可修改梯度能量项的结果的历史约束项(或数据能量项)来调整梯度能量项的结果。
一旦能量等式被最小化,结果就是单个像素位置的插补图像像素值,并且这可对合并图像上的每个或者个体像素位置重复。下面提供其他细节。
另外,帧与帧之间的运动可引起明显的伪影,例如抖动和闪烁,这是由于独立地插补每个视频帧引起的。从而,为了生成具有时间上一致内容的合成视频结果,所公开的方法还将时间相干性处理结合到了视图插补管线中。这可包括对输入图像数据下采样以生成连续帧之间的运动图,然后取决于运动图的值是否满足诸如阈值之类的运动标准,使用例如视频序列中的在前左和右输入图像的RL或LR像差图值,而不是为当前左和右输入图像生成的像差值。
此外,为了确保本方法可被实时操作来提供视频的良好质量渲染,应用了加速技术,该加速技术在本身是从左和右输入图像的下采样版本形成的合并图像(或者图像引导场)的下采样形式上应用基于泊松梯度的能量等式。所得到的被填充、下采样的虚拟视图图像随后被上采样到完全的原始分辨率。来自上采样图像的数据随后被用于填充利用全分辨率尺寸的合并图像生成的全尺寸虚拟视图图像上的孔洞,该合并图像进而是基于全分辨率的左和右输入图像的。全尺寸填充虚拟视图图像随后被通过将该虚拟视图图像的梯度图匹配到全分辨率图像引导场(合并图像)的全分辨率梯度图来进行细化。
此方法可以取噪声很多且不准确的像差图作为输入并且实时地生成令人满意的插补结果。其也可有效地从具有大视差量的视图插补令人满意的结果。从而,可以完全避免3D重建、相机校准和图像修正。通过使用图形处理单元(graphics processing unit,GPU)加速,本方法可容易地实时运行。
现在参考图1,可提供图像处理设备100来从利用运动相机、相机阵列(无论是否平面阵列)或者两个或更多个相机设备获得的场景的有限采样渲染虚拟视图。设备100可为相机位置之间的位置生成高质量且高效生成的虚拟视图。这种多视图设备以及尤其是相机阵列在许多视觉应用中正变得越来越常见,这些视觉应用包括:场景的虚拟导航,例如从对象的多个视图的由外而内的渲染(例如,体积渲染),从相机阵列的圆形配置的立体全景的生成(例如,对于VR的由内而外的渲染),交互式多视图视频应用(例如,电话会议),等等。本文论述的技术可用于要为至少两个已知输入图像的视图位置之间的视图位置生成虚拟图像的任何情境中。可通过任何适当的方式获得输入图像,例如经由相机的图像捕捉、图像或图形渲染,或者可从存储器或另一设备接收这种输入图像来处理。所公开的技术提供了虚拟视图的高效的、基于图像的渲染。这种技术消除或最小化了视觉伪像并且可在当前硬件平台上实时实现。
具体而言,提供了根据本公开的至少一些实现方式布置的示例图像处理设备100来生成场景的虚拟视图。设备100包括可由一个或多个图像信号处理器(image signalprocessor,ISP)或图形处理单元(graphics processing unit,GPU)操作的合成图像形成单元102。合成图像形成单元102实现以下各项中的一项或多项:左到右和右到左(LR-RL)像差图单元104、置信重投影单元106、置信单元108、视图位置单元110、目标像差图单元112、图像变形单元114、图像合并单元(或者图像引导场单元)116、梯度图单元11、8以及插补和孔洞填充单元120。设备100还可包括、使用或接收来自左相机122和右相机124的图像数据。设备100可实现在任何适当外形参数的设备中,例如个人计算机、膝上型计算机、平板设备、平板手机、智能电话、数字相机、游戏机、诸如虚拟现实(virtual reality,VR)头戴式显示器(head mounted display,HDM)之类的可穿戴设备、显示设备、一体化设备、二合一设备,等等。例如,设备100可执行如本文所述的虚拟视图渲染或插补。在一些实现方式中,作为左相机122和右相机124的附加或替换,设备100可从相机阵列、存储器、另一设备、渲染引擎等等获得用于虚拟视图插补的多视图图像。例如,设备100的组件可被包含到任何多相机消费型或商业电子设备中以交付沉浸式视觉体验,包含到以多个相机为特色的商业网真系统中,或者包含到虚拟实现(VR)系统中,等等。
如图所示,左相机122接收来自场景132的入射光128。左相机122基于曝光于入射光128而生成左图像10。类似地,右相机124接收来自场景132的入射光130,并且基于曝光于入射光130,生成右图像12。左相机122和右相机124可以是任何适当的成像设备,例如RGB相机等等。在一些实现方式中,设备100经由通信信道(未示出)从另一设备接收左图像10和右图像12。在一些实现方式中,从设备100的存储器(未示出)获得左图像10和右图像12以便处理。左图像10和右图像12可包括任何适当的图像数据、图片数据、视频帧数据等等,或者表示任何适当分辨率的图片的任何数据结构。在一实现方式中,左图像10和右图像12是各自对于其像素具有R(红)、G(绿)和B(蓝)色度值的RGB图像数据的完全图像。当这里在论述图像时,每个颜色可具有可被单独处理的单独通道(或图像),因此,例如,这里的过程可单独适用于红色值的图像或通道,并且对于绿色值和蓝色值也是类似的,虽然在描述关于图像的操作时可不提及这种色度数据分离。所得到的单独颜色通道的像素值随后被组合以形成单个完全虚拟图像。在一实现方式中,左图像10和右图像12具有1920×1080像素的分辨率。
虽然在这里是对于左和右相机122、124和左和右图像10、12图示和论述的,但本文论述的技术可对于相机和图像的任何适当布置实现。在一些实现方式中,相机可被布置在彼此上下,并且/或者图像可以是顶和底图像。从而,左和右图像被这样标注只是为了区分,并且被包括在本文论述的第一和第二图像中。此外,为了呈现的清晰起见,设备100被示为具有两个相机,左相机122和右相机124。然而,设备100可包括任何数目的相机来生成相机阵列136,这种相机在x方向上间隔开(以提供水平相机阵列)、在y方向上间隔开(以提供垂直相机阵列)、或者既在x方向也在y方向上间隔开(以提供相机网格)以生成任何数目的图像。可将任何这种图像配对并且可为图像对确定中间图像。从而,可生成任何数目的中间图像。此外,可生成这种图像对之间的多于一个虚拟图像。例如,可形成好像在图像对之间的正中位置(或任何其他位置)的一个虚拟图像,或者可形成好像在图像对之间的不同位置的多个虚拟图像。这里,不失一般性,这种图像对中的图像通常被标注为第一和第二或者左和右图像,并且在其间插补的图像被标注为目标图像、虚拟图像、合成图像或者中间图像中的任何一者。
如图所示,图像信号处理器102接收左输入图像10和右输入图像12作为输入图像对16,以及与虚拟相机126相对应的所选视图位置14,该虚拟相机126图示了场景132的期望视图。注意,设备100可生成场景132的最终虚拟图像160,就好像来自视图(或虚拟视图)位置140一样,视图位置140可在左相机122的视图位置142和右相机124的视图位置138之间的任何位置处。所选视图位置140可以是利用任何一个或多个适当的技术生成的,例如对设备100的用户的位置的检测、从用户或控制器作为输入接收,等等。下文分别结合图2、图3、图7、图10和图11的过程200、300、700、1000和1100来提供图像处理设备100的操作的细节。
参考图2,根据本公开的至少一些实现方式布置的用于生成场景的虚拟视图的示例过程200可包括大体上均匀编号的一个或多个操作202-206。作为非限制性示例,过程200可形成如本文所述的设备100(图1)执行的虚拟视图生成过程的至少一部分。此外,本文可参考图18的系统1800来描述过程200。
过程200可包括“获得分别与同一场景的第一和第二视图位置相对应的第一和第二输入图像的图像数据”202,并且如前所述是从至少两个相机的相机阵列获得的。图像可以是其中提供成对的或者其他数目的图像的视频序列的一部分,并且来自同一时间点的一对图像在场景移动时被用于形成虚拟视图。否则,当场景没有移动时,来自同一移动相机但相对于场景处于不同的视角或视野的两个图像可形成图像对。此操作也可包括将来自相机的原始图像数据转换成用于虚拟视图生成的图像数据所必要的任何预处理,例如在需要时的YUV和RGB颜色空间之间的转换。从而,预处理可以涉及或不涉及修正图像。
过程200可包括“通过合并与第一和第二输入图像相关联的变形图像生成第一和第二视图位置之间的目标虚拟视图的合并图像”204。如下文详细描述的,生成合并图像可涉及获得指示第一和第二图像之间的差异的初始像差图,例如本文描述的LR-RL(或双边)像差图。初始像差图可用于生成重投影的第一和第二图像。重投影的图像随后被与第一和第二输入图像相比较以提供像素级置信值,这些像素级置信值指示出像差图在像素位置处的准确性,并且具体地指示出在同一像素位置处从输入图像到重投影图像的图像数据中的变化是否满足诸如阈值之类的标准。如果在像素位置处该差异太大,则对像差图的置信被认为较低,并且所得到的该位置处的图像数据将不被使用。
单独地,初始像差图也被用于生成变形图像的图像数据,该图像数据进而被合并以形成合并图像。因此,例如,获得期望虚拟视图相对于已知相机位置138和142的位置140,无论是自动设置的还是如本文所述来自用户选择的。从左或右相机视图到虚拟视图位置的距离相对于左和右相机视图之间的距离是插补比率或权重(或者简单地考虑虚拟视图位置)。插补权重在设备100和下面记载的等式上被示为w。插补权重和初始像差图随后被用于形成指示出从第一或第二输入图像到虚拟视图图像的像素位置的移动的目标像差图。然后,目标像差图和第一和第二输入图像分别被用于形成第一和第二变形图像。
变形图像随后被利用置信值来合并成合并图像形式的图像引导场,其中合并图像上的具有低置信的像素位置不被给予图像数据并且在合并图像上被认为是孔洞。
过程200可包括“在通过使用合并图像生成的目标虚拟视图处填充虚拟视图图像上的孔洞,并且包括求解比较以下两项的能量等式:(1)在等式中都未知的最终插补当前像素值和最终插补相邻像素值之间的差异,以及(2)当在合并图像上的与正被计算的最终插补当前像素值相对应的当前像素位置处没有图像数据存在时通过使用变形图像的图像值和至少一个插补权重生成的梯度”206。这指的是下文详细描述的基于梯度的插补等式,并且其也可以是泊松图像编辑等式。从而,输入图像像素值在插补等式本身中不被使用。
具体而言,能量等式具有通过执行能量等式的L2误差的最小化来保持梯度的梯度能量项和数据能量项。等式中的正被分析的当前像素(或像素位置)和邻居像素(例如上、下、左和右像素位置)之间的梯度值取决于对于合并图像上的至少当前像素位置是否存在图像数据而被不同地确定。当在合并图像上的当前像素位置处(或者按照一个示例的邻居像素位置之一处)不存在图像数据时,变形图像的相应图像数据连同用于形成目标像差图的插补权重一起被使用。这可被认为是像差引导的重投影梯度值的梯度图。当图像数据在合并图像(或者图像引导场)上的当前像素位置处以及在邻居像素位置处时,那么已知的梯度算法可用于为合并图像形成梯度图,并且梯度值是从合并图像(或者图像引导场)的梯度图取得的。一旦能量等式被最小化,结果就是当前像素位置的最终插补像素值,这可对每个或者个体像素位置重复,从而形成最终虚拟图像。注意这里的最终是相对于本文描述的操作而言的,而不包括可在本文描述的操作之后发生的虚拟图像的任何其他后期处理或者细化。在下面提供更多细节。
也如前所述,可通过以下方式来维持时间相干性:为第一和第二输入图像生成运动图,该运动图指示出沿着其中帧之一是第一或第二输入图像的视频序列从一帧到下一帧的图像数据的运动。随后可在初始像差图的使用之前依据运动图来修改初始像差图,从而增大了质量并且去除了运动相关伪像。按照一种形式,当充分小量的运动发生时,则来自先前初始像差图的差异值被使用,但当相对大量的运动被检测到时,则当前初始像差图上的差异值例如是来自修改前的初始像差图和先前像差图的值的组合,例如平均。在下面提供其他细节。
作为另一选项,虚拟视图生成可被加速。这可涉及通过使用第一和第二输入图像的全分辨率版本来生成全分辨率合并图像并且通过使用缩减的第一和第二输入图像来生成缩减的合并图像。然后全分辨率合并图像被用于生成全分辨率虚拟视图图像,并且缩减的合并图像被用于形成缩减的虚拟视图图像。缩减的虚拟视图图像上的孔洞被通过上文描述的操作来填充,然后系统使用填充了孔洞的缩减虚拟视图图像的数据来填充全分辨率虚拟视图图像上的孔洞。这显著减小了为求解插补和孔洞填充能量等式而逐像素执行的计算的数目。
参考图3,根据本公开的至少一些实现方式布置的用于生成场景的虚拟视图的示例过程300可包括大体上均匀编号的一个或多个操作302-326。作为非限制性示例,过程300可形成如本文所述的设备100执行的虚拟视图生成过程的至少一部分。此外,本文可参考图18的系统1800来描述过程300。
过程300可包括“获得至少两个输入左和右图像的图像数据”302,这已经在上文利用操作202描述。这可以指形成输入图像对16(图1)的左图像10和右图像12并且是来自视频序列的,该视频序列每对图像被分析并且对先前图像的分析可被用于当前分析。图像可以是或者不是修正的图像。输入左和右图像可具有非常大的视差,例如大于100像素,而最大视差可仅由场景的深度范围和相机基线位置所限。在图4A和4B上提供了示例左输入图像400和右输入图像450。
过程300可包括“生成双向像差图”304,并且如上所述,这指的是输入图像的LR-RL或初始像差图,并且可由LR-RL像差图单元104生成。像差图144可由传统技术生成,例如左图像10和右图像12之间的块匹配、光流技术、IR感测技术,等等。从而,像差图或对应图是左和右图像的统计信息的网格。对于左图像,生成左到右(LR)像差图,其指示出从左图像像素位置到右图像像素位置对于同一图像内容的像素位置中的变化或差异。像差图例如跟踪灰度值(例如YUV颜色空间中的亮度)或RGB颜色像素图像数据值的位置的变化。从而,左图像像素位置处的像差图具有像素坐标中的水平和/或垂直差异来计算右图像中的相应像素位置。相反对于右图像和右到左(RL)像差图也成立。按照一个示例,对于水平变化形成一个像差图并且对于垂直变化形成另一像差图。左和右像差图都是需要的,因为左和右图像像差图取决于使用的算法对于来自两个图像的相应一对像素不一定指示相同像差。按照一种形式,在灰度上提供单一一对像差图,但可替换地,对于三个RGB颜色通道的每一者可提供像差图,使得每个颜色通道具有其自己的两对像差图(左到右水平和垂直像差图和右到左水平和垂直像差图)。按照另一种形式,每个通道对于每个输入图像对具有一个像差图。
参考图5,示出了根据本公开的至少一些实现方式布置的左图像10和右图像12之间的示例左到右像差图500。该像差图可包括像差值,使得具有低像差的像素被指示为较亮,并且具有更大像差的像素被指示为较暗。在其他实现方式中,只使用单个对应图(例如,像差图)。
可选地,过程300可包括“为时间相干性修改像差图”305,并且此过程在下文利用过程1000(图10)来描述。一般而言,输入图像可被下采样以形成像差图,并且可生成沿着视频序列从一帧到另一帧的运动图。随后依据从在前帧的运动量来修改初始像差图以避免运动引起的伪像。在下面提供细节。
过程300可包括“估计置信图”306。这首先包括“利用像差图执行前向重映射”308。对于此操作,置信重投影单元106重投影初始左和右输入图像以形成置信重投影(或者重投影或重映射的图像)。具体而言,前向重映射被用于根据左到右像差来重投影左图像以获得左重投影图像。类似地,根据右到左像差重投影右图像以获得右重投影图像。以下执行重映射:
其中(i,j)指的是图像上的与像差图上的同一像素位置相对应的水平(或列)和垂直(或行)像素坐标,Il是输入左图像,Ir是输入右图像,是所得到的与右图像匹配的左重投影图像,并且是所得到的与右图像匹配的右重投影图像。
接下来,过程300可包括“将重映射的图像数据与输入左和右图像的图像数据相比较”310,并且这可由置信单元108来执行。从而,一旦形成了左和右重投影图像,就可通过使用基于LR-RL像差图和初始左和右输入图像的左和右重投影图像之间的RGB值差异来生成置信值。导致同一像素位置处的重投影和初始图像之间的大于预定阈值thr的RGB差异的任何像差值指示出从左到右的像差不匹配从右到左的像差并且因此在像差图上存在显著的不准确。这被认为是不良估计并且此像素位置的图像数据将不被使用。在此情况下,置信值可被设置到0或者指示出不良估计或低置信的其他值。否则,当差异小于阈值时置信值被设置到1(或者其他期望的值),这指示出良好估计并且确立高置信。对于左重投影图像确定示例置信值,并且对右重投影图像进行相同计算,如下:
其中thr可以是由实验确定的阈值。示出了对于输入图像400和450以及LR像差图500的示例置信图600(图6),其表示每个像素位置处的0或1置信值,其中高置信由黑线示出,其余的具有低置信。可替换地,置信值的范围可以是从零到一,包括零和一,而不是这里的二元决策。
独立于置信值生成,LR-RL初始像差图144可用于生成目标像差图152,其指示出在虚拟视图位置处从左和右输入图像分别到左和右目标图像的图像数据的像素位置的差异的,并且最终用于提供虚拟视图位置14处的左和右变形图像154。初步地,这首先可涉及“确定要合成的目标位置”312,并且可由接收虚拟视图的位置14的数据的视图位置单元110来执行。虚拟视图位置可自动固定在左相机122和右相机124的左和右视图位置之间的某些间隔处。作为其他形式,虚拟视图位置可由图像或显示应用自动设置。作为另外的其他形式,用户通过无论用手、头还是其他身体部位围绕显示的捕捉场景移动虚拟相机来选择虚拟视图位置,例如像VR那样,但否则可以是任何计算设备屏幕或其他用户界面设备上的用户界面上的用户选择。对于虚拟视图位置的起源没有特别限制。
视图位置单元110将图像的期望虚拟视图位置与左和右输入图像进行比较以形成插补比率(或权重)w 150,其指示出虚拟视图相对于左或右输入图像的位置,并且可被称为目标或虚拟视图位置(或目标虚拟视图位置)。按照一种方案,插补比率或虚拟视图位置w是基于线性插补的,并且可被简单地计算为从虚拟视图位置到左和右图像视图之一的距离与左和右图像视图之间的总距离的分数比(fraction)。此操作可简单地包括从相机的定位单元获得w。按照一种形式,如前所述,虚拟视图可按预定的间隔被定位,使得当虚拟视图在左和右图像视图中间时,w是0.5,而当与左和右视图之一的距离是左和右图像视图之间的总距离的三分之一时,w是0.33,依此类推。当虚拟视图被更随机地定位时,例如按用户的选择来定位,插补权重或视图位置w可由已知的方法生成并且经常是基于针对每个视图位置的相机镜头处的(一个或多个)相机的光轴的。插补权重w也可基于二维或三维计算。于是由于此布置,插补权重w具有在0到1的范围内的值。
过程300随后可包括“形成左和右变形图像”314,并且这涉及“将图像变形到目标位置”316。为了实现这点,过程300首先可让目标像差图单元112“生成目标像差图”318。目标像差图是通过如下利用由插补权重或视图位置w表示的插补目标位置修改初始LR或RL像差图来生成的:
其中f指的是像差图,t指的是目标(或者虚拟或合成)图像,并且l和r分别指的是左和右。
一旦用每个或者个体像素位置处的像差值生成了目标像差图152,过程300就可包括“执行前向重映射以将源像素位置重映射到变形的左和右图像上的目标像素位置”320,并且这可由图像变形单元114执行。这包括应用前向重映射算法来将源像素重映射或变形到目标像素位置,如下:
其中是从左输入图像变形的目标位置(视图位置14)处的变形图像,并且是从右输入图像变形的目标位置处的变形图像。上标h指的是水平像差,而v指的是垂直像差。变形图像154随后可被提供给图像合并单元116和梯度图单元118(或者根据需要获得)。合并单元116还接收置信值(或置信图)148。
过程300随后可包括“利用置信值依据合意规则从变形的图像合并重映射像素”322。合并单元116随后遵循以下的合意规则将两个变形图像合并在一起,从而形成表示图像引导场的合并图像156。
其中是合并像素图像数据值(这里例如是R、G或B色度值),cl()和cr()是相应的左和右图像的左和右置信值。零(0)的图像值指示在该像素位置处没有图像数据。阈值T由实验确定。该规则的前两行(或项)在左或右变形图像对于正被分析的像素位置不具有图像数据时利用左或右变形图像中另一者的图像数据来填充合并图像上的像素位置。第三行(或项)在两个变形图像之间的差异较小(或者小于阈值T)时默认到左变形图像,但是也可改为使用右图像默认。否则,当变形图像之间的图像数据值中的差异较大时,或者当置信值较小时,例如为零(0),则合并图像像素位置不被赋予来自变形图像或者任何其他地方的图像值,并且被认为是以后要填充的孔洞。这避免了来自像差图的不准确数据影响合并图像。
参考图8,示例合并图像800具有孔洞802,并且可对应于合并图像156。孔洞被图示为白色像素位置。合并图像800具有大量的没有RGB值的孔洞,这主要是因为孔洞的不准确像差估计(遮挡和去遮挡区域)。
按照一种方案,一旦合并图像被形成为图像引导场,过程300就可包括“执行基于梯度的插补来生成虚拟视图图像的图像数据”324。这种操作在插补等式本身中不使用输入左和右图像的像素图像数据值的情况下执行插补计算。按照一种形式,或者当在合并图像上的当前像素位置处存在图像数据时使用合并图像(或图像引导场)的梯度,或者当在合并图像上的当前像素位置处没有图像数据时使用通过利用基于像差的变形图像形成的梯度。这对每个RGB色度通道重复,直到对于每个颜色通道形成虚拟视图图像为止,并且每个色度通道的通道虚拟视图图像被组合以形成在每个像素位置具有RGB值的单个最终虚拟视图图像。细节由过程700(图7A-7B)提供。
参考图7A-7B,根据本公开的至少一些实现方式布置的用于生成场景的虚拟视图并且尤其是求解基于梯度的插补和孔洞填充能量等式从而生成插补像素图像数据值的示例过程700可包括大体上均匀编号的一个或多个操作702-728。作为非限制性示例,过程700可形成如本文所述的设备100执行的虚拟视图生成过程的至少一部分。此外,本文将参考图18的系统1800来描述过程300。
过程700首先可包括“获得合并图像”702,这例如是由图像合并单元116提供的。
然后,梯度单元118可确定在合并图像上的正被分析的当前像素位置处是否存在图像数据,使得过程700包括询问“在合并图像的像素位置处有图像数据?”704。梯度单元118还可生成并提供执行基于梯度的插补(和孔洞填充)能量函数所需要的梯度值。
从而,如果至少在当前像素位置处存在图像数据,则过程700可包括“从图像引导场获得(一个或多个)梯度值”706,以使得梯度单元118从合并图像的梯度图获得插补数据重投影梯度值。具体地,当根据合意等式(7)在合并图像上的正被分析的像素位置处存在数据时,则过程700让梯度单元118为合并图像生成梯度图(如果尚未执行的话),并且获得当前像素位置的梯度。该梯度图是视图位置14处的虚拟视图的目标梯度图。在此情况下,梯度是由诸如索贝尔(Sobel)等等之类的已知梯度算法生成的,以生成下面为插补使用的梯度ga,n来生成最终虚拟图像160,并且其中a代表正被分析的当前像素位置,并且n指的是相对于当前像素位置a的邻居像素位置。可以为所有具有图像数据的像素a生成梯度,并且这形成图像引导场的梯度图。
按照一个示例,用于能量等式的梯度是像素位置a的上、下、左和右邻居n和像素位置a本身的梯度(如图7A的图像区域750上的梯度图案上所示),但可使用其他的或者更多的邻居位置,例如包括当前像素a的拐角处的邻居在内的所有八个邻居像素。一旦获得了梯度,就将梯度提供给孔洞填充插补单元120。另外,将会明白,这是对于色度RGB通道的每一者单独执行的。
返回操作704处的询问,当至少在当前像素位置处不存在图像数据时,过程700可包括“生成像差引导的重投影孔洞填充梯度值”708,因为图像引导场在此情况下不能提供引导。按照此方案,每当当前像素位置或者要使用的期望梯度图案的任何邻居像素位置缺乏图像数据时,就获得这个孔洞填充梯度,而不是图像引导场梯度。按照一种形式,如果邻居像素位置的任何一者缺失,则当前像素位置的所有梯度都被以这种方式来计算。按照另一种方案,只有缺失图像数据的邻居像素位置的梯度具有以这种方式计算的梯度。在此情况下,具有图像数据的其他邻居像素位置可以改为从图像引导场获得其梯度。
为了生成梯度值,过程700可包括“使用插补权重w来确定梯度”710,并且这是上文在等式(4)中用来从LR-RL初始像差图生成目标像差的那同一个插补权重(或者视图位置)w。具体而言,当合并图像的某些区域根据合意等式(7)空白,没有RGB色度值时,则图像引导场不能提供任何有效的引导信息。在此情况下,上文记载的插补和孔洞填充能量等式(等式(9)、(10)和(11))被强制忽略图像引导场并且改为保持像差引导的重投影梯度值来自动填充引导的图像场的空白区域。在此情况下,当在合并图像中缺失图像数据时,对于起初用于形成合并图像156的重映射或变形的左和右图像和154的图像数据生成ga,n值的梯度图,并且这可对RGB颜色通道的每一者生成。例如,可通过使用变形图像上的正被分析的像素位置和(一个或多个)邻居像素的图像数据之间的差异来形成像差引导的重投影梯度值的梯度图(712)。按照一个示例,可通过下式来计算这些梯度:
同样,这里的a代表正被分析的当前像素位置,n指的是相对于当前像素位置a的邻居像素位置,ga,n是像素位置a和n之间的梯度,并且w指的是与上文所述相同的插补比率或权重(或视图位置)。这种梯度可根据需要被生成或者可作为预备操作被生成以求解能量等式来形成孔洞填充梯度图158。
一旦生成了梯度图158,或者一旦获得了当前和邻居梯度值(如果根据需要对于每个当前像素位置生成的话),方法700就可包括“求解基于梯度的插补能量函数”714,并且这可由插补和孔洞填充单元120执行。能量函数可用于定义优化问题并且其可被最小化来生成最终虚拟(或合成)图像160的最终插补图像数据,如等式(9)中所示:
min(E)=min(Eg+γEd) (9)
能量函数是梯度能量或平滑项Eg和数据能量(或历史约束)项Ed的组合。变量γ是加权因子。细节被说明如下。
过程700可包括“形成梯度能量项”716。从而,使用能量平滑或梯度能量项,其在可能时保持图像引导场的图像梯度,否则则保持像差引导的重投影梯度值。在一个实现方式中,这种梯度能量项是由等式(10)提供的:
其中Eg是测量以下两项之间的相似性(或差异)的梯度能量项(或平滑项):(1)图像引导场的梯度或者变形的左和右图像的梯度(ga,n)之一,以及(2)最终虚拟图像的当前和邻居像素图像值之间的差异。另外,是最终或目标插补图像当前像素值并且在要生成的等式中是未知的,Na是像素a的邻居像素位置,其中邻居是像素位置a的上、下、左和右邻居n(如图7A的图像区域750上所示以及如上所述),但如上所述也可使用其他或更多的邻居位置。梯度能量项如图所示以及如上所述也通过均方被正规化以保持梯度。从而,对于能量项等式(10),过程700只需要包括“对于当前像素位置获得邻居梯度”718,如上所述。对于此项不需要其他值。从而,将会理解,这里在这个等式中也不使用输入左和右图像的像素图像值。
这个能量等式(10)是基于泊松的插补等式。具体而言,为了生成插补的视图,现有的方法通常首先使用一些试探(或者试错)规则来填充孔洞,例如双线性、双三次和最近邻居插补、交叉视图填充、或者在插补等式本身中直接使用输入图像的图像值的梯度移位。然后,应用细化算法来解释不准确填充的信息。这些类型的算法只在生成准确像差图的情况下工作良好。任何不准确的像差值可导致最终结果中的大量显著伪像。另外,细化步骤可将伪像减轻到某种程度。然而,当像差误差太大时,细化通常只能通过模糊伪像来隐藏它们。
因此,取代填充孔洞并随后细化结果,插补在这里被视为修补任务并且使用泊松编辑技术来生成结果。例如,如上所述,参见Pérez,P.等人所著的“Poisson image editing(泊松图像编辑)”,ACM图形学汇刊(TOG)22.3,313-318(2003)。通过应用泊松图像编辑,能量函数Eg可被最小化以保持图像引导场的RGB值。
另外,过程700可包括“使用历史约束数据能量项”720。由于等式(10)提供的梯度能量项由于梯度的使用而是差分的,所以添加边界条件来定义整体能量最小化问题。边界条件被表征为数据能量(或历史约束)项并且可由下式来定义:
其中p是同一像素位置但在先前图像中的插补像素图像值,并且其中是要确定的最终虚拟视图图像的当前像素图像值(例如,正在寻求的图像像素值)。从而,过程700可包括“从在前帧获得先前插补值”722。注意,等式(11)提供的数据能量项测量最终虚拟图像160和先前虚拟图像之间的相似性(或差异)。这一项也被用均方来正规化。
完全能量等式于是可被表述为:
其中加权因子γ对于当前像素位置对最终虚拟图像160和先前虚拟图像之间的相似性加权。该加权因子可以是任何适当的值。在一个实现方式中,当前示例(等式(13))在先前图像在同一像素位置具有图像值时示出0.5的加权因子,但在其他情况下为零。加权因子由实验确定。
过程700可包括“应用迭代求解器”724。上述能量等式(12)形成稀疏线性系统,这可由迭代应用的共轭梯度求解器来求解,该求解器对于最终虚拟视图图像的每个像素图像值收敛到最正确的这可涉及使得过程700包括“确定梯度能量项和数据能量项两者上的最小平方误差”726,同时对于同一当前像素位置对不同邻居的梯度差异求和,然后对于帧上的所有像素位置a=0到A或者至少帧上的正被分析的那些像素位置并且作为单次迭代对这些邻居结果求和。最终,帧总计被最小化以获得该等式的最小能量。从而按照一种形式,能量等式的最小化是在帧级别上的。对于三个RGB颜色通道的每一者单独应用能量等式(12)。
过程700可包括“提供插补目标图像值”728,并且这可包括对于当前像素位置提供最终插补值,并且取决于颜色空间方案,对于每个颜色通道提供一个插补值,从而对于RGB,每个或者个体像素位置具有三个插补值以形成一个完整的虚拟或合成图像。
返回到过程300,过程300可包括“提供最终虚拟视图图像的图像数据”326,并且其中处理可继续,使得最终虚拟图像被提供来呈现给观看者。可利用任何一个或多个适当的技术来提供最终虚拟图像以供呈现。在一个实现方式中,提供最终虚拟图像来呈现给观看者包括将最终虚拟图像发送到具有显示屏幕的接收设备。在一个实现方式中,提供最终虚拟视图图像来呈现给观看者包括将最终虚拟视图图像发送到存储器。就本文使用的而言,提供图像供呈现包括将图像发送到显示设备,将图像存储到存储器以供以后显示,和/或将图像发送到另一设备以供在该设备处显示。图像900(图9)提供了示例最终虚拟视图插补图像,其是这里使用的实现方式的结果并且填充合并图像800(图8)的孔洞802。
过程300以及进而过程700可对任何数目的输入图像对、成对视频帧等等串行或并行地重复任意多次。如前所述,过程300可提供与相对于场景的视图位置相对应的虚拟图像、视图、图像帧、视频帧等等。
过程300可由任何适当的设备、系统或平台实现,例如本文论述的那些。在一个实现方式中,过程300是由一设备实现的,该设备具有存储器来存储第一和第二输入图像,以及任何其他论述的数据结构,并且具有处理器来执行操作302-326和702-728。在一个实现方式中,存储器和处理器是经由单片现场可编程门阵列集成电路实现的。就本文使用的而言,术语单片指的是一器件与其他器件分立,但是其可为了通信和电力供给而耦合到其他器件。
参考图10,过程300具有如上所述的可选的运动相干性操作305,并且是由示例过程1000执行的,过程1000用于生成场景的虚拟视图,具体地用于生成被调整来将视频序列中的帧到帧图像内容运动作为因素计入在内的像差图。过程1000是根据本公开的至少一些实现方式布置的,并且可包括大体上均匀编号的一个或多个操作1002-1020。作为非限制性示例,过程1000可形成如本文所述的设备100执行的虚拟视图生成过程的至少一部分。此外,本文可参考图18的系统1800来描述过程1000,或者过程1000可使用图18的系统1800的单元。
独立地插补每个视频帧如上所述将向插补的视频中引入抖动和闪烁伪像。时间上不相干的结果将会很大程度地破坏观看体验并且引起用户的视觉疲劳。
为避免这些伪像,过程1000可包括“对帧下采样”1002以在更小分辨率的帧上工作以避免可影响实时操作的不必要的大计算负担和延迟。
过程1000随后可包括“估计运动图”1004,这包括“确定两个帧之间的图像值差异”1006。具体地,这是通过直接计算两个图像上的相应像素位置之间的RGB差异以估计每一对或者个体对连续视频帧之间的运动图来执行的。结果是差异值的运动图,并且当输入左和右图像来自分开的左和右视频序列时对于输入左和右图像的每一者可分别提供一个运动图。
过程1000随后可包括“细化深度数据”1008。从而,为了进一步对通常发生在对象边界区域中的不准确深度信息进行补偿,过程1000可包括“对隔离的运动像素滤波”1010,并且按照一个示例,可首先使用中值滤波器来去除任何隔离的或者离群的运动像素值。过程1000随后可包括“扩张运动图”1012,这放大了被跟踪的运动的区域以更好地确保在运动图本身不够准确的情况下所有运动像素被捕捉。然后,过程1000可包括“对运动图上采样”1014,并且上采样到输入图像的原始分辨率以便使用运动图来修改初始像差图,促成更快的时间相干性处理。否则,下采样的帧可改为被运动图修改,并且帧随后可被上采样。
过程1000现在可包括“依据运动的量细化当前像差图”1016。这里,可根据运动图和在前帧像差图来细化当前帧像差图。这可包括“单独或者与当前像差值结合地使用在前像差值”1018。具体而言,对于每个或者个体像素,如果根据运动图上对于该像素位置的差异值运动小于预定义的阈值,则先前帧的在前像差值被用于替代当前像差值。否则,当运动图上的运动差异值大于阈值时,根据当前运动值将当前像差值与在前像差值组合在一起。该组合可以是平均,等等。这是分别在左和右图像上执行的并且分别使用左和右像差图。过程1000随后可包括“提供像差图”1020,并且提供给置信重投影单元106和目标像差图单元112以继续例如如上所述在操作306处的虚拟视图生成。
参考图11,以上呈现的虚拟视图生成过程300可以高质量插补视频。然而,求解具有能量函数(12)的线性系统可非常耗时。为了加速视频插补和孔洞填充,并且确保或达到实时插补性能,根据本公开的至少一些实现方式布置了用于生成场景的虚拟视图并且具体地用于加速虚拟视图生成过程的示例过程1100,该示例过程1100可包括大体上均匀编号的一个或多个操作1102-1120。作为非限制性示例,过程1100可形成如本文所述的设备100执行的虚拟视图生成过程的至少一部分。此外,本文可参考图18的系统1800来描述过程1100,或者过程1100可使用图18的系统1800的单元。
过程1100可包括“生成缩放视频帧的金字塔”1102,并且这可包括为每个视频帧构建金字塔。按照一种方案,构造具有同一图像的两帧的两层金字塔,其中每一帧处于不同的比例(或分辨率)。按照一个示例,缩放比例因子0.25被用于形成更小的帧,其大约是全分辨率帧的尺寸的四分之一。更小的或者缩减的帧这里指的是缩减的左和右或者说第一和第二输入图像。可改为使用其他比例因子。
过程1100随后可包括“使用更小的视频帧来生成变形图像、图像引导场和梯度图”1104。从而,例如,过程300的虚拟视图生成操作302至322是在更小的帧上执行的以生成小图像引导场的小合并图像。过程1100随后可包括“向更小的视频帧应用修补”1106,例如用过程300的操作324和过程700的操作来生成具有插补的图像值和填充的孔洞的小比例或者缩减的虚拟视图图像,并且按照一个示例,是根据基于梯度的泊松插补和孔洞填充能量等式(12)的。将会理解本文描述的加速技术可结合不同的插补等式来使用。
过程1100接下来可包括“将孔洞填充的更小视频帧上采样到原始全分辨率”1108,以使得上采样的虚拟视图图像的图像数据可被用于填充通过使用全分辨率图像引导场形成的全分辨率大小的虚拟视图图像上的孔洞。
具体而言,过程1100可包括“使用原始全分辨率帧来生成目标合并图像形式的图像引导场”1110,并且通过使用如上所述的过程300的操作302至322。从而,此操作使用原始或全尺寸分辨率帧(或图像)来生成重投影的RGB全尺寸或全分辨率合并图像作为全分辨率或全尺寸图像引导场。过程1100随后可包括“生成目标梯度图”1112,从而提供如上所述的全分辨率合并图像的像素位置和相邻像素位置之间的图像数据的差异。
过程1100可包括“通过使用全分辨率合并图像的梯度图将插补的图像数据放置到虚拟图像中以在具有来自全分辨率合并图像的图像数据的像素位置处插补像素图像数据”1114。从而,当全分辨率合并图像具有图像数据时,通过使用来自全分辨率合并图像的梯度图的图像引导场梯度来求解插补等式。
过程1100可包括“使用上采样的更小图像来填充全分辨率虚拟视图图像上的孔洞”1116。从而,上采样的更小图像(或更小的视频帧)的梯度或者梯度图(当执行时)随后被用于填充全分辨率虚拟视图图像上的孔洞,这些孔洞是由于全尺寸像差图上的不准确性而由全分辨率合并图像留下的。
过程1100可包括“通过将最终梯度图匹配到全分辨率合并图像梯度图来细化填充的虚拟视图图像”1118。从而,在所得到的虚拟图像上的某些像素位置,或者所有像素位置,所得到的虚拟图像的图像数据被细化以匹配全分辨率图像引导场(或全分辨率合并图像)的梯度图。执行这个是为了使得由两个源中的差异引起的伪像可被减小。
过程1100可包括“提供最终虚拟图像”1120。此加速过程可对每个颜色空间通道单独执行,或者当使用RGB时对于每个颜色通道单独执行。从而,这里,每个颜色空间通道的所得到的虚拟图像的图像数据被组合以形成单个图像。最终图像随后被提供来供进一步处理,例如渲染等等。
通过在一系列具有很大视差的有挑战性的图像上应用公开的方法来进行了实验。对于每个测试案例,用两个相机捕捉两个图像作为输入,并且在两个相机视图之间插补十个虚拟或合成图像。这里报告每个测试案例的第5个插补图像。在图上标注为方法(A)的当前公开的方法被与三个其他传统视图插补方法相比较,包括:
(B)具有孔洞填充和基于优化的细化的利用重投影来插补图像的基线方法。对于基线方法,来自Kopf,J.等人所著的“Image-based rendering in the gradient domain.(梯度域中的基于图像的渲染。)”,ACM图形学汇刊(TOG)32.6,p.199(2013)的优化模型被用于细化。
(C)Facebook,Surround 360的Facebook Surround 360视图合成算法,https://github.com/facebook/Surround360。对于Facebook Surround 360,视图合成算法是从其在Github中的共享代码库中提取的。
(D)上文引用的Kopf的传统梯度域方法中的基于图像的渲染的当前实现方式,称为(Siggraph 2013)。相同的初始LR-RL初始像差图被用于上文提到的所有四个方法。
参考图12A至12D-1,利用输入图像400和450(图4A-4B)生成了结果。最终虚拟视图图像1200、1202、1204、和1206(图12A-12D)分别示出了方法(A)至(D)的结果,并且图像1208、1210、1212、和1214(图12A-1至12D-1)分别是图像1200、1202、1204、和1206的特写。由于大量的视差,像差估计在均一区域和对象边界区域中是噪声很多的。基线方法(图12B和12B-1)生成具有重影伪像和折断结构的结果。Kopf方法(图12D和12D-1)可生成比基线方法更好的结果,但在猴子嘴和手部区域附近仍遭遇重影伪像。当前公开的方法(图12A和12A-1)能够非常好地以非常小的可见伪像应对该有挑战性的示例。
参考图13A至13G-1,利用与图12A至图12D-1相同的参数执行了另一实验,只不过这里利用了不同的输入图像。这里,输入图像1300和1302(图13A-13B)被用于形成左到右像差图1304(图13C)并且具有相应的特写图像1314、1316、1318、和1320的最终虚拟视图图像1306、1308、1310、和1312分别由方法(A)至(D)生成。两个输入图像1300和1302中的最大视差是90像素。如图所示,基线结果(1308和1316)遭遇显著的重影伪像。虽然基于优化的细化在Kopf结果(1312和1320)中减轻了一些伪像,但其在脸部和手指区域中引起严重的模糊伪像。
参考图14A至图14G-1,利用与图12A至图12D-1相同的参数执行了又一实验,只不过利用了不同的输入图像。这里,输入图像1400和1402(图14A-14B)被用于形成左到右像差图1404(图14C),并且具有相应的特写图像1414、1416、1418、和1420的最终虚拟视图图像1406、1408、1410、和1412分别由方法(A)至(D)生成。输入图像1400和1402包含大量的视差,并且像差估计结果1404在几个突出区域中是噪声极多且不准确的。基线方法(1408和1416)和Kopf方法(1412和1420)都生成具有严重重影伪像的结果。耳朵和脸的左侧都已被复制了。与之对照,本文公开的方法的结果(1406和1414)很大程度上减轻了重影伪像。
参考图15A-15B、图16和图17,本文公开的本虚拟视图生成方法从具有相对大的视差的图像和有噪声且不准确的深度(或像差)信息极好地插补视图。在另外一个实验中,输入图像1500和1550被结合用于像差图生成的一种已知光流方法来使用。光流图1600示出了取决于图像中的对象的深度的颜色变化。有了这些准确的像差估计算法,例如先进光流方法,当前公开的虚拟视图生成方法容易生成无伪像的视图插补结果,如最终虚拟视图图像1700所示。
虽然本文论述的示例过程的实现方式可包括按图示顺序进行示出的所有操作,但本公开不限于此,并且在各种示例中,这里的示例过程的实现方式可只包括示出的操作的子集,包括按与图示不同的顺序执行的操作,或者包括额外的操作。
此外,本文论述的操作中的任何一个或多个可响应于由一个或多个计算机程序产品提供的指令来进行。这种程序产品可包括提供指令的信号承载介质,所述指令当被例如处理器执行时可提供本文描述的功能。可在任何形式的一个或多个机器可读介质中提供计算机程序产品。从而,例如,包括一个或多个图形处理单元或处理器核的处理器可响应于被一个或多个机器可读介质输送到处理器的程序代码和/或指令或指令集而进行这里的示例过程的一个或多个块。一般而言,机器可读介质可通过程序代码和/或指令或指令集的形式输送软件,所述程序代码和/或指令或指令集可使得本文描述的任何设备和/或系统实现这些设备或系统的至少一些部分,或者如本文所述的任何其他模块或组件。
按照在本文描述的任何实现方式中使用的,术语“模块”指的是被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可实现为软件封装、代码和/或指令集或指令,并且如本文描述的任何实现方式中使用的“硬件”例如可单一地或者组合地包括硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储被可编程电路执行的指令的固件。模块可集体地或者个体地实现为形成更大系统的一部分的电路,例如集成电路(IC)、片上系统(SoC),等等。
参考图18,根据本公开的至少一些实现方式布置了用于生成场景的虚拟视图的示例图像处理系统1800。如图18中所示,系统1800可包括(一个或多个)处理器1850,其可包括或不包括一个或多个图像信号处理器(image signal processor,ISP)1852,以及(一个或多个)存储器库1854。如还示出的,系统1800可具有逻辑单元或模块1804,其中包括原始图像数据处理单元1806,该原始图像数据处理单元1806可处理来自成像设备1802的图像数据,成像设备1802例如是系统1800上的或者与系统1800通信的一个或多个相机。原始图像数据处理单元1806可对原始图像数据执行足以用于虚拟视图生成的预处理,并且这可包括例如根据需要的YUV和RGB颜色空间之间的转换。逻辑模块1804可具有合成图像形成单元1810,该合成图像形成单元1810可包括像差图单元1812、可选的运动相干性单元1814、置信重投影单元1816、置信图单元1818、目标像差单元1820、变形或图像变形单元1822、图像合并单元1824、梯度单元1826、插补和孔洞填充单元1828、以及可选的加速缩放单元1830。在系统1800的示例中,存储器1854可存储图像或帧数据、重投影和/或变形图像或帧数据、填充的变形图像或帧数据、细化的变形图像或帧数据、最终虚拟图像或帧数据、置信值、梯度值或梯度图或者本文论述的任何其他数据。
系统1800还可具有用于发送或接收图像数据的天线1856、用于对图像数据编码或解码的编码器1858、以及具有能够显示图像1862的屏幕的显示器1860。
这里的单元的名称可具有与设备100相同或相似的名称,使得单元执行与设备100上的那些相同或相似的任务。否则,在这里详述的过程中根据需要描述单元的操作。
如图所示,在一些示例中,合成图像形成单元1810中的一个或多个或一些部分是经由ISP 1852实现的。在其他示例中,合成图像形成单元1810中的一个或多个或一些部分是经由(一个或多个)中央处理器形成处理器1850、图像处理单元、图像处理管线、图像信号处理器之类的实现的。在一些示例中,合成图像形成单元1810中的一个或多个或一些部分是用作为片上系统(SoC)的硬件或者其他专用硬件或其他共享硬件实现的。在一些示例中,合成图像形成单元1810中的一个或多个或一些部分是经由现场可编程门阵列(fieldprogrammable gate array,FPGA)用硬件实现的。
(一个或多个)处理器1850和图像信号处理器1850可包括任何数目和类型的可提供如本文所述的操作的图像或图形处理单元。这种操作可经由软件或硬件或者其组合来实现。例如,图像信号处理器1852可包括专用于操纵和/或分析从存储器1854获得的图像的电路。中央处理器1850可包括任何数目和类型的处理单元或模块,该处理单元或模块可以为系统1800提供控制和其他高级别功能和/或提供如本文所述的任何操作。存储器1854可以是任何类型的存储器,例如易失性存储器(例如,静态随机访问存储器(Static RandomAccess Memory,SRAM)、动态随机访问存储器(Dynamic Random Access Memory,DRAM)等等)或者非易失性存储器(例如,闪存等等),等等。在非限制性示例中,存储器1854可由缓存存储器实现。在一个实现方式中,合成图像形成单元1810中的一个或多个或一些部分是经由图像处理器1802的执行单元(execution unit,EU)实现的。EU可例如包括可编程逻辑或电路,例如可提供多种多样的可编程逻辑功能的一个或多个逻辑核。在一个实现方式中,合成图像形成单元1810中的一个或多个或一些部分是经由诸如固定功能电路之类的专用硬件实现的。固定功能电路可包括专用逻辑或电路并且可提供一组固定功能入口点,这些固定功能入口点可映射到用于固定目的或功能的专用逻辑。
本文描述的系统的各种组件可以用软件、固件、和/或硬件和/或其任何组合实现。例如,本文论述的设备或系统的各种组件可至少部分由计算片上系统(SoC)的硬件提供,例如可存在于计算系统中,例如智能电话或相机阵列中。本领域技术人员可认识到,本文描述的系统可包括在相应附图中尚未描绘的额外组件。例如,本文论述的系统可包括为了清晰起见尚未描绘的额外组件。
图19是根据本公开的至少一些实现方式布置的示例系统1900的示意图。在各种实现方式中,系统1900可以是移动设备系统,但是系统1900不限于此情境。例如,系统1900可被包含到以下各项中:个人计算机(personal computer,PC)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(personaldigital assistant,PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(mobile internet device,MID)、消息传递设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lensreflex,DSLR)相机)、监视相机、包括相机的监视系统,等等。
在各种实现方式中,系统1900包括耦合到显示器1920的平台1902。平台1902可从内容设备接收内容,其中内容设备例如是(一个或多个)内容服务设备1930或(一个或多个)内容递送设备1940或其他内容源,例如图像传感器1919。例如,平台1902可从图像传感器1919或任何其他内容源接收如本文所述的图像数据。包括一个或多个导航特征的导航控制器1950可用于与例如平台1902和/或显示器1920交互。在下文更详述地描述这些组件的每一者。
在各种实现方式中,平台1902可包括芯片集1905、处理器1910、存储器1912、天线、存储装置1914、图形子系统1915、应用1916、图像信号处理器1917和/或无线电装置1918的任何组合。芯片集1905可提供处理器1910、存储器1912、存储装置1914、图形子系统1915、应用1916、图像信号处理器1917和/或无线电装置1918之间的相互通信。例如,芯片集1905可包括能够提供与存储装置1914的相互通信的存储适配器(未图示)。
处理器1910可实现为复杂指令集计算机(Complex Instruction Set Computer,CISC)或精简指令集计算机(Reduced Instruction Set Computer,RISC)处理器、x86指令集兼容处理器、多核或者任何其他微处理器或中央处理单元(CPU)。在各种实现方式中,处理器1910可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器,等等。
存储器1912可实现为易失性存储器设备,例如但不限于,随机访问存储器(RAM)、动态随机访问存储器(DRAM)或静态RAM(SRAM)。
存储装置1914可实现为非易失性存储设备,例如但不限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池后备SDRAM(同步DRAM)和/或网络可访问存储设备。在各种实现方式中,例如当包括多个硬盘驱动器时,存储装置1914可包括技术来为有价值的数字媒体增加存储性能增强保护。
图像信号处理器1917可实现为用于图像处理的专用数字信号处理器之类的。在一些示例中,图像信号处理器1917可基于单指令多数据或多指令多数据体系结构之类的来实现。在一些示例中,图像信号处理器1917可被表征为媒体处理器。如本文所述,图像信号处理器1917可基于片上系统体系结构和/或基于多核体系结构来实现。
图形子系统1915可执行诸如静态或视频之类的图像的处理以供显示。图形子系统1915例如可以是图形处理单元(graphics processing unit,GPU)或视觉处理单元(visualprocessing unit,VPU)。模拟或数字接口可用于通信地耦合图形子系统1915和显示器1920。例如,该接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD符合技术中的任何一者。图形子系统1915可被集成到处理器1910或芯片集1905中。在一些实现方式中,图形子系统1915可以是通信地耦合到芯片集1905的独立设备。
本文描述的图形和/或视频处理技术可在各种硬件体系结构中实现。例如,图形和/或视频功能可被集成在芯片集内。可替换地,可使用分立的图形和/或视频处理器。作为另外一种实现方式,图形和/或视频功能可由包括多核处理器在内的通用处理器提供。在另外的实现方式中,这些功能可实现在消费电子设备中。
无线电装置1918可包括能够利用各种适当的无线通信技术来发送和接收信号的一个或多个无线电装置。这种技术可涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(wireless local area network,WLAN)、无线个人区域网(wireless personal area network,WPAN)、无线城域网(wireless metropolitan areanetwork,WMAN)、蜂窝网络和卫星网络。在跨这种网络通信时,无线电装置1918可根据任何版本的一个或多个适用的标准操作。
在各种实现方式中,显示器1920可包括任何电视型监视器或显示器。显示器1920例如可包括计算机显示屏幕、触摸屏显示器、视频监视器、类似电视的设备、和/或电视机。显示器1920可以是数字的和/或模拟的。在各种实现方式中,显示器1920可以是全息显示器。另外,显示器1920可以是可接收视觉投影的透明表面。这种投影可传达各种形式的信息、图像和/或对象。例如,这种投影可以是移动增强现实(mobile augmented reality,MAR)应用的视觉覆盖。在一个或多个软件应用1916的控制下,平台1902可在显示器1920上显示用户界面1922。
在各种实现方式中,(一个或多个)内容服务设备1930可由任何国家的、国际的和/或独立的服务所容宿并从而例如是平台1902经由互联网可访问的。(一个或多个)内容服务设备1930可耦合到平台1902和/或显示器1920。平台1902和/或(一个或多个)内容服务设备1930可耦合到网络1960以向和从网络1960传输(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备1940也可耦合到平台1902和/或显示器1920。
图像传感器1919可包括可基于场景提供图像数据的任何适当的图像传感器。例如,图像传感器1919可包括基于半导体电荷耦合器件(charge coupled device,CCD)的传感器、基于互补金属氧化物半导体(complimentary metal-oxide-semiconductor,CMOS)的传感器、基于N型金属氧化物半导体(N-type metal-oxide-semiconductor,NMOS)的传感器,等等。例如,图像传感器1919可包括可检测场景的信息以生成图像数据的任何设备。
在各种实现方式中,(一个或多个)内容服务设备1930可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的具备互联网能力的设备或家电、以及能够经由网络1960或直接地在内容提供者与平台1902和/或显示器1920之间单向或双向地传输内容的任何其他类似设备。将会明白,可经由网络1960单向地和/或双向地向和从系统1900中的组件的任何一者和内容提供者传输内容。内容的示例可包括任何媒体信息,例如包括视频、音乐、医疗和游戏信息,等等。
(一个或多个)内容服务设备1930可接收内容,例如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供者的示例可包括任何有线或卫星电视或无线电台或互联网内容提供者。提供的示例并不意图以任何方式限制根据本公开的实现方式。
在各种实现方式中,平台1902可从具有一个或多个导航特征的导航控制器1950接收控制信号。导航控制器1950的导航特征例如可用于与用户界面1922交互。在各种实现方式中,导航控制器1950可以是指点设备,该指点设备可以是允许用户将空间(例如,连续的和多维的)数据输入到计算机中的计算机硬件组件(具体而言是人机接口设备)。诸如图形用户界面(GUI)、电视机和监视器之类的许多系统允许用户利用物理手势控制计算机或电视机和向其提供数据。
导航控制器1950的导航特征的移动可被在显示器上显示的指针、光标、聚焦环、或其他视觉指示物的移动复制在显示器(例如,显示器1920)上。例如,在软件应用1916的控制下,位于导航控制器1950上的导航特征例如可被映射到在用户界面1922上显示的虚拟导航特征。在各种实现方式中,导航控制器1950可不是单独的组件,而是可被集成到平台1902和/或显示器1920中。然而,本公开并不限于本文示出或描述的元素或者情境。
在各种实现方式中,例如,当被启用时,驱动器(未示出)可包括使得用户能够在初始启动之后通过触摸按钮像电视机那样即刻开启和关闭平台1902的技术。程序逻辑可允许平台1902即使在平台被“关闭”时也可将内容流送到媒体适配器或(一个或多个)其他内容服务设备1930或(一个或多个)内容递送设备1940。此外,芯片集1905可包括对例如5.1环绕立体声音频和/或高清晰度7.1环绕立体声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实现方式中,图形驱动器可包括高速外围组件互连(peripheral component interconnect,PCI)图形卡。
在各种实现方式中,系统1900中示出的组件中的任何一个或多个可被集成。例如,平台1902和(一个或多个)内容服务设备1930可被集成,或者平台1902和(一个或多个)内容递送设备1940可被集成,或者平台1902、(一个或多个)内容服务设备1930、和(一个或多个)内容递送设备1940可被集成。在各种实现方式中,平台1902和显示器1920可以是集成的单元。例如,显示器1920和(一个或多个)内容服务设备1930可被集成,或者显示器1920和(一个或多个)内容递送设备1940可被集成。这些示例并不意图限制本公开。
在各种实现方式中,系统1900可实现为无线系统、有线系统、或者两者的组合。当实现为无线系统时,系统1900可包括适合于通过无线共享介质通信的组件和接口,例如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑,等等。无线共享介质的示例可包括无线频谱的一些部分,例如RF频谱等等。当实现为有线系统时,系统1900可包括适合于通过有线通信介质通信的组件和接口,例如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(network interface card,NIC)、盘控制器、视频控制器、音频控制器,等等。有线通信介质的示例可包括导线、线缆、金属引线、印刷电路板(printed circuit board,PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤,等等。
平台1902可建立一个或多个逻辑或物理信道来传输信息。该信息可包括媒体信息和控制信息。媒体信息可以指表示打算给用户的内容的任何数据。内容的示例例如可包括来自语音交谈、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音交谈的数据可例如是话音信息、静默时段、背景噪声、舒适噪声、音调,等等。控制信息可以指表示打算用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于将媒体信息路由过系统,或者指示节点以预定的方式处理媒体信息。然而,实现方式并不限于图19中示出或描述的元素或情境。
如上所述,系统1900可实现为不同的物理风格或外形参数。图20图示了根据本公开的至少一些实现方式布置的示例小外形参数设备2000。在一些示例中,系统1800或1900可经由设备2000实现。在其他示例中,本文论述的其他系统、组件或模块或者其一些部分可经由设备2000实现。在各种实现方式中,例如,设备2000可实现为具有无线能力的移动计算设备。移动计算设备例如可以指具有处理系统和移动电源或供给电源(例如一个或多个电池)的任何设备。
移动计算设备的示例可包括个人计算机(personal computer,PC)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(personal digital assistant,PDA)、蜂窝电话、组合蜂窝电话/PDA、智能设备(例如,智能电话、智能平板或智能移动电视)、移动互联网设备(mobile internet device,MID)、消息传递设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lens reflex,DSLR)相机),等等。
移动计算设备的示例还可包括被布置为由机动车辆或机器人实现的或者被人穿戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带扣计算机、臂环计算机、鞋子计算机、衣服计算机和其他可穿戴计算机。在各种实现方式中,例如,移动计算设备可实现为除了语音通信和/或数据通信以外还能够执行计算机应用的智能电话。虽然作为示例一些实现方式可利用被实现为智能电话的移动计算设备来描述,但可明白也可利用其他无线移动计算设备来实现其他实现方式。实现方式不限于此情境中。
如图20中所示,设备2000可包括具有正面2001和背面2002的外壳。设备2000包括显示器2004、输入/输出(I/O)设备2006、彩色相机2021、彩色相机2022、和集成天线2008。在一些实现方式中,彩色相机2021和彩色相机2022获得如本文所述的图像。在一些实现方式中,设备2000不包括彩色相机2021和2022并且设备2000从另一设备获得输入图像数据(例如,本文论述的任何输入图像数据)。设备2000还可包括导航特征2012。I/O设备2006可包括用于将信息输入到移动计算设备中的任何适当的I/O设备。I/O设备2006的示例可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别设备和软件,等等。信息也可经由麦克风(未示出)被输入到设备2000中或者可被语音识别设备数字化。如图所示,设备2000可包括彩色相机2021、2022,以及集成到设备2000的背面2002(或者别处)的闪光灯2010。在其他示例中,彩色相机2021、2022和闪光灯2010可被集成到设备2000的正面2001,或者正面和背面相机集合都可被提供。彩色相机2021、2022和闪光灯2010可以是相机模块的组件以作为具有IR纹理校正的彩色图像数据的起源,该彩色图像数据可被处理成图像或流视频,该图像或流视频例如被输出到显示器2004和/或经由天线2008从设备2000远程传输。
各种实现方式可利用硬件元素、软件元素或者两者的组合来实现。硬件元素的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(application specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)、数字信号处理器(digital signalprocessor,DSP)、现场可编程门阵列(field programmable gate array,FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集,等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(application program interface,API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或者这些的任何组合。确定一实现方式是否利用硬件元素和/或软件元素实现可根据任何数目的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
至少一个实现方式的一个或多个方面可由存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令实现,该指令当被机器读取时使得该机器制造逻辑来执行本文描述的技术。这种被称为IP核的表示可被存储在有形机器可读介质上并且被提供给各种客户或制造设施以加载到实际制作该逻辑或处理器的制造机器中。
虽然已参考各种实现方式描述了本文记载的某些特征,但此描述并不打算被从限制意义上来解释。因此,对本公开所属领域的技术人员来说明显的是,对本文描述的实现方式的各种修改以及其他实现方式被认为属于本公开的精神和范围内。
在一个或多个第一实现方式中,一种用于生成场景的虚拟视图图像的设备,包括:存储器,用于存储分别与同一场景的第一和第二视图位置相对应的第一和第二输入图像;以及耦合到所述存储器的处理器,所述处理器被布置为通过以下方式来操作:通过合并与所述第一和第二输入图像相关联的变形图像来生成所述第一和第二视图位置之间的目标虚拟视图的合并图像;并且在通过使用所述合并图像生成的目标虚拟视图处填充虚拟视图图像上的孔洞,并且包括求解对以下两项做出比较的能量等式:(1)在所述等式中都未知的最终插补当前像素值和最终插补相邻像素值之间的差异,以及(2)当在所述合并图像上的与正被计算的所述最终插补当前像素值相对应的当前像素位置处不存在图像数据时通过使用所述变形图像的图像值和至少一个插补权重生成的梯度。
关于所述第一实现方式,此外,所述处理器被布置为通过以下方式来操作:在所述合并图像在所述当前像素位置处具有图像数据时使用所述能量等式将插补图像数据放置在所述虚拟视图图像上,并且其中所述能量等式的梯度与在所述合并图像在所述当前像素位置处不具有图像数据时计算的梯度相比是以不同方式生成的。
关于所述第一实现方式,此外,所述处理器被布置为通过以下方式来操作:生成指示出所述第一和第二输入图像之间的图像数据的像素位置的差异的一个或多个初始像差图;并且形成所述合并图像包括使用置信值,这些置信值指示出所述初始像差图中的至少一者的准确性的。
关于所述第一实现方式,此外,所述处理器被布置为通过以下方式来操作:生成指示出所述第一和第二输入图像之间的图像数据的像素位置的差异的一个或多个初始像差图;并且形成所述合并图像包括使用指示出所述初始像差图中的至少一者的准确性的置信值,其中所述置信值指示出以下两项之间的差异:(1)所述第一或第二输入图像上的像素位置处的图像数据,以及(2)通过将所述初始像差图的像差添加到所述第一或第二输入图像的图像数据而形成的重投影的第一或第二图像上的同一像素位置的图像数据。
关于所述第一实现方式,此外,所述处理器被布置为通过以下方式来操作:生成指示出所述第一和第二输入图像之间的图像数据的像素位置的差异的一个或多个初始像差图;并且形成所述合并图像包括使用指示出所述初始像差图中的至少一者的准确性的置信值,其中所述置信值被用于确定所述合并图像的像素位置是应当具有所述变形图像之一的图像值,还是没有图像数据。
关于所述第一实现方式,此外,所述处理器被布置为通过以下方式来操作:生成指示出所述第一和第二输入图像之间的图像数据的像素位置的差异的一个或多个初始像差图;并且形成所述合并图像包括使用指示出所述初始像差图中的至少一者的准确性的置信值,其中即使当所述变形图像之一具有能够被放置到所述合并图像中的像素位置的像素图像数据时,低置信值在该像素位置处也不向所述合并图像提供图像数据。
关于所述第一实现方式,此外,所述处理器被布置为通过以下方式来操作:生成指示出所述第一和第二输入图像之间的图像数据的像素位置的差异的一个或多个初始像差图;并且形成所述合并图像包括使用指示出所述初始像差图中的至少一者的准确性的置信值,其中所述置信值对于低置信是0并且对于高置信是1。
关于所述第一实现方式,此外,所述处理器被布置为通过以下方式来操作:生成指示出所述第一和第二输入图像之间的图像数据的像素位置的差异的一个或多个初始像差图;并且形成所述合并图像包括使用指示出所述初始像差图中的至少一者的准确性的置信值,其中所述处理器被布置为通过生成所述变形图像来操作,包括使用所述第一和第二输入图像之一上的像素图像数据位置和所述目标虚拟视图处的像素位置之间的差异的目标像差图。
关于所述第一实现方式,此外,所述处理器被布置为通过以下方式来操作:生成指示出所述第一和第二输入图像之间的图像数据的像素位置的差异的一个或多个初始像差图;并且形成所述合并图像包括使用指示出所述初始像差图中的至少一者的准确性的置信值,其中所述处理器被布置为通过生成所述变形图像来操作,包括使用所述第一和第二输入图像之一上的像素图像数据位置和所述目标虚拟视图处的像素位置之间的差异的目标像差图,并且其中所述目标像差图是通过使用所述初始像差图来形成的。
关于所述第一实现方式,此外,所述能量等式具有梯度能量项,该梯度能量项至少部分地基于泊松图像编辑并且在最小化所述能量等式的同时被迭代地求解以计算所述最终插补当前像素值。
关于所述第一实现方式,此外,所述处理器被布置为通过维持时间相干性来操作,包括为所述第一和第二输入图像生成一个或多个运动图,所述一个或多个运动图指示出沿着视频序列从一帧到另一帧的图像数据的运动,其中所述帧之一是所述第一或第二输入图像;修改指示出所述第一和第二输入图像之间的图像数据的像素位置之间的差异的初始像差图,并且依据所述运动图来进行修改;并且使用所述初始像差图来形成所述变形图像和指示出所述初始像差图的准确性并且用于形成所述合并图像的置信值中的至少一者。
关于所述第一实现方式,此外,所述处理器被布置为通过以下步骤来操作:通过使用所述第一和第二图像的全分辨率版本来生成全分辨率合并图像;通过使用所述第一和第二图像的缩减版本和缩减的变形图像来生成缩减的合并图像;通过使用所述缩减的合并图像和缩减的变形图像和所述能量等式来形成缩减的虚拟图像;并且使用所述缩减的虚拟图像的图像数据来填充利用所述全分辨率合并图像生成的全分辨率虚拟图像上的孔洞。
按照一个或多个示例第二实现方式,一种生成场景的虚拟视图图像的计算机实现的方法包括获得分别与同一场景的第一和第二视图位置相对应的第一和第二输入图像的图像数据;生成指示出所述第一和第二输入图像之间的图像数据的像素位置的差异的至少一个初始像差图;为所述第一和第二图像的一个或多个像素位置生成指示出所述初始像差图的准确性的一个或多个置信值;通过使用所述置信值生成在虚拟视图处的合并图像;并且通过使用所述合并图像生成在所述虚拟视图处的所述虚拟视图图像。
关于所述第二实现方式,此外,所述置信值指示出以下两项之间的差异:(1)所述第一或第二输入图像上的像素位置处的图像数据,以及(2)通过将所述初始像差图的像差添加到所述第一或第二输入图像的图像数据而形成的重投影的第一或第二图像上的同一像素位置的图像数据。
关于所述第二实现方式,此外,所述合并图像的生成包括当所述置信值被认为低时让所述合并图像上的像素位置没有图像数据值。
关于所述第二实现方式,此外,所述方法包括形成一个或多个目标像差图,所述一个或多个目标像差图指示出所述第一和第二输入图像的任一者和所述虚拟视图图像的虚拟视图位置之间的图像数据的像素位置的差异,并且是利用所述初始像差图形成的;利用所述目标像差图来变形所述第一和第二输入图像以形成第一和第二变形图像;并且利用使用所述置信值和所述变形图像的图像数据两者的规则来形成所述合并图像。
关于所述第二实现方式,此外,所述方法包括基于所述合并图像为所述虚拟视图图像生成插补图像值,包括迭代地最小化具有梯度能量项的能量等式,所述梯度能量项使用取决于一像素位置在所述合并图像上是否具有图像数据而不同地计算的该像素位置的梯度值。
关于所述第二实现方式,此外,所述方法包括基于所述合并图像为所述虚拟视图图像生成插补图像值,包括迭代地最小化具有梯度能量项的能量等式,所述梯度能量项使用取决于一像素位置在所述合并图像上是否具有图像数据而不同地计算的该像素位置的梯度值;并且当在所述合并图像上的所述像素位置处不存在图像数据时,至少部分依据插补权重和用于形成所述合并图像的变形图像的图像数据值来计算所述梯度值。
关于所述第二实现方式,此外,所述方法包括利用所述第一和第二图像的全分辨率版本来生成全分辨率合并图像;利用所述第一和第二图像的缩减版本和用于形成所述合并图像的缩减的变形图像来生成缩减的合并图像;利用所述缩减的合并图像、缩减的变形图像和所述能量等式来形成缩减的虚拟视图图像;并且使用所述缩减的虚拟视图图像的图像数据来填充利用所述全分辨率合并图像生成的全分辨率虚拟视图图像上的孔洞。
作为示例第三实现方式,至少一个非暂态机器可读介质包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备通过以下方式来生成场景的虚拟视图图像:获得一个或多个初始像差图,所述一个或多个初始像差图指示出各自具有所述场景的不同视图的第一和第二输入图像的图像数据之间的图像数据位置的差异,并且是针对所述输入图像的全分辨率版本和缩减版本两者的;利用一个或多个全分辨率像差图来生成全分辨率合并图像;利用缩减的像差图来生成缩减的合并图像;使用基于梯度的插补和孔洞填充等式来利用所述合并图像的图像数据形成缩减的虚拟图像;生成所述虚拟视图图像包括使用基于梯度的插补和孔洞填充等式和所述全分辨率合并图像;并且填充所述虚拟视图图像中的孔洞包括使用与所述缩减的虚拟图像而不是所述全分辨率合并图像相关联的图像数据。
关于所述第三实现方式,此外,所述指令使得所述计算设备通过以下方式来操作:在使用所述缩减的虚拟图像的图像数据来填充所述虚拟视图图像的孔洞之前将所述缩减的虚拟图像扩张到所述全分辨率。
关于所述第三实现方式,此外,其中所述指令使得所述计算设备通过以下方式来操作:分别形成所述全分辨率合并图像和缩减的合并图像,包括使用指示出所述初始像差图的准确性的像素级置信值。
关于所述第三实现方式,此外,所述指令使得所述计算设备通过以下方式来操作:生成要被合并来形成所述缩减的合并图像的缩减的变形图像,所述缩减的变形图像的生成包括:使用缩减的第一和第二输入图像之一上的像素图像数据位置和缩减的虚拟视图处的像素位置之间的差异的缩减目标像差图。
关于所述第三实现方式,此外,所述指令使得所述计算设备通过以下方式来操作:计算要在所述基于梯度的插补和孔洞填充等式中使用来形成所述缩减的填充图像的梯度值,并且当在所述缩减的合并图像上的所述像素位置处不存在图像数据时,所述梯度值至少部分地取决于插补权重和用于形成所述缩减的合并图像的变形图像的图像数据值。
关于所述第三实现方式,此外,所述指令使得所述计算设备通过以下方式来操作:细化所述虚拟视图图像的图像数据,包括修改所述虚拟视图图像的图像数据以使得所述虚拟视图图像的梯度图匹配所述全分辨率合并图像的梯度图。
在一个或多个第四实现方式中,至少一个机器可读介质包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备执行根据上述实现方式中任一项的方法。
在一个或多个第五实现方式中,一种设备可包括用于执行根据上述实现方式中任一项的方法的装置。
将会认识到,实现方式不限于这样描述的实现方式,而是可在带有修改和变更的情况下实践,而不脱离所附权利要求的范围。例如,上述实现方式可包括特征的特定组合。然而,上述实现方式不限于此,并且在各种实现方式中,上述实现方式可包括仅从事这种特征的子集,从事这种特征的不同顺序,从事这种特征的不同组合,和/或从事除明确列出的那些特征以外的额外特征。实现方式的范围因此应当参考所附权利要求以及这种权利要求有权享有的等同物的完整范围来确定。
Claims (25)
1.一种用于生成场景的虚拟视图图像的设备,包括:
存储器,用于存储分别与同一场景的第一视图位置和第二视图位置相对应的第一输入图像和第二输入图像;以及
耦合到所述存储器的处理器,所述处理器被布置为通过以下方式来操作:
通过合并与所述第一输入图像和第二输入图像相关联的变形图像来生成所述第一视图位置和第二视图位置之间的目标虚拟视图的合并图像;并且
在通过使用所述合并图像生成的目标虚拟视图处填充虚拟视图图像上的孔洞,并且包括求解对以下两项做出比较的能量等式:(1)在所述等式中都未知的最终插补当前像素值和最终插补相邻像素值之间的差异,以及(2)当在所述合并图像上的与正被计算的所述最终插补当前像素值相对应的当前像素位置处不存在图像数据时,通过使用所述变形图像的图像值和至少一个插补权重生成的梯度。
2.如权利要求1所述的设备,其中,所述处理器被布置为通过以下方式来操作:在所述合并图像在所述当前像素位置处具有图像数据时使用所述能量等式将插补图像数据放置在所述虚拟视图图像上,并且其中,所述能量等式的梯度与在所述合并图像在所述当前像素位置处不具有图像数据时计算的梯度相比是以不同方式生成的。
3.如权利要求1所述的设备,其中,所述处理器被布置为通过以下方式来操作:生成指示出所述第一输入图像和第二输入图像之间的图像数据的像素位置的差异的一个或多个初始像差图;并且形成所述合并图像包括使用置信值,所述置信值指示出所述初始像差图中的至少一者的准确性。
4.如权利要求3所述的设备,其中,所述置信值指示出以下两项之间的差异:(1)所述第一输入图像或第二输入图像上的像素位置处的图像数据,以及(2)通过将所述初始像差图的像差添加到所述第一输入图像或第二输入图像的图像数据而形成的重投影的第一图像或第二图像上的同一像素位置的图像数据。
5.如权利要求3所述的设备,其中所述置信值被用于确定所述合并图像的像素位置是应当具有所述变形图像之一的图像值,还是没有图像数据。
6.如权利要求3所述的设备,其中,即使当所述变形图像之一具有能够被放置到所述合并图像中的像素位置的像素图像数据时,低置信值在该像素位置处也不向所述合并图像提供图像数据。
7.如权利要求3所述的设备,其中,所述置信值对于低置信是0并且对于高置信是1。
8.如权利要求3所述的设备,其中,所述处理器被布置为通过生成所述变形图像来操作,包括使用所述第一输入图像和第二输入图像之一上的像素图像数据位置和所述目标虚拟视图处的像素位置之间的差异的目标像差图。
9.如权利要求8所述的设备,其中,所述目标像差图是通过使用所述初始像差图来形成的。
10.如权利要求1所述的设备,其中,所述能量等式具有梯度能量项,该梯度能量项至少部分地基于泊松图像编辑并且在最小化所述能量等式的同时被迭代地求解以计算所述最终插补当前像素值。
11.如权利要求1所述的设备,其中,所述处理器被布置为通过维持时间相干性来操作,包括为所述第一输入图像和第二输入图像生成一个或多个运动图,所述一个或多个运动图指示出沿着视频序列从一帧到另一帧的图像数据的运动,其中所述帧之一是所述第一输入图像或第二输入图像;修改指示出所述第一输入图像和第二输入图像之间的图像数据的像素位置之间的差异的初始像差图,并且依据所述运动图来进行修改;并且使用所述初始像差图来形成所述变形图像和指示出所述初始像差图的准确性并且用于形成所述合并图像的置信值中的至少一者。
12.如权利要求1所述的设备,其中,所述处理器被布置为通过以下方式来操作:利用所述第一图像和第二图像的全分辨率版本来生成全分辨率合并图像;利用所述第一图像和第二图像的缩减版本和缩减的变形图像来生成缩减的合并图像;利用所述缩减的合并图像和所述缩减的变形图像和所述能量等式来形成缩减的虚拟图像;并且使用所述缩减的虚拟图像的图像数据来填充利用所述全分辨率合并图像生成的全分辨率虚拟图像上的孔洞。
13.一种生成场景的虚拟视图图像的计算机实现的方法,包括:
获得分别与同一场景的第一视图位置和第二视图位置相对应的第一输入图像和第二输入图像的图像数据;
生成指示出所述第一输入图像和第二输入图像之间的图像数据的像素位置的差异的至少一个初始像差图;
为所述第一图像和第二图像的一个或多个像素位置生成指示出所述初始像差图的准确性的一个或多个置信值;
通过使用所述置信值生成在虚拟视图处的合并图像;并且
通过使用所述合并图像生成在所述虚拟视图处的所述虚拟视图图像。
14.如权利要求13所述的方法,其中,所述置信值指示出以下两项之间的差异:(1)所述第一输入图像或第二输入图像上的像素位置处的图像数据,以及(2)通过将所述初始像差图的像差添加到所述第一输入图像或第二输入图像的图像数据而形成的重投影的第一图像或第二图像上的同一像素位置的图像数据。
15.如权利要求13所述的方法,其中,生成所述合并图像包括当所述置信值被认为低时让所述合并图像上的像素位置没有图像数据值。
16.如权利要求13所述的方法,包括:
形成一个或多个目标像差图,所述一个或多个目标像差图指示出所述第一输入图像和第二输入图像的任一者和所述虚拟视图图像的虚拟视图位置之间的图像数据的像素位置的差异,并且是利用所述初始像差图形成的;
利用所述目标像差图来使所述第一输入图像和第二输入图像变形以形成第一变形图像和第二变形图像;并且
利用使用所述置信值和所述变形图像的图像数据两者的规则来形成所述合并图像。
17.如权利要求13所述的方法,包括:基于所述合并图像为所述虚拟视图图像生成插补图像值,包括迭代地最小化具有梯度能量项的能量等式,所述梯度能量项使用取决于一像素位置在所述合并图像上是否具有图像数据而不同地计算的该像素位置的梯度值。
18.如权利要求17所述的方法,包括:当在所述合并图像上的所述像素位置处不存在图像数据时,至少部分地依据插补权重和用于形成所述合并图像的变形图像的图像数据值来计算所述梯度值。
19.如权利要求13所述的方法,包括:利用所述第一图像和第二图像的全分辨率版本来生成全分辨率合并图像;利用所述第一图像和第二图像的缩减版本和用于形成所述合并图像的缩减的变形图像来生成缩减的合并图像;利用所述缩减的合并图像、缩减的变形图像和所述能量等式来形成缩减的虚拟视图图像;并且使用所述缩减的虚拟视图图像的图像数据来填充利用所述全分辨率合并图像生成的全分辨率虚拟视图图像上的孔洞。
20.至少一种非暂态机器可读介质,包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备通过以下方式来生成场景的虚拟视图图像:
获得一个或多个初始像差图,所述一个或多个初始像差图指示出各自具有所述场景的不同视图的第一输入图像和第二输入图像的图像数据之间的图像数据位置的差异,并且是针对所述输入图像的全分辨率版本和缩减版本两者的;
利用一个或多个全分辨率像差图来生成全分辨率合并图像;
利用缩减的像差图来生成缩减的合并图像;
使用基于梯度的插补和孔洞填充等式来利用所述合并图像的图像数据形成缩减的虚拟图像;
生成所述虚拟视图图像包括使用基于梯度的插补和孔洞填充等式和所述全分辨率合并图像;并且
填充所述虚拟视图图像中的孔洞包括使用与所述缩减的虚拟图像而不是所述全分辨率合并图像相关联的图像数据。
21.如权利要求20所述的介质,其中,所述指令使得所述计算设备通过以下方式来操作:在使用所述缩减的虚拟图像的图像数据来填充所述虚拟视图图像的孔洞之前将所述缩减的虚拟图像扩张到所述全分辨率。
22.如权利要求20所述的介质,其中,所述指令使得所述计算设备通过以下方式来操作:分别形成所述全分辨率合并图像和所述缩减的合并图像,包括使用指示出所述初始像差图的准确性的像素级置信值。
23.如权利要求20所述的介质,其中,所述指令使得所述计算设备通过以下方式来操作:生成要被合并来形成所述缩减的合并图像的缩减的变形图像,所述缩减的变形图像的生成包括:使用缩减的第一输入图像和第二输入图像之一上的像素图像数据位置和缩减的虚拟视图处的像素位置之间的差异的缩减目标像差图。
24.至少一种机器可读介质,包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备执行根据权利要求13-19中任一项所述的方法。
25.一种设备,包括用于执行根据权利要求13-19中任一项所述的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/445,066 US10930054B2 (en) | 2019-06-18 | 2019-06-18 | Method and system of robust virtual view generation between camera views |
US16/445,066 | 2019-06-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112104854A true CN112104854A (zh) | 2020-12-18 |
Family
ID=68057076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010225870.4A Pending CN112104854A (zh) | 2019-06-18 | 2020-03-26 | 相机视图之间的鲁棒虚拟视图生成的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10930054B2 (zh) |
CN (1) | CN112104854A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220230283A1 (en) * | 2021-01-21 | 2022-07-21 | Beijing Xiaomi Pinecone Electronics Co., Ltd. | Method and device for processing image, and storage medium |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190206036A1 (en) * | 2017-12-20 | 2019-07-04 | Al Analysis, Inc. | Method and system that use super flicker to facilitate image comparison |
JP7187182B2 (ja) * | 2018-06-11 | 2022-12-12 | キヤノン株式会社 | データ生成装置、方法およびプログラム |
US11589031B2 (en) * | 2018-09-26 | 2023-02-21 | Google Llc | Active stereo depth prediction based on coarse matching |
US11094108B2 (en) * | 2018-09-27 | 2021-08-17 | Snap Inc. | Three dimensional scene inpainting using stereo extraction |
CN111193918B (zh) * | 2018-11-14 | 2021-12-28 | 宏达国际电子股份有限公司 | 影像处理系统及影像处理方法 |
US11109010B2 (en) * | 2019-06-28 | 2021-08-31 | The United States of America As Represented By The Director Of The National Geospatial-Intelligence Agency | Automatic system for production-grade stereo image enhancements |
US11427193B2 (en) | 2020-01-22 | 2022-08-30 | Nodar Inc. | Methods and systems for providing depth maps with confidence estimates |
KR20230104298A (ko) | 2020-01-22 | 2023-07-07 | 노다르 인크. | 비-강성 스테레오 비전 카메라 시스템 |
US10893258B1 (en) * | 2020-05-12 | 2021-01-12 | National Taiwan University | Displacement-oriented view synthesis system and method |
US11295463B2 (en) * | 2020-06-25 | 2022-04-05 | Intel Corporation | Methods, systems, articles of manufacture, and apparatus to enhance image depth confidence maps |
WO2022005707A1 (en) * | 2020-06-29 | 2022-01-06 | Limonox Projects Llc | Method and device for multi-camera hole filling |
KR102668282B1 (ko) * | 2021-01-06 | 2024-05-29 | 노다르 인크. | 깊이 맵에 신뢰도 추정치를 제공하는 방법 및 시스템 |
US11195260B1 (en) * | 2021-04-01 | 2021-12-07 | Xirgo Technologies, Llc | Gateway device for volumetric sensing |
CN115529835A (zh) * | 2021-04-08 | 2022-12-27 | 谷歌有限责任公司 | 用于新颖视图合成的神经混合 |
CN113220251B (zh) * | 2021-05-18 | 2024-04-09 | 北京达佳互联信息技术有限公司 | 物体显示方法、装置、电子设备及存储介质 |
US11570418B2 (en) | 2021-06-17 | 2023-01-31 | Creal Sa | Techniques for generating light field data by combining multiple synthesized viewpoints |
US11577748B1 (en) | 2021-10-08 | 2023-02-14 | Nodar Inc. | Real-time perception system for small objects at long range for autonomous vehicles |
US11782145B1 (en) | 2022-06-14 | 2023-10-10 | Nodar Inc. | 3D vision system with automatically calibrated stereo vision sensors and LiDAR sensor |
US11798192B1 (en) * | 2022-06-30 | 2023-10-24 | Plusai, Inc. | Methods and apparatus for calibrating stereo imagery using motion of vehicle |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BRPI0916902A2 (pt) * | 2008-08-29 | 2015-11-24 | Thomson Licensing | síntese de vista com fusão de vista heurística |
WO2014037603A1 (en) * | 2012-09-06 | 2014-03-13 | Nokia Corporation | An apparatus, a method and a computer program for image processing |
KR101429349B1 (ko) * | 2012-09-18 | 2014-08-12 | 연세대학교 산학협력단 | 중간 시점 영상 합성 장치 및 방법과 이에 관한 기록매체 |
US10412373B2 (en) * | 2015-04-15 | 2019-09-10 | Google Llc | Image capture for virtual reality displays |
US10565734B2 (en) * | 2015-04-15 | 2020-02-18 | Google Llc | Video capture, processing, calibration, computational fiber artifact removal, and light-field pipeline |
-
2019
- 2019-06-18 US US16/445,066 patent/US10930054B2/en active Active
-
2020
- 2020-03-26 CN CN202010225870.4A patent/CN112104854A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220230283A1 (en) * | 2021-01-21 | 2022-07-21 | Beijing Xiaomi Pinecone Electronics Co., Ltd. | Method and device for processing image, and storage medium |
US11989863B2 (en) * | 2021-01-21 | 2024-05-21 | Beijing Xiaomi Pinecone Electronics Co., Ltd. | Method and device for processing image, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US10930054B2 (en) | 2021-02-23 |
US20190304164A1 (en) | 2019-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10930054B2 (en) | Method and system of robust virtual view generation between camera views | |
US10855966B2 (en) | View interpolation of multi-camera array images with flow estimation and image super resolution using deep learning | |
US10944996B2 (en) | Visual quality optimized video compression | |
CN109618090B (zh) | 对通过使用广角透镜捕获的图像的图像失真校正的方法和系统 | |
US20200051269A1 (en) | Hybrid depth sensing pipeline | |
US11334975B2 (en) | Pose synthesis in unseen human poses | |
US11722653B2 (en) | Multi-pass add-on tool for coherent and complete view synthesis | |
US20170256065A1 (en) | Tracking regions of interest across video frames with corresponding depth maps | |
US20210004969A1 (en) | Multi-level optical flow estimation framework for stereo pairs of images based on spatial partitioning | |
EP3149706B1 (en) | Image refocusing for camera arrays | |
US10957027B2 (en) | Virtual view interpolation between camera views for immersive visual experience | |
US10097793B2 (en) | Method and system of depth data filling of shadows for image processing | |
US10771758B2 (en) | Immersive viewing using a planar array of cameras | |
US12106493B2 (en) | Accurate optical flow estimation in stereo pairs of equirectangular images | |
US10825131B2 (en) | Circular fisheye camera array rectification | |
CN113450392A (zh) | 基于图像模板的参数化透视的鲁棒表面配准 | |
CN114257733A (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 |