CN116648726A - 用于用摄像机阵列生成和/或使用3维信息的系统和方法 - Google Patents
用于用摄像机阵列生成和/或使用3维信息的系统和方法 Download PDFInfo
- Publication number
- CN116648726A CN116648726A CN202180044142.6A CN202180044142A CN116648726A CN 116648726 A CN116648726 A CN 116648726A CN 202180044142 A CN202180044142 A CN 202180044142A CN 116648726 A CN116648726 A CN 116648726A
- Authority
- CN
- China
- Prior art keywords
- camera
- image
- data
- scene
- 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.)
- Pending
Links
Abstract
该公开涉及可用于使用至少部分从摄像机阵列获得的数据从真实生活场景确定场景信息的设备、系统和/或方法。示例性系统可以被配置为实时或基本实时地生成三维信息,并且可以用于估计现实场景中的一个或多个物理表面的速度。
Description
技术领域
本公开一般涉及可以用于使用至少部分从摄像机阵列获得的数据来确定场景信息的设备、系统和/或方法。该场景信息可以是3D信息。
相关申请的交叉引用
本申请要求2020年4月24日提交的题为“Systems and Methods for Generatingand/or Using 3-Dimensional Information with Camera Arrays”(利用摄像机阵列生成和/或使用三维信息的系统和方法)的序列号为第63/015,111号的美国临时申请的优先权;以及2020年4月24日提交的题为“Systems and Methods for Generating and/or Using3-Dimensional Information with Camera Arrays”(利用摄像机阵列生成和/或使用三维信息的系统和方法)的澳大利亚临时申请2020901307号的优先权。这些申请中的每一个都在此引入作为参考。
背景技术
关于3D环境的场景信息对于许多应用是有用的,包括例如在传统道路和高速公路上安全自主驾驶车辆,以及例如导航、测量、环境监测、农作物监测、矿山测量和检查建筑结构的完整性。
创建这种场景信息的一种方法是使用一个或多个激光器的设备,这些激光器可能频闪以覆盖场景,发射光脉冲,以及通过测量接收反射脉冲的时间延迟来确定3D场景中表面与激光源的距离——这种设备通常称为激光雷达(LiDAR)。这种方法有许多缺点,例如:(1)很难实现长距离的横向精度(角分辨率是固定的,因此误差随距离而增加);(2)当环境中有许多活动的激光器时,激光脉冲可以会干扰(在挤满配备有激光雷达(LiDAR)的车辆的交通中常见的情况);(3)返回的脉冲需要在响应方向上来自目标物理表面的合理反射率,以及(4)雨、灰尘和雪通过用潜在的多次反射扰乱场景而造成困难,这打破了光脉冲以直线行进到目标并返回的假设。此外,激光雷达(LiDAR)不捕捉目标物理表面的视觉外观(通常包含在视觉电磁光谱的红绿蓝(RGB)部分中),从而限制了一些处理和分析。
创建3D场景信息的另一种方法是使用雷达。然而,雷达在角度分辨率上比激光雷达(LiDAR)更受限制,反射更依赖于目标物理表面特征;例如,金属反射良好,但是人体吸收大部分雷达信号。
通过适当的处理,可以使用光学摄像机系统来生成3D场景信息。捕捉成对图像的双目摄像机可以用于基于双目视差(即,场景中固定特征的两个图像中的位置之间的差异)导出3D场景信息,特别是深度信息。通常,双目视差方法匹配由具有已知物理间隔或基线的摄像机捕获的图像对中的局部区域。根据视差,可以基于光学(假设光沿直线传播)和几何三角测量原理来确定匹配区域的深度。双目视差方法在平坦区域中容易出错,在该区域中很少或没有用于识别两个单独视图之间的精确匹配的纹理。双目视差方法还遭受物体周围的模糊,这些物体的部分被一个或两个摄像机遮挡。
在本领域中,使用两个以上的摄像机从不同的位置观察场景的光学摄像机系统是已知的;这些系统通常简称为摄像机阵列。这些阵列从多个不同的方向和/或位置捕捉场景的一组2D图像。然后,基于来自摄像机阵列中不同摄像机的图像对之间匹配的局部图像区域的差异,可以使用与双目摄像机类似的原理来获得深度信息。摄像机阵列系统的一种实现是微透镜阵列;即设置在位于微型单个摄像机传感器前面的固定网格中的小透镜阵列。然而,这种阵列中的摄像机对之间的基线通常受到制造过程的尺寸和分辨率的约束,从而限制了深度和角度(空间)分辨率的精度。另一种类型的摄像机阵列是将摄像机布置在单个平面上,通常也具有共同的方向,以便于简化视差的计算。然而,对摄像机系统中摄像机的物理布置的这种限制可以会在某些应用中限制摄像机阵列的实际设计,特别是在需要大基线的情况下。
先前的摄像机阵列可以产生大量的数据,然后必须对这些数据进行管理(通常每个摄像机有数百万个像素值),这需要大量的计算资源来确定精确的深度和其他期望的场景信息。在一种方法中,可能需要为摄像机阵列中的每个摄像机确定三维空间中的采样点和它们对于每个摄像机的外观之间的映射。如果需要以高分辨率覆盖场景的大部分,这种采样点的数量可以非常大。场景中的采样点和来自摄像机阵列中的摄像机的图像数据中的像素之间的映射通常需要大量的计算资源。当乘以阵列中摄像机的数量时,总的计算工作量可以变得不可行。因此,这种系统通常以受限的分辨率或有限的帧速率运行。可以认为,样本点和图像数据中的像素之间的映射可以预先计算(即,在制造期间一次或在系统启动时一次)以节省计算工作量。然而,在这种情况下,必须存储然后应用于变换图像数据的参数的数量可以很大,因此不切实际。在任一情况下,高计算量或大量参数使得难以构建可以以合适的实时帧速率传递精确、高分辨率3D场景信息的系统。
本公开旨在克服和/或改善现有技术的至少一个或多个缺点,这将从本文的讨论中变得显而易见。本公开还提供了这里讨论的其他优点和/或改进。
发明内容
某些实施例涉及可以用于使用至少部分从摄像机阵列获得的数据来确定场景信息的设备、系统和/或方法。该场景信息可以是3D信息。
在某些实施例中,该系统可以被配置为实时或基本实时地生成三维信息。
在某些实施例中,该系统可以被配置为以实时帧速率或基本实时帧速率生成三维信息。
某些实施例涉及使用一个或多个示例性公开的系统来生成三维视频信息的方法。
某些实施例针对可以用于估计现实场景中物理表面的速度的系统。
某些实施例针对一种用于生成真实生活场景的三维信息的系统,包括:由多个摄像机组成的摄像机阵列,该摄像机阵列被配置为被定位成观看真实生活场景;所述多个摄像机包括:至少第一摄像机,其被配置为从真实生活场景的第一视野收集光谱数据;至少第二摄像机,其被配置为从真实生活场景的第二视野收集光谱数据;至少第三摄像机,其被配置为从真实生活场景的第三视野收集光谱数据;以及至少第四摄像机,其被配置为从真实生活场景的第四视野收集光谱数据;所述第一摄像机被配置为从所述第一视野生成至少第一图像;所述第二摄像机被配置为从所述第二视野生成至少第二图像;所述第三摄像机被配置为从所述第三视野生成至少第三图像;以及第四摄像机被配置为从所述第四视野生成至少第四图像;所述摄像机阵列被配置为将所述第一图像、所述第二图像、所述第三图像以及所述第四图像传输到处理引擎;以及所述处理引擎被配置为:从包括第一摄像机、第二摄像机、第三摄像机和第四摄像机的多个摄像机获得图像数据;通过基于3D体积在至少一个摄像机图像中的投影来提取从至少大部分像素数据中选择的相关像素数据,生成至少部分代表现实场景的一部分的3D体积的指示;以及使用相关像素数据来确定3D体积包含物理表面的可能性。
某些实施例涉及使用本公开的系统的方法。
附图说明
图1是根据某些实施例的用于创建场景的三维指示、包括摄像机阵列和处理引擎的顶层系统图;
图2是根据某些实施例的用于摄像机阵列中的摄像机的示意性组件图;
图3是由摄像机阵列观察的示例性真实世界场景的图示,并且说明了参考表面,在这种情况下该参考表面是正面平行平面;
图4是参考表面的替代放置的图示;
图5是摄像机对的核平面和核线的图示;
图6是摄像机对的核线校正的图示;
图7是用于为摄像机对创建一致的深度偏移扭曲的几何结构的图示;
图8是关于一对源图像的一对经线的图示;
图9是使用弯曲的参考表面为摄像机对创建一致的深度偏移扭曲的几何结构的图示;
图10是根据某些实施例的示例性使用和可能的摄像机阵列配置的图示;
图11是根据某些实施例的另一示例性摄像机配置的图示;
图12是根据某些实施例的示例性摄像机阵列配置的图示;
图13是示例性过程的流程图;
图14是成本矩阵的图示;
图15是光流的补偿的图示;
图16是替代示例性过程的流程图;
图17是替代示例性过程的流程图;以及
图18是3D点邻域的图示。
具体实施方式
详细描述
以下描述是针对可以共享共同特征和特性的几个实施例而提供的。应当理解,一个实施例的一个或多个特征可以与其他实施例的一个或多个特征相结合。此外,某些实施例中的单个特征或特征组合可以构成另外的实施例。本公开的具体结构和功能细节不应被解释为限制性的,而仅仅是作为教导本领域技术人员以不同方式采用所公开的实施例和这些实施例的变型的代表性基础。
详细描述中使用的主题标题仅是为了便于读者的参考,而不应该用于限制整个公开内容或权利要求中的主题。主题标题不应该用于解释权利要求的范围或权利要求的限制。
本公开的某些实施例可用于许多领域。例如,一个或多个以下非限制性示例性应用:越野车(例如,汽车、公共汽车、摩托车、卡车、拖拉机、叉车、起重机、反铲挖土机、推土机);道路车辆(例如,汽车、公共汽车、摩托车、卡车);基于轨道的车辆(例如,机车);基于空气的交通工具(例如,飞机、无人机)、基于空间的交通工具(例如,卫星或卫星的星座);个人(例如矿工)、水陆两用交通工具(例如船、汽车、公共汽车);和船只(例如,轮船、气垫船、潜艇)。此外,非限制性示例性应用可以是操作员驱动的、半自动的和/或自动的。
术语“场景”是指通过一个或多个摄像机的视野感知的三维真实世界(即,3D物理现实)的子集。在某些实施例中,可以有至少2、3、4、5、10、15、20、25、30、35或40、100、1000或更多个摄像机。
术语“对象”是指场景中的元件。例如,场景可以包括以下物体中的一个或多个:人、孩子、汽车、卡车、起重机、采矿车、公共汽车、火车、摩托车、车轮、一小块草地、灌木、树、树枝、树叶、岩石、小山、悬崖、河流、道路、道路上的标记、路面上的凹陷、雪花、房屋、办公楼、工业建筑、塔,一座桥、一条水道、一只鸟、一只飞鸟、一条跑道、一架飞机、一架直升机、门、一个门把手、一个架子、一个存储架、一台叉车、一个箱子、一座建筑物、一个机场、一个城镇或城市、一条河流、一条山脉、一片田野、一片丛林和一个集装箱。物体可以是移动的元件,或可以是静止的或基本静止的。物体可以被认为是在背景或前景中。
术语“物理表面”是指场景中物体的表面,其发射和/或反射电磁光谱的至少一部分中的电磁信号,以及其中至少一部分这样的信号穿过场景的至少一部分。
术语“3D点”或“3D坐标”是指至少部分地由至少三个参数定义的场景中点的位置的指明,所述至少三个参数指明从原点参考到该点的三维距离,例如,在从原点的三个方向上,其中这些方向可以是基本垂直的(至少不是共面或共线的),或作为替代示例,使用由径向距离、极角和方位角组成的球面坐标系。
术语“3D邻域”是指场景中的3D体积,其在一个或多个方向上的最大线性范围被限制为小于指定的阈值。该阈值对于不同的方向可以是不同的,例如,可以是0.1毫米、1毫米、5毫米、1厘米、5厘米、10厘米、50厘米、1米、5米、10米、50米、100米,或当考虑由场景指示的物理空间的整体尺寸时,可以是适当比例的其他值。如果这些点的坐标位于由3D邻域描述的3D体积内,则3D邻域可以被认为包含一个或多个3D点。本公开中涉及3D邻域的讨论和/或计算可以适用于单个3D点。
术语“3D场景信息”或“3D信息”或“场景信息”是指在相对静态时间段期间关于场景的信息,其中关于场景中的一个或多个3D点和/或3D邻域的信息可以可选地包括以下各项中的一个或多个或不包括:I)3D邻域的特征位置(例如,邻域中包含的3D点的算术或几何质心);ii)从一个或多个摄像机的视点来看,关于包含在邻域中的一个或多个点的外观的光谱信息;以及iii)至少部分描述邻域中包含的点的一组元数据。该组元数据可以包括一个或多个以下属性:点的纹理;来自点附近区域的光谱数据;一维、二维或三维中的一个或多个点的瞬时速度(还允许一个或多个汇总速度值,例如一维、二维或三维中的点的平均速度);全部或部分存在于3D邻域中的物体的类型或分类;以及其他数据。如这里所使用的,术语“相对静态时间段”在本公开的其他地方被定义。
术语“3D速度数据”是指3D场景信息的速度分量。
术语“传感器元件”是指测量在可控时间段内到达其表面的入射电磁光谱的强度的设备。
术语“图像传感器”是指在空间上排列的多个传感器元件。多个传感器元件可以平面或基本平面的关系排列。多个传感器元件可以以基本上规则的模式排列(例如,传感器元件可以基本上等距隔开)。多个传感器元件可以以不规则间隔的模式排列(例如,传感器元件可以以不同的距离间隔开)。多个传感器元件可以以规则和不规则间隔的模式排列(例如,至少两个传感器元件可以基本上等距间隔开,以及至少两个传感器元件可以基本上等距间隔开的不同距离间隔开)。传感器元件可以以至少1、2、3或4个平面或基本平面的关系排列。可以设想图像传感器内传感器元件的其他空间关系。
术语“滤光器阵列”是指一个滤光器或一组滤光器,其位于图像传感器中的传感器元件附近,使得该滤光器或该组滤光器将到达传感器元件的电磁光谱限制在有限的频率范围内,因此传感器元件响应并测量基本上该部分频谱的强度。滤光器阵列的一个例子是Bayer滤光器,其在4个相邻传感器元件的组之间过滤RG-GB图案中的光。
术语“摄像机”是指包括图像传感器、可选的滤光器阵列和透镜(或多个透镜)的设备,该透镜将来自场景的入射电磁信号的潜在有限部分聚焦到图像传感器中的至少一些传感器元件上。该透镜例如可以是光学透镜、衍射光栅或其组合。
术语“摄像机中心”或“摄像机光学中心”是抽象的3D点,如果从场景中的源进入摄像机的电磁光谱的定向射线可以无障碍地穿过图像传感器的滤光器阵列、透镜和/或传感器元件,则它们将在该点相交。
这里使用的术语“每一个”是指至少95%、96%、97%、98%、99%或100%的项目或功能如所指明的那样执行。示例性项目或功能包括但不限于以下的一个或多个:位置、图像对、单元、像素、像素位置、层、元件、点、3D邻域和3D点。
关于图像数据的术语“水平”可以方便地用于指示方向。例如,在传统术语中,图像数据可以被认为是以水平扫描线排列的。在实践中,图像数据的方向可以同样有效地被认为是垂直的,或沿着像素行,或沿着像素列,或沿着为了计算、实现或教学方便而选择的线或曲线(包括不连续的线或曲线)排列。在其他情况下,术语“水平”可以理解为是指名义上的水平方向,实际上可以偏离严格水平方向5%、10%或20%或更多。
本文使用的术语“至少相当大的一部分”是指所提及的项目或功能的至少60%、70%、80%、85%、95%、96%、97%、98%、99%或100%。示例性项目或功能包括但不限于以下的一个或多个:位置、图像对、单元、像素、像素位置、层、元件、点、3D邻域和3D点。
术语“光谱数据”是指指示从图像传感器中选择的多个传感器元件产生的电磁信号的测量强度的数据,其中传感器元件可选地由滤波器阵列辅助,测量电磁光谱的多个部分中的入射强度。光谱数据的一个例子是颜色。颜色可以由电磁光谱中可见光的红色、绿色和蓝色波段中的电磁信号的强度来指示,其中滤光器以RG-GB或类似的Bayer(拜耳)模式排列。替代系统还可以使用电磁光谱中的不可见波段或可见光谱中的替代波段。此外,光谱数据可以指示预定数量的传感器元件的收集输出,至少相当大的部分被配置为响应电磁光谱的至少一部分,并且可以包括基本上同时采样电磁光谱的多个部分的那些。
术语“光流数据”是指描述2D图像在图像中的一个或多个位置处穿过图像平面的表观局部运动的数据。
术语“像素”是指多个数据存储单元中的一个,这些数据存储单元彼此之间具有二维相邻关系,使得它们在拓扑上可共同映射到二维网格上。像素可以包含在特定时间从作为图像传感器一部分的传感器元件采样的电磁光谱数据。像素还可以包含其他数据的计算变换的结果,其中在二维网格中存储变换的数据是有利的(例如,滤波的图像数据、校正的图像数据、光流数据、不确定性界限、透明度数据)。
术语“像素数据”或“像素级数据”指示在像素位置感测或计算的一个或多个光谱数据和/或光流数据,和/或从光谱数据导出的数据,和/或从光流数据导出的数据,和/或从与像素位置相关的其他元数据导出的数据。
术语“相对静态时间段”是指场景中的大部分物理表面相对于摄像机至少基本静止的时间段。如关于该术语所使用的,该时间段可以是大约0.0001秒、0.01秒、0.05秒、0.1秒、0.2秒、1秒或10秒。如关于该术语所使用的,如果适合于该情况,该时间段可以小于0.0001秒、0.01秒、0.05秒、0.1秒、0.2秒、1秒、10秒或更长。如关于该术语所使用的,时间段可以在0.0001秒和10秒之间、0.0001秒和0.01秒之间、0.01秒和1秒之间、0.05秒和5秒之间、0.1秒和1秒之间、0.2秒和2秒之间、1秒和4秒之间、或0.1秒和10秒之间,或视情况而定的更大范围。如关于该术语所使用的,当场景中的距离和/或物体或摄像机的速度足够大时(例如在基于卫星和/或空间的应用中),该周期可以是1分钟、10分钟、100分钟或更长。
如关于该术语所使用的,基本大多数可以是场景中物理表面的至少70%、80%、85%、90%、95%或100%。如关于该术语所使用的,短语“基本静止”是指物理表面相对于摄像机的移动可以小于它们相对于摄像机的位置的0.1%、0.2%、0.5%、1%、2%、5%或10%,或如果适合于该情况,可以更大。
术语“同时帧”是指由多个摄像机中的一个或多个摄像机在相对静态时间段内拍摄的一组图像(例如,2、3、4、6、9、16、20、32、64或其他数量)。由多个摄像机中的一个或多个摄像机在相对静态时间段内拍摄的图像集合可以是至少2、3、4、6、9、16、20、32、64,或更多,如果适合摄像机阵列的情况和配置的话。在某些实施例中,多个摄像机中的一个或多个摄像机的至少20%、40%、50%、60%、70%、80%、90%或100%可以具有同时帧速率。在某些实施例中,多个摄像机中的一个或多个摄像机的至少20%、40%、50%、60%、70%、80%、90%或100%可以具有基本上同时的帧速率。在某些实施例中,多个摄像机中的一个或多个摄像机可以具有不同的同时帧速率。在某些实施例中,多个摄像机中少于20%、40%或50%的一个或多个摄像机可以具有不同的同时帧速率。
术语“几何中值”是指被构建在多维空间中的一个位置上的点,该位置位于该空间中的一组数据点之间,使得从如此构建的几何中值点到一部分数据点的欧几里德距离之和在数学上最小化。在某些实施例中,数据点的部分可以是相当大的部分。在某些实施例中,数据点的部分可以是数据点的至少60%、70%、80%、90%、95%、98%、99%或100%。
术语“基线”是指用于捕获至少一个第一图像的摄像机的光学中心和用于捕获至少一个第二图像的摄像机的光学中心之间的非零距离。用于捕获至少一个第一图像的摄像机可以与用于捕获至少一个第二图像的摄像机相同或基本相同,其中摄像机在捕获至少一个第一图像和捕获至少一个第二图像之间移动了一定距离。
术语“视差”是指场景中一个特征在一个图像上的像素位置(相对于该图像中的固定原点像素位置)和同一特征在第二图像上的像素位置(相对于第二图像中的固定原点像素位置)之间的数学差异。
术语“双目”是指形成或使用从由基线分开的两个摄像机(即,摄像机对)捕获的一对图像。
术语“摄像机阵列”是指多个摄像机;其中一个或多个摄像机具有重叠的视野,并且摄像机的数量为4个或更多。术语“摄像机阵列”还可以指一个或多个摄像机,其中一个或多个摄像机在相对静态时间段内移动,从而在相对静态时间段内保持摄像机的基本重叠的视场。在这个术语中,重叠视场是指至少5%、10%、20%、30%、40%、50%或60%的视场重叠。在某些实施例中,一个或多个摄像机的至少25%、50%、75%或100%具有重叠的视野。在某些实施例中,摄像机阵列可以具有至少4、5、6、7、8、9、10、20、50、100或更多个摄像机。在某些实施例中,摄像机阵列可以具有4至8个、4至16个、8至32个或32至128个摄像机。
术语“实时”是指处理可以足够快,使得所得信息可以用于基本上在操作时做出决定。非限制性示例可以是在以下一个或多个上的应用:汽车、卡车、火车、飞机、直升机、无人驾驶飞机、卫星、拖拉机、轮船、移动农场或采矿设备、固定起重机或观察点(例如,安全观点)或船,其中实时处理可以是在100分钟、10分钟、1分钟、1秒、100毫秒、10毫秒、1毫秒或适合于该情况的其他值内执行的处理。
术语“实时帧速率”是指处理系统以实时速度处理图像数据的能力。例如,在处理图像数据时,实时帧速率可以是每秒至少0.1、1、10、30、60、100或更高的帧。例如,在处理图像数据时,实时帧速率可以是每秒0.1至1、0.1至10、0.1至100、1至100、1至60、1至30、1至10、10至100、10至60、30至100、30至60、60至100或更高的帧。
术语“摄像机对”是指从摄像机阵列中选择的一对摄像机。
术语“图像对”指的是一对图像,例如从摄像机对中的摄像机捕获的图像。
术语“参考表面”是指概念表面,通常不是物理表面,具有相对于摄像机阵列的已知几何位置,可以用作从多个摄像机确定场景中的深度的公共参考。参考表面可以是弯曲的或可以是平面的。
术语“无关的小粒子遮挡”是指为了系统的特定应用,可以忽略或基本忽略的一个或多个瞬时物体。例如,在沿着道路驾驶标准汽车的情况下,可以不需要避开雨滴,并且雨滴可以不代表安全威胁。因此,在这种应用中,雨滴可以被认为是无关的小颗粒。其他类似的例子包括以下的一个或多个:雪、冰雹、灰尘、漂浮在空气中的单个树叶和昆虫。
术语“外部摄像机参数”是指描述摄像机相对于指定的参照系和/或原点在空间中的位置和方向的参数。外部摄像机参数可以指示为3D平移向量[x,y,z]和3×3旋转矩阵。
术语“摄像机固有参数”是指描述摄像机如何将现实世界中观察到的点映射到摄像机图像平面或图像传感器中的参数,从而表征摄像机的光学和几何属性。例如,固有摄像机参数可以包括以下一个或多个:视野、焦距、图像中心、径向镜头失真的描述符以及其他失真的描述符。
某些示例性优点
除了本公开的其他优点之外,在某些示例性实施例中可以呈现一个或多个以下优点:
一个优点可以是,可以以实时帧速率或基本上实时的帧速率计算精确的3D场景信息流,以使得更高级别的系统能够进行导航决策。这种导航决策的示例包括但不限于轨迹选择、防撞、道路跟随、驾驶风险评估、安全速度确定、驾驶员辅助、驾驶员警报、安全距离跟随、个人空间导航或其组合。
另一个优点可以是不需要或较少需要其他传感器(例如,雷达和/或激光雷达(LiDAR))。对其他传感器需求的减少大大降低了在车辆、机器人和/或飞机中实现自主导航的成本和/或复杂性,并且还可以提高精度。然而,在某些实施例中,可以添加其他传感器(例如超声波、雷达和/或激光雷达(LiDAR))来补充该系统。
某些实施例的另一个优点可以是不需要或不太需要在不同的传感器系统之间进行集成。这大大降低了在车辆、机器人和/或飞机中实现自主导航的成本和/或复杂性,同时还提高了精度。本公开考虑了不同传感器系统之间的集成,尽管如此,这些传感器系统仍可以被包括在某些实施例中。
某些实施例的另一个优点是,它可以减少粒子遮挡(例如,雨、雪、灰尘和昆虫中的一种或多种)对系统的影响,因为在使用对常规可见光谱中或附近的许多光谱范围敏感的传感器元件制作的2D图像中,这种遮挡的可见影响不像在激光雷达(LiDAR)或其他替代感测模态中那样严重。
此外,阵列中有多个摄像机的事实是指遮挡或部分遮挡来自阵列中有限部分摄像机的视图可以不会显著影响系统的整体性能。
某些实施例的另一个优点可以是,可以以实时帧速率或基本上实时的帧速率计算精确的3D场景信息流,便于跟踪场景中的对象以实现以下一个或多个:街道、公园、私人或公共空间或建筑物的安全和监视,其中实时3D信息可以允许跟踪人、识别动作和活动、帮助检测异常行为,确定关于空间中人或车辆的流动的信息,确定诸如碰撞或滑倒之类的警报,监控人群的大小,以及监控人群的流动和/或行为。
某些实施例涉及使用无源光学系统实时或基本实时地产生场景的3D场景信息。
某些实施例提供了一种摄像机解决方案,该摄像机解决方案可以使用固定阵列中的从不同位置观看场景的摄像机来构建。可以比较场景的多个视图之间的结果差异来计算3D场景信息。这可以通过将一幅图像的像素与另一幅图像中的像素进行比较来实现,所述另一幅图像是从与第一幅图像有一定偏移的摄像机拍摄的。必要的偏移程度(视差)至少部分取决于在所讨论的各个像素位置从摄像机到被观察的物理表面的距离,并且还至少部分取决于两个摄像机中心之间的距离(即摄像机对的基线)。例如,较宽的基线可以会提高远程精度,但可以会有增加最小距离的问题,因为视图可以不会在摄像机附近重叠。
某些实施例允许摄像机阵列中的摄像机以不规则的排列和方向放置,并且还允许大量视差估计的有效计算,使得角度和/或深度分辨率和/或精度高。
系统图
图1说明了某些示例性实施例的系统图100。该系统包括摄像机阵列110和处理引擎115。在某些实施例中,一个或多个计算机系统执行这里描述或公开的一个或多个方法的一个或多个步骤。在某些实施例中,一个或多个计算机系统提供在本公开中描述或说明的功能。在某些实施例中,被配置为在一个或多个计算机系统上运行的可执行软件执行本公开的一个或多个方法的一个或多个步骤和/或提供本公开的功能。在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。
本公开考虑了合适数量的计算机系统。作为示例而非限制,计算机系统(115)可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、主机、计算机系统网、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备或其组合。在适当的情况下,计算机系统(115)可以包括一个或多个计算机系统;单一的或分散的;跨越多个位置;跨越多台机器;跨越多个数据中心;或驻留在云中,这可以包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机系统(115)可以在没有实质的空间或时间限制的情况下执行这里描述或说明的一个或多个方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统(115)可以实时或以批处理模式执行本公开的一个或多个方法的一个或多个步骤。
计算机系统(115)可以包括处理器单元(160)、存储器单元(170)、数据存储器(190)、接收单元(150)和外部通信单元(180)。
处理器单元(160)可以包括用于执行指令的硬件,例如构成计算机程序的指令。作为示例而非限制,为了执行指令,处理器单元(160)可以从内部寄存器、内部高速缓存、存储器单元(170)或数据存储器(190)中检索指令;解码并执行它们;然后将一个或多个结果写入内部寄存器、内部高速缓存(未说明)、存储器单元(170)或数据存储器(190)。处理器单元(160)可以包括一个或多个用于数据、指令或地址的内部高速缓存。本公开设想在适当的情况下,处理器单元(160)包括适当数量的适当内部高速缓存。处理器单元(160)可以包括一个或多个指令高速缓存、一个或多个数据高速缓存以及一个或多个翻译后备缓冲器(TLB)。指令高速缓存中的指令可以是存储器单元(170)或数据存储器(190)中的指令的副本,并且指令高速缓存可以加速处理器单元(160)对那些指令的检索。
存储器(170)可以包括用于存储供处理器执行的指令或供处理器操作的数据的主存储器。计算机系统(115)可以将指令从数据存储器(190)或另一个源(例如,另一个计算机系统)加载到存储器单元(170)。处理器单元(160)然后可以将指令从存储器单元(170)加载到内部寄存器或内部高速缓存。为了执行指令,处理器单元(160)可以从内部寄存器或内部高速缓存中检索指令并解码它们。在指令执行期间或之后,处理器单元(160)可以将一个或多个结果(可以是中间或最终结果)写入内部寄存器或内部高速缓存。处理器单元(160)然后可以将这些结果中的一个或多个写入存储器单元(170)。处理器单元(160)可以仅执行一个或多个内部寄存器或内部高速缓存或存储器单元(170)中的指令(与数据存储器(190)或其他地方相反),并且仅对一个或多个内部寄存器或内部高速缓存或存储器单元(170)中的数据进行操作(与数据存储器(190)或其他地方相反)。一条或多条存储器总线可以将处理器单元(160)耦合到存储器单元(170)。总线(未说明)可以包括一条或多条存储器总线。存储器单元(170)可以包括随机存取存储器(RAM)。该RAM可以是易失性存储器,在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口或多端口RAM。在适当的情况下,存储器单元(170)可以包括一个或多个存储器。
数据存储器(190)可以包括用于数据或指令的大容量存储器。数据存储器(190)可以包括硬盘驱动器(HDD)、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或其组合。在适当的情况下,数据存储器(190)可以包括可移动或不可移动(或固定)的介质。在适当的情况下,数据存储器(190)可以在计算机系统的内部或外部。数据存储器可以包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改变ROM(EAROM)或闪存或其组合。
在某些实施例中,I/O接口(未说明)可以包括硬件、软件或两者,为计算机系统和一个或多个I/O设备之间的通信提供一个或多个接口。在适当的情况下,计算机系统可以包括一个或多个这些I/O设备。这些I/O设备中的一个或多个可以实现人和计算机系统之间的通信。I/O设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、图形输入板、触摸屏、轨迹球、摄像机、其他合适的I/O设备或其组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于它们的任何合适的I/O接口。在适当的情况下,I/O接口可以包括一个或多个设备或软件驱动器,使得处理器单元(160)能够驱动这些I/O设备中的一个或多个。在适当情况下,I/O接口可以包括一个或多个I/O接口。
该计算机系统被配置为执行某些示例性实施例。在某些实施例中,摄像机平台110上的摄像机的相对位置和/或方向可以是已知的。在某些实施例中,摄像机平台上的摄像机可以具有触发器(未说明),该触发器使得图像帧能够在特定时间被捕获,或至少使得图像捕获的时间以至少与为满足相对静态时间段的定义的应用选择的间隔一样精细的精度被记录。在某些实施例中,摄像机平台可以包括相关电路(未说明),以确保在外部系统110控制的时间从摄像机平台上的摄像机捕获图像。
摄像机阵列110包括以M宽N高的阵列布置的一组摄像机。阵列的水平行用虚线125、135、145指明。这里详细描述了示例性的摄像机,例如120、130、140。尽管图1说明了规则阵列,但是呈现可以存在以下一个或多个的实施例:阵列不规则,行可以不包含相同数量的摄像机,摄像机根据它们的光谱灵敏度而不同,以及阵列不在单个垂直平面中。例如,摄像机可以以圆形图案、之字形图案、分散图案布置,并且一些摄像机可以在三维中的一个或多个上偏移(但仍然固定)。图12A-J说明了摄像机阵列配置的各种示例,包括A)2×2摄像机的矩形阵列,B)3×2摄像机的矩形阵列,C)3×3摄像机的矩形阵列,D)4×4摄像机的矩形阵列,E)围绕矩形周边设置的12个摄像机的配置,F)12个设置在矩形周边的配置,另外6个摄像机设置在较小的同心矩形周边,G)垂直方向上2×5个摄像机的矩形阵列,H)水平方向上6×2个摄像机的矩形阵列,I)8个摄像机设置在圆形周边的配置,以及J)13个摄像机设置在圆形周边的配置,另外8个摄像机设置在较小的同心圆周边。基于用例或车辆而设计的进一步配置在图10和图11中作为示例给出。并且在本公开的其他地方详细描述。
在某些实施例中,摄像机阵列中摄像机的相对位置和/或方向可以是已知的。在某些实施例中,摄像机阵列中的摄像机可以具有同步触发器(未说明),其使得能够跨阵列、阵列的大部分或阵列的一部分捕获基本上同时的图像帧。在某些实施例中,摄像机阵列可以包括相关电路(未说明),以确保同步捕捉来自摄像机阵列110中的摄像机的图像。
处理引擎115包括接收单元150,用于与摄像机阵列110中的摄像机通信。接收单元经由通信总线151与处理器单元160和存储器单元170连接。处理器单元160可以是通用CPU或GPU,或可以是定制的硬件,例如被设计来执行所需处理的FPGA或ASIC。存储器单元170可以包括易失性和/或非易失性存储器。它可以存储用于处理单元160的指令以及经由通信总线152从接收单元160接收的图像数据。处理单元160也可以通过通信总线162连接到数据存储器190。处理单元160也可以通过163连接到外部通信单元180。通信单元180可用于输出3D信息流以供外部系统(未说明)使用。通信单元180还可以从外部源接收数据,包括以下的一个或多个:位置数据、地图数据和先前记录的关于场景的数据,以及先前记录的关于场景的3D信息和/或其他数据。
摄像机阵列110中的摄像机可以连接到处理单元115。摄像机可以具有由121、131、141指明的通信信道,以接受控制和/或同步信号并输出图像数据。可以通过在通信信道121、131、141上发送的信号来操作从摄像机阵列110中的一个或多个摄像机同步捕获图像。
示例性摄像机系统
图2描述了可用于摄像机阵列110中的摄像机的示例性摄像机系统200的细节。摄像机系统包括由光学元件201、202组成的透镜模块210。还有光圈220、快门221和传感器223。在某些实施例中,传感器223可以覆盖有滤波器阵列,例如Bayer滤波器222,这使得能够捕获彩色和/或多光谱图像。传感器223可以对电磁光谱的一部分敏感,包括但不限于以下一种或多种:可见光、红外线和紫外光谱。
传感器223连接到摄像机图像处理单元240,摄像机图像处理单元240可以对传感器223捕获的原始图像数据执行图像处理。在某些实施例中,图像处理步骤可以包括以下一个或多个步骤:去光圈、补偿镜头失真或颜色校正。在某些实施例中,对图像进行处理以补偿镜头失真会使图像变形,使得它们符合或基本符合针孔摄像机的输出。许多摄像机镜头系统生成具有某种扭曲的图像,例如,鱼眼镜头将场景扭曲成世界的宽全景指示,但是其中透视线是扭曲的。通过补偿镜头失真,场景中的直线在处理后的图像中可以看起来是直的。
经处理的图像可以通过通信总线252传递到通信单元250。经处理的图像数据可以通过260发送到处理引擎115。通信单元250还可以从处理引擎115接收控制和/或同步信号。控制和/或同步信号可以被传递到摄像机控制单元230上。摄像机控制单元230经由控制线234、233、232、231来操作摄像机控制信号,使得能够调整镜头系统210的一个或多个以下组件:光圈220、快门221和传感器223。这种控制可用于调整以下一项或多项:成像参数(例如增益)、曝光时间、白色和/或黑色电平偏移以及滤光器设置。摄像机控制单元230还可以协调以下一个或多个的激活:光圈220、快门221和传感器223以捕捉图像。摄像机控制单元230可以经由通信单元250接收同步信号,该同步信号确保摄像机阵列110中的摄像机被同步以同时捕捉图像。
示例性说明性场景
图3说明了象征性场景300。道路310用线312、313说明,线312、313标记道路310的中心线的道路标记315的边缘。在这个场景中,道路上有两辆汽车320、330。还说明了位于路边的树木340、350和标志360。摄像机阵列110被说明为被定向为观察场景。摄像机阵列110可以位于车辆(未说明)上,并且本身可以沿着道路行驶。虚线矩形标记了参考平面380的位置和方向,其位于摄像机阵列110的视野中。参考表面380(这里显示为平面)形成了使用来自摄像机阵列110的摄像机的图像生成3D信息的公共参考。
图4A说明了另一种布置,其中参考表面481位于水平方向,近似平行于地面,并且近似与地面在同一水平面上。图4B说明了另一种布置,其中参考面482位于垂直方向但在侧面。参考表面的其他方位也是可能的,例如平行于地面并且在路面上方,或垂直于地面并且与车辆的前四分之一成对角。取决于特定实施例的应用,参考表面的取向可以影响深度估计过程的计算成本和/或精度。
即使使用单个摄像机阵列,构建几个参考表面(或参考表面组)也可以是有利的。可以选择参考表面,这些参考表面反映了在摄像机阵列操作期间物理表面可能出现的先验已知可能性。例如,在自动驾驶汽车的情况下,地面通常是水平的,建筑物(在建筑区)通常与道路两侧的垂直平面对齐。在某些实施例中,多个参考表面可以与摄像机阵列一起使用。图4C说明了设置在车辆420的前方位置的摄像机阵列110,其周围设置了参考表面483、484和485,其中一个或多个可以用作根据本公开确定深度的基础。图4D说明了被配置为拱形的摄像机阵列110,并且多个参考表面483、484、485、486和487被设置在车辆420的前方和侧面以及左右前方四分之一处。图4E说明了具有提供360度定向的摄像机阵列的另一种可能的布置,并且在该示例中,也在车辆周围设置了八个参考表面,从而提供360度的覆盖范围。图4F和图4G说明了另一种可能的布置,其中摄像机阵列提供360度的定向和不规则弯曲的参考表面,该参考表面具有关于车辆的有限覆盖。
核平面和线
图5可以用于描述场景、一对摄像机、核平面和相关的核线之间的示例性关系。在该示例中,核平面是由三个点定义的平面:摄像机中心(或摄像机光学中心)A 510、摄像机中心(或摄像机光学中心)B 511和场景O中的感兴趣点512。核线是由该对中每个摄像机的相应图像平面与和场景中感兴趣的点(在这种情况下为512)相关的核平面的交点定义的线对。参考图5,说明了摄像机A 510和摄像机B 511的布置,其观察具有感兴趣点O 512的场景。还说明了表示摄像机A 510的视图的图像数据530的指示,以及表示摄像机B 511的视图的图像数据531的指示。如图所说明,摄像机A 510和摄像机B 511可以以不同的方向(例如,摇摄、倾斜和/或旋转)和/或不同的内在参数(例如,聚焦、变焦)摆姿势,因此它们的图像数据530、531可以相对于彼此和相对于核平面看起来被旋转和/或拉伸。如虚线540所说明,核平面与摄像机A 510的图像平面530相交,并且类似地,541标记了核平面与摄像机B 511的图像平面540相交的地方。考虑到位于点O 512处的物理表面在场景中的出现,可以在核线540上的550处的图像530中观察到该物理表面,并且类似地可以在核线541上的551处的图像531中观察到该物理表面。然而,图像531中在552(而不是551),也在核线541上的观察将指明物理表面在513(而不是512)的位置。
极线校正
参考图6A,左边的图像610是由摄像机对中的摄像机A 510捕获的图像数据,右边的图像611(在图6B中)是由摄像机对中的摄像机B 511捕获的图像数据。左图像的核线(例如612)和右图像的核线(例如613)取决于两个摄像机的相对位置。图像610和611的核线可以根据在摄像机校准过程中确定的内部摄像机参数和外部摄像机参数来确定。摄像机校准技术在本领域中是已知的。然后可以定义图像扭曲,使得核线变成水平的,并且沿着水平扫描线的图像数据因此处于用于后续处理的更方便的位置(即,基于图像数据的水平移位和偏移的计算可以是将数据传递到后续处理阶段所需要的)。图6C说明了图6A的图像上的核线扭曲的结果,并且图6D说明了图6B的图像上的核线扭曲的结果。例如,在图6C中,说明了图像620,其中核线包括现在水平的622,并且图像621(图6D)也具有核线,例如623。此外,可以生成扭曲图像620和621,使得核线622和623可以存储在它们各自图像中相同或基本相同的行位置,其中核线622和623来自相同或基本相同的核平面。
一致深度偏移图像的构造
接下来讨论用于生成一致深度偏移图像对的示例性几何构造。在图7A中的示例性位置说明了单个核平面内的构造(核平面是图表本身的平面799),并且投影到经矫正的图像790中的单个扫描线720上(如图7B所说明)。单个扫描线720在图7A中也显示为摄像机的图像平面和核平面799之间的虚线交点。该构造过程可以在围绕摄像机中心710、715之间的线以其他角度定向的其他核平面上重复(这样,连接710和715的线是核平面中包含的唯一线)。对这些在不同高度与图像平面790相交并因此定义不同水平扫描线的其他核线平面重复该过程,创建了二维图像,其中水平扫描线指示沿着每条核线提取的图像数据(在图7B中例如在720、721处说明,并通过扩展说明了其他水平虚线)。
图7A是被说明观察场景的摄像机A 710和摄像机B 715的布置。粗虚线720(图7左侧)指示摄像机710的图像中的核线,而另一条粗虚线725(图7右侧)指示摄像机715的图像中的核线。点划线指示参考表面750(图7A),是参考表面和核平面(799)的交点;还说明了在构建偏移751、752和753处的其他表面,并将其称为导出参考表面。在摄像机710的核线720上,可以在730观察到物理表面。可以推断物理表面位于从摄像机710到730投影到场景中的线740上。物理表面可以例如由摄像机715在3D点731处的核线725上观察。然后,通过投影线745并使用三角测量,可以推断物理表面在线740和745相交的点760处,并且在像素730(由摄像机710捕获)和像素731(由摄像机715捕获)之间找到足够的一致性。导出参考表面751被定位成相对于参考表面750具有已知的偏移。线740与导出的参考表面751相交于点770,并且穿过770和摄像机715绘制的线746与摄像机715的核线725相交于点732。作为替代示例,如果在摄像机715中观察到与730接近的像素一致,而不是在像素731处,而是在像素732处,这将指明物理表面在导出的参考表面751上的点770处。继续该构造,线746在761处与参考平面750相交,并且该点被用作从摄像机710到761产生的新线741的基础。重复该过程,线741在点771处与导出的参考表面751相交,并且找到新的线747和摄像机715的核线725上的点。注意,线740和747在表面752上相交,通过检查由摄像机710在位置730捕获的像素数据和由摄像机715在位置733捕获的像素数据之间的充分一致,可以推断出在摄像机710在730和摄像机715在733观察到的场景中的物理表面位于表面752上的点780。可以继续该构造,进一步在摄像机715的核线725上生成点,这些点对应于表面753上以及表面753之外的场景中潜在的物理表面的假设。点731、732、733、734、735以及更远处的像素可以被设想在核线725上。摄像机715中的接近像素数据一致性向右改变,例如从734到735,可以指明要在更远离摄像机的导出表面上对齐的导出物理表面的深度增加(在页面上);以及在左边,比如从734到733可以指明推导出的物理表面的深度到更靠近摄像机的导出表面的减小(页面下方)。
参考图7B,图像790指示来自摄像机710的图像,该图像被核校正扭曲,如沿着在图示中用点划线指示的水平核线(例如,720、721)所看到的。类似地,图像795指明来自摄像机715的图像,也是在核校正之后,并且核线725用虚线说明。观察点730再次说明在图像790中,位于核线720上。并且类似的观察点731、732、733、734、735再次说明在位于核线725上的图像795中。
一般而言,核线725上的点731、732、733、734、735等的间距可以不一致,并且可以由摄像机710和715、参考表面750的相对3D位置以及到导出的参考表面之一的单个深度偏移(在该示例中说明为750和751之间的间隙,由798指明)来确定。通过沿着一条或多条数字化/量化(和校正)的核线排列像素位置以使其间隔开,从而指示间隔开的参考表面和一组导出的参考表面(750、751、752、753等)上深度的汇合,可以获得显著的计算效率。在参考表面是平面的情况下,实现这一点的间距可以被说明为沿着核线725(图7B)遵循几何级数,并且可以通过刚刚描述的几何构造或通过基于合适的数学或几何原理(例如解析几何)的其他方法来详细计算。
如结构中所说明和所述,参考表面(例如750)的选定形状和到选定形状的第一导出参考表面的分离距离(例如751和750是简单的平面,751通过选定的间距798与750分离)精确地限定了交点的位置,例如760、770、780、782和761、771、781等,以及其它导出参考表面751的位置和形状这些交叉点可以被认为是3D邻域的成员。在摄像机阵列110中,由其他摄像机(图7A中未说明)拍摄的其他图像可以从所说明平面的上方、下方、前方或后方的位置拍摄(即,不在所说明的核平面799上),并且其他图像对可以通过从它们中选择图像来定义。这些其他图像对可以具有它们自己的核线平面、核线和交点,如使用相同或基本相同的参考面和导出参考面所描述的那样构造。其他图像对的交点可以不与摄像机对710、715的交点(例如,交点760、770、780、782和761、771、781等)精确重合。然而,可以找到在其他核平面上生成的与其他图像对的交点,这些交点靠近交点760、770、780、782和761、771、781等,从而可以在大量交点周围形成适当限制的3D范围的3D邻域。
从摄像机阵列中的各种摄像机的角度来看,从这些3D邻域中的点采样的信息形成了评估在如此形成的3D邻域中存在物理表面的可能性的基础。
具有弯曲参考表面的一致深度偏移的构造
在某些实施例中,使用延伸穿过3D场景的弯曲2D形式的参考表面可以是有利的。例如球形、卵形或嵌入场景中的一些其他合适的2D表面。图9A说明了参考表面950的恒定深度偏移的构造,如弯曲的点划线所说明。在图9A中的示例性位置说明了单个核平面内的构造(核平面是类似于图7A的图的2D平面),并将其投影到矫正图像990中的单个扫描线920上(如图9B所说明)。同样,类似于图7A,扫描线920是所考虑的核平面和摄像机910的图像平面的交点。该构建过程可以在围绕摄像机中心910、915之间的线的其他角度的其他核平面上重复。对其他核平面重复该过程创建了二维图像,其水平扫描线指示沿着核线提取的图像数据(如图9B中例如920、921所说明)。如图9A所说明,弯曲参考面的恒定深度偏移结构类似于参考图7A详细公开的平面参考面的结构。核线920上的点930(图9B左下侧)在960处投影到参考面,并从参考面延伸,在点970处与弯曲的导出参考面951相交。从点970开始,线946朝着摄像机中心915往回走,在点961处与参考表面950相交。继续该方法,可以确定一系列点960、961、962、963、964的级数,其可以被投影回形成点931、932、933、934和935的核线925。一般而言,核线925上的点931、932、933、934和935(图9B右下侧)等的间距可以不一致,并且可以由摄像机910和915的相对3D位置、参考表面950的位置和形状以及单个导出参考表面的位置和形状来确定(潜在的多个导出参考表面之间的核平面内的位置处的剩余深度偏移由遵循这些初始选择的构造来定义)。通过沿着一条或多条数字化/量化(和校正)的核线排列像素位置以使其间隔开,从而指示间隔开的参考表面和一组导出的参考表面(950、951、952、953等)上深度的汇合,可以获得计算效率。
一致的深度偏移扭曲
一致的深度偏移扭曲根据一致深度偏移图像的构造对图像对中的图像执行图像校正,并且另外可以沿着扫描线执行补偿,使得得到的校正图像与原始图像相比具有足够高的分辨率。所得的一对图像可以被称为一对一致的深度偏移图像。在某些实施例中,在适当的情况下,得到的图像对可以被称为矫正图像。
一致的深度偏移扭曲可以被指示为与矫正图像具有基本相同(或相同)维度的二维查找表。因此,对于经矫正的图像的一个或多个像素,在所存储的一致深度偏移变形中可以存在对应的元件,该元件记录了对应的原始像素的像素数据(在未经矫正的原始图像的坐标空间中)从何处被转换(根据经矫正的图像的坐标空间)。
参考图8,说明了源图像810(图8A)和811(图8B)的图像对,其中偶数网格指示原始未校正源图像中的像素位置。作为参考,用点划线说明了核线,包括例如线812和813。图像810中说明了观察点820,图像811中说明了另一个观察点830。用圆圈831、832、833标记的附加点指明沿着核线的深度偏移,这可以由用于生成一致的深度偏移图像的所述几何构造来确定。在图8的下半部分,构建了一致的深度偏移经线840(图8C)和841(图8D)。同样,规则的网格指明将空间划分为多个元件。在一个或多个这样的元件处,可以存储摄像机对的相应摄像机的源图像中的源像素的位置。在某些实施例中,源像素的位置可以存储为源图像中图像数据的行和列的整数值。在某些实施例中,源像素的位置可以被存储为定点、浮点或能够将位置描述到像素的一部分的其他类型。
举例来说,在一致的深度偏移扭曲840中,在850处有一个元件,其包含如851所说明的描述源图像810中点820的位置的X和Y坐标。从850到820的映射可以通过考虑核扭曲和用于生成这里公开的一致深度偏移图像的几何构造来计算。作为进一步的例子,考虑一致的深度偏移变形841和包含描述源图像811中点830的位置的X和Y坐标的元件860。在这种情况下,坐标可以被存储为具有小数部分的真实值,以亚像素级别的精度指明源的位置。在某些实施例中,一个或多个X、Y坐标和相关的预先计算的权重的列表可以存储在一致深度偏移中。
对图像应用扭曲
给定目标图像和变形840,将源图像(例如810)变形为目标图像的过程是依次考虑目标图像中的至少一部分像素。对于目标图像中的特定像素,参考变形840中的等效位置来找到源图像中的源像素位置,并且可以对目标和源像素的至少大部分重复该过程。从源图像,源像素位置处的像素数据可以被复制到目的地(经校正的)图像中。在某些实施例中,源像素位置可以寻址到子像素级别,并且目标像素可以被写入从该点附近的源图像中的像素导出的像素数据。在某些实施例中,可以使用核来采样相邻像素。在某些实施例中,可以使用简单的线性插值来计算指示子像素位置处的源图像的像素数据。在某些实施例中,插值权重或核权重可以根据源图像中的位置或目标图像中的位置而变化,以确保像素颜色和/或诸如光流数据和/或所得扭曲图像中的其他元数据的其他像素级数据的准确(即,插值的子像素)分配。
示例性主过程
图13说明了根据某些实施例的顶级流程图1300。从1310开始,示例性系统和/或方法可以继续执行步骤校准1320。校准1320包括校准摄像机阵列110中的摄像机,使得后面的步骤可以对被校准和配准的图像进行操作,以标准化它们的视点。作为该步骤的一部分,可以确定摄像机阵列110中的摄像机的内部摄像机参数和/或外部摄像机参数,并且可以存储这些参数以供稍后的处理步骤使用。摄像机校准是一个已知的过程,有许多方法可以应用。在校准1320之后,流程进行到步骤计算一致的深度偏移扭曲1330。
在步骤计算一致的深度偏移扭曲1330中,从摄像机阵列中的摄像机中选择摄像机对。在某些实施例中,摄像机对的一个或多个组合存储在诸如图14B中1490所说明的数据结构中。在该步骤中,从数据结构中读取摄像机对的下一个组合。在某些实施例中,摄像机对的组合的子集可以存储在数据结构中。可以基于以下一项或多项来选择摄像机对:它们的相对位置、方向、基线、焦距、分辨率、光谱响应以及其他属性。可以为一个或多个所选摄像机对中的至少一个摄像机对确定一致的深度偏移扭曲。例如,根据关于图6、图7和/或图9描述的方法,可以从摄像机对中的摄像机的内在摄像机参数和/或外在摄像机参数中导出一致的深度偏移扭曲。扭曲可以采取图8中描述的形式。
在某些实施例中,步骤校准1320和/或计算深度偏移扭曲1330可以作为初始化过程来执行,例如,当第一次启动系统时。在某些实施例中,这些步骤可以在一次性制造过程中执行。在某些实施例中,这些步骤可以根据定期维护计划在服务间隔执行。在某些实施例中,这些步骤可以执行一次,并且可以存储校准数据(可以包括内部摄像机参数和/或外部摄像机参数)和一致的深度偏移扭曲,以供系统中的其他过程使用。在某些实施例中,可以定期更新或生成校准,并且可以在校准更新之后执行步骤1330,以生成更新的一致的深度偏移扭曲。在计算深度偏移扭曲1330之后,流程进行到步骤获取图像1340。
在步骤获取图像1340中,处理引擎115操作摄像机阵列110来从摄像机阵列110中的摄像机捕捉一组基本上同时捕捉的图像。摄像机阵列110可以向处理引擎115提供去边界的图像。在获取图像1340之后,流程进行到步骤执行光流程1350。
在步骤执行光流1350中,处理一个或多个当前图像和一个或多个先前图像(即,在一个或多个较早时间从同一摄像机捕获的图像)以生成光流场,即,表示在一个或多个像素位置处2D图像外观的图像上的表观局部垂直和/或水平移动的一组向量。在某些实施例中,为大部分像素计算光流场以及不确定性界限。这些界限可以使得后续处理能够对局部图像数据不允许足够精确地计算2D图像外观的表观局部运动的图像区域进行适当的调整(例如,这可以是在具有很少或没有纹理信息的均匀颜色的图像区域中)。所得到的图像数据现在包括光谱数据(根据图像传感器对电磁光谱部分的灵敏度)和在全部数量的像素位置的一部分处的光流数据。例如,图像数据可以包括用于传统颜色值(即,RGB)的分量和用于光流分量Dx、Dy的通道,光流分量Dx、Dy表示在至少一部分像素位置处2D图像外观的表观局部2D运动。在某些实施例中,光流数据可以以不同的形式表示,例如通过局部场景运动的角度和幅度。用于执行光流的算法在本领域中是已知的,例如Horn-Schunck方法和/或Lucas&Kanade方法。在某些实施例中,光流可以作为摄像机图像处理单元240(图2)中的摄像机上处理的一部分来执行。在某些实施例中,光流可以在处理引擎115中执行。在执行光流程1350之后,流程继续生成一致的深度偏移图像1360。
在生成一致的深度偏移图像1360的步骤中,处理引擎115应用一致的深度偏移扭曲来矫正已经从摄像机阵列110中的对应摄像机对捕捉的图像对。通常,图像对可以对应于先前在步骤1330中已经为其计算了一致的深度偏移扭曲的摄像机对之一。所选择的图像对可以通过逐步遍历摄像机对的数据结构来选择,如图14B中1490所说明。可以基于以下一项或多项来选择图像对:相应摄像机对的相对位置、方向、基线、焦距、分辨率、光谱响应以及其他属性。在某些实施例中,图像对的选择可以响应于场景的知识,例如先前的假设或外部提供的近的或远的物理表面的信息。对于至少一个选择的图像对,该对的两个图像通过应用相应的一致的深度偏移扭曲来扭曲,这在本公开的其他地方有所描述。所得的一致深度偏移图像对可以与摄像机对相关地存储,以供在后续步骤中使用。在生成一致的深度偏移图像1350之后,流程进行到步骤补偿光流1370。
在步骤补偿光流1370中,调整光流数据以补偿图像的扭曲。考虑图15,在左边说明了具有核线的原始图像1510,例如1511,并且对于示例像素位置,其光流数据被说明向量1512。再次参考图15,在右边说明了随着逐步生成一致的深度偏移图像1360而扭曲的图像1520,其具有核线,例如1521,现在水平延伸,并且对于示例像素位置,其原始光流矢量1522。注意核线方向的相对变化,以及沿着核线的移动的缩放,说明了补偿矢量1524。至少大部分像素位置所需的补偿可以根据几何原理来计算,并且可以在矫正图像中的不同位置处变化。
在某些实施例中,光流数据可以被分解成沿着核线1526的分量和垂直于核线1525的分量(图15,右下)。
在某些实施例中,光流数据的补偿是预先计算的,例如,它可以被确定为计算深度偏移扭曲1330的步骤的一部分。在补偿光流1370之后,流程进行到步骤构建成本矩阵1380。
在步骤构建成本矩阵1380中,使用在先前步骤中产生的图像数据对来构建三维成本矩阵。图14说明了包括层1410、1420、1430、1440和1450的成本矩阵1400。成本矩阵的层可以由形成列的元件的二维网格组成。例如,元件1411、1412、1413和1414形成穿过成本矩阵1400的层的列。在某些实施例中,层的实质部分可以分别与参考表面和一组导出参考表面相关;例如,层1410、1420、1430和1440可以分别与图7A中750、751、752和753处所说明的表面相关。
从不同图像对(如图7A所说明)构建的交叉点集合可以落在场景中稍微不同的位置。可以在这些交叉点集合周围构建3D邻域,使得这些3D邻域的大部分具有来自根据图像对构建的交叉点集合的大部分的至少一个代表性交叉点。成本矩阵的至少大部分元件与这些3D邻域中的至少一个相关。例如,成本矩阵元件1411可以对应于包含交点760的3D邻域,而成本矩阵元件1412可以对应于包含交点770的3D邻域。
参考图18,摄像机“A”的图像数据说明为矩形1810。包括摄像机A和B的摄像机对的一组核线被说明为对角向右上方延伸的点划线,包括线1820。例如,如果摄像机B被认为是图7中所说明的795,则核线1820例如可以是线725。为了沿着核线1820进行说明,包括1821的粗虚线标记指明从交点(例如图7中的760、761、762、763)投影的核线上的点(例如图7中的点731、732、733、734)。这些点具有来自相关校正图像(在这种情况下是从摄像机A和B得到的)的相应像素数据。包括摄像机A和C的另一个摄像机对的核线也在图18上说明为斜右下(包括1830)的点-点-虚线。再次,为了说明,一组粗虚线标记(包括1831)指示核线1830上的交点,核线1830类似于图7所说明的过程构造。同样,这些点具有来自它们相关的校正图像的相应像素数据(在这种情况下是从摄像机A和C得到的)。为了简单起见,在图18中没有说明代表其他核线上的交点的粗虚线。
例如,在核线1820和1830上,标记1821、1831可以表示基本上在参考平面(例如,750,图7A)上的交点,并且如1821和1831所示例的,来自不同摄像机对的交点可以不精确重合。虽然在图18中仅说明了两个摄像机对,但是如果在某些实施例中有N个摄像机,那么将会有N-1个摄像机对,包括摄像机A,因此N-1个交点可以被绘制在期望的参考表面或导出的参考表面上。考虑至少一个参考表面(当考虑参考平面750时,图18是一个例子),可以将来自不同图像对的基本上构建在该表面上或附近的附近交叉点集合收集到3D邻域中,例如由圆圈1811所说明。示例邻域1811可以是任何合适的形状,但是为了简单起见被说明为圆形,其表示至少包含交点1821(来自摄像机对A-B)和交点1831(来自摄像机对A-C)的3D邻域。如果有更多的摄像机可用,可以将额外的交叉点添加到一个或多个3D邻域中。例如,具有4个摄像机的系统可以将3个这样的交点收集到如此构建的基本上每个3D邻域中。配置有16个摄像机的系统可以在其基本上每个3D邻域中具有15个点。
在某些实施例中,在具有最小空间范围的这些交叉点的群集周围构建3D邻域可以有显著的优势,因为从这种3D邻域收集的来自交叉点的像素数据可以更准确地反映物理表面是否与由3D邻域表示的实际3D物理空间相交。例如,从基本上相同颜色的3D邻域收集的像素数据可以提供在由该3D邻域表示的场景中的物理区域内存在物理表面的证据。
在某些实施例中,可以通过将参考平面固定划分成正方形、六边形或其他合适的形状来确定3D邻域。
在某些实施例中,对于摄像机对,预先计算从3D邻域到图像数据中的像素的映射。在某些实施例中,可以通过查询合适的数据结构(例如查找表)来检索映射。
3D点邻域中交点的接近性是指它们的集体光谱数据和/或光流数据可用于评估物理表面存在于代表3D邻域的3D位置的可能性,即,邻域中各点的光谱数据和/或光流数据越一致,物理表面越有可以存在于邻域的3D位置。
为了构建成本矩阵1400,可以依次考虑成本矩阵的列。从第一层1410中的成本矩阵元件、比方说元件1411开始,对于与该成本矩阵元件相关的3D邻域中的交叉点,检索相关的矫正图像像素数据。图像像素数据的位置可以通过使用查找表来找到,该查找表是根据摄像机位置和3D邻域的几何考虑预先计算的。根据该像素数据,如别处所述确定成本值,并将其存储到成本矩阵的相关元件中。附加信息也可以存储在成本矩阵的相关元件中,以便在后续处理中参考。附加数据可以是概括了表征3D邻域中的点的光谱和/或速度信息。
在确定成本矩阵的第一层(1410)中的元件1411的成本值之后,可以确定成本元件列中的下一个元件。给定与用于顶层中的成本矩阵元件相同的摄像机对和相同的图像像素数据的初始位置,成本矩阵的相同列中的后续成本矩阵元件可以通过根据期望的成本矩阵元件调整沿着第一矫正图像的扫描线的第一像素位置或沿着第二矫正图像的扫描线的第二像素位置来确定,该期望的成本矩阵元件又与场景中的特定深度相关。再次,计算成本值,并且可以在下一层1420中的元件1412处将其写入成本矩阵1400。重复该过程以确定成本矩阵1400中的大部分元件的成本值。
记录在成本矩阵的元件的大部分中的成本值取决于与3D邻域的点相关的光谱数据和/或光流数据。在某些实施例中,用于计算成本值的像素数据可以包括光谱数据(例如,亮度数据、颜色数据、作为RGB分量的数据和/或作为YUV分量的数据)和/或像素光流数据(例如,明显的垂直像素运动和/或明显的水平像素运动)。在某些实施例中,成本值的计算可以部分取决于要应用于与邻域中的点相关的至少一些像素数据的权重。在某些实施例中,加权可以基于邻域中的点与3D邻域的代表性3D点之间的距离(这种代表性点的非限制性示例是邻域中的点的3D平均值或几何中值,或3D邻域的质心)。在某些实施例中,速度可以用于确定成本值。在某些实施例中,确定成本的计算可以是对与3D邻域中的至少一个3D点相关的集体像素数据执行的以下操作中的一个或多个:线性组合、非线性计算、使用预先计算的查找表来返回值、以及使用神经网络。在某些实施例中,除了与其相关的3D邻域的像素数据之外,确定矩阵元件的成本的计算还可以考虑与相邻矩阵元件相关的3D邻域的像素数据。写入成本矩阵的元件中的成本值可以表示名义成本,用于假设在场景中与该元件相关的3D邻域的3D位置处存在物理表面。在某些实施例中,成本值是大于或等于零的数值。
为了有效地计算成本矩阵(即,最少的计算操作),确保参考表面和来自不同摄像机对的导出参考表面基本对准可以是方便的。从几何原理可以看出,如果参考表面和导出参考表面(750、751、752、753等)对于其交点(例如,图7,A:760、761、762、763、764、764、753)基本上为所有图像对所共有,则最小范围的3D邻域可以基于在单个参考表面(例如,750)上记录每个位置的单个偏移(例如,从1821到1831的偏移)的映射来构建780,781,782等)可以被包括在3D邻域中,并且由此形成3D邻域中的像素数据集的基础,这些像素数据集然后可以被用于计算成本矩阵中的相关元件的值。
以这种方式在3D邻域的一部分中布置交点可以是有优点的,因为计算设备能够以对数字存储器更少的访问从矫正的图像中检索必要的像素数据,并且因此能够更有效地计算成本矩阵,因为可以需要更少的操作。这里公开的允许使用基本恒定的偏移从矫正图像中提取成本矩阵条目的像素数据的几何构造还可以允许计算设备使用较少的操作和/或对数字存储器的访问来计算成本矩阵条目。
在没有本公开的校正过程的情况下,由于摄像机的无约束几何定位,从多个摄像机提取表示从物理场景中的所选3D邻域发出的光的像素数据以便计算成本矩阵中的条目可以需要对每个摄像机对和每个成本矩阵元件进行独特的计算。如果这些计算至少是原始摄像机像素数据与一组唯一参数的线性组合,则计算设备可以必须为每个成本矩阵元件执行的操作的数量可以是使用本公开中概述的方法时的N倍(系统中摄像机的数量)大,并且对数字存储器的访问数量D(成本矩阵堆栈中平面的数量)大。例如,在其成本矩阵中配置有4个摄像机和1000个候选深度平面的系统可以需要4倍多的操作和1000倍多的存储器访问;潜在地导致明显较慢的操作。使用本公开的一个或多个校正过程,可以减少操作的数量和/或存储器访问的数量。
尽管具有上述优点,但是在某些实施例中,基于公共参考表面(例如750)周围的校正和邻域构造,但是为一个或多个摄像机对独立地确定导出的参考表面(例如751、752、753等)可以是有益的。在某些实施例中,对于一个或多个摄像机对,导出的表面的间距可以变化,而不是固定的,以在校正图像对之间实现期望的空间分辨率。在某些实施例中,一致深度偏移图像的空间分辨率可以是至少100、200、400、800、1000、1500、2000、4000、8000或16000个样本。在某些实施例中,在基于独立选择的参考表面的经矫正的图像数据和基于公共参考表面的经矫正的图像数据之间可以存在有效的映射。在某些实施例中,通过将基于独立选择的参考表面的矫正图像数据存储在适当的相关数据结构中,该映射可以被结合到步骤构建成本矩阵1380(以及步骤执行光流1370,如果使用的话)中。在一些实施例中,基于独立选择的参考表面存储经矫正的图像数据可以具有比基于公共参考表面更精确地计算经矫正的图像数据的优点,但是没有不适当的额外计算成本。
在步骤构建成本矩阵1380之后,流程进行到步骤生成3D场景信息1390。在生成3D场景信息1390,在先前步骤中构建的成本矩阵可以用于确定可以存储在3D信息数据结构中的3D场景信息。
可以通过使用(一维)动态编程方法,例如1-D动态时间弯曲或1-D扫描线优化,沿着一系列线性方向最优地计算最小总成本来计算3D信息。在一些实施例中,具有最佳总成本的路径可以包括最有可能表示沿着场景中的物理表面的路径的一组收集的3D邻域,从而比孤立地考虑每个3D邻域揭示更精确的深度估计。在一些实施例中,沿着与一个或多个核平面(作为所选择的图像对的集合的结果而可用的那些核平面)基本对齐的线执行的线性优化可以提供比没有这样对齐的线更精确的最优路径。一种解释可以是由于除了场景中的遮挡情况之外,可以沿着核线找到场景中物理表面上的位置的图像对中的对应像素。因此,例如,在为3D邻域收集的像素数据中至少有一个贡献来自物理表面的情况下,包括该3D邻域的沿核线的路径更有可能被识别为最佳路径。
在一些实施例中,计算成本矩阵值的计算工作量可以大于执行线性深度优化的计算工作量,因此通过沿着多条线执行优化来提取更精确的深度值并且利用在大量这种最优路径计算中成本矩阵值可以在后续优化过程中被重用并且不被重新计算的事实可以是有用的。在一些实施例中,多条线可以与对应于所选择的一个或多个图像对的一条或多条核线对齐。
在一些实施例中,由多个最优路径计算产生的多个深度估计的组合可以有助于比一个这样的最优路径计算更精确的深度估计。例如,通过允许使用稳健的统计测量来从由至少一个最优路径计算产生的深度值集合中产生精确的深度值。
无论如何导出,至少大部分位置的深度可以与附加的相关数据一起写入3D信息数据结构,该附加的相关数据可以包括汇总的光谱和/或速度信息。
在某些实施例中,3D信息数据结构可以被安排为具有元件的2D网格的深度图,每个元件指示投影到视图中的场景的一部分。这些元件可以各自存储深度,并且可以另外存储光谱数据、光流数据和/或与场景的该部分相关的其他元数据。在某些实施例中,3D信息数据结构可以被布置为点云:即,共同指示场景中的物理表面或对象的近似的一组3D点。点云中的3D点可以另外包含光谱数据、光流数据和/或其他相关的元数据。
3D场景信息数据结构或其包含的信息可以通过通信总线181(图1)从处理引擎115输出到外部系统。
在生成3D场景信息1390之后,流程继续回到步骤获取图像1330,其中该过程可以循环继续一段延长的时间,或直到它被关闭或以其他方式被中断。因此,通过重复从1340到1390的步骤,可以输出3D场景信息流。
示例性主流程–无光流的替代方案
在某些实施例中,在不使用光流数据的情况下生成3D场景信息。参考图16和流程图1600,处理开始于1610。步骤1620、1630和1640如在示例性主过程和图13中分别描述为1320、1330和1340,并且将不进一步描述。
除了被处理的图像可以不包含光流数据之外,步骤生成一致深度偏移图像1660的操作如关于步骤1360(图13)所描述的。流程从步骤1660前进到步骤构建成本矩阵1380。
步骤构建成本矩阵1680的操作如关于步骤1380(图13)所描述的,除了光流数据可以不用于构建成本矩阵,因此例如成本值可以不具有来自光流数据的贡献,包括诸如垂直像素运动的导出信息。流程从步骤构建成本矩阵1680前进到步骤生成3D场景信息1690。
步骤生成3D场景信息1690的操作如关于步骤生成3D场景信息1380(图13)所描述的,除了光流数据不能用于确定3D速度数据。从步骤生成3D场景信息1690,流程再次传递以获得图像1640。
示例性主要过程-图像扭曲后执行的光流
在某些实施例中,光流处理可以在图像扭曲之后执行。参考图17和流程图1700,处理开始于1710。步骤1620、1630和1640如在示例性主过程和图13中分别描述为1320、1330和1340,并且将不进一步描述。从步骤获取图像1740,流程进行到生成一致的深度偏移图像1760。
除了被处理的图像可以不包含光流数据之外,步骤生成一致的深度偏移图像1750的操作如关于步骤生成一致的深度偏移图像1360(图13)所描述的。流程从步骤1750前进到步骤执行光流程1760。
步骤执行光流1760的操作如关于步骤1380(图13)所描述的,除了光流是在从先前步骤产生的一致深度偏移图像(即,校正图像)上执行的,因此光流用于确定校正图像外观的局部表观运动。从步骤执行光流程1760,流程前进到步骤构建成本矩阵1780。
步骤1780和1790如示例性主过程和图13中所述,并且将不再进一步描述。
更多优点
从以下描述所要求保护的主题的某些实施例的示例中,所要求保护的主题的更多优点将变得显而易见。
1.一种用于生成真实生活场景的三维信息的系统,包括:
由多个摄像机组成的摄像机阵列,该摄像机阵列被配置为被定位成观看真实生活场景;
所述多个摄像机包括:至少第一摄像机,其被配置为从真实生活场景的第一视野收集光谱数据;至少第二摄像机,其被配置为从真实生活场景的第二视野收集光谱数据;至少第三摄像机,其被配置为从真实生活场景的第三视野收集光谱数据;以及至少第四摄像机,其被配置为从真实生活场景的第四视野收集光谱数据;
所述第一摄像机被配置为从所述第一视野生成至少第一图像;所述第二摄像机被配置为从所述第二视野生成至少第二图像;所述第三摄像机被配置为从所述第三视野生成至少第三图像;以及第四摄像机被配置为从第四视场生成至少第四图像;
所述摄像机阵列被配置为将所述第一图像、所述第二图像、所述第三图像以及所述第四图像传输到处理引擎;以及
所述处理引擎被配置为:
从包括第一摄像机、第二摄像机、第三摄像机以及第四摄像机的多个摄像机获得图像数据;
通过基于3D体积在至少一个摄像机图像中的投影来提取从至少大部分像素数据中选择的相关像素数据,生成至少部分代表现实场景的一部分的3D体积的表示;和
使用相关的像素数据来确定3D体积包含物理表面的可能性。
2.根据示例1所述的系统,其中一个或多个3D体积是一个或多个3D邻域。
3.根据示例1或2所述的系统,其中所述3D体积是3D邻域。
4.根据示例1至3中任一个所述的系统,其中相关像素数据包括3D体积的像素级光谱数据。
5.根据示例1至4中任一个所述的系统,其中相关像素数据包括光流信息。
6.根据示例1至5中任一个所述的系统,其中所述相关像素数据包括3D体积的像素级光谱数据和3D体积的像素级光流信息。
7.根据示例1至6中任一个所述的系统,其中所述处理引擎被配置为使用相关的像素数据来确定物理表面的估计速度。
8.根据示例1至7中任一个所述的系统,其中相关像素数据是包括第一3D体积的像素级数据的像素数据的子集。
9.根据示例1至8中任一个所述的系统,其中通过与像素数据相关的像素位置和表示第一3D体积的3D点在至少一个图像的图像平面上的投影之间的距离,对相关的像素数据进行加权。
10.根据示例1至9中任一个所述的系统,其中从3D体积内选择至少一个代表性3D点,并且对来自至少一个像素位置的像素数据进行的加权至少部分地取决于该至少一个像素位置与该至少一个代表性3D点在图像平面上的投影的接近度,该至少一个像素位置是从该图像平面中选择的。
更多优点
从以下描述所要求保护的主题的某些实施例的示例中,所要求保护的主题的更多优点将变得显而易见。
1.一种用于生成真实生活场景的三维信息的系统,包括:
由多个摄像机组成的摄像机阵列,该摄像机阵列被配置为被定位成观看真实生活场景;
所述多个摄像机包括:至少第一摄像机,其被配置为从真实生活场景的第一视野收集光谱数据;至少第二摄像机,其被配置为从真实生活场景的第二视野收集光谱数据;至少第三摄像机,其被配置为从真实生活场景的第三视野收集光谱数据;以及至少第四摄像机,其被配置为从真实生活场景的第四视野收集光谱数据;
所述第一摄像机被配置为从所述第一视野生成至少第一图像;所述第二摄像机被配置为从所述第二视野生成至少第二图像;所述第三摄像机被配置为从所述第三视野生成至少第三图像;以及第四摄像机被配置为从第四视场生成至少第四图像;
所述摄像机阵列被配置为将所述第一图像、所述第二图像、所述第三图像以及所述第四图像传输到处理引擎;以及
所述处理引擎被配置为:
从包括第一摄像机、第二摄像机、第三摄像机以及第四摄像机的多个摄像机获得图像数据;
通过基于3D体积在至少一个摄像机图像中的投影来提取从至少大部分像素数据中选择的相关像素数据,生成至少部分代表现实场景的一部分的3D体积的表示;和
使用相关的像素数据来确定3D体积包含物理表面的可能性。
2.根据示例1所述的系统,其中一个或多个3D体积是一个或多个3D邻域。
3.根据示例1或2所述的系统,其中所述3D体积是3D邻域。
4.根据示例1至3中任个所述的系统,其中相关像素数据包括3D体积的像素级光谱数据。
5.根据示例1至4中任一个所述的系统,其中相关像素数据包括光流信息。
6.根据示例1至5中任一个所述的系统,其中所述相关像素数据包括3D体积的像素级光谱数据和3D体积的像素级光流信息。
7.根据示例1至6中任一个所述的系统,其中所述处理引擎被配置为使用相关的像素数据来确定物理表面的估计速度。
8.根据示例1至7中任一个所述的系统,其中相关像素数据是包括第一3D体积的像素级数据的像素数据的子集。
9.根据示例1至8中任一个所述的系统,其中通过与像素数据相关的像素位置和表示第一3D体积的3D点在至少一个图像的图像平面上的投影之间的距离,对相关的像素数据进行加权。
10.根据示例1至9中任一个所述的系统,其中从3D体积内选择至少一个代表性3D点,并且对来自至少一个像素位置的像素数据进行的加权至少部分地取决于该至少一个像素位置与该至少一个代表性3D点在图像平面上的投影的接近度,该至少一个像素位置是从该图像平面中选择的。
11.该系统被配置为通过使用示例1至10中任一个所述的系统处理多个3D体积来确定3D场景中一个或多个表面的存在,以确定表面在至少一个3D体积内的可能性,并将这些结果的至少一部分收集到累积的数据集中。
12.根据示例11所述的系统,其中所述多个3D体积不重叠。
13.根据示例11所述的系统,其中所述多个3D体积至少部分重叠。
14.根据示例10至12中任一个所述的系统,其中所述多个3D体积总体上不完全覆盖真实生活场景。
15.根据示例1至14中任一个所述的系统,其中所述多个3D体积的至少一部分基本上以从相对于所述多个摄像机中的一个或多个摄像机的至少一个3D点投影到现实场景中的至少一条线为中心。
16.根据示例1至15中任一个所述的系统,其中,所述多个3D体积的至少一部分基本上沿着从相对于所述多个摄像机中的一个或多个的至少一个3D点投影到现实场景中的至少一条线对齐。
17.根据示例1至16中任一个所述的系统,其中所述多个3D体积的至少一部分基本上以从相对于所述多个摄像机中的一个或多个摄像机的至少一个3D点投影到现实场景中的多条线为中心。
18.根据示例1至17中任一个所述的系统,其中所述多个3D体积的至少一部分基本上沿着从相对于所述多个摄像机中的一个或多个摄像机的至少一个3D点投影到现实场景中的多条线对齐。
19.根据示例1至18中任一个所述的系统,其中在所述多个3D体积的至少一部分内收集的数据用于确定所述物理表面至少部分包含在所述一个或多个3D邻域内的可能性。
20.根据示例1至19中任一个所述的系统,其中在一组3D体积的至少一部分内收集的数据用于确定物理表面至少部分包含在该组3D体积内的可能性。
21.根据示例20所述的系统,其中该组3D体积代表穿过真实生活场景的线。
22.根据示例1至21中任一个所述的系统,其中成本矩阵值用于优化计算中,以获得由最可能包含物理表面的3D体积构成的优化成本路径。
23.根据示例1至22中任一个所述的系统,其中成本矩阵内已经计算的可能性计算至少部分地用于沿着穿过一个或多个所选图像的至少一条附加线的后续优化计算。
24.根据示例1至23中任一个所述的系统,其中3D体积的一部分内的可能性计算产生数值结果,该数值结果独立于来自从一组图像对导出的交点的至少一部分数据被处理的顺序。
25.根据示例1至24中任一个所述的系统,其中对从所选图像对中导出的多条线重复所述优化计算。
26.根据示例1至25中任一个所述的系统,其中所述多条线选自核线。
27.根据示例1至26中任一个所述的系统,其中所述多条线的一部分选自核线。
28.根据示例1至27中任一个所述的系统,其中成本矩阵内已经计算的可能性计算至少部分地用于沿着穿过一个或多个所选图像的至少一条附加线的后续优化计算。
29.根据示例1至28中任一个所述的系统,其中3D体积的一部分内的可能性计算产生数字结果,所述数字结果独立于来自从图像对的集合导出的交点的至少一部分数据被处理的顺序。
30.根据示例1至29中任一个所述的系统,其中根据从由像素偏移分隔的至少两个矫正图像中提取的相关像素数据来计算与交点相关的数据,所述交点被输入到与在至少一个参考表面上基本对齐的3D场景信息相关的一个或多个3D邻域的可能性计算中。
31.根据示例1至30中任一个所述的系统,其中像素偏移是恒定的。
32.根据示例1至31中任一个所述的系统,其中像素偏移基本恒定。
33.根据示例1至32中任一个所述的系统,其中像素偏移不是恒定的。
34.根据示例1至33中任一个所述的系统,其中像素偏移不是基本恒定的。
35.根据示例1至34中任一个所述的系统,其中一部分像素偏移是恒定的。
36.根据示例1至35中任一个所述的系统,其中一部分像素偏移基本恒定。
37.根据示例1至36中任一个所述的系统,其中一部分像素偏移不是恒定的。
38.根据示例1至37中任一个所述的系统,其中一部分像素偏移不是基本恒定的。
39.根据示例1至38中任一个所述的系统,其中大部分像素偏移是恒定的。
40.根据示例1至39中任一个所述的系统,其中大部分像素偏移基本恒定。
41.根据示例1至40中任一个所述的系统,其中大部分像素偏移不是恒定的。
42.根据示例1至41中任一个所述的系统,其中大部分像素偏移不是基本恒定的。
43.根据示例1至42中任一个所述的系统,其中所述系统在运行之前被校准。
44.根据示例1至43中任一个所述的系统,其中所述系统在所述系统的操作期间被校准。
45.根据示例1至44中任一个所述的系统,其中至少第一摄像机和第二摄像机相对于一个或多个内在摄像机参数、一个或多个外在摄像机参数或其组合进行校准。
46.根据示例1至45中任一个所述的系统,其中固有摄像机参数包括以下一个或多个参数:视野、焦距、图像中心、对径向镜头失真的补偿以及其他失真。
47.根据示例1至46中任一个所述的系统,其中固有摄像机参数包括以下一个或多个参数:视野、焦距、图像中心、对径向镜头失真的补偿以及其他失真。
48.根据示例1至47中任一个所述的系统,其中外部摄像机参数包括以下一项或多项:相对于指定参照系的摄像机位置和摄像机在空间中的取向。
49.根据示例1至48中任一个所述的系统,其中所述摄像机阵列中的多个摄像机不布置在单个平面上。
50.根据示例1至51中任一个所述的系统,其中所述摄像机阵列中的所述多个摄像机中的一个或多个摄像机被布置在一个或多个平面中。
51.根据示例1至50中任一个所述的系统,其中并非摄像机阵列中的所有摄像机都产生表示具有相同光谱带集合的场景的图像数据。
52.根据示例1至51中任一个所述的系统,其中所述系统被配置为实时生成三维信息。
53.根据示例1至52中任一个所述的系统,其中所述系统被配置为以实时帧速率生成三维信息。
54.根据示例1至53中任一个所述的系统,其中所述多个3D体积沿着从相对于所述摄像机阵列中的摄像机的至少一个预定固定3D点投影到场景中的至少一条线基本上居中或基本上对齐。
55.一种使用示例1至54中的任一个所述系统来生成三维视频信息的方法。
56.一个或多个包含软件的计算机可读非暂时性存储介质,所述软件在被执行时可操作以实现示例1至54中的任一个。
本文中对现有技术文献的任何描述,或本文中从这些文献或基于这些文献得出的陈述,并不承认这些文献或得出的陈述是相关领域的公知常识的一部分。
虽然这里已经说明和描述了某些实施例,但是对于本领域技术人员来说,显然这些实施例仅仅是作为示例提供的。
在某些实施例的前述描述中,为了清楚起见,采用了特定的术语。然而,本公开不旨在限于如此选择的特定术语,并且应当理解,特定术语包括以类似方式操作以实现类似技术目的的其他技术等同物。诸如“左”和“右”、“前”和“后”、“上”和“下”等术语被用作方便的词语来提供参考点,而不应被解释为限制性术语。
在本说明书中,词语“包括”应理解为其“开放”的意思,即“包括”的意思,因此不限于其“封闭”的意思,即“仅由……组成”的意思。相应的含义应归于出现的相应词语“包括”、“包含”。
应当理解,本公开不限于所公开的实施例,并且旨在覆盖包括在本公开的精神和范围内的各种修改和等同布置。此外,上述各种实施例可以结合其他实施例来实现,例如,一个实施例的方面可以与另一个实施例的方面相结合,以实现其他实施例。此外,给定实施例的独立特征可以构成另外的实施例。
Claims (22)
1.一种用于生成真实生活场景的三维信息的系统,包括:
由多个摄像机组成的摄像机阵列,所述摄像机阵列被配置为被定位成观看所述真实生活场景;
所述多个摄像机包括:至少第一摄像机,其被配置为从所述真实生活场景的第一视野收集光谱数据;至少第二摄像机,其被配置为从所述真实生活场景的第二视野收集光谱数据;至少第三摄像机,其被配置为从所述真实生活场景的第三视野收集光谱数据;以及至少第四摄像机,其被配置为从所述真实生活场景的第四视野收集光谱数据;
所述第一摄像机被配置为从所述第一视野生成至少第一图像;所述第二摄像机被配置为从所述第二视野生成至少第二图像;所述第三摄像机被配置为从所述第三视野生成至少第三图像;以及第四摄像机被配置为从第四视野生成至少第四图像;
所述摄像机阵列被配置为向处理引擎发送所述第一图像、所述第二图像、所述第三图像和所述第四图像;以及
所述处理引擎被配置为:
-从包括所述第一摄像机、所述第二摄像机、所述第三摄像机以及所述第四摄像机的多个摄像机获得图像数据;
-通过基于3D体积在至少一个摄像机图像中的投影提取从至少大部分所述像素数据中选择的相关像素数据,生成至少部分代表所述现实场景的一部分的3D体积的指示;以及
-使用相关像素数据来确定所述3D体积包含物理表面的可能性。
2.根据权利要求1所述的系统,其中一个或多个所述3D体积是一个或多个3D邻域。
3.根据权利要求1或2所述的系统,其中所述3D体积是3D邻域。
4.根据权利要求1至3中任一个所述的系统,其中所述相关像素数据包括3D体积的像素级光谱数据。
5.根据权利要求1至4中任一个所述的系统,其中所述相关像素数据包括光流信息。
6.根据权利要求1至5中任一个所述的系统,其中所述处理引擎被配置为使用所述相关像素数据来确定所述物理表面的估计速度。
7.根据权利要求1至6中任一个所述的系统,其中所述相关像素数据是包括第一3D体积的所述像素级数据的所述像素数据的子集。
8.一种系统,被配置为通过使用权利要求1至7中任一个所述的任一系统处理多个3D体积来确定3D场景中一个或多个表面的存在,以确定表面在至少一个3D体积内的所述可能性,并且将这些结果的至少一部分收集到累积数据集中。
9.根据权利要求8所述的系统,其中所述多个3D体积不重叠。
10.根据权利要求8所述的系统,其中所述多个3D体积至少部分重叠。
11.根据权利要求1至10中任一个所述的系统,其中所述多个3D体积总体上不完全覆盖所述真实生活场景。
12.根据权利要求1至11中任一个所述的系统,其中所述多个3D体积的至少一部分基本上沿着从相对于所述多个摄像机中的一个或多个摄像机的至少一个3D点投影到所述现实场景中的至少一条线对齐。
13.根据权利要求1至12中任一个所述的系统,其中所述多个3D体积的至少一部分基本上沿着从相对于所述多个摄像机中的一个或多个摄像机的至少一个3D点投影到所述现实场景中的多条线对齐。
14.根据权利要求1至13中任一个所述的系统,其中在所述多个3D体积的至少一部分内收集的数据用于确定所述物理表面至少部分包含在所述一个或多个3D邻域内的所述可能性。
15.根据权利要求1至14中任一个所述的系统,其中成本矩阵内已经计算的可能性计算至少部分地用于沿着穿过一个或多个所选图像的至少一条附加线的后续优化计算。
16.根据权利要求1至15中任一个所述的系统,其中3D体积的一部分内的可能性计算产生数字结果,所述数字结果独立于来自从一组图像对导出的交点的至少一部分数据被处理的顺序。
17.根据权利要求1至16中任一个所述的系统,其中对从所选图像对中导出的多条线重复所述优化计算。
18.根据权利要求1至17中任一个所述的系统,其中所述多条线的一部分选自核线。
19.根据权利要求1至18中任一个所述的系统,其中根据从由像素偏移分隔的至少两个矫正图像中提取的所述相关像素数据来计算与交点相关的数据,所述交点被输入到与在至少一个参考表面上基本对齐的3D场景信息相关的一个或多个所述3D邻域的可能性计算中。
20.根据权利要求1至19中任一个所述的系统,其中所述像素偏移是恒定的。
21.根据权利要求1至20中任一个所述的系统,其中在一组3D体积的至少一部分内收集的数据用于确定所述物理表面至少部分包含在所述一组3D体积内的所述可能性。
22.根据权利要求21所述的系统,其中所述一组3D体积代表穿过所述现实生活场景的线。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063015111P | 2020-04-24 | 2020-04-24 | |
AU2020901307 | 2020-04-24 | ||
US63/015,111 | 2020-04-24 | ||
PCT/AU2021/050374 WO2021212187A1 (en) | 2020-04-24 | 2021-04-23 | Systems and methods for generating and/or using 3-dimensional information with camera arrays |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116648726A true CN116648726A (zh) | 2023-08-25 |
Family
ID=87615702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180044142.6A Pending CN116648726A (zh) | 2020-04-24 | 2021-04-23 | 用于用摄像机阵列生成和/或使用3维信息的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116648726A (zh) |
-
2021
- 2021-04-23 CN CN202180044142.6A patent/CN116648726A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10859684B1 (en) | Method and system for camera-lidar calibration | |
US10445928B2 (en) | Method and system for generating multidimensional maps of a scene using a plurality of sensors of various types | |
US11157014B2 (en) | Multi-channel sensor simulation for autonomous control systems | |
WO2018196000A1 (en) | Methods and associated systems for grid analysis | |
CN106650708B (zh) | 一种自动驾驶障碍物视觉检测方法与系统 | |
Gruszczyński et al. | Comparison of low-altitude UAV photogrammetry with terrestrial laser scanning as data-source methods for terrain covered in low vegetation | |
US20230188696A1 (en) | Systems And Methods For Generating And/Or Using 3-Dimensional Information With Camera Arrays | |
Hebel et al. | Change detection in urban areas by object-based analysis and on-the-fly comparison of multi-view ALS data | |
US10477178B2 (en) | High-speed and tunable scene reconstruction systems and methods using stereo imagery | |
KR101489984B1 (ko) | 스테레오-영상 정합 및 변화 검출 시스템 및 방법 | |
US20120155744A1 (en) | Image generation method | |
CN106681353A (zh) | 基于双目视觉与光流融合的无人机避障方法及系统 | |
US20110115812A1 (en) | Method for colorization of point cloud data based on radiometric imagery | |
US20230266473A1 (en) | Method and system for object detection for a mobile robot with time-of-flight camera | |
US10877143B2 (en) | Method and device for geo-referencing aerial image data with the aid of SAR image data | |
CN117501311A (zh) | 利用一个或多个摄像机生成和/或使用三维信息的系统和方法 | |
CN113050074B (zh) | 无人驾驶环境感知中相机与激光雷达标定系统及标定方法 | |
US20220383585A1 (en) | Systems And Methods For Generating And/Or Using 3-Dimensional Information With Camera Arrays | |
CN111833443A (zh) | 自主机器应用中的地标位置重建 | |
Majdik et al. | Micro air vehicle localization and position tracking from textured 3d cadastral models | |
Pfeiffer et al. | Ground truth evaluation of the Stixel representation using laser scanners | |
CN116648726A (zh) | 用于用摄像机阵列生成和/或使用3维信息的系统和方法 | |
WO2022133986A1 (en) | Accuracy estimation method and system | |
WO2021004813A1 (en) | Method and mobile entity for detecting feature points in an image | |
WO2020133369A1 (en) | Identifying a curb based on 3-d sensor data |
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 |