CN107925753B - 利用动态相机进行3d图像捕捉的方法和系统 - Google Patents

利用动态相机进行3d图像捕捉的方法和系统 Download PDF

Info

Publication number
CN107925753B
CN107925753B CN201680049285.5A CN201680049285A CN107925753B CN 107925753 B CN107925753 B CN 107925753B CN 201680049285 A CN201680049285 A CN 201680049285A CN 107925753 B CN107925753 B CN 107925753B
Authority
CN
China
Prior art keywords
camera
frame
frames
image data
cameras
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680049285.5A
Other languages
English (en)
Other versions
CN107925753A (zh
Inventor
V·库佩尔曼
G·卡米
N·扎米亚
B·赫维茨
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
Priority claimed from US14/866,523 external-priority patent/US9445081B1/en
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN107925753A publication Critical patent/CN107925753A/zh
Application granted granted Critical
Publication of CN107925753B publication Critical patent/CN107925753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • G06T7/596Depth or shape recovery from multiple images from stereo images from three or more stereo images
    • 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/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • 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/10024Color image
    • 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/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Studio Devices (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Processing (AREA)

Abstract

一种使用动态相机阵列的3D图像捕捉方法和系统,所述方法和系统利用深度数据进行在各个相机的视频序列中从帧到帧的方位配准以及从相机到相机的方位配准,以便高效且准确地生成正由所述相机阵列捕捉的对象的3D数据,从而消除静态相机阵列的约束,并且因此降低所述相机图像之间的3D视点的内插复杂度和成本。

Description

利用动态相机进行3D图像捕捉的方法和系统
优先权声明
本申请要求于2016年8月17日提交的名称为“METHOD AND SYSTEM OF 3D IMAGECAPTURE WITH DYNAMIC CAMERAS(利用动态相机进行3D图像捕捉的方法和系统)”的美国专利申请序列号15/239,528以及于2015年9月25日提交的名称为“METHOD AND SYSTEM OF 3DIMAGE CAPTURE WITH DYNAMIC CAMERAS(利用动态相机进行3D图像捕捉的方法和系统)”的美国专利申请序列号14/866,523的优先权,所述美国专利申请通过引用以其全文被结合。
背景技术
许多不同的应用使用第一人称或视点(POV)图像捕捉来使用户或观看者能够修改正被观看的对象的视角。这些应用的示例可以包括第一人称视频(诸如运动或娱乐项目的视频捕捉),其中,可以旋转或改变相机视图,并且内插或以其他方式从最初未被提供用于捕捉视频的新视点生成视频。当正在被记录的对象静止时,可以使用移动相机并使其围绕对象移动以便从多个视角捕捉图像。然而,当待记录的对象正在移动时,或者多个相机必须安装到对象上(这并非总是可能的),或者相机阵列包围对象可能移动的整个区域从而限制对象的运动,这通常是不期望的。相机阵列通常是设置和同步昂贵且劳动密集型的静态相机阵列。
附图说明
在附图中通过举例而非限制的方式展示了在此所描述的材料。为了图示的简明和清晰,图中所展示的元件不一定按比例绘制。例如,为清楚起见,一些元件的尺寸相对于其他元件可能被放大了。进一步,在认为适当的情况下,在附图之间对参考标记加以重复以表示相应的或相似的元件。在附图中:
图1是对象和从围绕所述对象的多个视角的图像的三维视图;
图2是具有多个相机的体育场的三维视图,所述多个相机被定位用于从多个视角对体育场中的动态对象进行3D图像捕捉;
图3是围绕用于进行3D图像记录的静态对象的静态圆形相机阵列的照片;
图4是沿着待记录动态对象的路径的线性阵列的照片;
图5是用于动态相机进行3D图像捕捉的流程图;
图6A至图6B是用于动态相机进行3D图像捕捉的详细流程图;
图7是被标记的照片,示出了用于对动态对象进行3D图像捕捉的动态相机的方位;
图8是示意图,用于示出用于同步3D图像捕捉的动态相机的过程;
图9是被标记的照片,示出了执行动态对象的3D图像捕捉的动态相机;
图10是简图,示出了在操作中利用动态相机的3D图像捕捉系统;
图11是示例系统的示意图;
图12是另一示例系统的示意图;并且
图13展示了全部根据本公开的至少一些实现方式安排的另一个示例设备。
具体实施方式
现在参照附图来描述一种或多种实现方式。虽然对特定配置和安排进行了讨论,但应理解,这仅出于说明目的来执行。相关领域的技术人员将认识到,在不背离本说明书的精神和范围的情况下可以采用其他配置和安排。对相关领域技术人员而言将明显的是,本文中描述的技术和/或安排还可以在除了本文中描述的系统和应用之外的各种各样的其他系统和应用中被采用。
虽然以下描述阐述可以在如例如片上系统(SoC)架构的架构中显现各实现方式,在此描述的技术和/或安排的实现方式不局限于具体的架构和/或计算系统并且出于类似目的可以由任何架构和/或计算系统实现。例如,采用例如多个集成电路(IC)芯片和/或封装体的各种架构、和/或各种计算设备和/或消费电子(CE)设备(诸如成像设备、数字相机、智能电话、网络摄像头、视频游戏面板或控制台、机顶盒、具有单个或多个相机的平板计算机、以及诸如任何陆地、水上、空间或空中运载工具(如一个或多个无人机)等具有相机的其他移动设备)等、以及这些的任意组合可以实现本文中所描述的技术和/或安排。此外,虽然以下描述可以阐述多个特定细节(诸如逻辑实现、系统部件的类型和相互关系、逻辑划分/集成选择等),但可以在没有这些特定细节的情况下实践所要求保护的主题。在其他实例中,可以不详细示出某些材料(如例如,控制结构和完整的软件指令序列),以便不模糊本文中公开的材料。本文中公开的材料可以在硬件、固件、软件、或其任意组合中实现。
本文中公开的材料还可以被实现为存储于机器可读介质或存储器上的指令,所述指令可以由一个或多个处理器来读取并执行。机器可读介质可以包括用于存储或传输采用由机器(例如,计算设备)可读的形式的信息的任何介质和/或机构。例如,机器可读介质可以包括只读内存(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)以及其他。在另一种形式中,非暂态制品(如非暂态计算机可读介质)可以与以上所述示例或其他示例中的任何示例一起使用,只是其不包括暂态信号自身。非暂态制品却包括除了信号自身之外的可以暂时以“非暂态”形式(如RAM等)保持数据的那些元素。
说明书中提到“一种实现方式(one implementation)”、“实现方式(animplementation)”、“示例实现方式(an example implementation)”等表明所描述的实现方式可以包括具体特征、结构、或特性,但每个实现方式可能不一定包括这个具体特征、结构、或特性。此外,这些短语不一定指代同一实现方式。此外,当结合一个实现方式来描述具体特征、结构或特性时,应当理解,结合无论在此是否明确描述的其他实现方式来实施此类特征、结构或特性在本领域技术人员的认知范围内。
用于利用动态相机来提供3D图像捕捉的系统、制品和方法。
3D视频捕捉(本文中也被称为记录、摄影或拍摄)通常被执行用于向用户提供正被记录的对象的不同视图或视角。通常,3D视频捕捉被认为在视图上比同一情景的2D视频捕捉更具吸引力。尽管存在若干优点,但3D视频捕捉与2D视频捕捉相比最显著的优势之一可以是使用视频视图内插在任何时间交互地合成任何中间视图的能力。具体地,使用常规的静态多相机系统,待被3D捕捉的场景被预定位到静态位置并具有重叠视场的多个时间同步相机所包围。参照图1,具有对象102的一个示例场景100可以由形成图像104至111的相机阵列来捕捉。这使得能够捕捉和重建静态场景或动态场景的实况序列,然后可以通过视频视图内插将其作为从位于场景中某处的虚拟相机查看的视频来重新播放。这种技术使得观看者能够经由虚拟相机“在场景中”移动,并在观看场景的同时从不同角度查看所述场景。示例包括视点(POV)视频游戏,或利用连续改变项目图像的视角的能力来查看体育或娱乐项目。
参照作为另一具体示例的图2,常规系统200可以具有位于体育项目(如棒球场222)处以便捕捉棒球比赛的3D视频的静态相机202至218。相机202至218是在比赛之前定位在体育场上的静态相机并且在3D捕捉期间不移动(不要与通常被允许旋转和倾斜的移动电视相机混淆)。虚拟相机220可以通过使用来自静态相机的图像捕捉的视频视点内插来形成。参照图3,另一示例已知系统300可以具有围绕静态对象(汽车)304被定位以便捕捉对象的360度视角的静态相机阵列302。应当注意,这些系统使用许多静态相机来试图捕捉对象的许多视角。
然而,这些解决方案同样存在许多缺点。常规地,这类系统通过在实际记录对象之前在静态方位中放置若干相机并同步相机的位置(包括相机的方位(位置和/或取向等))来捕捉真实3D视频。换言之,相机的位置通常在拍摄之前同步一次,并且然后保持静态。这对场景产生了约束,因为对象被限制在静态相机前面的位置(通常是当相机环绕正被记录的对象时的闭合区域)。在某些情景下,静态相机设置可能非常成问题。例如,体育或运动项目可能具有快速移动的动态场景,比如当感兴趣的人员如与滑板者或滑雪者一起行进通过空间时。对于这种情景,所述系统可能试图对移动人员的视频序列进行3D重建。在已知设置下,整个相机阵列需要移动并且连同所扫描的对象一起移动。否则,这种情景将需要覆盖感兴趣的人员在其中移动的空间的极大相机阵列,这在用于体育项目的区域相对较大或者不在封闭区域中时可能实际上是不可能的。无论哪种方式,设置都是非常昂贵的并且需要很大的努力来安排相机阵列并同步所有相机的位置。图4示出了具有捕捉移动对象(滑水者)404、以及很可能仅滑水者的一侧和滑水者的总路径的一小部分的这种昂贵的线性相机阵列402的系统400。
此外,当通过使用若干静态相机拍摄场景来执行3D视频捕捉时,这种安排常常要求相机处于在图像捕捉之前仔细测量的确切已知位置处,从而使得相机阵列的构造和记录确切相机方位的启用可能是非常劳动密集型的。用于对对象进行3D扫描和重建的现有解决方案限于其在动态3D对象在场景中移动时对其进行扫描的能力。当前现有技术中的解决方案需要昂贵的装备以及相机预安装方面的大量工作。因此,相机的预定位通常是高成本的任务,并且在某些情况下,用于获得全局捕捉(360度)的相机预定位可能实际上是不可能的,如图4中所示出的。因此,取决于相机的数量和相机阵列的整个视场,静态相机设置通常提供场景附近的部分覆盖,而不是期望的全局覆盖。
另一缺点是静止非深度RGB相机阵列系统通常仅提供对在时间t处拍摄的某个帧执行仅“一次触发(one-shot)”3D重建的能力。换言之,这类相机必须从所有的角度包围正被记录的对象,并且针对每个帧或时间来拍摄图片或视频。
用于3D视点内插的现有技术静态相机方法所固有的另一个问题是多个RGB相机在一个共享本地坐标系中的定位,以便能够进行准确的内插。在静态相机阵列中,可以预先设置相机的位置和取向以使得已经建立了定位。定位这里指至少确定相机相对于相机阵列的其他相机的坐标位置(以及在相关情况下的取向)。然而,对于每个相机可以相对于每个其他相机独立移动的动态相机阵列,不存在无需大量花费且具有较高准确度的现有方式来定位动态相机(相对于彼此)。例如,可以使用相机上的传感器(诸如GPS、测高仪、磁场传感器和重力场传感器等)以提供来自多个移动相机的位置和取向的系统将使用昂贵的传感器装备,并且可能太不精确(诸如GPS)或太精确,从而使得在位置或取向上的非常小的误差将在输出中导致非常大的误差。常规地,获得对象和/或相机的精确位置的3D系统在固定位置处使用跟踪器和大量环绕相机,如本文中所描述的。因此,现有系统对于捕捉足以创建3D空间以形成虚拟视图的图像是不实际、非常昂贵和/或不准确的。
这些缺点由所公开的使用动态相机阵列的3D图像捕捉方法和系统来解决,所述方法和系统利用深度数据进行在各个相机的视频序列中从帧到帧的方位配准以及从相机到相机的方位配准,以便高效且准确地生成正由所述相机阵列捕捉的对象的3D数据,从而消除静态相机阵列的约束,并且因此降低所述相机图像之间的3D视点的内插复杂度和成本。因此,所公开的3D图像捕捉方法可以在不受约束的环境中拍摄实时3D视频,其中,为了创建足够有用的3D空间,相机不能是静态的。这使得能够以“低成本”装备来拍摄移动对象。
应当注意,为了清楚起见,术语方位(position)通常将用于指代相机的坐标位置和旋转两者(或其中之一),而术语位置(location)通常将被认为仅指代相机的坐标位置。进一步地,本文中为了清楚起见,术语配准(registration)通常将指代沿着视频序列或以时间方式帧到帧的对坐标进行配准,而术语对齐(alignment)通常将指代相机到相机或序列到序列的坐标配准,即使这两个术语可能以其他方式互换使用。
参照图5,过程500被提供用于利用动态相机进行3D图像捕捉的方法和系统。通过一种形式,并且在所展示的实现方式中,过程500可以包括均匀编号的一个或多个操作、功能或动作502至506。通过非限制性示例的方式,在此可以参照图10的示例图像捕捉处理系统1000在相关的情况下描述过程500。
过程500可以包括“获得包括至少一个场景的帧序列的深度数据的图像数据,其中,各个序列是从多个相机中的各个相机捕捉的”502。具体地,这可以包括提供动态相机阵列或静态相机阵列,无论相机的方位(包括位置和取向)是否已知,如以下更详细解释的。每个相机可以独立地摄影普通对象或普通场景的视频,从而使得每个相机提供其自己的对象或场景的视频帧序列。从相机提供的图像数据然后可以是或者包括色度和亮度像素值。所述值可能已经进行预处理,同样如以下提及的,足以提供单独相机的深度图,其中,每个像素具有用于形成各个帧的三维空间的三维坐标。细节将在下文中讨论。
过程500可以包括“通过使用多个帧的所述图像数据确定所述图像数据在所述多个相机的共享三维坐标系上的位置来确定所述帧序列的所述图像数据在所述坐标系上的位置”504。具体地,通过使用帧的图像数据(以及具体地深度图),点或浊点配准技术(如迭代最近点(ICP)算法)可以用于确定图像中的内容的点与不同帧的点之间的差。这可以执行两次。首先,可以在沿着来自单个相机的同一帧序列的不同时间的帧之间使用这种ICP技术。通过一种形式,这是在序列(诸如连续帧的序列)中的具有重叠视场的两个帧上执行,并且在一个示例中是所有的连续帧对。其次,然后可以对来自两个不同序列并且进而来自不同相机的帧进行搜索以找到足够重叠的视场,以使得可以针对这两个帧形成共享坐标系。通过一种形式,ICP或这种算法可以生成变换矩阵或其他系数以便将一个序列中的一个帧的坐标系修改为另一序列中的另一个帧的坐标系。一旦在两个不同序列的两个不同重叠帧之间找到对齐,就可以将帧序列中一个帧序列的坐标轴匹配到另一个帧序列,从而使得在所有对齐的帧序列上的所有帧现在具有一个共享坐标系。一旦构建了共享坐标系,就可以在共享坐标系的3D空间内形成虚拟视图,并且可以将共享坐标系锚定到真实世界坐标。
作为此过程的一个优点,过程500可以包括“其中,所述图像数据在所述共享坐标系上的位置是在捕捉所述帧序列之前没有确定所述相机的方位值的情况下确定的,以便在计算时使用所述方位值来确定所述图像数据在所述共享坐标系上的位置”506。具体地,本方法的3D图像捕捉的一个优点是可以围绕正被摄影(或者记录或捕捉)的对象而使用动态相机,其中,所述相机可以移动至对象周围的非指定方位,并且尽管存在这种模糊性,仍然可以在3D空间内生成方位被摄影对象的3D空间。这产生了可以用于生成虚拟视图的3D空间。然而,应当注意,这并未消除在由相机进行图像捕捉之前对相机方位的所有预设。换言之,仍然可以计划或甚至可以固定相机的方位(其中,静态相机不移动),区别在于那些预设的相机方位(采用某种方位值的形式)不用于计算稍后用于本文中所公开的本方法和系统的图像数据位置。本方法和系统不需要实际的或经计算的预设方位值,并有意地放弃使用那些值,以便至少相对于其他相机的其他图像数据的位置来计算一些相机图像数据位置。这种系统为来自许多不同动态相机配置(包括具有不可预测的相机方位的那些)的视频序列提供了3D空间生成的高效方式。
现在参照图6A至图6B,过程600被提供用于利用动态相机进行3D图像捕捉的方法和系统。在所展示的实现方式中,过程600可以包括均匀编号的一个或多个操作、功能或动作602至640。通过非限制性示例的方式,在此可以参照图10的示例图像捕捉处理系统1000并且在相关的情况下描述过程600。
3D图像捕捉过程可以被划分成在线部分和离线部分。在线部分通常指相机的设置以及在相机捕捉图像时发生的操作。因此,在在线部分期间,过程的操作可以发生根据所述操作被各个或合作地使用的相机上。相应地,在图像捕捉之后发生的操作以及最有可能使用从多个相机下载数据的操作可以被认为是离线操作。然而,将理解的是,在线操作和离线操作可能重叠,以使得在接近视频序列开始时对所捕捉图像数据的离线分析可以在由相机进行的对视频序列的所有图像捕捉完成之前开始。此外,虽然在线操作建议由相机上的处理器执行操作,同时离线操作建议在与相机分离的处理器上执行操作,但是无需总是如此。相机中的一个或多个(例如,仅用于处理目的的被标记为主相机)也可以执行离线3D图像捕捉操作。
过程600可以包括“设置和/或启动相机”602。更具体地,所述方法和系统可以包括一组时间同步的RGBD动态相机,其中,每个相机可以自由来回移动以便捕捉相机前面的场景。相机可以是手持式的或者可以安装在某种机器人设备上,所述机器人设备可以是飞行无人机或者任何类型的可移动或移动设备,无论是地面、表面爬行、水上、空中还是可以控制的空间运载工具。这可以包括固定在位置上但自由旋转(或者反之亦然)来改变相机取向的相机。
参照图7,用于捕捉场景或对象702(在这种情况下,移动或跳跃摩托车)的图像的相机阵列700的一个示例设置可以包括具有安装在飞行无人机器人上的动态RGBD相机的四个图像捕捉设备704、706、708和710以便提供三维视点内插。所述相机可以在对象周围保持相对静止或者可以随对象一起移动。如以下所描述的,一旦分析了来自相机的数据,就可以形成3D空间,并且可以形成虚拟相机712,以便从与这四个相机的视角不同的视角通过内插来有效地生成图像。
对于手持式相机,另一替代性设置可以包括人持有相机并扫描动态目标对象。只要可以收集所捕捉图像的时间同步数字数据,相机就可以包括从智能电话到专业视频或静止照相机的任何事物。当对象在场景中行进时,人可以随对象一起移动。在这种设置下,持有相机(如RGBD相机设备)的每个人可能只需要将对象保持在相机的视场中。
然而,将理解的是,即使本方法不限于任何这种固定的相机安排,本方法也可应用于在位置和/或取向上不移动的静态相机阵列。在这类示例中,相机可以安排在支架上、并且围绕运动项目或者例如包围运动中的某个其他对象。存在许多其他示例。
此外,在以上提供的许多示例中,无论对于动态相机还是静态相机,仍然可以提前计划在捕捉图像期间相机的运动或放置。这可以包括通过以下方式简单讨论的某个总体计划或概念:相机的操作者或持有相机的机器人或运载工具将正摄影的对象保持在视图中,直到使用经计算方位值来非常精确地计划预安排的相机位置和取向。然而,将理解的是,对于本方法和系统,后续3D空间的计算可以与任何计划阶段完全分开。因此,本方法能够在不使用在之前计划阶段中确定的任何相机方位值的情况下生成3D空间。因此,以一种示例的形式,本方法不需要使用任何这种相机方位值来生成待用于后续内插的虚拟相机视角或其他用途的3D空间,并且本文中的方法和系统在实际上不可能提前在足以用于3D空间生成的时间内来计划相机方位的情况下特别有利。
过程600可以包括“每t秒对相机进行同步”604,并且具体地,以使得这些相机基本上同时拍照或捕捉帧,并具有匹配的帧速率。由于相机正在移动或可以移动,所以在拍摄动态场景时,相机可以基于每帧来定位以使得同时发生的帧可以用于生成共享3D坐标系。帧速率同步可以通过各种已知的方法来执行,比如基于服务器的同步,其中,相机与触发各个相机同步捕捉每个帧的一个服务器(或一个主相机或其他处理控制或基础)进行通信。通过一个示例选项,时钟信号从服务器传输至各个相机,所述各个相机调整其时钟以便与所述信号的时钟进行匹配,并且特定帧速率是相对于时钟而预建立的。每个相机可以具有其自己的用于以某种速率(如,每秒30帧)维持图像捕捉的时钟,但是这些时钟彼此之间具有较小的延迟,因此在较长时间段上这些延迟(差)将累积成较大延迟。因此,服务器可以以所选时间间隔(如例如每几秒)发送重新同步信号以将相机之间的差维持在可接受范围内。通过其他示例,每当由相机接收到信号时,服务器可以仅发出用于执行立即图像捕捉的命令。在这种情况下,参与相机每t毫秒接收同步命令,触发相机以时间同步的方式拍摄帧。因此,信号也可以被认为是或者可以包括如针对另一个选项所提及的重新同步命令。同样设想了其他变体。
过程600可以包括“基本上同时使用相机进行拍摄”606。因此,如所提及的,相机可以按时间进行同步以便对相机前面的对象或场景拍摄一组图像。如以上所述的在捕捉图像时以及在试图将对象或场景维持在正使用的所有相机前面(并且基本上所有时间或至少尽可能多的时间)时,相机可以移动或不移动。无论正被拍摄的场景或对象是否正在移动,都会执行此操作。
通过一种形式,为了更好的确保可以执行3D生成计算,来自每个单独相机的视频序列中的帧的视场应当具有从帧到帧的重叠,并且通过一种形式,至少约40%的重叠(或约40%至约55%的重叠)。为了更好地确保可以找到足够数量的点来根据点或点云配准方法(如迭代最近点(ICP))计算3D空间,并且确保存在用于生成虚拟视图可能所需的整个区域,这是需要的。因此,如果在没有图像捕捉覆盖对象的情况下在所述对象的整体视图中存在孔,则在这些孔处不存在用于构建内插视图的点。这里,整体视图指围绕至少一个平面上的对象的用于形成如图1中的水平视图的圆形的360度视图(或圆形),但是理想地包括来自所有角度(如来自围绕对象而以球形方式被定位的相机)的对象的视图,但是通常并不总是可能的。
因此,首先,期望具有在来自单个相机以及对于正使用的每个相机的单个视频序列中从帧到帧的这种视场重叠。假设相机的移动与相机的帧速率相比足够慢,以使得能够实现两个连续帧之间的同一相机的共享视场。具体地,由于相对于通常可以如通过机器人、无人机或持有相机的运载工具移动的更慢速相机将针对正使用的相机所维持的典型视频帧速率(比如,30fps、60fps或120fps),所以假设在来自单个相机的相同视频序列内存在从帧到帧的明显重叠。在这种假设下,只要各个相机移动的足够慢以提供来自单个相机的帧序列中的两个连续帧之间的重叠视场,考虑到这两个相邻帧中的每一个之间的增量移动,就可以在整个拍摄序列期间跟踪相机的移动。
然后,如以下更详细解释的,为了生成共享3D坐标系的基础,同样在相同时间点拍摄但是来自不同相机的不同视频序列的帧之间确定此重叠。因此,在视频序列使其帧沿着序列帧到帧地配准以形成序列的单个轴或坐标系之后,来自一个已配准序列的帧可以与来自另一已配准序列的帧对齐。一旦存在来自不同相机的两个帧的单个足够对齐,则来自这两个相机的整个视频序列现在就可以共享同一个3D坐标系。依赖于在某个时间t处的相机之间的共享视场同样假设每个相机移动地足够慢以促进重叠。这可以通过向持有相机的人提供在屏幕上可听/可见的指示或用于同步机器人/无人机移动(当存在时)的任何反馈机制来安排。
参照图8,作为使用从相机到相机的视场(FOV)重叠的一个示例,多相机阵列配准800可以用于演示具有现在被标记为相机相机1至相机4的四个相机的相机阵列700的一个可能操作。假设这四个相机(相机1、相机2、相机3和相机4)在时间上同步但在空间上不同步时正拍摄运动中的对象。在第一帧(帧1)处,相机1和相机2(即,相机1和相机2)的视场重叠(形成相机组1)并且可以对齐。一旦相机的视场重叠(如与相机1和相机2),则现在可以在相机1和相机2的视频序列的所有其他帧上对相机1和相机2的视频帧序列进行对齐。通过以下所解释的计算发生对齐。
因此,继续相机阵列配准800的示例,在帧1处,相机1和相机2可以用于生成公共坐标系,而相机3和相机4既不在其自己之间对齐也不与相机1和相机2对齐。假设在帧10处,相机3的视场与相机4的视场重叠(形成组2)。由于帧10包括重叠,相机3和相机4现在可以对齐,并且公共坐标系可以对相机3和相机4的所有未来帧和之前帧有效。然后,假设在帧XXX处的相机1和相机3具有重叠视场,并且可以对齐(或换言之,组1和组2重叠)。一旦相机3和相机1对齐,则可以将所有四个相机定位到一个共享坐标系中,如以下所解释的
参照图9,另一示例相机阵列900被提供用于演示同步图像捕捉以及每个相机的各个视频序列捕捉。更详细地,图像捕捉阵列900被安排用于记录移动对象902,这里为从地面移动跳下的摩托车。相机阵列900可以具有带有相机(其可以简单低统称为相机)的飞行设备或无人机,所述相机包括沿着路径906移动的相机904、沿着路径910移动的相机908以及沿着路径914移动的相机912。相机904、908和912通常沿着对象902的路径移动,并且相机已经捕捉图像并创建图像数据帧的方位沿着每个路径906、910和914被编号为1至4。随后的相机方位5同样也显示了几条路径。在每个方位1至4处,这三个相机中的每一个从不同视角捕捉对象的图像,并且这些相机在同一方位编号处同时共同捕捉图像。例如,当在方位1处时,所有三个相机904、908和912同时捕捉对象902的图像,以此类推。在这些方位处捕捉的图像可以针对每个相机按顺序进行编号(即,帧1、帧2、帧3、帧4,以此类推)。一旦如以下所描述的对帧进行分析并生成3D空间,就可以确定三个虚拟相机(或实际上为三个虚拟相机的内插视图的方位)916、918、920和922的内插方位。细节如下。
过程600可以包括“针对各个相机的帧计算深度图”608。初步地,一旦由相机捕捉图像,则此操作可以包括获得原始图像数据。因此,相机可以将原始图像数据传输至另一主处理器或者可以执行至少足以用于这些帧中的每一个帧的深度图生成的预处理。所述原始数据可以包括RGB颜色空间帧,但是还可以是HSV或相机支持的任何其他颜色空间。一个颜色空间到另一个颜色空间的过渡是微不足道的,因此假设使用RGB数据。此操作还可以包括获得每个帧的元数据(以一种形式,所述元数据至少包括每个帧的时间戳)。预处理可以包括去马赛克、降噪、像素线性化、阴影补偿、分辨率降低、晕影消除和/或包括自动白平衡(AWB)、自动聚焦(AF)和/或自动曝光(AE)修改的3A相关操作等。
一旦图像数据准备好用于深度图计算,就可以针对单个相机确定深度图像数据。一些方法将立体系统或三角测量系统与RGB数据或红外(IR)数据一起使用来提供深度图,例如其中,这里单个相机指的是在其上(如在智能电话上)具有多个紧密间隔的相机的单个设备。其他立体方法实际上可以使用阵列中的两个相机来建立单个相机的深度图,其中,两个相机之间的位置和取向是已知的(这在本文中提供的示例中可能是罕见的情况)。通过其他示例,当所有相机相对于彼此的方位尚未已知时(比如当单个设备上的多相机未使用时),通过使用可以在单个相机上执行的方法而不是使用来自具有多个相机的立体相机系统的三角测量来执行深度测量。这种单个相机3D或深度图计算可以包括飞行时间、结构或码光技术。每个像素处的内容的每个像素值的深度值的表或深度图(或者换言之,3D(x,y,z)坐标的形成)形成单个帧的深度图像数据或深度图。
过程600可以包括“存储帧和元数据”610,并且具体地,存储在所述帧和元数据将被访问的地方或者存储在主处理器、中枢、主相机或用于接收来自形成捕捉对象的图像的相机阵列的相机中的每一个相机的深度图的其他位置。记录时间戳以便暂时对来自不同相机的视频序列进行对齐。
在后处理或离线阶段,对相机进行方位(如本文中所描述的)以便足够详细地提取3D视频捕捉,以至少使得虚拟相机方位可以内插到场景周围的不同方位。如所提及的,这可以包括在对场景的所有3D捕捉完成之后或者至少在一些帧被捕捉之后的离线下执行的多相机配准过程,从而使得例如在仍然针对视频序列来收集图像捕捉数据时可以在所捕捉视频序列的开始部分上执行3D空间生成。
过程600可以包括“获得图像数据”612,并且包括获得来自存储器的图像数据的帧以及时间戳以显示所述帧何时被捕捉以及所述帧被捕捉的顺序。如所提及的,此数据可以位于远离相机的主控件上,可以位于主相机上或其他位置。数据可以被提供至(多个)处理器,无论是CPU、在图像信号处理器(ISP)处的GPU还是本文中其他地方讨论的并且将在服务器或图像捕捉设备之一处执行帧到帧的图像配准以形成3D空间的其他类型的处理器。
深度图像配准可以用于将相机定位在(或使其位于)基于各参与相机之一的坐标或场景中的对象的坐标的一个共享坐标系中。只要每个帧具有如上所提及的重叠视场,则每个帧的深度数据或深度图就可以用于配准。此外,通过一种技术,在两种不同的配准模式下使用帧配准。一种是沿着来自单个相机的单个视频序列暂时且独立地从帧到帧进行配准。这是针对提供图像的每个相机来执行的并且本文中被称为帧序列配准。结果是随时间使用的帧序列的多个帧的坐标或轴。配准的另一个应用是与另一参与相机的帧共享一部分视场的相机的从帧到帧进行配准。此操作被称为相机对齐。将理解的是,这些操作可以是相对独立的,从而使得任一操作都可以在其他操作之前进行。在以下提供的示例中,首先执行帧序列配准,并且然后执行相机对齐。
过程600可以包括“沿着独立帧序列计算单独相机的移动”614。通过一个示例,帧序列配准是通过使用各个相机的视频序列中的多对或每对连续帧的深度图来执行的,所述连续帧例如可以被标记为帧(t)和帧(t+1)。这然后针对提供对象或场景的图像的相机阵列的每个相机来执行。无论(多个)相机实际上是否移动,并且无论相机是否跟随场景中的具体对象,这都可以使用。如所提及的,通过一个示例,这假设从帧到帧的视点的变化不超过约60%,或者相同视频序列中的连续帧从帧到帧存在至少约40%的重叠(或约40%到约55%)。
对于来自提供两个不同视点的连续帧的深度图像数据,点云配准方法(如ICP)可以用于将一个帧的坐标转换为连续帧的坐标,并且可以针对每个帧来执行。由Besl,PaulJ.、N.D.McKay(1992)的“A Method for Registration of 3-D Shapes(用于3D形状配准的方法)”,IEEE图案分析和机器智能汇刊(美国加州Los Alamitos:IEEE计算机学会),Doi:10.1109/34.121791,14(2):239页至256页公开了一个这种ICP方法。基本上,这种方法找到了一个帧的参考点云到另一帧的源点云中的点的最近点。然后,均方误差(MSE)函数可以用于最佳地对齐这两个云(或两个帧)。然后可以形成变换矩阵以用于将来自这些帧中的一个帧的坐标转换为另一帧的坐标。可以使用帧的新坐标来重复这个过程直到达到某个配准阈值。配准阈值基于从帧到帧的期望重叠来设置。配准阈值可以通过反复试验确定最佳值来设置,并且将取决于相机的特定安排和离线过程中的操作。通过一个示例,配准阈值将通过检查一个完美(或接近完美)配准的结果并且接受在阈值内的一定百分比(如0.9*结果)来设置。此配准阈值然后可以针对特定相机安排对下面的整个过程有效。如果无法达到配准阈值,则这两个帧之间不存在足够的重叠,并且所述帧无法进行配准。将理解的是,对于所述过程的第一部分(帧序列配准),如上所提及的,这将是非常不可能的,但是对于不同相机之间的相机对齐,对阈值的确定将更重要。这里的结果是将把一个帧(帧(t))的坐标转换为另一帧(帧(t+1))的坐标的最终变换矩阵。
将理解的是,代替连续帧,帧配准和坐标转换可能在沿着序列的其他帧(如特定间隔(每第3帧))之间发生,例如以便降低计算负荷。同样设想了其他示例。只要维持了帧之间的最小重叠,就可以使用这种负荷降低策略。
过程600可以包括“根据各个相机的锚定帧来设置相机的原始位置和取向”616。以一种形式,视频序列的第一帧(并且这里为每个视频序列)可以被认为是锚定或关键帧,并且进而是指示相机的原始位置和取向的帧。这可以设置视频序列的坐标轴,并且正在使用的视频序列中的每个帧将通过使其坐标系配准到当前帧的视频序列中的下一个前一帧(或前某个间隔)而将其坐标系直接或间接地转换为锚定帧的坐标系。
过程600可以包括“确定各个相机的连续帧上的视点之间的方位变换矩阵”618。相应地,帧序列配准的结果是用于转换沿着视频序列的数对连续帧之间的坐标的一组矩阵。然后,过程600可以包括“确定各个相机相对于锚定帧的路径”620。因此,获得每个相机视频序列,并且通过两个连续(或其他间隔)帧之间的深度图像配准来计算每帧的相机方位(从前一帧的增量方位)。视频序列的帧的变换矩阵中的多个或全部用于计算由方位[P(0)、P(1)……P(N)]限定的相机的相对路径(位置和旋转)。通过激活在时间t-1的位置和旋转上的所计算变换Ti-1来计算在时间t的每个位置和旋转。再次,这可以针对每个或多个相机来重复。
过程600可以包括“选择主相机”622。主相机可以随机地或通过某个其他便利的选择过程来选择。主相机的方位用作共享坐标系的0方位。主相机的坐标轴(或更具体地,主相机的视频序列的帧的坐标和轴)变成共享坐标系。因此,其他相机的移动相对于主相机的坐标和轴来确定。将理解的是,在选择主相机时,如果无法找到主相机的视频序列中的帧中的任何一个帧与另一相机的任何帧的足够的重叠和对齐,则可以选择不同的主相机。这种情况下,相机的方位将不足以进行3D空间生成,并且来自此相机的图像应该被排除在计算之外。
通过其他示例,代替在主相机处选择0方位,相反,共享轴和坐标系的0方位基于对象的位置。细节将在下文中解释。
同样将理解的是,只要在相机之一处的共享坐标系的某个设定点用作用于将相机配准到共享坐标系的基础,那么最终产生的共享坐标系的0方位(0,0,0)就可能是远离被摄影的主对象并远离相机的另一点。
过程600可以包括“将其他相机的相机方位变换为主相机的共享坐标系”624。因此,接下来在对齐阶段,此过程试图找到“碰撞”的两条相对路径,或者换言之,从来自两个不同相机但在相同的时间戳上的两个帧的足够相似的、接近视点中看到相同的对象。因此,对相机的视频流进行分析并且相对于彼此进行比较以便识别重叠视场。这两个相机必须共享其之间的重叠视场以使得来自一个相机的一个帧的坐标可以被转换为来自另一相机的另一个帧的坐标,并且以一种形式转换为主相机的坐标或轴以便使能实现3D视点内插。
更具体地,过程600可以包括“找到不同相机且基本上相同帧周期的、具有足够重叠视场的帧”626。这可以包括“获得基本上同时发生的帧的图像数据”628。因此,视频流从多个或所有相机获得并且然后根据帧的时间戳来进行匹配。这可以通过对具有相同或足够相同(差异被认为是可忽略的)的时间戳的帧进行分组来执行。
过程600然后可以包括“通过判定帧上的点的差是否满足标准来对所述帧进行对齐”630。可以选择两个相机,其中之一可以是主相机。通过一个示例,可以执行搜索以找到这两个相机的且具有足够重叠的相同时间戳的两个帧,从而使得这两个帧可以对齐。因此,过程600可以包括“使用迭代最近点算法来确定对齐”632。正如帧序列配准一样,对于成对帧的相机对齐,主相机的帧被选择并与具有相同时间戳的帧进行比较。重复此过程直到两个帧的对齐满足标准(如对齐阈值)。所述对齐阈值可以通过反复试验来确定,如针对上述帧序列配准阈值所解释的。当对齐计算的结果指示达到置信对齐阈值时,过程600可以包括“针对满足标准的对齐帧设置变换矩阵”634。假设两台相机都指向同一对象,并具有足够的一致性区域,变换矩阵将3D对象从一个视点(第一相机)变换为另一视点(第二相机),从而使得变换矩阵指示相对于第一相机的图像数据的位置以及进而第一相机的方位的第二相机的图像数据的位置以及进而第二相机的方位。
这可以针对每一对相机进行重复,直到在相机阵列中使用的所有相机与对齐相机中的至少一个其他相机具有变换矩阵(例如,相机1与相机2对齐,相机2与相机3对齐,相机3与相机5对齐,并且相机5与相机4对齐,依此类推)。一旦形成多个相机之间的变换矩阵,就可以将具有到一组对齐相机中的一个相机的变换矩阵的任何相机的坐标转换为在这组对齐相机中的任何相机的坐标。例如,变换矩阵可以被连结以使得如果相机3的坐标通过变换矩阵M1被转换为相机2的坐标,并且相机2的坐标通过变换矩阵M2被转换为相机1(如主相机)的坐标,则相机3的坐标可以通过M1*M2直接转换为相机1的坐标。因此,只要主相机是对齐相机之一,相机就不需要以任何特定的顺序对齐。此外,如通过图8所解释的,只要相比较的一对帧中的每个帧在相同的时间戳上,不同相机的已对齐一对帧中的每一个帧就不需要都在相同的时间戳上。
过程600可以包括“将对齐帧的相机的轴合并到同一坐标系中”636。如上所提及的,一旦在来自一个特定时间的两个不同相机的两个帧之间建立了变换矩阵,就可以将来自任何其他时间的相机中的一个相机的任何帧的坐标和/或轴转换为这对相机中的另一相机的坐标和/或轴。换言之,这两个相机的轴可以合并到单个共享坐标系中。然后,进而,所有相机可以使其轴转换为共享坐标系的轴,并且通过一种形式,基于主相机的坐标系。结果是具有用于从虚拟相机方位提供内插图像的足够细节和覆盖范围的3D空间,并且全部基于使来自不同相机的独立视频序列在时间和空间上对齐的点匹配算法。
将理解的是,共享坐标系可以是对象的而不是主相机的坐标系,从而使得相机相对于对象的轴而被定位。这是通过使用常规对象跟踪算法来实现以获得相机可以观察所述对象可被获得的坐标系中的空间上的对象位置(并且进而,根据本文中的方法获得相机相对于对象的位置)。对象的位置包括变换(从相机)和旋转。
过程600可以包括“对于给定的时间t和世界上的视点P,找到覆盖P周围空间的真实相机”638。因此,通过一个示例,首先基于世界坐标来选择虚拟相机或虚拟图像的位置。然后将这些世界坐标转换为共享坐标系的坐标以便定位相对于相机阵列中的相机的视角的期望图像视角。通过一种形式,用户或自动系统可以选择对对象或场景的图片或视图的帧进行方位的世界坐标,并且根据所述帧相对于相机或对象(或场景)的方位而将帧的方位变换为共享坐标系的坐标。
过程600可以包括“基于来自相机的数据和世界上的相机位置对(多个)虚拟视点进行内插”640。内插虚拟视点可以相对于被选择作为主相机的移动相机、或者相对于正在被跟踪的对象本身来执行。通过一种形式,虚拟视点可以相对于相机阵列和/或被捕捉的对象的共享轴和坐标系的0方位来设置。同样如所提及的,虚拟视点将只与来自实际相机的图像的覆盖范围一样好,从而使得没有缺失区域或孔的图像的重叠可以从虚拟视点提供高质量的图像。
因为所公开的定位方法利用深度数据(基于深度的图像配准),所以本方法在无需相机位置约束的先验知识的情况下较好地执行。所述定位基于场景中的对象或参与相机之一的共享坐标系,而非需要世界坐标。本方法消除了设置大量预安装静态相机的昂贵准备的需要。相反,最小的一组动态相机可以用来跟随正被拍摄的动态对象。因此,本方法使得能够在当前方法无法使用的位置处进行动态3D捕捉,因为实际上不可能的是:在拍摄之前安装静态相机并且仍然可以至少针对虚拟相机生成来提供足够的3D空间。因为这里的解决方案不需要相机的预定位,所以其促进鲁棒的、更高效且成本效益的3D视频捕捉。
参照图10,过程1000展示了根据本公开的至少一些实现方式的利用动态相机执行3D图像捕捉的样本图像处理系统1100的操作。更具体地,在所展示的形式中,过程1000可以包括如由均匀编号的一个或多个动作1002至1016展示的一个或多个操作、功能或动作。通过非限制性示例的方式,将在此参照图11来描述过程1000。具体地,系统1100包括逻辑模块1104。逻辑模块1104可以包括具有帧序列空间单元1116和相机对齐单元1118的3D空间生成单元1114。系统的操作可以如下进行。
过程1000可以包括“从相机阵列的相机中获得视频序列的所捕捉帧的深度图和时间戳”1002,并且如上所述,所述相机可以是在对对象或场景进行摄影之前相机的方位未被计划或指定的动态相机。
过程1000可以包括“选择视频序列的锚定帧”1004,并且具体地以便提供视频序列的坐标轴的基础。这可以是视频序列中的第一帧。
过程1000可以包括“选择具有锚定帧的相同相机的视频序列的两个帧”1006。通过一个示例,这是两个连续帧。通过其他示例,所述帧可以由某个间隔来分开。在第一次针对视频序列执行此操作时,这些帧之一应当是锚定帧。在此之后,已经在视频序列中配准的这些帧之一应当是所述帧之一。
过程1000可以包括“通过将这两个帧中的一个帧的点与这两个帧中的另一个帧的点进行比较来确定各个视频序列的坐标轴”1008,并且具体地以便执行帧序列配准。这种比较通过使用如上所提及的ICP、或者通过使用某种其他类似算法来执行。此操作可以包括确定用于将一对帧中的帧中的一个帧的坐标转换为沿着相同视频序列的另一帧的坐标系和轴的变换矩阵或系数。
过程1000可以包括“视频序列是否结束?”1010。若否,则获得下一对帧1012,并且在操作1008处重复帧序列配准操作,直到视频序列中的所有帧被配准到视频序列的单个坐标轴系统。
若是,则过程1000然后可以包括“所有视频序列是否具有帧配准?”1014。若否,则过程获得另一相机的并且尚未将其自己的帧配准到单个轴系统的另一视频序列1016,并且重复至操作1004。若是,则过程前进至开始相机对齐操作1018。
过程1000可以包括“对来自具有相同时间戳的不同视频序列的帧进行分组”1020。这被执行用于判定哪两个帧可以被选择用于最终对齐和坐标转换到共享坐标系。
过程1000可以包括“对具有相同时间戳的不同视频序列的两个帧的点进行比较”1022。现在,对来自除了具有相同时间戳以外的不同相机的帧进行比较,并将这些帧中的一个帧的坐标转换为另一个帧的坐标,并进而直接或间接转换为单个共享坐标系的坐标。这可以或可以不包括首先选择主相机,所述主相机可以是对所有视频序列的比较的基础以及正建立的共享坐标系的0方位的基础。主相机将提供被选择用于比较的两个第一视频序列之一。正如帧序列配准一样,这同样包括使用点或点云比较算法,如ICP。执行(或迭代)两个帧之间的比较直到满足标准,比如,点的差满足阈值。所述阈值是以上通过过程600所讨论的。一旦满足标准,则用于满足针对正被比较的一对帧的标准的变换矩阵被设置为最终变换矩阵,所述最终变换矩阵用于使正被比较的所述帧中的一个帧(以及进而所述相机中的一个相机)的视频序列的轴与正在比较中的另一个帧(以及进而另一个相机)的视频序列的轴相对齐。
过程1000可以包括“来自每个视频序列的至少一个帧是否已对齐?”1024。若否,则操作获得来自下一视频序列的帧1026,并且在操作1022处重复所述过程。若是,则过程1000然后可以包括“将坐标和轴合并到单个共享坐标系中”1028。因此,每个视频序列的轴被转换为共享坐标系的轴,并且进而,每个帧的坐标可以被转换为共享坐标系的坐标。将理解的是,通过一种形式,所有共享坐标系坐标可以针对视频序列中的所有帧被预计算并且被提供给单个3D坐标系。然而,将理解的是,反而可以通过提供一个视频序列的轴和共享系统坐标、另一视频序列的原始坐标以及用于将这些坐标转换为共享坐标系的变换矩阵来呈现3D空间。这种方式,3D空间可能只需要根据另一应用的需要来进行计算。然后,如上所述,3D空间可以被提供用于虚拟视点操作1030。
另外,图5和图6A至图6B的操作中的任何一项或多项操作可以响应于由一个或多个计算机程序产品提供的指令而进行。这种程序产品可以包括提供当由例如处理器执行时可以提供本文中所描述的功能的指令的信号承载介质。计算机程序产品可以以一个或多个机器可读介质的任何形式提供。因此,例如,包括一个或多个处理器核的处理器可以响应于由一个或多个计算机或机器可读介质传达给处理器的程序代码和/或指令或指令集而进行本文中的示例过程框中的一个或多个操作。通常,机器可读介质可以以程序代码和/或指令或指令集的形式传达软件,这些程序代码和指令集可以使设备和/或系统中的任意一者如本文中所描述的来执行。机器或计算机可读介质可以是非暂态制品或介质(如非暂态计算机可读介质),并且可以与以上所述示例或其他示例中的任何示例一起使用,只是其不包括暂态信号自身。非暂态制品却包括除了信号自身之外的可以暂时以“非暂态”形式(如RAM等)保持数据的那些元素。
如在此处所描述的任何实现方式中所使用的,术语“模块”指被配置用于提供此处所描述的功能的软件逻辑、固件逻辑和/或硬件逻辑和的任何组合。软件可以体现为软件包、代码和/或指令集或指令,并且如在本文描述的任意实现方式中使用的“硬件”可以包括,例如单独的或其任意组合的硬连线电路、可编程电路、状态机电路和/或由可编程电路执行的存储指令的固件。这些模块可以统一地或各个地具体化为形成例如,集成电路(IC)、片上系统(SoC)等的较大系统的一部分的电路。例如,模块可以被嵌入逻辑电路中以经由在此讨论的译码系统的软件、固件或硬件来实现。
如在在此描述的任何实现方式中所使用的,术语“逻辑单元”指代被配置用于提供在此描述的功能的固件逻辑和/或硬件逻辑的任何组合。逻辑单元可以统一地或各个地具体化为形成例如,集成电路(IC)、片上系统(SoC)等的较大系统的一部分的电路。例如,逻辑单元可以体现在逻辑电路中以经由在此讨论的译码系统的固件或硬件来实现。本领域的普通技术人员将认识到,由硬件和/或软件执行的操作可以替代性地经由软件来实现,所述软件可以体现为软件包、代码和/或指令集或者多条指令,并且还认识到逻辑单元还可以利用软件的一部分来实现其功能。
如本文中所描述的任何实现方式中所使用的,术语“部件”可以指代模块或逻辑单元,如以上描述的这些术语。因此,术语“部件”可以指代被配置用于提供在此描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。例如,本领域普通技术人员将了解,可替代地,由硬件和/或固件执行的操作可以经由软件模块来实现,所述软件模块可以体现为软件包、代码和/或指令集,并且还将了解,逻辑单元也可以利用软件的一部分来实现其功能。
参照图11,根据本公开的至少一些实现方式安排了示例图像处理系统1100。在各个实现方式中,示例图像处理系统1100可以具有一个或多个成像设备1102a至1102n或与所述一个或多个成像设备通信以便形成或接收来自由所述成像设备形成的相机阵列的所捕捉图像数据。这可以通过各种方式来实现。因此,在一种形式中,图像处理系统1100可以是一个或多个数字相机或其他图像捕捉设备,并且在这种情况下,成像设备1102a至1102n可以是或者包括相机硬件和相机传感器软件、模块或部件1104。在其他示例中,成像处理系统1100可以具有包括或可以是一个或多个相机的一个或多个成像设备1102a至1102n,并且逻辑模块1104可以与成像设备1102a至1102n进行远程通信或者以其他方式通信地耦合至所述成像设备以供进一步处理图像数据。
因此,图像处理设备1100可以是多相机阵列的单个主相机,其中,所述设备可以是智能电话、平板计算机、膝上型计算机、或其他消费者移动设备或专业图像捕捉设备(其中任意一者可以执行3D空间生成计算)。否则,设备1100可以是平板计算机、计算机或与多个相机通信并在与所述相机通信的单独处理位置上执行处理的其他处理设备,无论是否是移动设备。
在这些情况中的任何一种情况下,这种技术可以包括相机,诸如数字相机系统、专用相机设备、或者成像电话或平板计算机、无论是静止图片还是视频相机、提供预览屏幕的相机、或这些的某种组合。因此,在一种形式中,成像设备1102a至1102n可以包括相机硬件和光学器件,包括一个或多个传感器以及自动聚焦控件、变焦控件、光圈控件、ND滤镜控件、自动曝光控件、闪光灯控件和致动器控件。这种传感器部件可以用于为取景器生成图像并拍摄静止图片或视频。成像设备1102a至1102n还可以具有透镜、带有RGB拜耳滤色器的图像传感器、模拟放大器、A/D转换器、用于将入射光转换成数字信号的其他部件等、和/或其组合。本文中数字信号还可以被称为原始图像数据。
通过一种形式,相机可以是红绿蓝(RGB)深度相机。其他形式包括使用或不使用麦克风阵列来定位谁在讲话的相机传感器型成像设备等(例如,网络摄像头或网络摄像头传感器或其他互补金属氧化物半导体型图像传感器(CMOS))。在其他示例中,除了相机传感器之外或代替相机传感器,还可以使用RGB深度相机和/或麦克风阵列。在一些示例中,成像设备1102a至1102n可以设置有眼睛跟踪相机。
成像设备1100可以是手持的或穿戴在身体上的(如以上所述的设备),或者可以安装在或包括机器人、运载工具或在陆地、表面、空中、水上和/或空间上移动的其他移动设备上。承载相机的许多这类设备是已知的,如无人机。其他相机承载设备可以包括具有固定支架但允许相机改变位置或允许相机在固定位置处旋转、倾斜等的结构。设想了许多示例。
通过一种形式,所有逻辑模块1104都由作为移动设备的图像处理系统1100(如相机中被标记为主相机的一个相机)来操作。通过其他示例,具有与逻辑模块1104相同的单元的逻辑模块1110的单元中的至少一些(如果不是全部)由远程服务器1106来操作。在这种情况下,所述服务器可以具有如针对本文中所描述的其他系统所描述的用于与成像设备1102a至1102n进行无线通信的天线。通过一种形式,(多个)成像设备和主图像处理系统可以执行在线操作,而服务器1106执行离线操作。通过其他示例,图像处理系统1100是执行离线操作的主设备或相机。存在许多其他示例。
在所展示的示例中,逻辑模块1104(或1110)可以包括相机操作和同步单元1112,所述相机操作和同步单元用于对相机进行包括帧捕捉的时间同步、动态相机的运动控制等如上所述的操作。逻辑模块1104(1110)还可以包括图像预处理和深度图单元1113,所述图像预处理和深度图单元用于基于来自动态相机的图像数据来生成可以用于3D空间生成的深度图。3D空间生成单元1114同样由逻辑模块1104(1110)来提供,并且具有用于对沿着来自各个相机的相同视频序列的帧进行配准的帧序列单元1116、以及将来自不同相机的视频序列的图像数据进行对齐的相机对齐单元1118。虚拟视图单元1119被提供以使得可以从完成的3D空间对虚拟视图进行内插。以上描述了这些单元的操作。逻辑模块1104的单元的任何组合可以由(多个)处理器1120操作,或者甚至完全或部分地位于所述处理器处,并且所述处理器可以包括ISP 1122。逻辑模块1104可以通信地耦合至成像设备1102a至1102n的部件以便接收包括用于建立深度图的足够数据的原始图像数据。在这些情况下,假设逻辑模块1104被认为是与成像设备分离。这不必如此,并且逻辑模块也可以很好地被认为是成像设备的一部分。
图像处理系统1100可以具有可以包括专用图像信号处理器(ISP)1122(如英特尔Atom)的一个或多个处理器1120、存储器存储设备1124(其可以或可以不持有深度图、帧时间戳和本文中所提及的其他图像数据)、用于提供图像1130的一个或多个显示器1128、编码器1132、以及天线1134。在一个示例实现方式中,图像处理系统1100可以具有显示器1128、通信地耦合至显示器的至少一个处理器1120、以及通信地耦合至处理器的至少一个存储器1124。编码器1132和天线1134可以被提供用于压缩经修改的图像数据以传输到可显示或存储图像的其他设备。将理解的是,图像处理系统1100还可以包括用于接收图像数据并对其进行解码以供系统1100进行处理的解码器(或编码器1132可以包括解码器)。否则,经处理图像1130可以显示在显示器1128上或存储在存储器1124中。如所展示的,这些部件中的任何一个都可以能够彼此通信和/或与逻辑模块1104和/或成像设备1102的一部分进行通信。因此,处理器1120可以通信地耦合至图像设备1102和逻辑模块1104两者以便对这些部件进行操作。通过一种方法,尽管如图11中所示出的图像处理系统1100可以包括与特定部件或模块相关联的一组特定的块或动作,但是这些块或动作可以与同在此展示的特定部件或模块不同的部件或模块相关联。
参照图12,根据本公开的示例系统1200对本文中所描述的图像处理系统的一个或多个方面进行操作。将从以下描述的系统部件的性质理解的是,这类部件可以与上述图像处理系统1100的特定部分或多个部分相关联或用于操作所述图像处理系统的特定部分或多个部分。在各个实现方式中,尽管系统1200不限于此上下文,但系统1200可以是媒体系统。例如,系统1200可以并入数字静止相机、数字视频相机、具有相机或视频功能的移动设备(如成像电话)、网络摄像头、个人计算机(PC)、膝上型计算机、超级膝上型计算机、具有一个或多个相机的平板计算机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备等中。
在各个实现方式中,系统1200包括耦合至显示器1220的平台1202。平台1202可以从内容设备(如(多个)内容服务设备1230或(多个)内容传递设备1240或者其他类似内容源)接收内容。包括一个或多个导航特征的导航控制器1250可以用于例如与平台1202和/或显示器1220进行交互。以下更详细地描述这些部件中的每一个部件。
在各实施例中,平台1202可以包括芯片组1205、处理器1210、存储器1212、存储设备1214、图形子系统1215、应用1216和/或无线电1218的任意组合。芯片组1205可以在处理器1210、存储器1212、存储设备1214、图形子系统1215、应用1216和/或无线电1218之中提供相互通信。例如,芯片组1205可以包括能够提供与存储设备1214的交互通信的存储适配器(未描绘)。
处理器1210可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器;x86指令集兼容处理器、多核或任何其他微处理器或中央处理单元(CPU)。在各实现方式中,处理器1210可以是(多个)双核处理器、(多个)双核移动处理器等。
存储器1212可以被实现为易失性存储器设备,如但不限于,随机访问存储器(RAM)、动态随机访问存储器(DRAM)或静态RAM(SRAM)。
存储1214可以实现为非易失性存储设备,如但不限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连存储设备、闪存、电池备用SDRAM(异步DRAM)和/或网络可访问存储设备。在各实现方式中,存储设备1214可以包括用于当例如包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强型保护的技术。
图形子系统1215可以对图像(如静物或视频)执行处理以用于显示。例如,图形子系统1215可以是图形处理单元(GPU)或视觉处理单元(VPU)。可以使用模拟或数字接口将图形子系统1215和显示器1220通信地耦合。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或符合无线HD的技术中的任何一个接口。图形子系统1215可以集成到处理器电路1210或芯片组1205中。在一些实现方式中,图形子系统1215可以是通信地耦合至芯片组1205的独立卡。
在此描述的图形和/或视频处理技术可以用各种硬件架构实现。例如,图形和/或视频功能可以集成到芯片组中。可替代地,可以使用离散图形和/或视频处理器。如又另一种实现方式,图形和/或视频功能可以由通用处理器(包括多核处理器)来提供。在进一步实现方式中,所述功能可以在消费电子设备中实现。
无线电1218可以包括能够使用各种适合的无线通信技术发送和接收信号的一个或多个无线电。这些技术可能涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网和卫星网。在跨这种网络进行通信时,无线电1218可以根据任何版本的一个或多个可适用标准运行。
在各个实现方式中,显示器1220可以包括任何电视机类型监测器或显示器。显示器1220可以包括例如,计算机显示屏、触摸屏显示器、视频监视器、类似电视机的设备和/或电视机。显示器1220可以是数字的和/或模拟的。在各个实现方式中,显示器1220可以是全息显示器。此外,显示器1220可以是可以接收视觉投影的透明表面。这种投影可以传递各种形式的信息、图像、和/或物体。例如,这样的投影可以是针对移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1216的控制下,平台1202可以在显示1220上显示用户界面1222。
在各实现方式中,(多个)内容服务设备1230可以发起于任意国家的、国际的和/或独立的服务,并因此例如经由互联网可接入平台1202。(多个)内容服务设备1230可以耦合至平台1202和/或显示器1220。平台1202和/或(多个)内容服务设备1230可以耦合至网络1260以将媒体信息传送至网络1260并且从所述网络传送(例如,发送和/或接收)。(多个)内容递送设备1240也可以耦合至平台1202和/或显示器1220。
在各实现方式中,(多个)内容服务设备1230可以包括有线电视盒、个人电脑、网络、电话、能够传递数字信息和/或内容的启用互联网的设备或应用程序、以及能够在内容提供者与平台1202和/或显示器1220之间经由网络1260或直接地单向或双向传达内容的任意其他类似设备。应理解的是,内容可以经由网络1260单向地和/或双向地来往于系统1200中的任何一个组件与内容提供者之间进行通信。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
(多个)内容服务设备1230可以接收如包含媒体信息、数字信息和/或其他内容的有线电视节目的内容。内容提供方的示例可以包括任何有线或卫星电视或无线电或互联网内容提供方。所提供的示例不旨在以任何方式限制根据本公开的实现方式。
在各实现方式中,平台1202可以从具有一个或多个导航特征的导航控制器1250中接收控制信号。控制器1250的导航特征可以用于例如与用户界面1222进行交互。在实现方式中,导航控制器1250可以是定位设备,所述定位设备可以是允许用户输入空间(如连续的和多维的)数据到计算机的计算机硬件组件(特别是人机接口设备)。如图形用户界面(GUI)和电视机和监视器的许多系统允许用户使用物理姿势控制计算机或电视机并向计算机或电视机提供数据。
可以通过指针、光标、聚焦环或在显示器上显示的其他视觉指示符的移动在显示器(例如,显示器1220)上复制控制器1250的导航特征的移动。例如,在软件应用1216的控制下,位于导航控制器1250上的导航特征可以例如被映射为在用户界面1222上显示的虚拟导航特征。在实现方式中,控制器1250可以不是独立组件但可以集成在平台1202和/或显示器1220内。然而,本公开不限于这些元素或此处显示或描述的内容。
在各实现方式中,驱动器(未示出)可以包括使用户能够通过例如在初始启动后启动的按钮的触摸立刻打开和关闭类似电视机的平台1202的技术。即使当平台被“关闭”时,程序逻辑也可以允许平台1202将内容流传输到媒体适配器或其他(多个)内容服务设备1230或(多个)内容递送设备1240。此外,芯片组1205可以例如包括用于支持如8.1环绕声音频和/或高清(7.1)环绕声音频的硬件和/或软件。驱动器可以包括用于集成图形平台的图形驱动器。在实现方式中,图形驱动器可以包括外围组件互连(PCI)快速图形卡。
在各个实现方式中,可以对系统1200中示出的任何一个或多个组件进行集成。例如,平台1202和(多个)内容服务设备1230可以是集成的,或者平台1202和(多个)内容递送设备1240可以是集成的,或者平台1202、(多个)内容服务设备1230和(多个)内容递送设备1240可以例如是集成的。在各实现方式中,平台1202和显示器1220可以是集成单元。例如,显示器1220和(多个)内容服务设备1230可以是集成的,或者显示器1220和(多个)内容传递设备1240可以是集成的。这些示例并不意在限制本公开。
在各实现方式中,系统1200可以被实现为无线系统、有线系统或二者的组合。当被实现为无线系统时,系统1200可以包括适合于通过如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑等的无线共享介质进行通信的组件和接口。无线共享介质的示例可以包括无线光谱部分,如RF光谱等。当被实现为有线系统时,系统1200可以包括适用于通过有线通信介质(如输入/输出(I/O)适配器、利用相应有线通信介质连接I/O适配器的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等)进行通信的部件和接口。有线通信介质的示例可以包括导线、电缆、金属引线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤等。
平台1202可以建立一个或多个逻辑或物理信道以通信信息。所述信息可以包括媒体信息和控制信息。媒体信息可以指表示针对用户的内容的任意数据。内容的示例可以包括例如,来自语音对话、视频会议、流式视频、电子邮件消息、语音邮件消息、字母数字符号、图形、图像、视频、文字等数据。来自语音对话的数据可以是例如:语音信息、静默时间段、背景噪音、舒适噪音、声调等。控制信息可以指表示针对自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统路由媒体信息、或者指示节点以预定方式处理所述媒体信息。然而,各实现方式不限于图12中示出或描述的元素或上下文。
参照图13,小形状因数设备1300是可以实施系统1100和/或1200的变化的物理样式或形状因数的一个示例。通过这种方法,设备1300可以被实现为具有无线能力的移动计算设备,并且可以具有或者是用于3D空间生成的相机阵列中的一个或多个相机。例如,移动计算设备可以指具有处理系统和移动电源或供电(诸如一个或多个电池)的任何设备。
如上所述,可以用作相机阵列的相机之一或用作用于3D空间生成的主处理单元的移动计算设备的示例可以包括数字静止相机、数字视频相机、具有相机或视频功能的移动设备(如在单个设备上具有或不具有多个相机的成像电话)、网络摄像头、个人计算机(PC)、膝上型计算机、超级膝上型计算机、具有或不具有多个相机的平板计算机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备等。
移动计算设备的示例还可以包括被安排来由人穿戴的计算机,如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机以及其他可穿戴计算机。
在某个示例中,具有相机的移动计算设备可以包括、具有或者是机器人、运载工具、或在陆地、表面、空中、水上和/或空间上移动的其他移动设备。承载相机的许多这类设备是已知的,如无人机。其他相机承载设备可以包括具有固定支架但允许相机改变位置或允许相机在固定位置处旋转、倾斜等的结构。设想了许多示例。
在各实现方式中,例如移动计算设备可以实现为能够执行计算机应用程序、以及语音通信和/或数据通信的智能电话。举例来讲,尽管一些实现方式可以用被实现为智能电话或安装在无人机上的相机的移动计算设备来描述,但可以理解的是,其他实现方式也可以使用其他无线移动计算设备来实现。实现方式并不局限于本上下文中。
如图13所示,设备1300可以包括:壳体1302、包括屏幕1310的显示器1304、输入/输出(I/O)设备1306、和天线1308。设备1300还可以包括导航特征1312。显示器1304可以包括用于显示适合于移动计算设备的信息的任何适当的显示单元。I/O设备1306可以包括用于将信息输入移动计算设备中的任何适当的I/O设备。I/O设备1306的示例可以包括:字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、摇杆式开关、麦克风、扬声器、语音识别设备和软件等。信息也可以通过麦克风(未示出)输入到设备1300中。这种信息可以由语音识别设备(未示出)数字化。实现方式并不局限于本上下文中。
可以使用硬件元件、软件元件或两者的组合实现在此描述的各种形式的设备和过程。硬件元件的示例可以包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可以包括:软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。判定是否使用硬件元件和/或软件元件来实现实现方式可以根据多个因数而变化,如预期的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
可由机器可读介质上所存储的代表性指令实现至少一个实施例的一个或多个方面,所述指令表示处理器内的各种逻辑,所述指令当被机器读取时使所述机器制作用于执行本文描述的技术的逻辑。这种表示(被称为“IP核”)可以被存储在有形机器可读介质上并提供给各顾客或制造设施以加载到实际制作所述逻辑或处理器的制作机器中。
虽然已经参照各实现方式描述了在此阐述的某些特征,并不打算在限制性意义上解释本说明书。因此,本公开涉及的对本领域技术人员而言明显的对本文中所描述的实现方式以及其他实现方式的各种修改被视为是在本公开的精神和范围内。
以下示例涉及进一步的实现方式。
通过一个示例,一种计算机实现的方法包括:获得包括至少一个场景的帧序列的深度数据的图像数据,其中,各个序列是从多个相机中的各个相机捕捉的;以及通过使用多个帧的所述图像数据确定所述帧序列的所述图像数据在所述多个相机的共享三维坐标系上的位置来确定所述图像数据在所述坐标系上的位置。所述图像数据在所述共享坐标系上的位置是在捕捉所述帧序列之前没有确定所述相机的方位值的情况下确定的,以便在计算时使用所述方位值来确定所述图像数据在所述共享坐标系上的位置。
通过另一种实现方式,所述方法可以包括:将所述相机移动到用于捕捉所述图像数据的方位,其中,所述方位在捕捉所述图像数据之前未被计划,其中,所述方位包括所述相机的坐标位置、所述相机的光轴取向、或两者,其中,所述共享坐标系是通过使用迭代最近点算法来确定的;使用具有重叠视场的重叠帧来至少部分地基于所述重叠帧确定所述共享坐标系;沿着来自单独相机的同一帧序列相对于至少一个帧的图像数据来定位至少另一个帧的图像数据,并且通过使用迭代最近点算法来执行所述定位;相对于来自所述多个相机中的一个相机的至少一个帧的图像数据来定位来自所述多个相机中的至少另一个相机的至少另一个帧的所述图像数据,并且通过使用迭代最近点算法来执行所述定位,其中,所述至少一个帧和所述至少另一个帧具有基本上同时捕捉的图像。所述方法还可以包括:计算单独相机的同一帧序列中的帧上的图像数据位置以确定所述帧序列的坐标轴;寻找至少两个不同序列的对齐帧,根据一个序列上的帧的图像中的点与在同所述一个序列的所述帧同一时间的另一个序列的帧的图像中的点的位置差是否满足标准来进行;将所述对齐帧的所述序列中一个序列中的帧的坐标轴转换为所述对齐帧的另一个序列;以及使用迭代最近点变换矩阵来将来自一个序列的坐标轴改变为另一帧序列的坐标轴。
通过另一种方法,由所述方法提供的所述操作可以类似地由系统、并且具体地一种计算机实现的系统来提供,所述计算机实现的系统具有:至少一个存储器,用于接收来自多个相机的图像数据;至少一个处理器,通信地耦合至所述至少一个存储器;以及3D空间生成单元,由所述至少一个处理器操作并且用于:获得包括至少一个场景的帧序列的深度数据的图像数据,其中,各个序列是从所述多个相机中的各个相机捕捉的;并且通过使用多个帧的所述图像数据确定所述图像数据在所述多个相机的共享三维坐标系上的位置来确定所述帧序列的所述图像数据在所述坐标系上的位置,其中,所述图像数据在所述共享坐标系上的位置是在捕捉所述帧序列之前没有确定所述相机的方位值的情况下确定的,以便在计算时使用所述方位值来确定所述图像数据在所述共享坐标系上的位置。
通过又另一种方法,所述系统可以包括:所述3D空间生成单元用于选择所述多个相机中的一个相机作为主相机,其中,所述主相机的轴用作所述共享坐标系的轴;其中,所述3D空间生成单元用于将所述相机移动到用于捕捉所述图像数据的方位,其中,所述方位不是在捕捉所述图像数据之前计划的,其中,所述方位包括所述相机的坐标位置、所述相机的光轴取向、或两者;并且其中,所述共享坐标系是通过使用迭代最近点算法来确定的。所述3D空间生成单元还用于使用具有重叠视场的重叠帧以便至少部分地基于所述重叠帧来确定所述共享坐标系;其中,所述3D空间生成单元用于沿着来自单独相机的同一帧序列相对于至少一个帧的图像数据来定位至少另一个帧的图像数据,并且其中,所述3D空间生成单元用于通过使用迭代最近点算法来执行所述定位;并且其中,所述3D空间生成单元用于相对于来自所述多个相机中的一个相机的至少一个帧的所述图像数据来定位来自所述多个相机中的至少另一个相机的至少另一个帧的图像数据。
通过另一种方法,由所述方法和/或系统提供的所述特征可以由至少一种计算机可读介质来提供,所述至少一种计算机可读介质具有存储在其上的指令,所述指令当被执行时使计算设备:获得包括至少一个场景的帧序列的深度数据的图像数据,其中,各个序列是从多个相机中的各个相机捕捉的;并且通过使用多个帧的所述图像数据确定所述图像数据在所述多个相机的共享三维坐标系上的位置来确定所述帧序列的所述图像数据在所述坐标系上的位置,其中,所述图像数据在所述共享坐标系上的位置是在捕捉所述帧序列之前没有确定所述相机的方位值的情况下确定的,以便在计算时使用所述方位值来确定所述图像数据在所述共享坐标系上的位置。
通过另一种方法,所述指令可以使所述计算设备:将所述相机移动到用于捕捉所述图像数据的方位,其中,所述方位在捕捉所述图像数据之前未被计划,其中,所述方位包括所述相机的坐标位置、所述相机的光轴取向、或两者,其中,所述共享坐标系是通过使用迭代最近点算法来确定的;使用具有重叠视场的重叠帧来至少部分地基于所述重叠帧确定所述共享坐标系;沿着来自单独相机的同一帧序列相对于至少一个帧的图像数据来定位至少另一个帧的图像数据,并且通过使用迭代最近点算法来执行所述定位;相对于来自所述多个相机中的一个相机的至少一个帧的图像数据来定位来自所述多个相机中的至少另一个相机的至少另一个帧的所述图像数据,并且通过使用迭代最近点算法来执行所述定位。所述指令还可以包括:至少一个帧和另一个帧具有基本上同时捕捉的图像;计算单独相机的同一帧序列中的帧上的图像数据位置以便确定所述帧序列的坐标轴;寻找至少两个不同序列的对齐帧,根据一个序列上的帧的图像中的点与在同所述一个序列的所述帧相同时间的另一个序列的帧的图像中的点的位置差是否满足标准来进行;将所述对齐帧的所述序列中一个序列中的帧的坐标轴转换为所述对齐帧的另一个序列;以及使用迭代最近点变换矩阵来将来自一个序列的坐标轴改变为另一帧序列的坐标轴。
在另一个示例中,至少一个机器可读介质可以包括多条指令,这些指令响应于在计算装置上被执行而使计算装置执行根据以上示例中的任一个所述的方法。
在又一个示例中,一种设备可以包括用于执行根据以上示例中的任一个所述的方法的装置。
以上示例可以包括特征的特定组合。然而,以上示例不局限于这个方面,并且在各实现方式中,以上示例可以包括仅采取这类特征的子集、采取这类特征的不同顺序、采取这类特征的不同组合和/或采取除了明确例举的那些特征之外的附加特征。例如,关于本文中任何示例方法所描述的所有特征可以关于任何示例装置、示例系统和/或示例制品被实现,并且反之亦然。

Claims (25)

1.一种3D图像捕捉的计算机实现的方法,所述方法包括:
获得包括至少一个场景的帧序列的深度数据的图像数据,其中,各个序列是从多个相机中的各个相机捕捉的;以及
通过使用多个帧的所述图像数据确定所述图像数据在所述多个相机的共享三维坐标系上的位置来确定所述帧序列的所述图像数据在所述坐标系上的位置,
其中,所述图像数据在所述共享坐标系上的位置是在无需在捕捉所述帧序列之前确定所述相机的方位值以便在计算时使用所述方位值来确定所述图像数据在所述共享坐标系上的位置的情况下确定的。
2.如权利要求1所述的方法,包括:将所述相机移动到用于捕捉所述图像数据的方位,其中,所述方位不是在捕捉所述图像数据之前计划的,其中,所述方位包括所述相机的坐标位置、所述相机的光轴取向、或两者。
3.如权利要求1所述的方法,其中,所述共享坐标系是通过使用迭代最近点算法来确定的。
4.如权利要求1所述的方法,包括:使用具有重叠视场的重叠帧来至少部分地基于所述重叠帧确定所述共享坐标系。
5.如权利要求4所述的方法,包括:确定至少一个帧相对于与所述至少一个帧重叠并与所述至少一个帧在同一帧序列中的帧的位置。
6.如权利要求1所述的方法,包括:沿着来自个体相机的同一帧序列相对于至少一个其他帧的图像数据来定位至少一个帧的图像数据。
7.如权利要求6所述的方法,包括:通过使用迭代最近点算法来执行所述定位。
8.如权利要求1所述的方法,包括:相对于来自所述多个相机中的至少一个其他相机的至少一个帧的图像数据来定位来自所述多个相机中的一个相机的至少一个帧的所述图像数据。
9.如权利要求8所述的方法,包括:通过使用迭代最近点算法来执行所述定位。
10.如权利要求8所述的方法,其中,所述至少一个帧和另一帧具有基本上同时捕捉的图像。
11.如权利要求1所述的方法,包括:
计算个体相机的同一帧序列中的帧上的图像数据位置以确定所述帧序列的坐标轴;
取决于一个序列上的帧的图像中的点与在同所述一个序列的所述帧同一时间的另一个序列的帧的图像中的点的位置差是否满足标准来寻找至少两个不同序列的对齐帧;以及
将所述对齐帧的所述序列中一个序列中的帧的坐标轴转换为所述对齐帧的另一序列。
12.如权利要求11所述的方法,包括:使用迭代最近点变换矩阵来将来自一个序列的坐标轴改变为另一帧序列的坐标轴。
13.如权利要求1所述的方法,包括:
将所述相机移动到用于捕捉所述图像数据的方位,其中,所述方位不是在捕捉所述图像数据之前计划的,其中,所述方位包括所述相机的坐标位置、所述相机的光轴取向、或两者,其中,所述共享坐标系是通过使用迭代最近点算法来确定的;
使用具有重叠视场的重叠帧来至少部分地基于所述重叠帧确定所述共享坐标系;
沿着来自个体相机的同一帧序列相对于至少一个其他帧的图像数据来定位至少一个帧的图像数据,并且通过使用迭代最近点算法来执行所述定位;
相对于来自所述多个相机中的至少一个其他相机的至少一个其他帧的图像数据来定位来自所述多个相机中的一个相机的至少一个帧的图像数据,并且通过使用迭代最近点算法来执行所述定位,其中,所述至少一个帧和所述至少另一个帧具有基本上同时捕捉的图像;
计算个体相机的同一帧序列中的帧上的图像数据位置以确定所述帧序列的坐标轴;
取决于一个序列上的帧的图像中的点与在同所述一个序列的所述帧同一时间的另一个序列的帧的图像中的点的位置差是否满足标准来寻找至少两个不同序列的对齐帧;
将所述对齐帧的所述序列中一个序列中的帧的坐标轴转换为所述对齐帧的另一个序列;以及
使用迭代最近点变换矩阵来将来自一个序列的坐标轴改变为另一帧序列的坐标轴。
14.一种计算机实现的系统,包括:
至少一个存储器,用于接收来自多个相机的图像数据;
至少一个处理器,通信地耦合至所述至少一个存储器;以及
3D空间生成单元,由所述至少一个处理器操作并且用于:
获得包括至少一个场景的帧序列的深度数据的图像数据,其中,各个序列是从所述多个相机中的各个相机捕捉的;以及
通过使用多个帧的所述图像数据确定所述图像数据在所述多个相机的共享三维坐标系上的位置来确定所述帧序列的所述图像数据在所述坐标系上的位置,
其中,所述图像数据在所述共享坐标系上的位置是在无需在捕捉所述帧序列之前确定所述相机的方位值以便在计算时使用所述方位值来确定所述图像数据在所述共享坐标系上的位置的情况下确定的。
15.如权利要求14所述的系统,其中,所述3D空间生成单元用于选择所述多个相机中的一个相机作为主相机,其中,所述主相机的轴用作所述共享坐标系的轴。
16.如权利要求14所述的系统,其中,所述3D空间生成单元用于将所述相机移动到用于捕捉所述图像数据的方位,其中,所述方位不是在捕捉所述图像数据之前计划的,其中,所述方位包括所述相机的坐标位置、所述相机的光轴取向、或两者。
17.如权利要求14所述的系统,其中,所述共享坐标系是通过使用迭代最近点算法来确定的。
18.如权利要求14所述的系统,其中,所述3D空间生成单元用于使用具有重叠视场的重叠帧来至少部分地基于所述重叠帧确定所述共享坐标系。
19.如权利要求18所述的系统,其中,所述3D空间生成单元用于确定至少一个帧相对于与所述至少一个帧重叠并与所述至少一个帧在同一帧序列中的帧的位置。
20.如权利要求14所述的系统,其中,所述3D空间生成单元用于沿着来自个体相机的同一帧序列相对于至少一个其他帧的图像数据来定位至少一个帧的图像数据。
21.如权利要求14所述的系统,其中,所述3D空间生成单元用于相对于来自所述多个相机中的至少一个其他相机的至少一个其他帧的图像数据来定位来自所述多个相机中的一个相机的至少一个帧的图像数据。
22.如权利要求20或21所述的系统,其中,所述3D空间生成单元用于通过使用迭代最近点算法来执行所述定位。
23.如权利要求19所述的系统,其中,所述至少一个帧和另一帧具有基本上同时捕捉的图像。
24.如权利要求14所述的系统,其中,所述3D空间生成单元用于选择所述多个相机中的一个相机作为主相机,其中,所述主相机的轴用作所述共享坐标系的轴;
其中,所述3D空间生成单元用于将所述相机移动到用于捕捉所述图像数据的方位,其中,所述方位不是在捕捉所述图像数据之前计划的,其中,所述方位包括所述相机的坐标位置、所述相机的光轴取向、或两者;
其中,所述共享坐标系是通过使用迭代最近点算法来确定的;
其中,所述3D空间生成单元用于使用具有重叠视场的重叠帧来至少部分地基于所述重叠帧确定所述共享坐标系;
其中,所述3D空间生成单元用于沿着来自个体相机的同一帧序列相对于至少一个其他帧的图像数据来定位至少一个帧的图像数据,并且其中,所述3D空间生成单元用于通过使用迭代最近点算法来执行所述定位;以及
其中,所述3D空间生成单元用于相对于来自所述多个相机中的至少一个其他相机的至少一个其他帧的图像数据来定位来自所述多个相机中的一个相机的至少一个帧的图像数据。
25.一种计算机实现的设备,包括用于执行根据权利要求1至13中任一项所述的方法的装置。
CN201680049285.5A 2015-09-25 2016-08-25 利用动态相机进行3d图像捕捉的方法和系统 Active CN107925753B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/866,523 2015-09-25
US14/866,523 US9445081B1 (en) 2015-09-25 2015-09-25 Method and system of 3D image capture with dynamic cameras
US15/239,528 2016-08-17
US15/239,528 US10003786B2 (en) 2015-09-25 2016-08-17 Method and system of 3D image capture with dynamic cameras
PCT/US2016/048773 WO2017052983A1 (en) 2015-09-25 2016-08-25 Method and system of 3d image capture with dynamic cameras

Publications (2)

Publication Number Publication Date
CN107925753A CN107925753A (zh) 2018-04-17
CN107925753B true CN107925753B (zh) 2020-08-28

Family

ID=58386738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680049285.5A Active CN107925753B (zh) 2015-09-25 2016-08-25 利用动态相机进行3d图像捕捉的方法和系统

Country Status (3)

Country Link
US (1) US10003786B2 (zh)
CN (1) CN107925753B (zh)
WO (1) WO2017052983A1 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10370118B1 (en) 2015-10-31 2019-08-06 Simon Saito Nielsen Lighting apparatus for remote controlled device
US10033926B2 (en) * 2015-11-06 2018-07-24 Google Llc Depth camera based image stabilization
US20170171525A1 (en) * 2015-12-14 2017-06-15 Sony Corporation Electronic system including image processing unit for reconstructing 3d surfaces and iterative triangulation method
CN105627926B (zh) * 2016-01-22 2017-02-08 尹兴 四像机组平面阵列特征点三维测量系统及测量方法
JP6735592B2 (ja) * 2016-04-08 2020-08-05 キヤノン株式会社 画像処理装置及びその制御方法、画像処理システム
US11404056B1 (en) 2016-06-30 2022-08-02 Snap Inc. Remoteless control of drone behavior
US11025921B1 (en) 2016-09-22 2021-06-01 Apple Inc. Providing a virtual view by streaming serialized data
GB2601940B (en) * 2017-06-16 2022-09-14 Symbol Technologies Llc Methods, systems and apparatus for segmenting and dimensioning objects
US10346994B2 (en) * 2017-07-29 2019-07-09 Verizon Patent And Licensing Inc. Systems and methods for inward-looking depth scanning of a real-world scene
US11348265B1 (en) 2017-09-15 2022-05-31 Snap Inc. Computing a point cloud from stitched images
US11753142B1 (en) 2017-09-29 2023-09-12 Snap Inc. Noise modulation for unmanned aerial vehicles
US11531357B1 (en) 2017-10-05 2022-12-20 Snap Inc. Spatial vector-based drone control
US11146775B2 (en) * 2017-11-07 2021-10-12 Symbol Technologies, Llc Methods and apparatus for dimensioning an object using proximate devices
JP2019114147A (ja) * 2017-12-25 2019-07-11 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US11822346B1 (en) 2018-03-06 2023-11-21 Snap Inc. Systems and methods for estimating user intent to launch autonomous aerial vehicle
FR3079060B1 (fr) * 2018-03-15 2021-10-08 Centre Nat Etd Spatiales Reconstruction tridimensionnelle participative
DE102018002499A1 (de) 2018-03-22 2019-09-26 Fachhochschule Dortmund Verfahren und Vorrichtung zur Bestimmung der Position von Objekten in einer dreidimensionalen Umgebung
CN112313576B (zh) * 2018-06-19 2022-09-06 杭州他若定位科技有限公司 具有稳定功能的相机移动设备支架
CN108983809A (zh) * 2018-07-16 2018-12-11 福州日兆信息科技有限公司 基于无人机的精准识别定位环绕的方法及无人机
JP7121277B2 (ja) * 2018-09-28 2022-08-18 日本電信電話株式会社 情報同期装置、情報同期方法及び情報同期プログラム
US10841509B2 (en) * 2018-10-22 2020-11-17 At&T Intellectual Property I, L.P. Camera array orchestration
US10818077B2 (en) * 2018-12-14 2020-10-27 Canon Kabushiki Kaisha Method, system and apparatus for controlling a virtual camera
US11288842B2 (en) 2019-02-15 2022-03-29 Interaptix Inc. Method and system for re-projecting and combining sensor data for visualization
US10902265B2 (en) * 2019-03-27 2021-01-26 Lenovo (Singapore) Pte. Ltd. Imaging effect based on object depth information
TR201910049A2 (tr) * 2019-07-05 2021-01-21 Karinca Teknoloji Ve Ilet San Tic Ltd Sti Üç boyutlu ortam aktarma, yayinlama si̇stemi̇ ve yöntemi̇
CN114762355A (zh) * 2019-12-09 2022-07-15 索尼集团公司 信息处理装置和方法、程序以及信息处理系统
JP2021124980A (ja) * 2020-02-05 2021-08-30 キヤノン株式会社 情報処理装置、情報処理方法、及び、プログラム
US11651516B2 (en) 2020-02-20 2023-05-16 Sony Group Corporation Multiple view triangulation with improved robustness to observation errors
US20210274091A1 (en) * 2020-02-28 2021-09-02 Weta Digital Limited Reconstruction of obscured views of captured imagery using arbitrary captured inputs
US20210407302A1 (en) * 2020-06-30 2021-12-30 Sony Group Corporation System of multi-drone visual content capturing
US11611700B2 (en) * 2020-07-12 2023-03-21 Skydio, Inc. Unmanned aerial vehicle with virtual un-zoomed imaging
CN112580683B (zh) * 2020-11-17 2024-01-12 中山大学 一种基于互相关的多传感器数据时间对齐系统及其方法
EP4256782A1 (en) * 2020-12-07 2023-10-11 LEIA Inc. Real-time multiview video conversion method and system
WO2023041385A1 (en) 2021-09-16 2023-03-23 Koninklijke Philips N.V. Generating complete depth data for 6-dof video
EP4152259A1 (en) * 2021-09-16 2023-03-22 Koninklijke Philips N.V. Generating complete depth data for 6-dof video
US11972521B2 (en) 2022-08-31 2024-04-30 Snap Inc. Multisensorial presentation of volumetric content
CN117395377B (zh) * 2023-12-06 2024-03-22 上海海事大学 基于多视角融合的岸桥海侧安全监控方法、系统、介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289564A (zh) * 2010-06-03 2011-12-21 微软公司 来自多个视听源的信息的合成
CN103765878A (zh) * 2011-09-12 2014-04-30 英特尔公司 使用移动视差从2d图像创建3d感知

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2408192A3 (en) 2004-04-16 2014-01-01 James A. Aman Multiple view compositing and object tracking system
JP4818846B2 (ja) 2006-08-16 2011-11-16 富士フイルム株式会社 医用画像処理装置及び医用画像処理プログラム
CN101272511B (zh) * 2007-03-19 2010-05-26 华为技术有限公司 图像深度信息和图像像素信息的获取方法及装置
WO2011022755A1 (en) 2009-08-31 2011-03-03 Trace Optics Pty Ltd A method and apparatus for relative control of multiple cameras
US9071819B2 (en) 2010-03-23 2015-06-30 Exelis Inc. System and method for providing temporal-spatial registration of images
US8401225B2 (en) 2011-01-31 2013-03-19 Microsoft Corporation Moving object segmentation using depth images
US9418475B2 (en) 2012-04-25 2016-08-16 University Of Southern California 3D body modeling from one or more depth cameras in the presence of articulated motion
KR102009292B1 (ko) * 2012-05-11 2019-08-12 한국전자통신연구원 다중 카메라 기반 삼차원 얼굴 복원 장치 및 방법
US9392248B2 (en) 2013-06-11 2016-07-12 Google Inc. Dynamic POV composite 3D video system
ES2654598T3 (es) 2013-12-23 2018-02-14 Coherent Synchro, S.L. Sistema para generar una imagen de video compuesta y procedimiento para obtener una imagen de video compuesta
CN105282375B (zh) 2014-07-24 2019-12-31 钰立微电子股份有限公司 附着式立体扫描模块
JP5911934B2 (ja) 2014-09-18 2016-04-27 ファナック株式会社 輪郭線計測装置およびロボットシステム
US9949643B2 (en) 2014-10-18 2018-04-24 International Business Machines Corporation Automatic visualization of regional functional parameters of left ventricle from cardiac imaging
US10091418B2 (en) 2014-10-24 2018-10-02 Bounce Imaging, Inc. Imaging systems and methods
US9445081B1 (en) * 2015-09-25 2016-09-13 Intel Corporation Method and system of 3D image capture with dynamic cameras

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289564A (zh) * 2010-06-03 2011-12-21 微软公司 来自多个视听源的信息的合成
CN103765878A (zh) * 2011-09-12 2014-04-30 英特尔公司 使用移动视差从2d图像创建3d感知

Also Published As

Publication number Publication date
CN107925753A (zh) 2018-04-17
WO2017052983A1 (en) 2017-03-30
US10003786B2 (en) 2018-06-19
US20170094259A1 (en) 2017-03-30

Similar Documents

Publication Publication Date Title
CN107925753B (zh) 利用动态相机进行3d图像捕捉的方法和系统
US9445081B1 (en) Method and system of 3D image capture with dynamic cameras
US11228749B2 (en) Systems, methods and apparatus for compressing video content
US9774896B2 (en) Network synchronized camera settings
US10911694B2 (en) System and method for creating metadata model to improve multi-camera production
CN113012275A (zh) 视频中的连续局部3d重建细化
US9264695B2 (en) System and method for multi-viewpoint video capture
CN106357991A (zh) 图像处理方法、图像处理装置及显示系统
KR20100104591A (ko) 파노라마의 생성 방법
WO2022019719A1 (en) Generation and distribution of immersive media content from streams captured via distributed mobile devices
EP3742737A2 (en) Image acquisition system and method
GB2558893A (en) Method for processing media content and technical equipment for the same
US20130271572A1 (en) Electronic device and method for creating three-dimentional image
US11579746B2 (en) Dynamic image capturing apparatus and method using arbitrary viewpoint image generation technology
WO2021200184A1 (ja) 情報処理装置、情報処理方法、及び、プログラム
US10580210B2 (en) Method and device for refocusing at least one plenoptic video
WO2019034803A1 (en) METHOD AND APPARATUS FOR PROCESSING VIDEO INFORMATION
US12003692B2 (en) Systems, methods and apparatus for compressing video content
KR20140045636A (ko) 레이어드 파노라마 영상 생성 장치
CN109479147A (zh) 用于时间视点间预测的方法及技术设备
El Choubassi et al. Stabilized high-speed video from camera arrays
CN115280755A (zh) 图像生成方法和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant