CN111757080A - 用于沉浸式视觉体验的相机视图之间的虚拟视图内插 - Google Patents

用于沉浸式视觉体验的相机视图之间的虚拟视图内插 Download PDF

Info

Publication number
CN111757080A
CN111757080A CN202010116079.XA CN202010116079A CN111757080A CN 111757080 A CN111757080 A CN 111757080A CN 202010116079 A CN202010116079 A CN 202010116079A CN 111757080 A CN111757080 A CN 111757080A
Authority
CN
China
Prior art keywords
image
gradient
horizontal
vertical
virtual
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
Application number
CN202010116079.XA
Other languages
English (en)
Inventor
弗拉丹·波波维奇
张帆
奥斯卡·内斯塔雷斯
卡帕娜·塞沙德里纳坦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN111757080A publication Critical patent/CN111757080A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • H04N13/125Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues for crosstalk reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/243Image signal generators using stereoscopic image cameras using three or more 2D image sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20228Disparity calculation for image-based rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Quality & Reliability (AREA)
  • Image Processing (AREA)

Abstract

本申请涉及用于沉浸式视觉体验的相机视图之间的虚拟视图内插。讨论了与从已知输入图像的位置之间的一位置生成场景的虚拟视图以供呈现给观看者有关的技术。此类技术包括将卷积模板应用于虚拟中间梯度图像以为所述位置生成最终虚拟图像,所述卷积模板近似至少表示所述输入图像中的梯度检测的水平卷积矩阵和垂直卷积矩阵的线性组合的逆,所述虚拟中间梯度图像是至少所述位置处的内插虚拟图像、所述位置处的内插水平梯度图和所述位置处的内插垂直梯度图的组合。

Description

用于沉浸式视觉体验的相机视图之间的虚拟视图内插
技术领域
本申请总地涉及图像处理的领域,更具体地涉及用于沉浸式视觉体验的相机视图之间的虚拟视图内插。
背景技术
诸如两个或更多个线状或栅格排列的相机之类的相机的阵列在诸如平板设备、智能电话设备、膝上型设备、显示设备、网真***(telepresence system)和电影摄制和视频制作***之类的多种设备实现中正变得越来越常见。在由这种相机阵列生成的观看体验的情境中,相机位置之间的中间虚拟视图被生成并被提供给用户以便显示。
持续目标是在所捕获的相机视图之间的位置处高效地并以最小视觉伪像来渲染逼真的虚拟图像。用于从多个相机图像渲染虚拟视图的当前技术包括根据图像对场景进行体积3D重建以及使用3D图形渲染技术来渲染虚拟视图。然而,3D重建是计算上昂贵的且容易出错,从而在所渲染的图像中产生视觉伪像。基于图像的渲染(IBR)技术避免3D几何的显式重建并且替代地根据所捕获的图像直接地渲染虚拟视图。例如,IBR内插可以使用两个图像及其像素对应图(correspondence map)来使图像翘曲到期望位置。此类技术假定可用于计算机生成的图像的标准真值对应图、视差图(disparity map)或光流(optical flow)、以及虚拟视图与原始图像的较小偏移。然而,在有噪声的视差图和较大的相机偏移导致不希望的图像伪像的现实生活场景中常常不满足此类假设。因此,现有技术尤其在现实生活应用中具有关于计算困难和图像伪像的缺点。
改进合成中间图像的视图以得到增强的用户体验可能是有利的。正是考虑到这些和其他考虑事项,所以需要本改进。随着在相机阵列实现和其他情境中显示这种图像或视频的愿望变得更加普遍,这种改进可能变得关键。
发明内容
根据本申请的一方面,提供了一种用于生成场景的虚拟视图的设备,所述设备包括:存储器,所述存储器用于存储第一输入图像和第二输入图像;以及耦合到所述存储器的处理器,所述处理器用于:使用所述第一输入图像和所述第二输入图像及其之间的对应图,来为分别与所述第一输入图像和所述第二输入图像相对应的第一视图位置和第二视图位置之间的所选视图位置生成第一虚拟图像;基于在所述第一输入图像和所述第二输入图像中检测到的水平梯度和垂直梯度以及所述对应图,来针对所述所选视图位置确定水平梯度图和垂直梯度图;确定分别表示对所述水平梯度和所述垂直梯度的检测的水平卷积矩阵和垂直卷积矩阵;将卷积模板应用于虚拟中间梯度图像,来为所述所选视图位置生成最终虚拟图像,所述虚拟中间梯度图像包括至少所述第一虚拟图像、所述水平梯度图和所述垂直梯度图的组合,所述卷积模板近似至少所述水平卷积矩阵和所述垂直卷积矩阵的线性组合的逆;并且提供所述最终虚拟图像以呈现给观看者。
根据本申请的另一方面,提供了一种用于生成场景的虚拟视图的方法,所述方法包括:使用第一输入图像和第二输入图像及其之间的对应图,来为分别与所述第一输入图像和所述第二输入图像相对应的第一视图位置和第二视图位置之间的所选视图位置生成第一虚拟图像;基于在所述第一输入图像和所述第二输入图像中检测到的水平梯度和垂直梯度以及所述对应图,来针对所述所选视图位置确定水平梯度图和垂直梯度图;确定分别表示对所述水平梯度和所述垂直梯度的检测的水平卷积矩阵和垂直卷积矩阵;将卷积模板应用于虚拟中间梯度图像,来为所述所选视图位置生成最终虚拟图像,所述虚拟中间梯度图像包括至少所述第一虚拟图像、所述水平梯度图和所述垂直梯度图的组合,所述卷积模板近似至少所述水平卷积矩阵和所述垂直卷积矩阵的线性组合的逆;以及提供所述最终虚拟图像以呈现给观看者。
根据本申请的另一方面,提供了包括多个指令的至少一种机器可读介质,所述多个指令响应于在计算设备上被执行而使所述计算设备执行上述方法。
根据本申请的另一方面,提供了一种设备,包括用于执行上述方法的装置。
附图说明
在附图中以示例方式而非限制方式图示了本文描述的素材。为了图示的简单和清晰,附图中图示的元素不一定是按比例绘制的。例如,为了清晰,一些元素的尺寸相对于其他元素可被夸大。另外,在认为适当时,附图标记在附图之间被重复以指示出对应的或相似的元素。在附图中:
图1图示用于生成场景的虚拟视图的示例设备;
图2图示示例左图像和右图像;
图3图示左图像与右图像之间的示例对应图;
图4图示具有遮挡(occlusion)的示例翘曲(wraped)图像;
图5图示遮挡被填充但留下孔的示例填充翘曲图像;
图6图示具有完全填充像素的示例改良(refined)翘曲图像;
图7图示示例虚拟视图混合模块;
图8图示示例卷积模板(convolution mask)和使用可分离滤波器的总和的卷积模板的示例近似;
图9图示用于对示例虚拟梯度图像应用示例可分离卷积模板的示例***;
图10是图示用于生成场景的虚拟视图的示例过程的流程图;
图11是用于生成场景的虚拟视图的示例***的说明性图;
图12是示例***的说明性图;以及
图13图示全部根据本公开的至少一些实现方式布置的示例设备。
具体实施方式
现在参考附图描述一个或多个实施例或实现方式。虽然论述了具体配置和布置,但应当理解这么做只是为了说明。相关领域的技术人员将认识到,在不脱离描述的精神和范围的情况下,可以采用其他配置和布置。相关领域的技术人员将会清楚,本文描述的技术和/或布置也可用在与本文所述不同的多种其他***和应用中。
虽然接下来的描述阐述了可在诸如片上***(system-on-a-chip,SoC)体系结构之类的体系结构中显现的各种实现方式,但本文描述的技术和/或布置的实现方式不限于特定的体系结构和/或计算***,而是可由任何体系结构和/或计算***为类似的目的而实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种体系结构和/或诸如机顶盒、智能电话等等之类的各种计算设备和/或消费电子(CE)设备可实现本文描述的技术和/或布置。另外,虽然接下来的描述可阐述许多具体细节,例如逻辑实现方式、***组件的类型和相互关系、逻辑分区/集成选择等等,但要求保护的主题可在没有这种具体细节的情况下实现。在其他情况下,可能没有详细示出一些素材,例如控制结构和完整软件指令序列,以免模糊本文公开的素材。
本文公开的素材可以用硬件、固件、软件或者其任何组合来实现。本文公开的素材也可实现为存储在机器可读介质上的指令,这些指令可被一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如计算设备)可读的形式存储或传输信息的任何介质和/或机构。例如,机器可读介质可包括只读存储器(read only memory,ROM);随机访问存储器(random access memory,RAM);磁盘存储介质;光存储介质;闪存设备;电的、光的、声的或者其他形式的传播信号(例如,载波、红外信号、数字信号等等),以及其他。
说明书中提及“一个实现方式”、“一实现方式”、“一示例实现方式”等等指示的是描述的实现方式可包括特定的特征、结构或特性,但可能不一定每个实施例都包括该特定特征、结构或特性。另外,这种短语不一定指同一实现方式。另外,当结合一实施例来描述特定的特征、结构或特性时,认为结合其他实现方式(无论本文是否明确描述)来实现这种特征、结构或特性是在本领域技术人员的知识范围内的。
术语“基本上”、“接近”、“大致”、“近似”和“大约”一般指在目标值的+/-10%内。例如,除非在其使用的明确上下文中另有指明,否则术语“基本上等于”、“大约等于”和“大致等于”的意思是在这样描述的事物之间没有超过偶然的差异。在本领域中,这种差异通常不超过预定目标值的+/-10%。除非另有指明,否则使用序数形容词“第一”、“第二”和“第三”等等来描述共同对象只是表明相似对象的不同实例被引用,而并不打算暗示这样描述的对象必须在时间上、空间上、排名上或者以任何其他方式处于给定的序列中。
本文描述的方法、设备、装置、计算平台和物品与针对与场景的输入图像相对应的位置之间的一位置生成场景的虚拟视图有关。
如上所述,改进虚拟视图可能是有利的,所述虚拟视图试图近似针对可用图像的定位之间的定位的视图。例如,为了提供沉浸式体验以便查看由两个或更多个相机、平面相机阵列创建的内容,需要针对相机位置之间的位置的高质量且高效地生成的虚拟视图。本文讨论的技术在所捕获的相机视图之间的位置处高效地、完全自动地并且在没有视觉伪像或最小视觉伪像的情况下渲染逼真的虚拟图像。此类技术可以根据对使用运动相机、相机阵列或两个相机设备获得的场景的有限采样来渲染虚拟视图。此类多视图设备以及尤其是相机阵列在包括场景的虚拟导航的许多沉浸式视觉应用中变得日益常见,所述许多沉浸式视觉应用诸如从对象的多个视图由外而内渲染(例如,体积渲染)、根据相机阵列的圆形配置生成立体全景图(例如,用于VR的由内而外渲染)、交互式多视图视频应用(例如,电话会议)等。可以在将针对介于至少两个已知输入图像的视图位置之间的视图位置生成虚拟图像的任何上下文中使用本文讨论的技术。可以以任何适合的方式获得输入图像,所述方式诸如经由相机的图像捕获、图像或图形渲染,或者可以从存储器或另一设备接收此类输入图像以进行处理。所公开的技术提供具有隐式几何形状的虚拟视图的高效且基于图像的渲染。此类技术消除或者最小化视觉伪像,并且可以被实时地实现在当前的硬件平台上。
在一些实施例中,用于渲染的视图位置被选择为使得所选视图位置位于分别与第一输入图像和第二输入图像相对应的第一视图位置和第二视图位置之间。此外,针对第一输入图像和第二输入图像生成或者接收对应图。如本文所使用的,术语对应图指示定义两个图像之间的对应像素或区域使得像素或区域对应关系尝试与第一输入图像和第二输入图像表示的场景中的实际点、对象、表面等匹配的图。例如,对应图可以是此类对应关系的视差图、深度图或光流表示。可以使用第一输入图像和第二输入图像来生成对应关系,或者可以基于对第一输入图像和第二输入图像的渲染等来接收对应关系。
使用第一输入图像和第二输入图像及其之间的对应图,为所选视图位置生成第一虚拟图像。例如,可以通过以下步骤来生成第一虚拟图像:使用对应图来使第一图像和第二图像翘曲到所选视图位置、对翘曲图像进行加权平均以生成初始虚拟图像、并且对初始虚拟图像执行遮挡填充和孔填充以生成第一虚拟图像。此外,使用类似技术来为所选视图位置生成水平梯度图和垂直梯度图。例如,可以基于在第一输入图像和第二输入图像中检测到的水平梯度和垂直梯度来生成水平梯度图和垂直梯度图,并且所检测到的梯度(例如,与第一输入图像和第二输入图像相对应的梯度图)被翘曲到所选视图位置并加权平均,来为所选视图位置生成水平梯度图和垂直梯度图。也可以将所讨论的遮挡填充和孔填充技术应用于针对所选视图位置的水平梯度图和垂直梯度图。如本文所使用的,术语梯度图可以指示如由梯度滤波器所检测的源自输入图像的具有梯度的图像。也就是说,梯度图是通过对输入图像应用梯度滤波器而产生的图像。
然后可以确定分别表示水平梯度和垂直梯度的检测的水平卷积矩阵和垂直卷积矩阵。值得注意的是,水平卷积矩阵和垂直卷积矩阵是用于生成水平梯度和垂直梯度的检测的卷积矩阵表示。例如,水平梯度滤波器和垂直梯度滤波器可以各自被表示为卷积矩阵梯度滤波器。在实施例中,水平卷积矩阵梯度滤波器和垂直卷积矩阵梯度滤波器是水平梯度滤波器和垂直梯度滤波器的稀疏、循环、托普利茨(Toeplitz)矩阵表示。然后基于水平卷积矩阵梯度滤波器和垂直卷积矩阵梯度滤波器来生成卷积模板或滤波器,使得卷积模板近似至少水平卷积矩阵和垂直卷积矩阵的线性组合的逆。如本文所使用的,术语卷积模板指示具有用于应用于输入图像或虚拟中间梯度图像等的滤波器系数的网格的模板或滤波器。在实施例中,卷积模板近似水平卷积矩阵的转置和水平卷积矩阵的乘积、垂直卷积矩阵的转置和垂直卷积矩阵的乘积、以及加权因子和单位矩阵的乘积之和的逆,如本文进一步讨论的。
如所讨论的,卷积模板近似至少水平卷积矩阵和垂直卷积矩阵的线性组合的逆。例如,卷积模板可以是近似逆的19x19滤波器(或任何适合的大小或形状)。在一些实施例中,卷积模板包括多组可分离滤波器,使得每组有垂直滤波器和水平滤波器。然后将每组应用于输入图像并对结果求和。值得注意的是,两组或三组这样的可分离滤波器提供与在一些上下文中使用卷积模板本身来滤波的结果没有显著不同的滤波结果。
然后将卷积模板应用于包括至少第一虚拟图像、水平梯度图和垂直梯度图(如所讨论的,它们全部都相对于所选视图位置)的组合的虚拟中间梯度图像,以为所选视图位置生成最终虚拟图像。最终虚拟图像然后可以被提供用于呈现给用户。值得注意的是,卷积模板的应用提供对于能量最小化问题的解的近似值,该能量最小化问题的解使得梯度能量项(例如,度量最终虚拟图像的水平梯度和垂直梯度与水平梯度图和垂直梯度图的相似性的项)和全局边界条件能量项(例如,度量最终虚拟图像与第一虚拟图像的相似性的项)之和最小化。例如,能量最小化问题可以是高度非线性的,并且对最终虚拟图像进行求解可能难以实现。所讨论的技术使用非常适于硬件实现方式和实时处理的矩阵、卷积和滤波运算来提供解的近似值。
在一些实施例中,与提供性能增强效率的存储器操作一起使用可分离的水平滤波器和垂直滤波器来执行卷积模板的应用。例如,所讨论的虚拟中间梯度图像可以具有宽度W和高度H,并且卷积模板可以是与具有宽度M的水平滤波器和具有高度H的垂直滤波器可分离的可分离2D滤波器模板。应用卷积模板然后可以包括:跨时间实例顺序地将虚拟中间梯度图像的第一行的仅M个像素缓存到移位寄存器(具有M个可用的寄存器位置),并且经由行滤波器将水平滤波器应用于M个像素以生成针对第一行的经水平滤波的像素值的序列。随着每个像素值被读取,该像素值可以被移动到移位寄存器的第一位置,并且所有其他值可以被移位一个位置。这种输入和水平滤波器应用的重复提供针对第一行的经水平滤波的像素值的序列。针对第一行的经水平滤波的像素值的序列被存储到N-1个存储器模块中的一个中,每个存储器模块被配置为存储虚拟中间梯度图像的一整行W个经滤波像素值。这种行处理持续进行,直到所有N-1个存储器模块各自存储了经水平滤波的行为止。随后,在第N行的行处理期间,列滤波器接收来自N-1个存储器模块中的每一个的一个经水平滤波像素值以及直接地来自水平滤波器的经滤波像素值(因此提供N个像素值),并且列滤波器提供垂直滤波并输出最终虚拟图像的经完全滤波的像素值。值得注意的是,这种列滤波处理也是顺序的,因为N行经水平滤波像素值被处理。然后可以从虚拟中间梯度图像的N+1行开始重复这种处理,依此类推。由于要求同时访问MxN个像素值以进行滤波,此类技术避免效率低的资源使用。此外,可以像本文进一步讨论的那样有利地实现并行处理。
本文讨论的技术至少部分地通过以下方式来改进所渲染的虚拟视图图像的效率和视觉质量:对所讨论的能量最小化问题提供一系列近似和变换以最终向具有大型支持2D滤波器(例如,卷积模板)的问题提供近似解。可以使用现场可编程门阵列(FPGA)来实现此类技术,并且可以将大型支持2D滤波器(例如,卷积模板)近似为两个或更多个可分离滤波器之和,这在使用本文讨论的存储器操作的此类FPGA实现方式中可能是特别有利的。所讨论的技术基于两个1080p帧提供超过30fps的实时虚拟视图渲染。
图1图示根据本公开的至少一些实现方式布置的用于生成场景的虚拟视图的示例设备100。如图1中所示,设备100包括图像信号处理器101,所述图像信号处理器101实现视差模块102、图像翘曲模块103、遮挡填充模块107、孔填充模块108和虚拟视图混合模块109中的一个或多个。设备100还可以包括左相机104和右相机105。设备100可以用诸如个人计算机、膝上型计算机、平板计算机、平板手机、智能电话、数码相机、游戏机、可穿戴设备、显示设备、一体化设备、二合一设备等之类的任何适合的形状因数设备来实现。例如,设备100可以执行如本文所讨论的虚拟视图渲染或内插。在一些实施例中,除了左相机104和右相机105之外或者作为其替代,设备100还可以从相机阵列、存储器、另一设备、渲染引擎等获得用于虚拟视图内插的多视图图像。例如,可以在特载有多个相机的商业远程呈现***中或者在虚拟现实(VR)***中将设备100的组件并入到任何多相机消费电子设备中以递送沉浸式视觉体验。
如图所示,左相机104从场景121接收入射光122。左相机104基于对入射光122的曝光来生成左图像111。类似地,右相机105从场景121接收入射光123,并且基于对入射光123的曝光来生成右图像112。左相机104和右相机105可以是诸如RGB相机等之类的任何适合的成像设备。在一些实施例中,设备100经由通信信道(未示出)从另一设备接收左图像111和右图像112。在一些实施例中,从设备100的存储器(未示出)获得左图像111和右图像112以用于处理。左图像111和右图像112可以包括任何适合的图像数据、图片数据、视频帧数据等或以任何适合的分辨率表示图片的任何数据结构。在实施例中,左图像111和右图像112是各自对于其像素具有R(红色)、G(绿色)和B(蓝色)值的RGB图像数据。在实施例中,左图像111和右图像112具有1920x1080个像素的分辨率。
尽管在本文中关于左相机104和右相机105及左图像111和右图像112进行图示和讨论,然而可以针对相机和图像的任何适合的布置来实现本文讨论的技术。在一些实施例中,相机可以被布置在彼此上方和下方,并且/或者图像可以是顶部图像和底部图像。此外,为了呈现的清楚起见,设备100被图示有两个相机—左相机104和右相机105。然而,设备100可以包括任何数量的相机以生成相机阵列131,其中此类相机在x方向(以提供水平相机阵列)、y方向(以提供垂直相机阵列)或两个方向(以提供相机网格)上间隔开以生成任何数量的图像。可以使此类图像中的任一个配对并且可以针对图像对确定中间图像。因此,可以生成任何数量的中间图像。此外,可以生成此类图像对之间的不止一个虚拟图像。例如,一个虚拟图像可以被形成为好像在图像对之间中途的位置(或任何其他位置)处,或者多个虚拟图像可以被形成为好像在图像对之间的不同位置处。在本文中,在不失一般性的情况下,此类图像对的图像通常被标记为第一图像和第二图像或左图像和右图像,并且在其之间内插的图像被标记为虚拟图像或中间图像。
如图所示,图像信号处理器101接收左图像111和右图像112作为输入图像对113以及与图示场景121的期望视图124的虚拟相机106相对应的所选视图位置114。值得注意的是,设备100可以生成好像来自视图位置114一样的场景121的最终虚拟图像119,所述视图位置114可以位于左相机104的视图位置142与右相机105的视图位置143之间的任何位置处。可以使用一种或多种任何适合的技术来生成所选视图位置114,所述技术诸如检测设备100的用户的位置、作为来自用户或控制器的输入的接收等。
图2图示根据本公开的至少一些实现方式布置的示例左图像111和右图像112。如图2中所示,可以获得任何适合的场景(在该示例中为室内场景)的左图像111和右图像112。如所讨论的,可能期望在左图像111和右图像112的视图位置之间的视图位置处渲染或者内插场景的虚拟视图。在一些实施例中,左图像111和右图像112是矫正图像。
返回到图1,图像信号处理器101可以实现视差模块102以生成左图像111与右图像112之间的一个或多个对应图115。如所讨论的,一个或多个对应图115使用视差值或深度值等来指示左图像111与右图像112之间的对应像素或像素区域。可以使用一种或多种任何适合的技术来生成对应图115,所述技术诸如左图像111与右图像112之间的块匹配、光流技术、IR感测技术等。在一些实施例中,对应图115作为输入被ISP 101和/或设备100接收。
图3图示根据本公开的至少一些实现方式布置的左图像111与右图像112之间的示例对应图115。如图3中所示,对应图115可以包括视差或深度值,使得在对应图115中较近的像素被指示为较亮的而较远的像素被指示为较暗的。在所图示的实施例中,对应图115包括针对左图像111的左作对应图301和针对右图像112的右对应图302。在其他实施例中,使用仅单个对应图(例如,视差图)。
图像翘曲模块103接收左图像111和右图像112、对应图115及视图位置114,并且图像翘曲模块103使用左图像111和右图像112、对应图115及视图位置114来生成与视图位置114相对应的翘曲图像116。图像翘曲模块103可以使用一种或多种任何适合的技术来生成翘曲图像116。例如,在本文中,左图像111被表示为I1,右图像112被表示为I2,并且最终虚拟图像119被表示为
Figure BDA0002391530940000111
其中p指示所选视图位置114,其被归一化到[0,1]的范围。在一些实施例中,图像翘曲模块103使邻近的左图像111和右图像112翘曲到所选视图位置114以生成翘曲图像116,所述翘曲图像116在遮挡填充和孔填充之后将被合并以生成虚拟图像,其被表示为
Figure BDA0002391530940000112
例如,可以根据等式(1)来生成虚拟图像:
Figure BDA0002391530940000113
其中
Figure BDA0002391530940000114
是虚拟图像,
Figure BDA0002391530940000115
是翘曲图像116中的一个(例如,翘曲到位置p的左图像111),并且
Figure BDA0002391530940000116
是翘曲图像116中的另一个(例如,翘曲到位置p的右图像112)。可以使用一种或多种任何适合的技术来生成位置p处的翘曲图像116,所述技术诸如使左图像111和右图像112的每个像素移位与通过对应图115提供的像素视差(或深度或类似值)相对应的缩放值。值得注意的是,由于有噪声的对应图115(例如,视差图)和场景121中的遮挡,翘曲图像116通常包括具有未知值的像素,所述未知值被表征为图像遮挡。
图4图示根据本公开的至少一些实现方式布置的具有遮挡401的示例翘曲图像400。例如,翘曲图像400可以对应于翘曲图像116中的一个。在图4中,遮挡401被图示为黑色像素定位。值得注意的是,由于对应图115(以及用于生成对应图115的视差估计技术)无法消退(resolve)遮挡401,遮挡401(例如,翘曲图像400的大黑色区域)主要出现在前景对象的边缘周围。
返回到图1,遮挡填充模块107接收具有诸如遮挡401这样的遮挡的翘曲图像116,并且遮挡填充模块107填充此类遮挡以生成填充翘曲图像117。遮挡填充模块107可以使用一种或多种任何适合的技术来填充任何此类遮挡。在实施例中,通过从输入图像中的另一个获得像素数据并且使用对应图115将该像素数据重新投影到翘曲图像来填充遮挡。例如,对于与左图像111相对应的翘曲图像中的遮挡,来自右图像112的像素被选择并投影到与左图像111相对应的翘曲图像以填充遮挡,并且反之亦然。此类技术填充由遮挡对象创建的遮挡孔,但是由于对应图115中的噪声而可能留下一些剩余的未知值。
图5图示根据本公开的至少一些实现方式布置的具有已填充遮挡501但留下孔502的示例填充翘曲图像500。例如,填充翘曲图像500可以对应于填充翘曲图像117中的一个。在图5中,留下的孔502被再次图示为黑色像素定位。值得注意的是,已填充遮挡501已被消退,但是孔502仍存在,因为在均匀区域(例如,墙壁和桌子表面填充翘曲图像500)中通常出现噪声对应图115。
返回到图1,孔填充模块108接收具有孔502的填充翘曲图像117,并且孔填充模块108填充此类孔以生成改良的翘曲图像118。孔填充模块108可以使用一种或多种任何适合的技术来填充任何此类孔。在实施例中,使用诸如最邻近内插或双线性内插这样的内插技术来填充孔。
图6图示根据本公开的至少一些实现方式布置的具有完全填充像素601的示例改良翘曲图像600。例如,改良翘曲图像600可以对应于改良翘曲图像118中的一个。也就是说,改良翘曲图像118包括从左图像111翘曲到视图位置114的第一图像(即,
Figure BDA0002391530940000121
)和从右图像翘曲到视图位置114的第二图像(即,
Figure BDA0002391530940000122
)。如图6中所示,所有遮挡和孔洞已被消退或者填充以生成改良翘曲图像600。
返回到图1,虚拟视图混合模块109接收改良翘曲图像118、对应图115、视图位置114和梯度滤波器141,并且虚拟视图混合模块109生成与视图位置114相对应的最终虚拟图像119。
图7图示根据本公开的至少一些实现方式布置的示例虚拟视图混合模块109。如图7中所示,虚拟视图混合模块109包括内插器701、滤波器转换器702、逆滤波器近似器703、梯度映射模块704、梯度图滤波器模块705和逆滤波器模块706中的一个或多个。例如,可以经由设备100的ISP 101来实现内插器701、滤波器转换器702、逆滤波器近似器703、梯度映射模块704、梯度图滤波器模块705和逆滤波器模块706中的一个或多个。
如图所示,内插器701接收改良翘曲图像118并且内插器701生成虚拟图像711。内插器可以使用一种或多种任何适合的技术来生成虚拟图像711。在实施例中,如关于等式(1)所示的那样生成虚拟图像711,使得虚拟图像711是改良翘曲图像118的加权平均,使得加权基于归一化视图位置114,然而,可以使用其他加权函数。可以将虚拟图像711表征为无邪内插结果(naively interpolated result),因为它可能由于有噪声的对应图115、遮挡填充、孔填充等而包括明显的视觉伪像。为了改良虚拟图像711并且为了提供更鲁棒的最终虚拟图像119,如在下面进一步讨论的那样阐述优化问题。
同样如图所示,梯度映射模块704接收输入图像对113(例如,左图像111和右图像112)、视图位置114及梯度滤波器141或表示梯度滤波器141的卷积矩阵712(在本文中在下面进一步讨论),并且梯度映射模块704生成梯度图714。例如,可以将梯度图714表示为
Figure BDA0002391530940000131
Figure BDA0002391530940000132
并且梯度图714是视图位置114处的虚拟视图在x(即,水平)和y(即,垂直)维度上的目标梯度图。如关于虚拟图像
Figure BDA0002391530940000133
所讨论的那样生成梯度图714。例如,可以根据等式(2)来生成梯度图714(即,水平梯度图和垂直梯度图):
Figure BDA0002391530940000134
其中
Figure BDA0002391530940000135
是目标梯度图(水平的或垂直的),
Figure BDA0002391530940000136
是例如翘曲到位置p的左图像111的梯度图,并且
Figure BDA0002391530940000137
是例如翘曲到位置p的右图像112的梯度图。值得注意的是,等式(2)被应用来生成水平和垂直目标梯度图714。为了呈现的清楚起见省略了x和y索引。在一些实施例中,梯度图714还可能经历如分别关于遮挡填充模块107和孔填充模块108所讨论的遮挡填充和孔填充操作。
所讨论的左图像111和右图像112的梯度图可以通过应用梯度滤波器141或者通过对其应用卷积矩阵712来生成。例如,梯度滤波器141可以是诸如邻居差异滤波器(例如,[+1-1])这样的线性滤波器,并且滤波器转换器702可以将此类梯度滤波器141转换为卷积矩阵712,其被表示为Gx和Gy。如本文所使用的,术语卷积矩阵712指示表示滤波运算的矩阵。在一些实施例中,卷积矩阵是稀疏循环托普利茨矩阵。也就是说,卷积矩阵712可以使其从左到右的每个下行对角线元素是不变的(即,它们是托普利茨矩阵),同时其每个行向量相对于前一个行向量被循环右移一个元素(即,它们是循环矩阵)。此外,卷积矩阵712的元素的至少一部分可以是零(即,它们是稀疏的)。值得注意的是,梯度滤波器141和卷积矩阵712的应用可以提供相同的结果梯度图。也就是说,卷积矩阵712的水平卷积矩阵和垂直卷积矩阵以与如由梯度滤波器141所执行的水平梯度检测和垂直梯度检测的检测相同的方式表示水平梯度和垂直梯度的检测。如本文所使用的,术语关于两个滤波器表示指示滤波器(尽管使用不同的滤波器或卷积来应用)提供相同的结果。相反地,术语近似(或类似物)指示一个滤波器近似另一个滤波器的结果,但是结果不一定是相同的。
现在返回到先前讨论的关于生成最终虚拟图像119的优化问题,本文讨论的技术创建具有保留图像梯度(例如,在水平维度和垂直维度两者上的像素值差)的最终虚拟图像119。在实施例中,通过使如通过等式(3)所提供的L2误差最小化来保留此类图像梯度:
Figure BDA0002391530940000141
其中Eg是度量最终虚拟图像119的水平梯度和垂直梯度与水平和垂直梯度图714的相似性的梯度能量项,
Figure BDA0002391530940000142
Figure BDA0002391530940000143
是水平和垂直梯度图714(例如,在x和y维度上的视图位置114p处的目标梯度图),
Figure BDA0002391530940000151
Figure BDA0002391530940000152
是最终虚拟图像119的梯度图(例如,视图位置114p处的最终内插图像在x和y维度上的梯度图),使得
Figure BDA0002391530940000153
(例如,正在寻求的图像即最终虚拟图像119的微分)。值得注意的是,通过等式(3)提供的梯度能量项度量水平和垂直梯度图714与最终虚拟图像119的梯度图之间的相似性(或差异)。
由于通过等式(3)提供的梯度能量项是由于使用梯度而导致的微分,所以边界条件被添加以定义总体能量最小化问题。边界条件被表征为数据能量项并且可以像等式(4)中所提供的那样被定义:
Figure BDA0002391530940000154
其中
Figure BDA0002391530940000155
是虚拟图像711并且
Figure BDA0002391530940000156
是最终虚拟图像119(例如,正在寻求的图像)。值得注意的是,通过等式(4)提供的数据能量项度量最终虚拟图像119与虚拟图像711之间的相似性(或差异)(例如,内插结果)。
通过等式(3)提供的梯度能量项和通过等式(4)提供的数据能量项然后被组合(即,相加)以定义可被最小化以找到最终虚拟图像119的优化问题,如等式(5)中所示:
E=Eg+λEc
(5)
其中λ是相对于水平和垂直梯度图714与最终虚拟图像119的梯度图之间的相似性、相对于最终虚拟图像与第一虚拟图像的相似性而对最终虚拟图像119与虚拟图像711之间的相似性进行加权的加权因子。该加权因子可以是任何适合的值。在实施例中,该加权因子在0.05至0.15(包括端点)的范围内,其中0.1是特别有利的。
可以将通过等式(5)定义的优化问题表征为最小二乘问题。以下技术提供通过等式(5)定义的问题的近似解,以通过仅依靠卷积运算(例如,卷积滤波运算)来使得能实现降低的计算成本。此类卷积运算非常适于FPGA硬件应用,并且以降低的计算成本和增强的硬件实现方式来提供高质量图像结果。
在实施例中,使用伪逆(pseudo-inverse)的矩阵运算和显式计算来表达通过等式(5)定义的最优化问题,以找到等式(5)的最小二乘问题的解。可以使用如关于滤波器转换器702所讨论的稀疏循环托普利茨矩阵来表达由梯度滤波器141定义的梯度滤波运算(其是用于实现方式的可选特征),所述滤波器转换器702生成卷积矩阵712。卷积矩阵712包括表示梯度滤波器141的水平滤波器的水平卷积矩阵Gx和表示梯度滤波器141的垂直滤波器的垂直卷积矩阵Gy。然后可以像等式(6)中所示的那样表达通过等式(5)定义的优化问题:
Figure BDA0002391530940000161
其中Gx和Gy是卷积矩阵712(例如,用于分别计算x维度和y维度上的梯度的卷积矩阵),并且I是单位矩阵。
可以使用如等式(7)中所示的伪逆来确定通过等式(6)定义的线性最小二乘问题的解:
Figure BDA0002391530940000162
其中上标T表示矩阵转置,上标-1表示矩阵逆,并且等式(7)的右侧是通过等式(6)定义的线性最小二乘问题的解(例如,不是近似值)。
可以将在等式(7)右侧的矩阵解释为滤波运算,其中矩阵的转置相当于在x方向和y方向两者上具有卷积矩阵的相反系数顺序的滤波器。因此,等式(7)的右侧包括对梯度图714和虚拟图像711的滤波运算(例如,
Figure BDA0002391530940000171
),后面是使用逆滤波器来对这样的中间结果进行滤波,所述逆滤波器是简单滤波器的线性组合(例如,该线性组合为
Figure BDA0002391530940000172
)。
对于特定情况示例,当使用邻居差异(例如,使用[+1-1]的水平梯度滤波器)来确定梯度滤波器141时,则
Figure BDA0002391530940000173
(在y维度上,结果将是其转置),并且滤波器的线性组合将如等式(8)中所示:
Figure BDA0002391530940000174
然后可以估计与等式(8)中所示的滤波器的线性组合的逆相对应的卷积模板,使得该卷积模板近似滤波器的线性组合的逆。
参考图7,逆滤波器近似器703接收卷积矩阵712并生成卷积模板713,其近似等式(8)中所示的滤波器的线性组合的逆(例如,
Figure BDA0002391530940000175
Figure BDA0002391530940000176
的逆)。如等式(7)中所示,水平卷积矩阵和垂直卷积矩阵的线性组合可以包括水平卷积矩阵的转置和水平卷积矩阵的乘积、垂直卷积矩阵的转置和垂直卷积矩阵的乘积、以及加权因子和单位矩阵的乘积之和(例如,
Figure BDA0002391530940000177
)。如本文所使用的,术语线性组合指示卷积矩阵、其转置的任何组合、和/或加权因子和单位矩阵的任何组合,该组合仅包括其元素的乘法和加法。在实施例中,水平卷积矩阵和垂直卷积矩阵的线性组合包括水平卷积矩阵的转置和水平卷积矩阵的乘积与垂直卷积矩阵的转置和垂直卷积矩阵的乘积之和。在实施例中,水平卷积矩阵和垂直卷积矩阵的线性组合包括水平卷积矩阵的转置和水平卷积矩阵的乘积及垂直卷积矩阵的转置和垂直卷积矩阵的乘积之和。
可以使用一种或多种任何适合的技术来生成滤波器的线性组合的逆以生成卷积模板713。在实施例中,与加权因子和梯度滤波器141的各种组合相对应的多个预选的卷积模板713被存储以由设备100使用。此类梯度滤波器141和加权因子的组合然后可以由用户或者由生成最终虚拟图像119的应用选择。
例如,关于等式(8)和0.1(即,λ=0.1)的加权因子,所对应的卷积模板713可以是19x19卷积模板。对于较大的加权因子,可以减小卷积模板713的大小。在实施例中,卷积模板713响应于加权因子较大而具有较小的大小,并且反之亦然。此外,卷积模板713(例如,19x19卷积模板)可以通过可分离滤波器或可分离滤波器之和来近似,其中如等式(7)中所示的那样,一个可分离滤波器提供合理的近似值,并且2个以上的可分离滤波器提供所讨论的逆的高质量近似值。
图8图示根据本公开的至少一些实现方式布置的示例卷积模板803和使用可分离滤波器之和的卷积模板803的示例近似。如图8中所示,卷积模板803(可以为卷积模板713)近似(如通过近似运算811所示的那样)水平卷积矩阵Gx、直卷积矩阵Gy、加权因子λ和单位矩阵I的线性组合802的逆801。在所图示的实施例中,线性组合802是水平卷积矩阵的转置和水平卷积矩阵的乘积、垂直卷积矩阵的转置和垂直卷积矩阵的乘积、以及加权因子和单位矩阵的乘积之和。
在所图示的实施例中,卷积模板803是7x7卷积模板,其可以在其每个网格位置中具有对应的滤波器权重。然而,卷积模板803可以是任何大小和形状。在实施例中,卷积模板803是19x19卷积模板。在实施例中,卷积模板803具有不少于15x15个滤波器权重的尺寸。此外,卷积模板803可以是正方形的,如图所示,或者是菱形形状的或任何其他适合的形状。
在图7的上下文中,在一些实施例中,卷积模板803可以作为2D滤波器被应用于虚拟梯度图像715。在其他实施例中,卷积模板803可以作为任何数量820的可分离滤波器804、808等等的和805被应用。例如,如经由近似运算812所示的,卷积模板803可以被近似为2D可分离滤波器804、808的和805,使得2D可分离滤波器804包括1D水平滤波器806和1D垂直滤波器807,2D可分离滤波器808包括1D水平滤波器809和1D垂直滤波器810,依此类推。在操作中,关于图7,逆滤波器模块706可以将2D可分离滤波器804应用于虚拟梯度图像715(例如,通过应用1D水平滤波器806,然后应用1D垂直滤波器807),并且逆滤波器模块706可以将2D可分离滤波器808应用于虚拟梯度图像715(例如,通过应用1D水平滤波器809,然后应用1D垂直滤波器810),并且逆滤波器模块706可以对结果求和以生成最终虚拟图像。如所讨论的,卷积模板803可以通过单个可分离2D滤波器或者作为任何数量(例如,2或3个)可分离2D滤波器的和而被近似。
返回到图7,如图所示,梯度图滤波器705接收梯度图714、卷积矩阵712和虚拟图像711,并且梯度图滤波器705生成虚拟梯度图像715,使得虚拟梯度图像715包括先前讨论的对梯度图714的滤波运算(例如,
Figure BDA0002391530940000191
)。如本文所使用的,术语虚拟梯度图像指示包括虚拟图像711、梯度图714的水平梯度图和梯度图714的垂直梯度图的组合的图像。
在实施例中,虚拟梯度图像715是水平梯度图与水平卷积矩阵的转置的卷积(即,
Figure BDA0002391530940000192
)、垂直梯度图与垂直卷积矩阵的转置的卷积(即,
Figure BDA0002391530940000193
)、以及加权因子和虚拟图像711的乘积(即,
Figure BDA0002391530940000194
)之和。在实施例中,虚拟中间梯度图像包括水平梯度图与水平卷积矩阵的转置的卷积和垂直梯度图与垂直卷积矩阵的转置的卷积之和。如本文所使用的,术语卷积指示使用核、卷积矩阵、模板或滤波器对图像进行的处理,其中此类术语可互换地使用。
如图所示,所得到的虚拟梯度图像715被提供给逆滤波器模块706,其将卷积模板713应用于所得到的虚拟梯度图像715以生成最终虚拟图像119。在实施例中,逆滤波器模块706将卷积模板713应用于合成虚拟梯度图像715以根据等式(7)生成最终虚拟图像119。在实施例中,逆滤波器模块706将卷积模板713(卷积模板713近似至少卷积矩阵712的线性组合的逆)应用于虚拟梯度图像715,所述虚拟梯度图像715是至少虚拟图像711和梯度图714的组合。如所讨论的,最终虚拟图像119可以没有或者具有最小图像伪像以得到增强的观看者体验。
图9图示根据本公开的至少一些实现方式布置的用于将示例可分离卷积模板713应用于示例虚拟梯度图像715的示例***900。如图9中所示,***900包括图像存储器901、边缘扩展模块902、移位寄存器903、行滤波器904、滤波器控制器905、911(其可以被一起或分开地实现)、存储器模块906-908、列滤波器912和经滤波图像存储器916。尽管关于将可分离卷积模板713应用于虚拟梯度图像715来讨论,但是***900可以将任何可分离卷积模板或滤波器(例如,可分离为两个1D滤波器的2D滤波器)应用于任何图像数据(例如,任何输入图像)。此外,可以经由设备100或任何其他适合的设备或平台来实现***900。在实施例中,***900或其任何部分是经由FPGA实现的。
如图所示,可以经由图像存储器901存储虚拟梯度图像715。图像存储器901可以是诸如动态随机存取存储器(DRAM)这样的任何适合的存储器。虚拟梯度图像715可以具有诸如1920x1080个像素这样的任何适合的大小(即,具有W个像素的图像宽度和H个像素的图像高度)。此外,可分离卷积模板713可以具有任何适合的大小(例如,具有带M个滤波器权重的大小为M的水平滤波器和带N个滤波器权重的大小为N的垂直滤波器,通常M=N)。
如图所示,虚拟梯度图像715的特定行的M个像素被从图像存储器901读取并且被缓存在移位寄存器903中。也就是说,在任何特定时间实例处,移位寄存器903缓存虚拟梯度图像715的特定行的M(例如,Mx1)个像素值。对于特定时间实例,行滤波器904接收M个缓存的像素值,并且对其应用虚拟梯度图像715的1D水平可分离滤波器,以针对M个缓存的像素值生成经水平滤波像素值921。在水平滤波之后,来自虚拟梯度图像715的下一个像素值被从图像存储器901获得并移动到移位寄存器903的第一位置中,剩余的像素移动一个位置并且最终值被从移位寄存器903中丢弃。这种顺序处理针对虚拟梯度图像715持续进行。当前的M个缓存的像素值然后被水平滤波以生成下一个经水平滤波像素值921,依此类推贯穿来自虚拟梯度图像715的特定行的像素值的整行。值得注意的是,边缘扩展902可以使用外推技术来提供在虚拟梯度图像715的边缘周围的像素值。
对于经水平滤波像素值921的特定行,经滤波值中的每一个均被存储在一个或多个存储器模块906-908中。如图所示,***900包括N-1个存储器模块906-908的存储器组910,所述N-1个存储器模块906-908被各自配置为存储整行的经水平滤波像素值921。也就是说,存储器模块906-908中的每一个均被配置为存储H个经水平滤波像素值921。存储器模块906-908是诸如静态随机存取存储器(SRAM)这样的任何适合的存储器。存储器模块906-908可以是双端口线路缓存器(line buffer),并且存储器组910可以是例如在FPGA中实现的链或线路缓存器。如图所示,该行经水平滤波像素值921可以被存储在第一存储器模块906中,使得该行经水平滤波像素值921被仅提供给存储器模块906(而未提供给任何其他模块)。如在下面所讨论的那样,该行经水平滤波像素值921被同时提供给滤波器控制器911。
一旦针对虚拟梯度图像715的一行完成水平滤波,就以如上面所讨论的类似顺序的方式处理下一行以生成另一(第二)行的经水平滤波像素值921。第二行的经水平滤波像素值921被再次仅提供给第一存储器模块906(并被提供给滤波器控制器911)。如图所示,前一行的经水平滤波像素值921被转移到第二存储器模块906,同时任何其他先前行也被级联到其他存储器模块。也就是说,存储在存储器模块906中的先前存储的一行经水平滤波像素值921被转移到存储器模块907,存储在存储器模块907中的先前存储的一行经水平滤波像素值921被转移到存储器组910的后续存储器模块,依此类推到存储器模块908。存储在存储器模块908中的先前存储的一行经水平滤波像素值921被丢弃。
值得注意的是,当存储器组910的存储器模块906-908中的每一个均包括存储在其中的一行经水平滤波像素值921时,滤波器控制器911开始从存储器模块906-908中的每一个中检索经水平滤波像素值921中的每一个,以及直接地从行滤波器904中检索经水平滤波像素值921。因此,滤波器控制器911获得被垂直地对齐(例如,在列中)的N个经水平滤波像素值921,以由列滤波器912(例如,可分离卷积模板713的1xN垂直滤波器)滤波以生成经滤波像素917,其被存储到经滤波图像存储器916。值得注意的是,经滤波像素917已被水平地和垂直地滤波并且因此是经完全滤波的像素值。这种处理针对正在由行滤波器904滤波的行的所有经水平滤波像素值921持续进行,使得所有此类经水平滤波像素值921被垂直地滤波以生成经滤波像素值917,从而生成被存储到经滤波图像存储器916的一行经完全滤波的值。经滤波图像存储器916可以是诸如动态随机存取存储器(DRAM)这样的任何适合的存储器。
如所讨论的,当前行的经水平滤波像素值921也被顺序地存储(当像素值由滤波器控制器911检索时)到存储器模块906中,使得处理可以针对下一个经滤波行如所讨论的那样继续进行。也就是说,存储器组910维护N-1行经水平滤波像素值921以供滤波器控制器911检索并由列滤波器912滤波,同时第N行被实时地提供并存储(以用于N+1行的处理)等等。
因此,对于具有宽度W和高度H的虚拟梯度图像715以及作为可分离为具有宽度M的水平滤波器和具有高度H的垂直滤波器的可分离2D滤波器模板的卷积模板713,应用卷积模板713包括:跨时间实例顺序地将虚拟梯度图像715的特定行的仅M个像素缓存到移位寄存器903,并且经由行滤波器904将Mx1水平滤波器应用于M个像素以生成针对第一行的经水平滤波像素值921的序列。经水平滤波像素值921(针对第一行)的序列被存储到存储器模块906(例如,存储器组910的N-1个存储器模块中的一个),使得存储器模块906-908中的每一个均被配置为存储虚拟梯度图像715的一整行W个经水平滤波像素值921。然后,响应于N-1个存储器模块906-908中的每一个均具有一行经滤波像素值,滤波器控制器911从N-1个存储器模块906-908中的每一个中检索一个经水平滤波像素值并从行滤波器904中检索一个经水平滤波像素值,并且列滤波器912将垂直滤波器应用于N个经水平滤波像素以生成经卷积模板滤波的像素值917,其被存储到经滤波图像存储器916。这种处理针对虚拟梯度图像715的每一行顺序地继续,同时每个经处理的行都被存储到存储器模块906并提供给滤波器控制器911(以由列滤波器912处理),使得该行到存储器模块906的存储也使每个先前存储的行移位到存储器模块906-908中的后续一个。因此,每一行经水平滤波像素值921被对齐以进行列滤波。
上述技术消除对于同时访问卷积模板713(例如,MxN,诸如19x19)所要求的所有像素的需要,这在先前架构中要求从存储器进行许多读取和慢数据速率。此类技术通过使用流水线架构来减少关键路径延迟而实现实时处理和所需硬件资源的减少。***900包括一串18个例如由行滤波器904之后的存储器模块906-908提供的线路缓存器。可以使用FPGA中的硬存储器块来实现线路缓存器链。如所讨论的,每当新的经水平滤波像素到达时,该经水平滤波像素就被存储在通过帧中的像素的列所寻址的位置处的第一线路缓存器中。在一些实施例中,实例化FPGA块是双端口存储器并且第二端口被用于从同一存储器位置读取像素(例如,来自前一行的同一列中的像素)。所读取的像素然后被存储在链中的后续缓存器中,依此类推。例如18个线路缓存器(例如,N-1个缓存器)的输出和行滤波器的输出形成19个垂直邻近像素(例如,被垂直地对齐的19个经水平滤波像素)的集合。因此,经水平滤波像素对列滤波器912来说可以正确的顺序被获得。如所讨论的,***900还可以包括边缘扩展模块902以保留其边缘周围的图像分辨率和质量。此外,滤波器控制器905、911可以用于启用和禁用行滤波器904和列滤波器912以支持图像子采样(例如,通过跳过每隔一个像素等的处理)或裁切(例如,通过不处理裁切区域外的像素)。这种滤波器控制支持不同的输出分辨率和虚拟裁切窗口。
图10是图示根据本公开的至少一些实现方式布置的用于生成场景的虚拟视图的示例过程1000的流程图。过程1000可以包括如图10中所图示的一个或多个操作1001-1005。过程1000可以形成虚拟视图生成过程的至少一部分。作为非限制性示例,过程1000可以形成如由设备100像本文所讨论的那样执行的虚拟视图生成过程的至少一部分。此外,将在本文中参考图11的***1100来描述过程1000。
图11是根据本公开的至少一些实现方式布置的用于生成场景的虚拟视图的示例***1100的说明性图。如图11中所示,***1100可以包括中央处理器1101、图像处理器1102和存储器1103。同样如图所示,图像处理器1102可以包括或者实现视差模块102、图像翘曲模块103、遮挡填充模块107、孔填充模块108和虚拟视图混合模块109。在***1100的示例中,存储器1103可以存储图像或帧数据、翘曲图像或帧数据、填充翘曲图像或帧数据、改良翘曲图像或帧数据、最终虚拟图像或帧数据、卷积矩阵、梯度滤波器、梯度图、虚拟梯度图像或本文讨论的任何其他数据。
如图所示,在一些示例中,视差模块102、图像翘曲模块103、遮挡填充模块107、孔填充模块108和虚拟视图混合模块109中的一个或多个或部分是经由图像处理器1102来实现的。在其他示例中,视差模块102、图像翘曲模块103、遮挡填充模块107、孔填充模块108和虚拟视图混合模块109中的一个或多个或部分是经由中央处理器1101、图像处理单元、图像处理流水线、图像信号处理器等来实现的。在一些示例中,视差模块102、图像翘曲模块103、遮挡填充模块107、孔填充模块108和虚拟视图混合模块109中的一个或多个或部分作为片上***(SoC)用硬件加以实现。在一些示例中,视差模块102、图像翘曲模块103、遮挡填充模块107、孔填充模块108和虚拟视图混合模块109中的一个或多个或部分经由FPGA用硬件加以实现。
图像处理器1102可以包括可以提供如本文所讨论的操作的任何数量和类型的图像或图形处理单元。可以经由软件或硬件或其组合来实现此类操作。例如,图像处理器1102可以包括专用于操纵和/或分析从存储器1103获得的图像的电路。中央处理器1101可以包括可以为***1100提供控制和其他高级功能并且/或者提供如本文所讨论的任何操作的任何数量和类型的处理单元或模块。存储器1103可以是任何类型的存储器,诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪速存储器等)等等。在非限制性示例中,可以通过高速缓存存储器来实现存储器1103。在实施例中,视差模块102、图像翘曲模块103、遮挡填充模块107、孔填充模块108和虚拟视图混合模块109中的一个或多个或部分是经由图像处理器1102的执行单元(EU)来实现的。EU可以包括例如可编程逻辑或电路,诸如可以提供各种各样的可编程逻辑功能的一个或多个逻辑核心。在实施例中,视差模块102、图像翘曲模块103、遮挡填充模块107、孔填充模块108和虚拟视图混合模块109中的一个或多个或部分是经由诸如固定功能电路等这样的专用硬件来实现的。固定功能电路可以包括专用逻辑或电路并且可以提供一组固定功能入口点,所述固定功能入口点可以映射到专用逻辑以用于固定目的或功能。
返回到图10的讨论,过程1000在操作1001处开始,在操作1001处使用第一输入图像和第二输入图像及其之间的对应图,来为分别与第一输入图像和第二输入图像相对应的第一视图位置和第二视图位置之间的所选视图位置生成第一虚拟图像。可以使用一种或多种任何适合的技术来生成第一虚拟图像。例如,可以使用对应图(例如,视差图)来使第一输入图像和第二输入图像两者都翘曲到视图位置,可以对所得到的翘曲图像进行遮挡填充和孔填充,并且可以使用所得到的改良图像来使用线性内插或其他内插技术将第一虚拟图像内插到视图位置。
处理在操作1002处继续,在操作1002处基于在第一输入图像和第二输入图像中检测到的水平梯度和垂直梯度以及对应图来针对所选视图位置确定水平梯度图和垂直梯度图。可以使用一种或多种任何适合的技术来确定水平梯度图和垂直梯度图。在实施例中,使用关于操作1001讨论的技术。例如,可以通过以下操作来生成水平梯度图和垂直梯度图:将梯度滤波器应用于第一输入图像和第二输入图像、使所得到的梯度图翘曲到视图位置、可选地执行遮挡填充和孔填充并且针对所选视图位置对水平梯度图和垂直梯度图进行内插。
处理在操作1003处继续,在操作1003处生成分别表示水平梯度和垂直梯度的检测的水平卷积矩阵和垂直卷积矩阵。例如,水平卷积矩阵和垂直卷积矩阵可以用于生成水平梯度和垂直梯度,或者可以基于用于生成水平梯度和垂直梯度的线性滤波器(或其他梯度滤波器)来确定水平卷积矩阵和垂直卷积矩阵。在实施例中,水平卷积矩阵和垂直卷积矩阵是稀疏循环托普利茨矩阵。
处理在操作1004处继续,在操作1004处,近似至少水平卷积矩阵和垂直卷积矩阵的线性组合的逆的卷积模板被应用于包括至少第一虚拟图像、水平梯度图和垂直梯度图的组合的虚拟中间梯度图像,以为所选视图位置生成最终虚拟图像。至少水平卷积矩阵和垂直卷积矩阵的线性组合的逆可以是任何逆,并且虚拟中间梯度图像可以包括本文讨论的任何虚拟梯度图像,诸如关于等式(7)并在本文中别处讨论的那些。
在实施例中,水平卷积矩阵和垂直卷积矩阵的线性组合包括水平卷积矩阵的转置和水平卷积矩阵的乘积与垂直卷积矩阵的转置和垂直卷积矩阵的乘积之和。在实施例中,线性组合进一步包括加权因子和单位矩阵的乘积,使得加权因子相对于最终虚拟图像的水平梯度和垂直梯度与水平梯度图和垂直梯度图的相似性而对最终虚拟图像与第一虚拟图像的相似性进行加权。
在实施例中,虚拟中间梯度图像包括水平梯度图与水平卷积矩阵的转置的卷积和垂直梯度图与垂直卷积矩阵的转置的卷积之和。在实施例中,虚拟中间梯度图像进一步包括加权因子和第一虚拟图像的乘积,使得加权因子相对于最终虚拟图像的水平梯度和垂直梯度与水平梯度图和垂直梯度图的相似性而对最终虚拟图像与第一虚拟图像的相似性进行加权。
在实施例中,水平卷积矩阵和垂直卷积矩阵的线性组合包括水平卷积矩阵的转置和水平卷积矩阵的乘积及垂直卷积矩阵的转置和垂直卷积矩阵的乘积之和,并且虚拟中间梯度图像包括水平梯度图与水平卷积矩阵的转置的卷积、垂直梯度图与垂直卷积矩阵的转置的卷积及加权因子和第一虚拟图像的乘积之和。
卷积模板可以具有任何适合的大小和形状。在实施例中,卷积模板是具有不少于15x15个滤波器权重的尺寸的正方形卷积模板。在实施例中,卷积模板包括第一可分离滤波器(例如,第一水平滤波器和第一垂直滤波器)和第二可分离滤波器(例如,第二水平滤波器和第二垂直滤波器),并且应用卷积模板包括:将第一可分离滤波器应用于虚拟梯度图像以生成第一所得到的经滤波梯度图像;将第二可分离滤波器应用于虚拟梯度图像以生成第二所得到的经滤波梯度图像;以及对第一经滤波梯度图像和第二经滤波梯度图像求和以生成最终虚拟图像。
在实施例中,虚拟中间梯度图像具有宽度W和高度H,卷积模板是可分离为具有宽度M的水平滤波器和具有高度H的垂直滤波器的可分离2D滤波器模板,并且应用卷积模板包括:跨时间实例顺序地将虚拟中间梯度图像的第一行的仅M个像素缓存到移位寄存器并且经由行滤波器将水平滤波器应用于M个像素以生成针对第一行的经水平滤波像素值的序列;将针对第一行的经水平滤波像素值的序列存储到N-1个存储器模块中的一个,所述N-1个存储器模块各自被配置为存储虚拟中间梯度图像的一整行W个经滤波像素值;以及响应于N-1个存储器模块中的每一个均具有一行经滤波像素值,从N-1个存储器模块中的每一个中检索一个经水平滤波像素值并从行滤波器中检索一个经水平滤波像素值,并且将垂直滤波器应用于N个经水平滤波像素以生成经卷积模板滤波的像素值。
在一些实施例中,应用卷积模板进一步包括:跨另外的时间实例顺序地将虚拟梯度图像的第二至第N行的仅M个像素缓存到移位寄存器并且应用水平滤波器以生成针对第二至第N行的经水平滤波像素值的序列;将针对第二至第N-1行的经水平滤波像素值的序列存储到N-1个存储器模块中的对应的模块;以及从N-1个存储器模块中检索第一至N-1个序列中的每个序列的一个经水平滤波像素值并从行滤波器中检索第N个序列的一个经水平滤波像素值,并且将垂直滤波器应用于N个检索到的经水平滤波像素值以生成第二经卷积模板滤波的像素值。在实施例中,存储经水平滤波像素值的序列包括处理器将针对第一行的经水平滤波像素值的序列移动到N-1个存储器模块中的每一个。
处理在操作1005处继续,在操作1005处提供最终虚拟图像以供呈现给观看者。可以使用一种或多种任何适合的技术来提供最终虚拟图像以供呈现。在实施例中,提供最终虚拟图像以供呈现给观看者包括将最终虚拟图像发送到具有显示屏的接收设备。在实施例中,提供最终虚拟图像以供呈现给观看者包括将最终虚拟图像发送到存储器。如本文所使用的,提供图像以供呈现包括:将图像发送到显示设备;将图像存储到存储器以供以后显示;和/或将图像发送到另一设备以供在该设备处显示。
可以针对任何数量的输入图像对、成对的视频帧等串行地或并行地重复过程1000任何次数。如所讨论的,过程1000可以提供对应于相对于场景的视图位置的虚拟图像、视图、图像帧、视频帧等。
过程1000可以由任何适合的设备、***或平台(诸如本文讨论的那些)来实现。在实施例中,过程1000由具有用于存储第一输入图像和第二输入图像以及任何其他讨论的数据结构的存储器和用于执行操作1001-1005的处理器的设备来实现。在实施例中,存储器和处理器是经由单片现场可编程门阵列集成电路来实现的。如本文所使用的,术语单片指示与其他设备分立的设备,但是它可以被耦合到其他设备以进行通信和供电。
本文描述的***的各种组件可以用软件、固件和/或硬件和/或其任何组合实现。例如,本文论述的设备或***的各种组件可至少部分由计算片上***(SoC)的硬件提供,例如可存在于计算***中,例如智能电话中。本领域技术人员可认识到,本文描述的***可包括在相应附图中没有描绘的额外组件。例如,本文论述的***可包括为了清晰起见没有描绘的额外组件。
虽然本文论述的示例过程的实现方式可包括执行按图示顺序示出的所有操作,但本公开不限于此,并且在各种示例中,这里的示例过程的实现方式可只包括所示出的操作的子集,包括按与图示的顺序不同的顺序执行的操作,或者包括额外的操作。
此外,本文论述的操作中的任何一个或多个可响应于由一个或多个计算机程序产品提供的指令来进行。这种程序产品可包括提供指令的信号承载介质,所述指令当被例如处理器执行时可提供本文描述的功能。计算机程序产品可在任何形式的一个或多个机器可读介质中提供。从而,例如,包括一个或多个图形处理单元或处理器核的处理器可响应于被一个或多个机器可读介质输送到处理器的程序代码和/或指令或指令集而执行这里的示例过程的一个或多个块。一般而言,机器可读介质可通过程序代码和/或指令或指令集的形式输送软件,所述程序代码和/或指令或指令集可使得本文描述的任何设备和/或***实现这些设备或***的至少一些部分,或者如本文所述的任何其他模块或组件。
按照在本文描述的任何实现方式中使用的,术语“模块”指的是被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可实现为软件封装、代码和/或指令集或指令,并且如本文描述的任何实现方式中使用的“硬件”例如可单一地或者组合地包括硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储被可编程电路执行的指令的固件。模块可集体地或者分别地实现为形成更大***的一部分的电路,例如集成电路(IC)、片上***(SoC),等等。
图12是根据本公开的至少一些实现方式布置的示例***1200的示意图。在各种实现方式中,***1200可以是移动设备***,虽然***1200不限于此情境。例如,***1200可被包含到以下各项中:个人计算机(PC)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(mobileinternet device,MID)、消息传递设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lens reflex,DSLR)相机)、监视相机、包括相机的监视***,等等。
在各种实现方式中,***1200包括耦合到显示器1220的平台1202。平台1202可从内容设备接收内容,其中内容设备例如是(一个或多个)内容服务设备1230或(一个或多个)内容递送设备1240或其他内容源,例如图像传感器1219。例如,平台1202可从图像传感器1219或任何其他内容源接收如本文所述的图像数据。包括一个或多个导航特征的导航控制器1250可用于与例如平台1202和/或显示器1220交互。这些组件的每一者在下文更详述描述。
在各种实现方式中,平台1202可包括芯片集1205、处理器1210、存储器1212、天线1213、存储装置1214、图形子***1215、应用1216、图像信号处理器1217和/或无线电装置1218的任何组合。芯片集1205可提供处理器1210、存储器1212、存储装置1214、图形子***1215、应用1216、图像信号处理器1217和/或无线电装置1218之间的相互通信。例如,芯片集1205可包括能够提供与存储装置1214的相互通信的存储适配器(未图示)。
处理器1210可实现为复杂指令集计算机(Complex Instruction Set Computer,CISC)或精简指令集计算机(Reduced Instruction Set Computer,RISC)处理器、x86指令集兼容处理器、多核或者任何其他微处理器或中央处理单元(CPU)。在各种实现方式中,处理器1210可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器,等等。
存储器1212可实现为易失性存储器设备,例如——但不限于——随机访问存储器(RAM)、动态随机访问存储器(DRAM)或静态RAM(SRAM)。
存储装置1214可实现为非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池后备SDRAM(同步DRAM)和/或网络可访问存储设备。在各种实现方式中,例如当包括多个硬盘驱动器时,存储装置1214可包括用于为有价值的数字媒体增加存储性能增强保护的技术。
图像信号处理器1217可实现为用于图像处理的专用数字信号处理器等。在一些示例中,图像信号处理器1217可基于单指令多数据或多指令多数据体系结构等来实现。在一些示例中,图像信号处理器1217可被表征为媒体处理器。如本文所述,图像信号处理器1217可基于片上***体系结构和/或基于多核体系结构来实现。
图形子***1215可执行诸如静态或视频之类的图像的处理以便显示。图形子***1215例如可以是图形处理单元(graphics processing unit,GPU)或视觉处理单元(visualprocessing unit,VPU)。模拟或数字接口可用于通信地耦合图形子***1215和显示器1220。例如,该接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术中的任何一者。图形子***1215可被集成到处理器1210或芯片集1205中。在一些实现方式中,图形子***1215可以是通信地耦合到芯片集1205的独立设备。
本文描述的图形和/或视频处理技术可在各种硬件体系结构中实现。例如,图形和/或视频功能可被集成在芯片集内。或者,可使用分立的图形和/或视频处理器。作为另外一种实现方式,图形和/或视频功能可由包括多核处理器在内的通用处理器提供。在另外的实施例中,这些功能可实现在消费电子设备中。
无线电装置1218可包括能够利用各种适当的无线通信技术来发送和接收信号的一个或多个无线电装置。这种技术可涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(wireless local area network,WLAN)、无线个人区域网(wireless personal area network,WPAN)、无线城域网(wireless metropolitan areanetwork,WMAN)、蜂窝网络和卫星网络。在跨这种网络通信时,无线电装置1218可根据任何版本的一个或多个适用的标准操作。
在各种实现方式中,显示器1220可包括任何电视型监视器或显示器。显示器1220例如可包括计算机显示屏幕、触摸屏显示器、视频监视器、类似电视的设备和/或电视机。显示器1220可以是数字的和/或模拟的。在各种实现方式中,显示器1220可以是全息显示器。另外,显示器1220可以是可接收视觉投影的透明表面。这种投影可传达各种形式的信息、图像和/或对象。例如,这种投影可以是移动增强现实(mobile augmented reality,MAR)应用的视觉覆盖。在一个或多个软件应用1216的控制下,平台1202可在显示器1220上显示用户界面1222。
在各种实现方式中,(一个或多个)内容服务设备1230可由任何国家的、国际的和/或独立的服务容宿,并且从而例如是平台1202经由互联网可访问的。(一个或多个)内容服务设备1230可耦合到平台1202和/或显示器1220。平台1202和/或(一个或多个)内容服务设备1230可耦合到网络1260以向和从网络1260传输(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备1240也可耦合到平台1202和/或显示器1220。
图像传感器1219可包括可基于场景提供图像数据的任何适当的图像传感器。例如,图像传感器1219可包括基于半导体电荷耦合器件(charge coupled device,CCD)的传感器、基于互补金属氧化物半导体(complimentary metal-oxide-semiconductor,CMOS)的传感器、基于N型金属氧化物半导体(N-type metal-oxide-semiconductor,NMOS)的传感器,等等。例如,图像传感器1219可包括可检测场景的信息以生成图像数据的任何设备。
在各种实现方式中,(一个或多个)内容服务设备1230可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的具备互联网能力的设备或家电、以及能够经由网络1260或直接地在内容提供者与平台1202和/或显示器1220之间单向或双向地传输内容的任何其他类似设备。将会明白,可经由网络1260单向地和/或双向地向和从***1200中的组件的任何一者和内容提供者传输内容。内容的示例可包括任何媒体信息,例如包括视频、音乐、医疗和游戏信息,等等。
(一个或多个)内容服务设备1230可接收内容,例如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供者的示例可包括任何有线或***或无线电台或互联网内容提供者。提供的示例并不意图以任何方式限制根据本公开的实现方式。
在各种实现方式中,平台1202可从具有一个或多个导航特征的导航控制器1250接收控制信号。导航控制器1250的导航特征例如可用于与用户界面1222交互。在各种实施例中,导航控制器1250可以是指点设备,该指点设备可以是允许用户将空间(例如,连续的和多维的)数据输入到计算机中的计算机硬件组件(具体而言是人机接口设备)。诸如图形用户界面(GUI)、电视机和监视器之类的许多***允许用户利用物理手势控制计算机或电视机和向其提供数据。
导航控制器1250的导航特征的移动可通过在显示器上显示的指针、光标、聚焦环或其他视觉指示物的移动被复制在显示器(例如,显示器1220)上。例如,在软件应用1216的控制下,位于导航控制器1250上的导航特征例如可被映射到在用户界面1222上显示的虚拟导航特征。在各种实施例中,导航控制器1250可以不是单独的组件,而是可被集成到平台1202和/或显示器1220中。然而,本公开并不限于本文示出或描述的元素或者情境。
在各种实现方式中,例如,当被使能时,驱动器(未示出)可包括使得用户能够在初始启动之后通过触摸按钮像电视机那样即刻开启和关闭平台1202的技术。程序逻辑可允许平台1202即使在平台被“关闭”时也可将内容流传输到媒体适配器或(一个或多个)其他内容服务设备1230或(一个或多个)内容递送设备1240。此外,芯片集1205可包括对例如5.1环绕立体声音频和/或高清晰度7.1环绕立体声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可包括高速***组件互连(peripheral component interconnect,PCI)图形卡。
在各种实现方式中,***1200中示出的组件中的任何一个或多个可被集成。例如,平台1202和(一个或多个)内容服务设备1230可被集成,或者平台1202和(一个或多个)内容递送设备1240可被集成,或者平台1202、(一个或多个)内容服务设备1230和(一个或多个)内容递送设备1240可被集成。在各种实施例中,平台1202和显示器1220可以是集成的单元。例如,显示器1220和(一个或多个)内容服务设备1230可被集成,或者显示器1220和(一个或多个)内容递送设备1240可被集成。这些示例并不意图限制本公开。
在各种实施例中,***1200可被实现为无线***、有线***或者两者的组合。当被实现为无线***时,***1200可包括适合于通过无线共享介质通信的组件和接口,例如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑,等等。无线共享介质的示例可包括无线频谱的一些部分,例如RF频谱等等。当被实现为有线***时,***1200可包括适合于通过有线通信介质通信的组件和接口,例如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(network interface card,NIC)、盘控制器、视频控制器、音频控制器,等等。有线通信介质的示例可包括导线、电缆、金属引线、印刷电路板(printed circuit board,PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤,等等。
平台1202可建立一个或多个逻辑或物理信道来传输信息。该信息可包括媒体信息和控制信息。媒体信息可以指表示打算给用户的内容的任何数据。内容的示例例如可包括来自语音交谈的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等。来自语音交谈的数据可例如是话音信息、静默时段、背景噪声、舒适噪声、音调,等等。控制信息可以指表示打算给自动化***的命令、指令或控制字的任何数据。例如,控制信息可用于将媒体信息路由通过***,或者指示节点以预定的方式处理媒体信息。然而,实施例并不限于图12中示出或描述的元素或情境。
如上所述,***1200可实现为不同的物理风格或形式因子。图13图示了根据本公开的至少一些实现方式布置的示例小形式因子设备1300。在一些示例中,***1200可经由设备1300实现。在其他示例中,本文论述的其他***、组件或模块或者其一些部分可经由设备1300实现。在各种实施例中,例如,设备1300可实现为具有无线能力的移动计算设备。移动计算设备例如可以指具有处理***和移动电源或供电电源(例如一个或多个电池)的任何设备。
移动计算设备的示例可包括个人计算机(PC)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、智能设备(例如,智能电话、智能平板或智能移动电视)、移动互联网设备(MID)、消息传递设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lens reflex,DSLR)相机),等等。
移动计算设备的示例还可包括被布置为由机动车辆或机器人实现的或者被人穿戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带扣计算机、臂环计算机、鞋子计算机、衣服计算机和其他可穿戴计算机。在各种实施例中,例如,移动计算设备可实现为除了语音通信和/或数据通信以外还能够执行计算机应用的智能电话。虽然例如一些实施例可利用被实现为智能电话的移动计算设备来描述,但可明白其他实施例也可利用其他无线移动计算设备来实现。实施例不限于此情境中。
如图13中所示,设备1300可包括具有正面1301和背面1302的外壳。设备1300包括显示器1304、输入/输出(I/O)设备1306、彩色相机1321、彩色相机1322、红外发送器1323、和集成天线1308。在一些实施例中,彩色相机1321和彩色相机1322获得如本文所述的平面图像。在一些实施例中,设备1300不包括彩色相机1321和1322并且设备1300从另一设备获得输入图像数据(例如,本文论述的任何输入图像数据)。设备1300还可包括导航特征1312。I/O设备1306可包括用于将信息输入到移动计算设备中的任何适当的I/O设备。I/O设备1306的示例可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别设备和软件,等等。信息也可经由麦克风(未示出)被输入到设备1300中或者可被语音识别设备数字化。如图所示,设备1300可包括彩色相机1321、1322,以及集成到设备1300的背面1302(或者别处)的闪光灯1310。在其他示例中,彩色相机1321、1322和闪光灯1310可被集成到设备1300的正面1301,或者正面和背面相机集合都可被提供。彩色相机1321、1322和闪光灯1310可以是相机模块的组件以创建具有IR纹理校正的彩色图像数据,该彩色图像数据可被处理成图像或流视频,该图像或流视频例如被输出到显示器1304和/或从设备1300经由天线1308远程传输。
各种实施例可利用硬件元素、软件元素或者两者的组合来实现。硬件元素的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(application specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)、数字信号处理器(digital signal processor,DSP)、现场可编程门阵列(field programmable gate array,FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集,等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、***程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(application program interface,API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者这些的任何组合。确定一实施例是否利用硬件元素和/或软件元素实现可根据任何数目的因素而变化,例如期望的计算速率、电力水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
至少一个实施例的一个或多个方面可由存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令实现,该逻辑当被机器读取时使得该机器制造逻辑来执行本文描述的技术。这种被称为IP核的表示可被存储在有形机器可读介质上并且被提供到各种客户或制造设施以加载到实际制作该逻辑或处理器的制造机器中。
虽然已参考各种实现方式描述了本文记载的某些特征,但此描述并不打算被从限制意义上来解释。因此,对本公开所属领域的技术人员来说显而易见的对本文描述的实现方式的各种修改以及其他实现方式被认为属于本公开的精神和范围内。
在一个或多个第一实施例中,一种用于生成场景的虚拟视图的方法包括:使用第一输入图像和第二输入图像及其之间的对应图,来为分别与所述第一输入图像和所述第二输入图像相对应的第一视图位置和第二视图位置之间的所选视图位置生成第一虚拟图像;基于在所述第一输入图像和所述第二输入图像中检测到的水平梯度和垂直梯度及所述对应图,来针对所述所选视图位置确定水平梯度图和垂直梯度图;确定分别表示对所述水平梯度和所述垂直梯度的检测的水平卷积矩阵和垂直卷积矩阵;将卷积模板应用于包括至少所述第一虚拟图像、所述水平梯度图和所述垂直梯度图的组合的虚拟中间梯度图像,以为所述所选视图位置生成最终虚拟图像,所述卷积模板近似至少所述水平卷积矩阵和所述垂直卷积矩阵的线性组合的逆;以及提供所述最终虚拟图像以供呈现给观看者。
在一个或多个第二实施例中,相对于所述第一实施例进一步地,所述水平卷积矩阵和所述垂直卷积矩阵的线性组合包括以下二者之和:所述水平卷积矩阵的转置和所述水平卷积矩阵的乘积、所述垂直卷积矩阵的转置和所述垂直卷积矩阵的乘积。
在一个或多个第三实施例中,相对于所述第一或第二实施例进一步地,所述线性组合进一步包括加权因子和单位矩阵的乘积,并且所述加权因子相对于所述最终虚拟图像的水平梯度和垂直梯度与所述水平梯度图和所述垂直梯度图的相似性而对所述最终虚拟图像与所述第一虚拟图像的相似性进行加权。
在一个或多个第四实施例中,相对于所述第一至第三实施例进一步地,所述虚拟中间梯度图像包括以下二者之和:所述水平梯度图与所述水平卷积矩阵的转置的卷积、所述垂直梯度图与所述垂直卷积矩阵的转置的卷积。
在一个或多个第五实施例中,相对于所述第一至第四实施例进一步地,所述虚拟中间梯度图像进一步包括加权因子和所述第一虚拟图像的乘积,并且所述加权因子相对于所述最终虚拟图像的水平梯度和垂直梯度与所述水平梯度图和所述垂直梯度图的相似性而对所述最终虚拟图像与所述第一虚拟图像的相似性进行加权。
在一个或多个第六实施例中,相对于所述第一至第五实施例进一步地,所述水平卷积矩阵和所述垂直卷积矩阵的线性组合包括以下二者之和:所述水平卷积矩阵的转置和所述水平卷积矩阵的乘积、所述垂直卷积矩阵的转置和所述垂直卷积矩阵的乘积,并且所述虚拟中间梯度图像包括以下各项之和:所述水平梯度图与所述水平卷积矩阵的转置的卷积、所述垂直梯度图与所述垂直卷积矩阵的转置的卷积、以及加权因子和所述第一虚拟图像的乘积。
在一个或多个第七实施例中,相对于所述第一至第六实施例进一步地,所述卷积模板包括滤波器模块,该滤波器模板具有的尺寸不少于15x15个滤波器权重。
在一个或多个第八实施例中,相对于所述第一至第七实施例进一步地,所述卷积模板包括至少第一可分离滤波器和第二可分离滤波器,并且应用所述卷积模板包括:将所述第一可分离滤波器应用于所述虚拟梯度图像以生成所得到的第一经滤波梯度图像;将所述第二可分离滤波器应用于所述虚拟梯度图像以生成所得到的第二经滤波梯度图像;以及对所述第一经滤波梯度图像和所述第二经滤波梯度图像求和以生成所述最终虚拟图像。
在一个或多个第九实施例中,相对于所述第一至第八实施例进一步地,所述虚拟中间梯度图像包括宽度W和高度H,所述卷积模板包括可分离为具有宽度M的水平滤波器和具有高度H的垂直滤波器的可分离2D滤波器模板,并且应用所述卷积模板包括:跨时间实例,顺序地将所述虚拟中间梯度图像的第一行的仅M个像素缓存到移位寄存器,并且经由行滤波器将所述水平滤波器应用于所述M个像素以生成针对所述第一行的经水平滤波像素值的序列;将针对所述第一行的经水平滤波像素值的序列存储到N-1个存储器模块中的一个,所述N-1个存储器模块各自被配置为存储所述虚拟中间梯度图像的一整行W个经滤波像素值;以及响应于所述N-1个存储器模块中的每一个均具有一行经滤波像素值,从所述N-1个存储器模块中的每一个中检索一个经水平滤波像素值并从所述行滤波器中检索一个经水平滤波像素值,并且将所述垂直滤波器应用于所述N个经水平滤波像素以生成经卷积模板滤波的像素值。
在一个或多个第十实施例中,相对于所述第一至第九实施例进一步地,所述方法包括:跨另外的时间实例,顺序地将所述虚拟梯度图像的第二至第N行的仅M个像素缓存到所述移位寄存器,并且应用所述水平滤波器以生成针对所述第二至第N行的经水平滤波像素值的序列;将针对第二至N-1行的经水平滤波像素值的序列存储到所述N-1个存储器模块中的对应存储器模块;以及从所述N-1个存储器模块中检索第一至N-1个序列中的每个序列的一个经水平滤波像素值并从所述行滤波器中检索第N个序列的一个经水平滤波像素值,并且将所述垂直滤波器应用于所述N个检索到的经水平滤波像素值以生成第二经卷积模板滤波的像素值。
在一个或多个第十一实施例中,相对于所述第一至第十实施例进一步地,存储经水平滤波像素值的序列包括:将针对所述第一行的经水平滤波像素值的序列移动到所述N-1个存储器模块中的每一个。
在一个或多个第十二实施例中,一种设备或***包括:存储器;以及处理器,所述处理器用于执行根据上述实施例中的任何一个的方法。
在一个或多个第十三实施例中,至少一种机器可读介质包括多个指令,所述多个指令响应于在计算设备上被执行而使所述计算设备执行根据上述实施例中的任何一个的方法。
在一个或多个第十四实施例中,一种设备可以包括用于执行根据上述实施例中的任何一个的方法的装置。
将会认识到,实施例不限于这样描述的实施例,而是可在带有修改和变更的情况下实现,而不脱离所附权利要求的范围。例如,上述实施例可包括特征的特定组合。然而,上述实施例不限于此,并且在各种实现方式中,上述实施例可包括仅约定这些特征的子集,约定这些特征的不同顺序,约定这些特征的不同组合和/或约定除明确列出的那些特征以外的额外特征。实施例的范围因此应当参考所附权利要求以及这些权利要求有权享有的等同物的完整范围来确定。

Claims (25)

1.一种用于生成场景的虚拟视图的设备,所述设备包括:
存储器,所述存储器用于存储第一输入图像和第二输入图像;以及
耦合到所述存储器的处理器,所述处理器用于:
使用所述第一输入图像和所述第二输入图像及其之间的对应图,来为分别与所述第一输入图像和所述第二输入图像相对应的第一视图位置和第二视图位置之间的所选视图位置生成第一虚拟图像;
基于在所述第一输入图像和所述第二输入图像中检测到的水平梯度和垂直梯度以及所述对应图,来针对所述所选视图位置确定水平梯度图和垂直梯度图;
确定分别表示对所述水平梯度和所述垂直梯度的检测的水平卷积矩阵和垂直卷积矩阵;
将卷积模板应用于虚拟中间梯度图像,来为所述所选视图位置生成最终虚拟图像,所述虚拟中间梯度图像包括至少所述第一虚拟图像、所述水平梯度图和所述垂直梯度图的组合,所述卷积模板近似至少所述水平卷积矩阵和所述垂直卷积矩阵的线性组合的逆;并且
提供所述最终虚拟图像以呈现给观看者。
2.根据权利要求1所述的设备,其中,所述水平卷积矩阵和所述垂直卷积矩阵的线性组合包括以下二者之和:所述水平卷积矩阵的转置和所述水平卷积矩阵的乘积、所述垂直卷积矩阵的转置和所述垂直卷积矩阵的乘积。
3.根据权利要求2所述的设备,其中,所述线性组合进一步包括加权因子和单位矩阵的乘积,其中,所述加权因子相对于所述最终虚拟图像的水平梯度和垂直梯度与所述水平梯度图和所述垂直梯度图的相似性而对所述最终虚拟图像与所述第一虚拟图像的相似性进行加权。
4.根据权利要求1至3中任一项所述的设备,其中,所述虚拟中间梯度图像包括以下二者之和:所述水平梯度图与所述水平卷积矩阵的转置的卷积、所述垂直梯度图与所述垂直卷积矩阵的转置的卷积。
5.根据权利要求4所述的设备,其中,所述虚拟中间梯度图像进一步包括加权因子和所述第一虚拟图像的乘积,其中,所述加权因子相对于所述最终虚拟图像的水平梯度和垂直梯度与所述水平梯度图和所述垂直梯度图的相似性而对所述最终虚拟图像与所述第一虚拟图像的相似性进行加权。
6.根据权利要求1所述的设备,其中,所述水平卷积矩阵和所述垂直卷积矩阵的线性组合包括以下二者之和:所述水平卷积矩阵的转置和所述水平卷积矩阵的乘积、所述垂直卷积矩阵的转置和所述垂直卷积矩阵的乘积,并且其中,所述虚拟中间梯度图像包括以下各项之和:所述水平梯度图与所述水平卷积矩阵的转置的卷积、所述垂直梯度图与所述垂直卷积矩阵的转置的卷积、以及加权因子和所述第一虚拟图像的乘积。
7.根据权利要求1至3中任一项所述的设备,其中,所述卷积模板包括滤波器模板,所述滤波器模板具有的尺寸不少于15x15个滤波器权重。
8.根据权利要求1至3中任一项所述的设备,其中,所述卷积模板包括至少第一可分离滤波器和第二可分离滤波器,并且所述处理器应用所述卷积模板包括所述处理器进行以下操作:
将所述第一可分离滤波器应用于所述虚拟梯度图像,以生成所得到的第一经滤波梯度图像;
将所述第二可分离滤波器应用于所述虚拟梯度图像,以生成所得到的第二经滤波梯度图像;并且
对所述第一经滤波梯度图像和所述第二经滤波梯度图像求和,以生成所述最终虚拟图像。
9.根据权利要求1所述的设备,其中,所述虚拟中间梯度图像包括宽度W和高度H,其中,所述卷积模板包括可分离为具有宽度M的水平滤波器和具有高度H的垂直滤波器的可分离2D滤波器模板,并且其中,所述处理器应用所述卷积模板包括所述处理器进行如下操作:
跨时间实例,顺序地将所述虚拟中间梯度图像的第一行的仅M个像素缓存到移位寄存器,并且经由行滤波器将所述水平滤波器应用于所述M个像素以生成针对所述第一行的经水平滤波像素值的序列;
将针对所述第一行的经水平滤波像素值的序列存储到N-1个存储器模块中的一个存储器模块,所述N-1个存储器模块各自被配置为存储所述虚拟中间梯度图像的一整行W个经滤波像素值;以及
响应于所述N-1个存储器模块中的每一个均具有一行经滤波像素值,从所述N-1个存储器模块中的每一个中检索一个经水平滤波像素值并从所述行滤波器中检索一个经水平滤波像素值,并且将所述垂直滤波器应用于N个经水平滤波像素以生成经卷积模板滤波的像素值。
10.根据权利要求9所述的设备,所述处理器进一步用于:
跨另外的时间实例顺序地将所述虚拟梯度图像的第二至第N行的仅M个像素缓存到所述移位寄存器,并且应用所述水平滤波器以生成针对所述第二至第N行的经水平滤波像素值的序列;
将针对第二至N-1行的经水平滤波像素值的序列存储到所述N-1个存储器模块中的对应存储器模块;以及
从所述N-1个存储器模块中检索第一至N-1个序列中的每个序列的一个经水平滤波像素值并从所述行滤波器中检索第N个序列的一个经水平滤波像素值,并且将所述垂直滤波器应用于N个检索到的经水平滤波像素值以生成第二经卷积模板滤波的像素值。
11.根据权利要求10所述的设备,其中,所述处理器存储经水平滤波像素值的序列包括:所述处理器将针对所述第一行的经水平滤波像素值的序列移动到所述N-1个存储器模块中的每一个存储器模块。
12.根据权利要求1至3中任一项所述的设备,其中,所述存储器和所述处理器是经由单片现场可编程门阵列来实现的。
13.一种用于生成场景的虚拟视图的方法,所述方法包括:
使用第一输入图像和第二输入图像及其之间的对应图,来为分别与所述第一输入图像和所述第二输入图像相对应的第一视图位置和第二视图位置之间的所选视图位置生成第一虚拟图像;
基于在所述第一输入图像和所述第二输入图像中检测到的水平梯度和垂直梯度以及所述对应图,来针对所述所选视图位置确定水平梯度图和垂直梯度图;
确定分别表示对所述水平梯度和所述垂直梯度的检测的水平卷积矩阵和垂直卷积矩阵;
将卷积模板应用于虚拟中间梯度图像,来为所述所选视图位置生成最终虚拟图像,所述虚拟中间梯度图像包括至少所述第一虚拟图像、所述水平梯度图和所述垂直梯度图的组合,所述卷积模板近似至少所述水平卷积矩阵和所述垂直卷积矩阵的线性组合的逆;以及
提供所述最终虚拟图像以呈现给观看者。
14.根据权利要求13所述的方法,其中,所述水平卷积矩阵和所述垂直卷积矩阵的线性组合包括以下二者之和:所述水平卷积矩阵的转置和所述水平卷积矩阵的乘积、所述垂直卷积矩阵的转置和所述垂直卷积矩阵的乘积。
15.根据权利要求14所述的方法,其中,所述线性组合还包括:加权因子和单位矩阵的乘积,其中,所述加权因子相对于所述最终虚拟图像的水平梯度和垂直梯度与所述水平梯度图和所述垂直梯度图的相似性而对所述最终虚拟图像与所述第一虚拟图像的相似性进行加权。
16.根据权利要求13至15中任一项所述的方法,其中,所述虚拟中间梯度图像包括以下二者之和:所述水平梯度图与所述水平卷积矩阵的转置的卷积、所述垂直梯度图与所述垂直卷积矩阵的转置的卷积。
17.根据权利要求16所述的方法,其中,所述虚拟中间梯度图像进一步包括加权因子和所述第一虚拟图像的乘积,其中,所述加权因子相对于所述最终虚拟图像的水平梯度和垂直梯度与所述水平梯度图和所述垂直梯度图的相似性而对所述最终虚拟图像与所述第一虚拟图像的相似性进行加权。
18.根据权利要求13所述的方法,其中,所述水平卷积矩阵和所述垂直卷积矩阵的线性组合包括以下二者之和:所述水平卷积矩阵的转置和所述水平卷积矩阵的乘积、所述垂直卷积矩阵的转置和所述垂直卷积矩阵的乘积,并且其中,所述虚拟中间梯度图像包括以下各项之和:所述水平梯度图与所述水平卷积矩阵的转置的卷积、所述垂直梯度图与所述垂直卷积矩阵的转置的卷积、以及加权因子和所述第一虚拟图像的乘积。
19.根据权利要求13至15中任一项所述的方法,其中,所述卷积模板包括滤波器模板,所述滤波器模板具有的尺寸不少于15x15个滤波器权重。
20.根据权利要求13至15中任一项所述的方法,其中,所述卷积模板包括至少第一可分离滤波器和第二可分离滤波器,并且所述方法还包括:
将所述第一可分离滤波器应用于所述虚拟梯度图像,以生成所得到的第一经滤波梯度图像;
将所述第二可分离滤波器应用于所述虚拟梯度图像,以生成所得到的第二经滤波梯度图像;并且
对所述第一经滤波梯度图像和所述第二经滤波梯度图像求和,以生成所述最终虚拟图像。
21.根据权利要求13所述的方法,其中,所述虚拟中间梯度图像包括宽度W和高度H,其中,所述卷积模板包括可分离为具有宽度M的水平滤波器和具有高度H的垂直滤波器的可分离2D滤波器模板,并且其中,应用所述卷积模板包括:
跨时间实例,顺序地将所述虚拟中间梯度图像的第一行的仅M个像素缓存到移位寄存器,并且经由行滤波器将所述水平滤波器应用于所述M个像素以生成针对所述第一行的经水平滤波像素值的序列;
将针对所述第一行的经水平滤波像素值的序列存储到N-1个存储器模块中的一个存储器模块,所述N-1个存储器模块各自被配置为存储所述虚拟中间梯度图像的一整行W个经滤波像素值;以及
响应于所述N-1个存储器模块中的每一个均具有一行经滤波像素值,从所述N-1个存储器模块中的每一个中检索一个经水平滤波像素值并从所述行滤波器中检索一个经水平滤波像素值,并且将所述垂直滤波器应用于N个经水平滤波像素以生成经卷积模板滤波的像素值。
22.根据权利要求21所述的方法,进一步包括:
跨另外的时间实例,顺序地将所述虚拟梯度图像的第二至第N行的仅M个像素缓存到所述移位寄存器,并且应用所述水平滤波器以生成针对所述第二至第N行的经水平滤波像素值的序列;
将针对第二至N-1行的经水平滤波像素值的序列存储到所述N-1个存储器模块中的对应存储器模块;以及
从所述N-1个存储器模块中检索第一至N-1个序列中的每个序列的一个经水平滤波像素值并从所述行滤波器中检索第N个序列的一个经水平滤波像素值,并且将所述垂直滤波器应用于N个检索到的经水平滤波像素值以生成第二经卷积模板滤波的像素值。
23.根据权利要求22所述的方法,其中,存储经水平滤波像素值的序列包括将针对第一行的经水平滤波像素值的序列移动到所述N-1个存储器模块中的每一个存储器模块。
24.包括多个指令的至少一种机器可读介质,所述多个指令响应于在计算设备上被执行而使所述计算设备执行根据权利要求13-23中任一项所述的方法。
25.一种设备,包括用于执行根据权利要求13-23中任一项所述的方法的装置。
CN202010116079.XA 2019-03-26 2020-02-25 用于沉浸式视觉体验的相机视图之间的虚拟视图内插 Pending CN111757080A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/365,539 2019-03-26
US16/365,539 US10957027B2 (en) 2019-03-26 2019-03-26 Virtual view interpolation between camera views for immersive visual experience

Publications (1)

Publication Number Publication Date
CN111757080A true CN111757080A (zh) 2020-10-09

Family

ID=67213016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010116079.XA Pending CN111757080A (zh) 2019-03-26 2020-02-25 用于沉浸式视觉体验的相机视图之间的虚拟视图内插

Country Status (2)

Country Link
US (1) US10957027B2 (zh)
CN (1) CN111757080A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10957027B2 (en) * 2019-03-26 2021-03-23 Intel Corporation Virtual view interpolation between camera views for immersive visual experience
EP4075789A4 (en) * 2020-01-23 2023-05-03 Sony Group Corporation IMAGING DEVICE, IMAGING PROCEDURE AND PROGRAM
KR20220037764A (ko) * 2020-09-18 2022-03-25 삼성전자주식회사 영상 처리 장치 및 그 동작방법
KR20230105139A (ko) * 2022-01-03 2023-07-11 한국전자통신연구원 깊이 분포 기반 워핑 영상 혼합 방법 및 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6642924B1 (en) * 2000-11-02 2003-11-04 Microsoft Corporation Method and system for obtaining visual information from an image sequence using visual tunnel analysis
US7835569B2 (en) * 2006-10-13 2010-11-16 Apple Inc. System and method for raw image processing using conversion matrix interpolated from predetermined camera characterization matrices
CN102239506B (zh) * 2008-10-02 2014-07-09 弗兰霍菲尔运输应用研究公司 中间视合成和多视点数据信号的提取
SG176327A1 (en) * 2010-05-20 2011-12-29 Sony Corp A system and method of image processing
EP2413286A1 (en) * 2010-07-29 2012-02-01 LiberoVision AG Image processing method and device for instant replay
US9026596B2 (en) * 2011-06-16 2015-05-05 Microsoft Technology Licensing, Llc Sharing of event media streams
US20130215239A1 (en) * 2012-02-21 2013-08-22 Sen Wang 3d scene model from video
US9438647B2 (en) * 2013-11-14 2016-09-06 At&T Intellectual Property I, L.P. Method and apparatus for distributing content
US9900583B2 (en) * 2014-12-04 2018-02-20 Futurewei Technologies, Inc. System and method for generalized view morphing over a multi-camera mesh
US10129579B2 (en) * 2015-10-15 2018-11-13 At&T Mobility Ii Llc Dynamic video image synthesis using multiple cameras and remote control
US10535190B2 (en) * 2017-12-28 2020-01-14 Rovi Guides, Inc. Systems and methods for changing a users perspective in virtual reality based on a user-selected position
CN109754402B (zh) * 2018-03-15 2021-11-19 京东方科技集团股份有限公司 图像处理方法、图像处理装置以及存储介质
US10771758B2 (en) 2018-09-24 2020-09-08 Intel Corporation Immersive viewing using a planar array of cameras
US10957027B2 (en) * 2019-03-26 2021-03-23 Intel Corporation Virtual view interpolation between camera views for immersive visual experience

Also Published As

Publication number Publication date
US20190220963A1 (en) 2019-07-18
US10957027B2 (en) 2021-03-23

Similar Documents

Publication Publication Date Title
US10855966B2 (en) View interpolation of multi-camera array images with flow estimation and image super resolution using deep learning
US10930054B2 (en) Method and system of robust virtual view generation between camera views
US20230306603A1 (en) Deep learning for dense semantic segmentation in video with automated interactivity and improved temporal coherence
CN109618090B (zh) 对通过使用广角透镜捕获的图像的图像失真校正的方法和***
CN107925755B (zh) 针对图像处理进行平面表面检测的方法和***
US11928753B2 (en) High fidelity interactive segmentation for video data with deep convolutional tessellations and context aware skip connections
US11722653B2 (en) Multi-pass add-on tool for coherent and complete view synthesis
CN109660782B (zh) 减少立体深度传感器成像中的纹理化ir图案
US10957027B2 (en) Virtual view interpolation between camera views for immersive visual experience
CN106464807B (zh) 用于基于相位的自动聚焦的可靠性测量
EP3149706B1 (en) Image refocusing for camera arrays
US20210004969A1 (en) Multi-level optical flow estimation framework for stereo pairs of images based on spatial partitioning
US11017541B2 (en) Texture detector for image processing
US10771758B2 (en) Immersive viewing using a planar array of cameras
US20180150943A1 (en) Multi-block memory reads for image de-warping
NL2029657B1 (en) Accurate optical flow estimation in stereo pairs of equirectangular images
CN111179154A (zh) 圆形鱼眼相机阵列矫正
EP2847998A1 (en) Systems, methods, and computer program products for compound image demosaicing and warping
US10477181B2 (en) Multiview video stabilization
EP3132608A1 (en) Fallback detection in motion estimation
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