一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

利用图像分割将复杂的3D对象嵌入到增强现实场景中的制作方法

2022-02-24 19:09:06 来源:中国专利 TAG:

利用图像分割将复杂的3d对象嵌入到增强现实场景中
技术领域
1.本技术总地涉及图像处理领域,更具体地涉及利用图像分割将复杂的3d对象嵌入到增强现实场景中。


背景技术:

2.在沉浸式视频和诸如计算机视觉应用之类的其他情境中,若干个相机被安装在感兴趣的场景周围。例如,相机可被安装在运动场周围的体育馆中。利用从相机获得的视频,生成代表该场景的点云体积模型。然后,可利用绘制有捕获的纹理的体积模型的视图来生成来自场景内的虚拟视图的照片般逼真的视图。这样的视图可在每个时刻生成,以为用户提供沉浸式体验。此外,可在3d空间中导航虚拟视图,以提供一种多自由度的沉浸式用户体验。
3.生成详细的3d结构要花费大量的精力资源智慧,即使当一些对象是静态的或者限制到刚性运动时。此外,要重建准确的精细对象也很困难。这种困难可通过手动预构建一些结构并且在场景中手动定位它们来部分克服。然而,这种技术存在结构和场景之间的对齐问题。用于3d场景中的自动化对象定位的其他技术包括视觉外壳(visual hull)技术和训练网络来定位对象。然而,即使是中等复杂的对象,对于在沉浸式视频情境中可用的相机覆盖,视觉外壳技术的结果也是不准确的。网络训练技术也不会提供足够的准确性。还有的其他技术包括预定义3d对象的特征和查找图像中的对应关系。然而,对于无纹理的对象,当纹理变化时,或者在相机覆盖范围有限的情境中,这种技术是不可行的。
4.在沉浸式视频或增强现实场景生成中实时提供详细的3d场景,是所期望的。正是考虑到这些和其他考虑事项,所以需要本改进。随着在成像和视频中提供新的沉浸式用户体验的愿望变得更加普遍,这种改进可变得关键。


技术实现要素:

5.根据本技术的一方面,提供了一种用于生成3d场景内的虚拟视图的系统,包括:存储器,用于存储所述3d场景内的3d对象的3d模型;以及与所述存储器耦合的一个或多个处理器,所述一个或多个处理器用于:生成第一对象遮罩图像和第二对象遮罩图像,所述第一对象遮罩图像和第二对象遮罩图像的每一者包括所述3d对象的2d表示,并且所述第一对象遮罩图像和第二对象遮罩图像代表在所述3d场景上经训练的第一相机和第二相机的第一图像平面和第二图像平面;基于所述3d场景中的所述3d模型的初始位置和取向,将所述3d模型的多个3d点投影到所述第一图像平面和第二图像平面上;并且基于成本函数的优化来确定所述3d场景中的所述3d模型的最终位置和取向,所述成本函数将所述第一对象遮罩图像和第二对象遮罩图像与所述第一图像平面和第二图像平面上投影的3d点进行比较。
6.根据本技术的另一方面,提供了一种用于生成3d场景内的虚拟视图的方法,包括:接收所述3d场景内的3d对象的3d模型;生成第一对象遮罩图像和第二对象遮罩图像,所述第一对象遮罩图像和第二对象遮罩图像的每一者包括所述3d对象的2d表示,并且所述第一
对象遮罩图像和第二对象遮罩图像代表在所述3d场景上经训练的第一相机和第二相机的第一图像平面和第二图像平面;基于所述3d场景中的所述3d模型的初始位置和取向,将所述3d模型的多个3d点投影到所述第一图像平面和第二图像平面上;并且基于成本函数的优化来确定所述3d场景中的所述3d模型的最终位置和取向,所述成本函数将所述第一对象遮罩图像和第二对象遮罩图像与所述第一图像平面和第二图像平面上投影的3d点进行比较。
附图说明
7.在附图中以示例方式而非限制方式图示了本文描述的素材。为了图示的简单和清晰,附图中图示的元素不一定是按比例绘制的。例如,为了清晰,一些元素的尺寸相对于其他元素可被夸大。另外,在认为适当时,在附图之间重复附图标记以指示出对应的或相似的元素。在附图中:
8.图1图示了用于将3d对象的3d模型嵌入到增强现实场景中的示例系统;
9.图2图示了在示例3d场景上训练的示例相机阵列;
10.图3图示了示例3d模型的一部分;
11.图4图示了基于相应的输入图像生成的示例分割图像;
12.图5图示了基于相应的输入图像生成的示例二进制对象遮罩;
13.图6图示了基于相应的输入图像生成的示例对象遮罩图像;
14.图7图示了投影3d模型点与3d对象的2d表示的示例覆盖;
15.图8图示了投影3d模型点与3d对象的扩张2d表示的示例覆盖;
16.图9图示了基于3d模型的最终位置和取向的投影3d模型点与3d对象的2d表示的示例覆盖;
17.图10图示了用于将3d对象的3d模型嵌入到增强现实场景中的示例过程;
18.图11是图示出用于生成3d场景内的虚拟视图的示例过程的流程图;
19.图12是用于生成3d场景内的虚拟视图的示例系统的说明图;
20.图13是示例系统的说明图;并且
21.图14图示了全都根据本公开的至少一些实现方式布置的示例设备。
具体实施方式
22.现在参考附图描述一个或多个实施例或实现方式。虽然论述了具体配置和布置,但应当理解这么做只是为了说明。相关领域的技术人员将认识到,在不脱离描述的精神和范围的情况下,可以采用其他配置和布置。相关领域的技术人员将会清楚,本文描述的技术和/或布置也可用在与本文所述不同的多种其他系统和应用中。
23.虽然接下来的描述阐述了可在诸如片上系统(system-on-a-chip,soc)体系结构之类的体系结构中显现的各种实现方式,但本文描述的技术和/或布置的实现方式不限于特定的体系结构和/或计算系统,而是可由任何体系结构和/或计算系统为类似的目的而实现。例如,采用例如多个集成电路(integrated circuit,ic)芯片和/或封装的各种体系结构和/或诸如机顶盒、智能电话等等之类的各种计算设备和/或消费电子(consumer electronic,ce)设备可以实现本文描述的技术和/或布置。另外,虽然接下来的描述可能阐述许多具体细节,例如逻辑实现方式、系统组件的类型和相互关系、逻辑分区/集成选择等
等,但要求保护的主题可在没有这种具体细节的情况下实现。在其他情况中,可能没有详细示出一些素材,例如控制结构和完整软件指令序列,以免模糊本文公开的素材。
24.本文公开的素材可以用硬件、固件、软件或者其任何组合来实现。本文公开的素材也可实现为存储在机器可读介质上的指令,这些指令可被一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机制。例如,机器可读介质可包括只读存储器(read only memory,rom);随机访问存储器(random access memory,ram);磁盘存储介质;光存储介质;闪存设备;电的、光的、声的或者其他形式的传播信号(例如,载波、红外信号、数字信号等等),以及其他。
25.说明书中提及“一个实现方式”、“一实现方式”、“一示例实现方式”等等指示的是所描述的实现方式可包括特定的特征、结构或特性,但可能不一定每个实施例都包括该特定特征、结构或特性。另外,这种短语不一定指同一实现方式。另外,当联系一实施例来描述特定的特征、结构或特性时,认为联系其他实现方式(无论本文是否明确描述)来实现这种特征、结构或特性是在本领域技术人员的知识范围内的。
26.术语“基本上”、“接近”、“大致”、“近似”和“大约”一般指在目标值的 /-10%内。例如,除非在其使用的明确上下文中另有指明,否则术语“基本上等于”、“大约等于”和“大致等于”的意思是在这样描述的事物之间没有超过偶然的差异。在本领域中,这种差异通常不超过预定目标值的 /-10%。除非另有指明,否则使用序数形容词“第一”、“第二”和“第三”等等来描述共同对象只是表明相似对象的不同实例被引用,而并不打算暗示这样描述的对象必须在时间上、空间上、排名上或者以任何其他方式处于给定的序列中。
27.本文描述了与基于图像分割将复杂的3d对象嵌入到沉浸式增强现实场景中有关的方法、设备、装置、计算平台和物品。
28.如上所述,在3d场景中生成详细的3d结构有各种困难。在一些实施例中,生成3d模型,使得该模型表示场景中的3d对象。通常,这样的3d模型是为那些预期在场景中基本静止的对象生成的,例如体育赛事中的球门或者其他静止的和基本不动的对象(旗帜、塔架,等等)。值得注意的是,在重建的3d场景的虚拟视图中,可能希望这种对象中有大量的细节,而3d模型包括这些细节。此外,为了给对象设置颜色,对象的位置必须非常准确。(一个或多个)3d模型可以包括任何适当的数据结构,例如网格模型数据结构,该结构指示出3d空间中的网格的顶点的位置。该模型还可以包括纹理信息。
29.在模型生成之后,模型以六个或更多个自由度(位置和取向,包括x、y、z位置和偏航、俯仰、滚转取向或其他位置和取向数据结构)被定位到场景的3d模型中。该3d场景可被表征为增强现实、沉浸式3d场景,等等。为了利用其给定的3d结构(即,模型)获得3d对象的位置和取向,实际3d对象在场景中的投影是在与场景的相机视图相对应的两个或更多个帧中确定的。投影可利用任何一个或多个适当的技术来确定,例如将分割网络(例如,卷积神经网络)应用于从相机获得的场景的帧(例如,对应于图像平面)。例如,投影可以是二进制图像遮罩,第一值(例如,1)代表对象像素,第二值(例如,0)代表非对象像素,这些像素也可被表征为背景像素。二进制投影随后被扩张为灰度图像,以创建平滑图像或函数,用于将3d模型定位到场景中。
30.3d模型的位置和取向的初始猜测被生成,并且3d模型被投影到与为其提供分割的相机相对应的帧(例如,图像平面)上。在一些实施例中,利用在场景的3d坐标与每个相机的
2d图像平面坐标之间转换的经校准的投影矩阵,3d模型的面上的选定点(例如,顶点之间的三角形或其他形状)被投影到在场景上训练的相机的图像平面上。利用来自分割的两个或更多个灰度投影图像,于是解决了一个优化问题(包括3d模型到图像平面上的相应投影),以提供3d模型在场景内的最终位置和取向,从而使得3d模型的投影与分割帧相吻合。理想情况下,该优化问题的解决方案在经由所论述的遮罩和扩张操作获得的对象的2d图像内定位来自3d模型的所有投影点。在3d场景内的虚拟视图的生成中(例如,从任何可用的位置和取向),定位和定向的3d模型然后被用作场景的一部分,与利用其他技术的场景中的对象生成相比,提供了改善的对象细节。于是,所定位和定向的3d模型是从虚拟视图的角度提供的场景的沉浸式视图的一部分。
31.这种技术可应用于任何沉浸式3d或增强现实情境中。例如,有许多情境和应用要求理解场景结构,例如自主驾驶、机器人导航和/或与周围环境的交互,以及用于创建自由维度沉浸式视频的全3d重建。在这样的情境和应用中,从虚拟相机或视图渲染场景所要求的主要任务之一是获得场景内的复杂3d对象的高度准确和稳定的位置和取向。本文论述的技术允许自动确定复杂对象的模型结构的位置和取向,从而节省人力并且改善准确性。例如,与当前的手动技术相比,本文论述的技术提供了类似的或改善的准确性,并且,由于手动技术通常要花大约30分钟,而本文论述的技术可实时执行(例如,大约10至30毫秒或更少),因此所论述的技术允许实现同时广播多个事件的能力,以及其他优点。
32.图1图示了根据本公开的至少一些实现方式布置的用于将3d对象的3d模型嵌入到增强现实场景中的示例系统100。系统100可按任何适当的方式实现在任何数目的分立设备上。如图1中所示,系统100包括相机阵列101、图像分割和遮罩模块102、图像扩张模块103、3d模型生成器104、3d模型点采样器105、3d点投影模块106、位置和取向优化模块107以及虚拟视图模块108。系统100可实现在任何数目的适当外形参数的设备中,包括以下所列项中的一个或多个:服务器计算机、云计算环境、个人计算机、膝上型计算机、平板设备、平板手机、智能电话、游戏机、可穿戴设备、显示设备、一体化设备、二合一设备,等等。注意,在一些实施例中,相机阵列101可与实现系统100的剩余组件的设备分开实现。经由相机阵列101捕捉的输入图像101包括场景110的同时捕捉的图像。就本文使用的而言,术语同时捕捉的图像指的是被同步来在相同的或者在例如300ms之类的容限内的几乎相同的时刻捕捉的图像。在一些实施例中,捕捉的图像被捕捉为同步捕捉视频。例如,系统100的组件可被包含到任何多相机多处理器系统中,以为场景的观看者递送沉浸式视觉体验。虽然论述的是同时捕捉的图像,但在一些实施例中,输入图像111可以是在不同的时间捕捉的,只要它们捕捉的是同一场景的图像,并且相机是相对于该场景校准的。
33.图2图示了根据本公开的至少一些实现方式布置的在示例3d场景110上训练的示例相机阵列101。在图示的实施例中,相机阵列101包括在体育运动场地上训练的38个相机。然而,相机阵列101可包括在场景110上训练的任何适当数目的相机,例如不少于20个相机。例如,可在场景110上训练相机阵列101以生成场景110的3d模型,而更少的相机可能不能提供充分的信息来生成3d模型。此外,场景110可以是任何适当的场景,例如体育场、运动场、舞台、竞技场地板,等等。相机阵列101可被安装到围绕场景110并且沿着围绕场景110的地面的体育馆(未示出)或者其他结构,被校准,并且被在场景110上训练以捕捉图像或视频。如图所示,相机阵列101的每个相机具有场景110的特定视图。例如,相机201具有场景110的
第一视图,相机202具有场景110的第二视图,等等依此类推。如本文所使用的,术语视图指的是相机阵列101的特定相机的图像平面的图像内容或者来自位于场景110内的虚拟相机的任何视图的图像内容。值得注意的是,视图可以是捕捉的视图(例如,利用相机处的图像捕捉获得的视图),使得多个视图包括同一个人、物体、实体等等的表示。此外,相机阵列101的每个相机具有与拍摄的场景110的图像相对应的图像平面。
34.参考图1,本文论述的技术在场景110内插入3d对象的3d模型,以改善场景110内的虚拟视图。也就是说,相对于利用成像和重建技术可获得的,3d模型是以增强的细节生成的。在场景110的点云或其他体积模型中,3d模型被定位并被包括在点云或其他体积模型中,并且包括3d模型(和3d对象)的视点是利用3d模型生成的,以改善沉浸式体验。为了在场景内定位3d模型,确定3d模型的位置(例如,x、y、z坐标)和取向(例如,偏航、俯仰、滚转值)。所论述的技术提供了一种自动方法,用于基于对包括3d对象的表示的2d图像的分割来提供复杂的3d模型的高度准确和精确的位置和取向,这样2d图像是由相机阵列101中的两个或更多个相机获得的。值得注意的是,这种技术甚至可有利地应用于无纹理的复杂3d模型。
35.相机阵列101获得两个或更多个输入图像111,每个图像对应于相机阵列101的一个特定相机。值得注意的是,可采用两个输入图像111来执行本文论述的技术,但更多的输入图像111提供更高的准确性和稳定性。此外,下面的技术是关于在场景110内为相应的3d对象121定位和定向单个3d模型来论述的。然而,在场景110内可定位和定向任何数目的3d模型,每个3d模型对应于特定的3d对象。所论述的技术可在实时视频捕捉和点云生成之前执行,或者它们可实时执行。在一些实施例中,先前确定的3d模型位置可在实时图像捕捉期间按特定的间隔(例如,每分钟,每5分钟,等等)被更改或细化,使得所论述的技术被实时执行(例如,在特定的视频帧捕捉时间实例之后和下一个视频帧捕捉时间实例之前)。
36.对于每个这样的3d对象121,如对于3d模型生成器104所示,生成3d模型115。在此,术语对象(object)被用来表示实际的真实世界对象,而术语模型(model)被用来表示代表该对象的数据结构。被建模的3d对象121可以是场景110内的任何对象。注意,一般来说,具有更高细节水平的静态对象可能在更大程度上受益于3d建模,因为相机可能更难获得这样的细节,而3d对象的静态性质不要求实时对对象进行太多的改变(甚至不要求改变)。在一些实施例中,3d模型115是3d对象121的刚性模型,这样就不提供3d模型的成分的移动,并且在场景110内,3d模型115完全以6个自由度来定义:3个用于位置,3个用于取向。虽然本文论述的是指示位置的x、y和z坐标和指示取向的偏航、俯仰和滚转值,但可以使用任何坐标系统。例如,一坐标系统被应用于场景110,并且可利用所应用的坐标系统在场景内定位和定向对象和模型。
37.虽然在此图示的是刚性3d模型,但在一些实施例中,3d模型115是非刚性模型,其具有可相对于彼此移动的成分或片段。在一些实施例中,3d模型115是非刚性的3d模型,包括一个或多个自由度,用于3d模型115的3d片段之间的运动。这种运动可以是围绕关节的运动、沿着定义轴的线性运动、围绕定义轴的旋转,等等。在一些实施例中,这种模型内的运动可被约束在限定的范围内。值得注意的是,通过允许与部件相关联的自由度在本文论述的定位和取向优化期间改变,本文论述的技术可被扩展到这种非刚性或复杂的模型,这些模型具有部件、成分、片段或对象的组合。也就是说,所论述的6个自由度可被扩展到包括其他自由度,以便在这种优化期间对3d模型115的部件进行定位和定向。在一些实施例中,确定
3d模型115的最终位置和取向(如下文所论述的)包括基于成本函数的优化来确定用于片段之间的运动的一个或多个自由度的最终参数。这种参数的初始估计可基于3d模型115的中性状态或者基于先前的3d场景构建等等。
38.对于任何给定的3d对象121,利用任何一个或多个适当的技术生成3d模型115。在一些实施例中,3d模型115是经由3d对象121的lidar扫描生成的。在一些实施例中,3d模型115是经由3d渲染软件中的手动拟合生成的,其基于的是来自经校准的相机(相机阵列101或者其他相机分组或阵列)的对3d对象121拍摄的多幅图像。此外,3d模型115可具有任何适当的数据结构。在一些实施例中,3d模型115由3d对象网格数据结构表示,包括网格的顶点和面在3d空间中的位置。在一些实施例中,3d模型115是网格对象模型,具有代表3d对象121的索引和在索引之间并由索引定义的面。此外,3d模型115可包括与这种顶点和面(例如,顶点的三角形面)相对应的纹理信息,然而这种纹理信息不是利用本文论述的技术来定位和定向3d模型115所需要的。例如,所论述的技术可应用于有纹理或无纹理的模型。
39.图3图示了根据本公开的至少一些实现方式布置的示例3d模型115的一部分。如图所示,3d模型115包括大量的顶点,例如顶点301,以及在顶点之间定义的面,例如面302、303、304。在图示的示例中,3d模型115是三角形网格模型,从而每个面的形状是三角形。3d模型115通过改变顶点的位置以近似3d对象121的表面和边缘来表示3d对象121。利用密集的网格,高质量的3d模型是可实现的,并且当被插入和复制在3d场景110内时提供高度真实的虚拟视图。
40.返回到图1,现在论述转向处理输入图像111。在下文中,图示了单个图像,并且论述针对的是单个图像的处理。然而,所论述的技术是针对任何数目的输入图像111(即,两个或更多个输入图像111)执行的。图像分割和遮罩模块102接收输入图像111,其包括3d对象121的2d表示的至少一部分。图像分割和遮罩模块102为每个输入图像111生成相应的二进制对象遮罩112,使得每个二进制对象遮罩112包括针对被确定为在3d对象121的2d表示内的像素的第一像素值(例如,1)和针对被确定为在3d对象121的2d表示以外的像素的第二像素值(例如,0)。
41.图像分割和遮罩模块102可利用任何一个或多个适当的技术来生成二进制对象遮罩112。在一些实施例中,图像分割和遮罩模块102将经预训练的卷积神经网络(cnn)应用到输入图像111的每一个,从而cnn的输出提供关于每个像素(或者像素组)是否是3d对象121的2d表示的一部分的概率。这样的值随后可被进行阈值处理以生成二进制对象遮罩112。其他分割技术是可用的,并且可由图像分割和遮罩模块102应用。
42.图4图示了根据本公开的至少一些实现方式布置的基于相应输入图像生成的示例分割图像401。如图所示,图像分割和遮罩模块102被应用来提供被认为被包括在(或者具有很高的概率被包括在)3d对象121的2d投影中的图像区域或片段402,该3d对象121在这个示例中被图示为篮球支柱和球框,以及提供背景区域403。正如所论述的,这种分割是利用任何一个或多个适当的技术,例如应用经预训练的cnn,为每个输入图像111提供的。
43.图5图示了根据本公开的至少一些实现方式布置的基于相应输入图像生成的示例二进制对象遮罩112。如图所示,图像分割和遮罩模块102生成二进制对象遮罩112,使得二进制对象遮罩112包括针对被认为是3d对象121的2d表示511的一部分的那些像素的第一像素值501(例如,像素值为1),这可被表征为对象像素之类的,以及包括针对被认为是3d对象
121的2d表示511以外的那些像素的第二像素值502(例如,像素值为0),这可被表征为背景像素或者非对象像素之类的。
44.返回到图1,每个二进制对象遮罩112被图像扩张模块103接收,该模块对每个二进制对象遮罩112应用扩张、反向距离变换或者其他模糊技术,以生成相应的对象遮罩图像113。在一些实施例中,对象遮罩图像113是灰度图像。例如,参考图5,在一些实施例中,扩张处理为第一像素值501维持最大值,并且提供从第一像素值501(和2d表示511)定义的边缘延伸到第二像素值502定义的背景区域中的梯度。这种技术在随后的位置和取向优化处理中提供了优势。例如,这种扩张处理提供了更快的收敛。此外,这种扩张处理可避免在初始位置不准确的情境中需要格点搜索技术。
45.图6图示了根据本公开的至少一些实现方式布置的基于相应输入图像生成的示例对象遮罩图像113。如图所示,对象遮罩图像113包括与二进制对象遮罩112一样具有第一像素值501的扩张的2d表示605,这样,第一像素值501可以是对象遮罩图像113的灰度中的最大值(例如,值为255)。类似地,对象遮罩图像113包括与二进制对象遮罩112一样的第二像素值502,用于超出与2d表示511的边缘(例如,与二进制对象遮罩112中的边缘)的特定距离的那些像素,如关于扩张的2d表示605所示的。例如,第二像素值502可以是对象遮罩图像113的灰度中的最小值(例如,值为0)。在这样的第一像素值501和第二像素值502之间,经由扩张、反向距离变换或者其他模糊来提供边缘梯度610。
46.如图所示,在第一示例611中,提供了边缘梯度610,使得像素值或强度602相对于像素位置601有特定的轮廓612。在图6的情境中,像素位置601被定义为从对象内的位置,沿着与对象边界正交(或者接近正交)的方向穿过对象边界(例如,穿过检测到的对象边界),并延伸到对象之外的位置。如图所示,轮廓612提供了将像素强度602从最大值(例如,完全在对象内的255)减小到最小值(例如,完全在对象外的0),如论述的那样。在第一示例611中,轮廓612包括从最大值延伸到最小值的线性部分603。虽然是对于线性部分603图示的,但可使用任何单调递减的函数。如图所示,扩张操作包括在二进制对象遮罩112(例如,分割的图像)中,在扩张的2d表示605以外的一部分像素中(例如,在对象以外)生成朝着扩张的2d表示605内的像素递增的梯度。
47.在一些实施例中,对于每个应用,应用恒定的或相同的扩张操作和所得到的边缘梯度,如关于第一示例611所图示的。也就是说,无论输入图像或其他处理参数如何,都可应用恒定的扩张。在其他实施例中,基于对场景110内的3d模型115的位置和取向的初始估计的置信度,提供不同量的扩张并且获得不同的结果边缘梯度。例如,可利用任何一个或多个适当的技术来获得3d模型115的位置和取向的初始估计。在一些实施例中,3d模型的初始位置和取向被设置为3d场景的先前建模中的3d模型的先前最终位置和取向。例如,对于体育赛事,同一个场馆可以考虑到场景中的一些变化而被重复建模。在一些实施例中,对场景的早前建模被执行以提供(先前)3d模型的位置和取向。场景的当前建模然后使用来自早前建模的(先前)3d模型(相同的模型或者类似的模型)的最终位置和取向作为初始位置和取向,以便在当前建模中进行优化。这样的技术为场景110中的(先前)3d模型的初始位置和取向提供了高置信度。在这种情境或者其他高置信度情境中,可应用很少扩张或者不应用扩张。然而,在其他情境中,没有这样的早前建模可用,或者其他减轻因素可能干预,使得初始位置和取向不太可能是准确的,或者对初始位置和取向的置信度较低。
48.虽然是针对早前建模论述的,但基于任何适当的因素,初始位置和取向可具有更高或更低的置信度。值得注意的是,基于对场景110中的3d模型115的初始位置和取向的置信度,扩张(或梯度)的量被更改。在一些实施例中,生成初始位置和取向置信度值(例如,范围从表示无置信度的0到表示高置信度的10或者在任何其他范围内),并且依据位置和取向置信度值执行扩张,在高置信度应用中提供较低的扩张或模糊,在高置信度应用中提供较高的扩张或模糊。
49.例如,在第二示例621中,提供了边缘梯度610,使得像素值或强度602相对于像素位置601有特定的轮廓622。如图所示,轮廓622同样提供了将像素强度602从最大值(例如,完全在对象内的255)减小到最小值(例如,完全在对象外的0)。然而,与第一示例611相比,在第二示例621中,轮廓622包括从最大值延伸到最小值的线性部分604,该部分相对于第一示例611具有更小的斜率。在这个情境中,斜率被定义为像素值或强度随像素位置变化的变化(例如,随着像素距离变化的像素值变化)。
50.从而,提供不同的梯度,使得在高置信度初始位置和取向情境中,提供较高的斜率(和就距离而言的较少模糊),以通过利用想必更准确的初始位置和取向来提高收敛速度。此外,改善了噪声抑制。在低置信度初始位置和取向情境中,提供较低的斜率(和就距离而言的更大模糊),以增大在模糊内捕捉3d模型点的投影的可能性(如下文所述),代价是更慢的收敛。
51.返回到图1,对象遮罩图像113被提供给位置和取向优化模块107。对象遮罩图像113提供3d对象121在相机阵列101的两个或更多个相机的图像平面上的模糊的灰度2d表示。对象遮罩图像113被用作指导,以为3d模型115确定最终位置和取向119,如下文所述。现在转到3d模型点采样器105,3d模型点采样器105接收3d模型115并且从3d模型115中采样点,用于调整3d模型点采样器105的位置和取向以适配到对象遮罩图像113中,并且3d模型点采样器105提供这种点作为3d模型点116。
52.由3d模型点采样器105进行的生成3d模型点116的这种采样可利用任何一个或多个适当的技术来执行。在一些实施例中,密集点域被应用于3d模型115的面(例如,所有面或者预期在2d视图中的面),并且每个点(例如,每个点的3d位置)被用作3d模型点116的一部分。例如,密集点域可在特定的点密度下应用,并且每个点的3d位置可被包括在3d模型点116中。此外,3d模型115的每个顶点可用作3d模型点116的一部分。然而,单是顶点通常不会提供足够的点密度来用于如本文论述的位置和取向优化。
53.现在参考图3,密集点域305被图示为应用于面303和面304。密集点域305也可被应用于面302和其他面,但为了呈现清晰起见,图3中没有图示这种应用。正如所论述的,密集点域305的每个点在3d空间中的位置被确定并被提供在3d模型点116中。
54.返回到图1,3d模型点116被3d点投影模块106接收,该模块将3d模型点116投影到与对象遮罩图像113相对应的每个相机平面上。也就是说,对于对象遮罩图像113中的每一个,都进行到相应图像平面上的投影。这种投影可利用任何一个或多个适当的技术来进行。在一些实施例中,3d模型点116中的每一个的投影(例如,到多个图像平面上的投影)包括利用3d模型115的初始位置和取向117确定3d场景中的3d模型点116中的每一个的3d位置,并且利用与其对应的投影矩阵从3d位置投影到图像平面上。如上所述,初始位置和取向117可利用任何一个或多个适当的技术来确定。在一些实施例中,初始位置和取向117是与基于场
景110的先前重建而生成的3d对象相对应的3d对象的最终位置和取向。虽然图示了3d点投影模块106是单独的模块并且向位置和取向优化模块107提供投影图像118,但在一些实施例中,没有采用3d点投影模块106,并且在优化期间由位置和取向优化模块107执行这种技术。
55.参考图3,基于密集点域305确定的3d模型点116被转换成3d场景(利用3d模型115的位置和取向信息),并被投影到与对象遮罩图像113(和输入图像111)之一相对应的相机阵列101的每个相机的图像平面上,以提供投影3d模型点306投影图像118。然后将这种投影的3d模型点306与投影的扩张对象图像(例如,对象遮罩图像113)进行比较,以调整位置和取向信息,并确定3d模型115的最终位置和取向。
56.返回到图1,例如,首先利用初始位置和取向117在场景110中投影或定位3d模型点116中的每一个。注意,在迭代处理示例或细化示例中,3d模型115的当前位置和取向被用来代替初始位置和取向117。在场景110中定位点之后,然后利用(先前校准的)投影矩阵将该点投影到每个相关的图像平面上,该投影矩阵对于相机阵列101的每个相机在场景110中的3d点和图像平面上的2d点之间进行转换。
57.值得注意的是,利用对于3d模型115的若干个自由度(例如,刚性模型的6个自由度:x、y、z、偏航、俯仰、滚转或类似的)的每一者包括一参数的初始位置和取向117,在由相机阵列101提供的两个或更多个相机视图中提供3d模型115的投影。然后,由3d模型点116提供的3d模型115的点被投影到这些相机视图的图像平面上。关于3d模型点116的选择是这样的:当初始位置和取向117准确时,投影的点至少是稀疏地分布在对象遮罩图像113中的3d对象121的2d表示内。
58.图7图示了根据本公开的至少一些实现方式布置的投影的3d模型点701与3d对象121的2d表示511的示例覆盖700。如图所示,投影的3d模型点701(以白点图示)与2d表示511(以灰色图示)部分重叠,从而使得投影的3d模型点701中的一些在2d表示511内,而其他的在2d表示511之外。那些在2d表示511之外的相对于示例2d表示511的边缘和网可被最清楚地看到。2d表示511内的投影点虽然在2d表示511内,但并不完全与之对齐。
59.图8图示了根据本公开的至少一些实现方式布置的投影的3d模型点701与3d对象121的扩张2d表示605的示例覆盖800。如图所示,投影的3d模型点701(同样以白点图示)部分地(但相对于2d表示511而言更完全地)与扩张的2d表示605(以灰色图示)重叠,从而使得更多投影的3d模型点701处于扩张的2d表示605内。值得注意的是,这种扩张提供了更多的重叠和更好的收敛机会,特别是当投影的3d模型点701与2d表示511和扩张的2d表示605之一的错位变得更加严重时。
60.返回到图1,位置和取向优化模块107接收对象遮罩图像113和投影图像118,并且位置和取向优化模块107为3d模型115生成最终位置和取向119,从而最终位置和取向119包括3d模型的每个自由度的值或参数,该值或参数优化成本函数,该成本函数基于3d模型115的当前位置和取向对对象遮罩图像113和投影图像118的版本进行比较。也就是说,位置和取向优化模块107基于将对象遮罩图像113与对应于对象遮罩图像113的图像平面上的投影3d点进行比较的成本函数的优化来确定3d模型115在3d场景110中的最终位置和取向119。成本函数的优化可包括任何适当的优化,例如分段线性函数的最小化,该分段线性函数包括以下两者之间的差值的总和:对象遮罩图像113的最大值、与每个3d模型点116在对象遮
罩图像113上的投影相对应的对象遮罩图像的值,如下文进一步论述的。虽然论述的是成本函数的优化,但最终位置和取向119可利用其他技术来生成,例如过度栅格搜索。然而,这样的技术会遭受大量的计算成本。
61.值得注意的是,目标是找到如下的平移t,和旋转r:在变换3d模型点116并将其投影到与对象遮罩图像113相对应的所有相机的图像平面上后,所述平移和旋转尽可能地让所有投影点适配在图像平面上图像的2d表示内。例如,每个3d模型点116rj在具有投影矩阵ci的经校准相机图像平面上的2d投影pj如方程(1)所示:
62.p
ij
=ci(rrj t)
63.(1)
64.其中,是第j个3d模型点116到第i个图像平面(例如,相机阵列101的第i个相机)上的2d投影,ci是第i个相机的投影矩阵,r代表3d模型115的旋转参数,以在场景110中定向3d模型115,rj是第j个3d模型点116,并且t代表3d模型115的平移参数,以在场景110中定位3d模型115。
65.对象遮罩图像113(例如,扩张遮罩图像)中的每一个于是提供了一个可利用例如双立方插值器来评估的函数值得注意的是,对象遮罩图像113中的每一个都可被评估,以确定每个投影3d模型点701的值。当投影的3d模型点701在2d表示511内(例如,在对象遮罩内并且具有第一像素值501)时,该结果提供最大值,当投影的3d模型点701完全在扩张的2d表示605之外(例如,甚至完全在扩张的对象遮罩之外并且具有第二像素值502)时,该结果提供最小值,或者当在梯度610内时该结果提供介于最大值和最小值两者之间的值。从而,基于当前的平移t和旋转r的3d模型115,当投影的3d模型点701在对象遮罩之外时,可被惩罚(penalized)(而当投影的3d模型点701在对象遮罩或其扩张之内时,不被惩罚或者被较少惩罚)。
66.例如,对于每个对象遮罩图像113和与其对应的投影3d模型点701,定义分段可微函数(例如,待优化的成本函数)fi,以确定投影的3d模型点701(例如,投影)与对象遮罩图像113(例如,扩张的遮罩)中的2d表示的接近程度,请参考图8。例如,假定每个对象遮罩图像113中的最大值(例如,在灰度应用中为255)为m,成本函数被提供如方程(2)所示:
[0067][0068]
其中fi是第i个相机(或者图像平面)的成本函数,m是最大值,ii是第i个对象遮罩图像113中每个投影3d模型点701的值,该值在j个3d模型点116的每一个上求和。
[0069]
然后通过在所有i个图像平面或相机上最小化成本函数来确定结果的最终位置和取向119。可使用这种成本函数的任何适当的求和,例如方程(3)中所示的二阶误差近似:
[0070][0071]
其中r和t通过最小化所论述的成本函数为3d模型115提供最终的位置和取向119。可利用任何一个或多个适当的技术来优化方程(3)。例如,可利用非线性最小二乘求解器和/或优化器来优化方程(3)。在一些实施例中,每个3d模型点116的每个投影都落在至少扩张的2d表示605内。在一些实施例中,每个3d模型点116的每个投影都落在2d表示511内。
[0072]
图9图示了根据本公开的至少一些实现方式布置的基于3d模型115的最终位置和取向的投影3d模型点901与3d对象121的2d表示511的示例覆盖900。如图所示,投影的3d模型点901(以白点图示)完全或几乎完全与2d表示511(以灰色图示)重叠并且在2d表示511内。从而,当在场景110内生成虚拟视图时,3d模型115被正确地定位和定向。此外,与仅仅基于获得的图像生成的3d对象表示相比,3d模型115具有改善的细节和纹理。
[0073]
返回到图1,虚拟视图模块108接收3d模型115和最终位置和取向119。虚拟视图模块108接收与在场景110内生成虚拟视图120有关的其他数据,例如期望的虚拟相机位置和视图、其他对象的点云数据或者包括其他对象的完整点云(可将3d模型插入其中)。基于这样接收到的数据,虚拟视图模块108基于包括3d模型115的点云或体积模型的视图、根据在其中的给定位置和取向生成场景110内的虚拟视图120的照片逼真视图,3d模型115基于最终位置和取向119而被定位和定向。例如,点云或体积模型可以用经由输入图像111捕捉的纹理来进行渲染和绘制。虚拟视图120可每一个帧实例(或者每隔一个帧实例)地被生成,以为用户提供沉浸式体验。此外,虚拟视图可在场景110的3d空间中被导航,以提供一种多自由度的用户体验。
[0074]
图10图示了根据本公开的至少一些实现方式布置的用于将3d对象的3d模型嵌入到增强现实场景中的示例过程1000。过程1000可包括如图10中所示的一个或多个操作1001-1009。例如,操作1001-1009可由系统100执行以生成虚拟视图120。
[0075]
过程1000开始于操作1001,在该操作中利用任何一个或多个适当的技术,例如对象的lidar扫描,将模型拟合到对象,或者类似的技术,来生成对象的3d模型。3d模型可具有任何适当的数据结构,例如指示出3d网格的顶点的网格数据结构,其中顶点定义了其间的三角形面。处理在操作1002处继续,在该操作中相机阵列的相机被安装在场景周围,并且利用任何一个或多个适当的技术来进行校准,并且获得包括在操作1001处建模的对象的场景的两个或更多个图像。如上所述,需要至少两个图像来执行以下技术,尽管更多的图像提供更高的准确性。在一些实施例中,使用五到二十个图像。
[0076]
处理在操作1003处继续,在该操作中利用任何一个或多个适当的技术,例如分割cnn的应用,对所获得的图像中的对象的2d表示进行分割或检测,并且生成所检测的2d表示的二进制遮罩。例如,分割cnn可被应用到每个获得的图像,并且所得到的每像素似然数据可被进行阈值处理以生成二进制图像。
[0077]
处理在操作1004处继续,在该操作中二进制遮罩被扩张以生成扩张的对象遮罩。
如图所示,扩张可基于场景中的3d模型的初始位置和取向的置信度。例如,对于较高置信度的初始位置和取向,可应用较低的扩张量,而对于较低置信度的初始位置和取向,可应用较高的扩张量。在一些实施例中,扩张二进制遮罩图像包括:响应于第一初始位置和取向置信度值或者小于第一初始位置和取向置信度值的第二初始位置和取向置信度值,分别应用第一梯度或第二梯度,从而使得第一梯度与第二梯度相比、随像素距离变化的像素值变化具有更大斜率。
[0078]
处理在操作1005处继续,在该操作中接收3d模型的初始位置和取向,并且定义成本函数。3d成本函数可以是本文论述的任何成本函数。在一些实施例中,3d成本函数为从3d模型投影的每个点提供一个值(基于3d模型的位置和取向以及每个相机的投影矩阵),该值等于经扩张对象遮罩中的最大可用值(例如,255)与针对投影点的来自经扩张对象遮罩的输出值之间的差。也就是说,当点被投影在对象遮罩内时,差值为零,当点被投影在经扩张对象遮罩之外时,差值为一,当点被投影在对象遮罩和背景区域之间的边缘梯度内时,差值是介于两者之间的值。
[0079]
处理在操作1006处继续,在该操作中利用任何一个或多个适当的技术选择3d模型点进行评估。在一些实施例中,3d模型的顶点被包括在3d模型点中,并且来自3d模型的若干(或全部)面的点被包括在3d模型点中。在一些实施例中,只使用来自面的点。例如,可对3d模型的每个面进行采样,并且采样点的3d位置可用作3d模型点。
[0080]
处理在操作1007处继续,在该操作中,在操作1005处定义的成本函数基于在操作1004处产生的经扩张图像和在操作1006处选择的3d模型点的投影的比较而被进行优化。在一些实施例中,在操作1006处选择的每个3d模型点被投影到经扩张图像的图像平面上,并且经扩张图像在该位置被评估以确定3d模型点的值。然后,经扩张图像的最大值与所确定的值求差,并且每个这些差值在投影到经扩张图像的所有图像平面上的所有3d模型点上被求和。如上所述,当点被投影在对象遮罩内时,差值为零,当点被投影在扩张的对象遮罩之外时,差值为一,当点被投影在对象遮罩和背景区域之间的边缘梯度内时,差值是介于两者之间的值。然后可求解成本函数,以利用扩张的对象遮罩作为函数,将投影的3d模型点转换为成本或惩罚值,来优化位置(或平移)和取向参数。经求解或优化的成本函数的结果是场景内3d模型的最终位置和取向。
[0081]
处理在操作1008处继续,在该操作中3d模型的最终位置和取向被输出以用于任何适当的情境中,例如3d场景的重建、自主驾驶应用、机器人导航和/或交互应用、增强现实应用或者类似应用。处理在操作1009处继续,在该操作中3d模型的最终位置和取向被用于生成包括3d模型的场景内的虚拟视图。例如,可生成包括具有最终位置和取向的3d模型的3d场景的点云表示,并且可基于3d场景的点云表示来确定虚拟视图。
[0082]
图11是图示出根据本公开的至少一些实现方式布置的用于生成3d场景内的虚拟视图的示例过程1100的流程图。过程1100可包括如图11中所示的一个或多个操作1101-1104。过程1100可形成例如用于沉浸式视频或增强现实的虚拟视图生成过程的至少一部分。作为非限制性示例,过程1100可形成如本文所述的系统100执行的过程的至少一部分。此外,本文将参考图11的过程1100来描述过程1100。
[0083]
图12是根据本公开的至少一些实现方式布置的用于生成3d场景内的虚拟视图的示例系统1200的说明图。如图12中所示,系统1200可包括中央处理器1201、图像处理器
1202、存储器1203和相机阵列101。还如图所示,图像处理器1202可包括或实现图像分割和遮罩模块102、图像扩张模块103、3d模型生成器104、3d模型点采样器105、3d点投影模块106、位置和取向优化模块107以及虚拟视图模块108。在系统1200的示例中,存储器1203可存储输入图像、二进制对象遮罩数据、对象遮罩图像数据、3d模型数据、选定的3d模型点、投影图像、位置和取向、虚拟视图数据,或者本文论述的任何其他数据。
[0084]
如图所示,图像分割和遮罩模块102、图像扩张模块103、3d模型生成器104、3d模型点采样器105、3d点投影模块106、位置和取向优化模块107以及虚拟视图模块108中的一个或多个或一些部分是经由图像处理器1202实现的。在其他示例中,图像分割和遮罩模块102、图像扩张模块103、3d模型生成器104、3d模型点采样器105、3d点投影模块106、位置和取向优化模块107以及虚拟视图模块108中的一个或多个或一些部分是经由中央处理器1201、图像处理单元、图像处理管线、图像信号处理器之类的实现的。在一些示例中,图像分割和遮罩模块102、图像扩张模块103、3d模型生成器104、3d模型点采样器105、3d点投影模块106、位置和取向优化模块107以及虚拟视图模块108中的一个或多个或一些部分是作为片上系统(soc)用硬件实现的。在一些示例中,图像分割和遮罩模块102、图像扩张模块103、3d模型生成器104、3d模型点采样器105、3d点投影模块106、位置和取向优化模块107以及虚拟视图模块108中的一个或多个或一些部分是经由fpga用硬件实现的。
[0085]
图像处理器1202可包括任何数目和类型的可提供如本文所述的操作的图像或图形处理单元。这种操作可经由软件或硬件或者其组合来实现。例如,图像处理器1202可包括专用于操纵和/或分析从存储器1203获得的图像的电路。中央处理器1201可包括任何数目和类型的可以为系统1200提供控制和其他高级别功能和/或提供如本文所述的任何操作的处理单元或模块。存储器1203可以是任何类型的存储器,例如易失性存储器(例如,静态随机访问存储器(static random access memory,sram)、动态随机访问存储器(dynamic random access memory,dram)等等)或者非易失性存储器(例如,闪存等等),等等。在非限制性示例中,存储器1203可由缓存存储器实现。在一实施例中,图像分割和遮罩模块102、图像扩张模块103、3d模型生成器104、3d模型点采样器105、3d点投影模块106、位置和取向优化模块107以及虚拟视图模块108中的一个或多个或一些部分是经由图像处理器1202的执行单元(execution unit,eu)实现的。eu可例如包括可编程逻辑或电路,例如可提供多种多样的可编程逻辑功能的一个或多个逻辑核心。在一实施例中,图像分割和遮罩模块102、图像扩张模块103、3d模型生成器104、3d模型点采样器105、3d点投影模块106、位置和取向优化模块107以及虚拟视图模块108中的一个或多个或一些部分是经由诸如固定功能电路之类的专用硬件实现的。固定功能电路可包括专用逻辑或电路并且可提供一组固定功能入口点,这些固定功能入口点可映射到用于固定目的或功能的专用逻辑。
[0086]
返回到对图11的论述,过程1100开始于操作1101,在该操作中接收3d场景内的3d对象的3d模型。3d模型可利用任何一个或多个适当的技术来生成,并且可包括任何适当的数据结构。3d模型可以是具有6个自由度的刚性模型:x、y和z位置以及偏航、俯仰和滚转取向,或者3d模型可以是非刚性的,具有这6个自由度,加上定义其部件或成分之间的运动的额外自由度。在一些实施例中,3d模型是网格对象模型,包括代表3d对象的若干个索引和索引之间的面。
[0087]
处理在操作1102处继续,在该操作中生成第一对象遮罩图像和第二对象遮罩图
像,第一和第二对象遮罩图像中的每一个包括3d对象的2d表示,并且第一和第二对象遮罩图像代表在3d场景上经训练的第一和第二相机的第一和第二图像平面。虽然论述的是第一和第二对象遮罩图像、图像平面、相机等等,但可使用任何数目,例如五个或更多个。对象遮罩图像可包括任何适当的数据结构,例如灰度图像,其较大值表示包括3d对象的2d表示的像素,较低值表示不包括3d对象的2d表示的像素。在一些实施例中,生成第一和第二对象遮罩图像包括:确定第一和第二二进制遮罩图像,这些二进制遮罩图像对于被认为在3d对象内的像素包括第一像素值并且对于被认为在3d对象之外的像素包括第二像素值;并且扩张第一和第二二进制图像以生成第一和第二对象遮罩图像。如上所述,在一些实施例中,第一和第二对象遮罩图像是灰度图像。在一些实施例中,确定第一和第二二进制图像包括将卷积神经网络应用到经由第一和第二相机获得的第一和第二源图像。例如,源图像可以是通过第一和第二相机对场景的曝光获得的输入图像。在一些实施例中,所论述的扩张包括:在第一分割图像中,在对象以外的一部分像素中生成朝着对象内的像素递增的梯度。在一些实施例中,所论述的扩张包括:响应于第一初始位置和取向置信度值或者小于第一初始位置和取向置信度值的第二初始位置和取向置信度值,分别应用第一梯度或第二梯度,从而使得第一梯度与第二梯度相比,随像素距离变化的像素值变化具有更大斜率。
[0088]
处理在操作1103处继续,在该操作中基于3d场景中3d模型的初始位置和取向,将3d模型的若干个3d点投影到第一和第二图像平面上。可利用任何一个或多个适当的技术来选择3d模型的3d点。在一些实施例中,3d模型是网格对象模型,包括代表3d对象的若干个索引和索引之间的面,并且3d点是来自网格模型的面的点。此外,可利用任何一个或多个适当的技术来选择初始位置和取向。在一些实施例中,方法1100还包括将3d模型的初始位置和取向选择为3d场景的先前建模中的3d模型的先前最终位置和取向。例如,可能已经针对先前的事件(例如,游戏、音乐会,等等)对3d场景进行了建模,并且3d模型(相同模型或类似模型)的先前最终位置和取向可用于初始化3d模型的位置和取向。
[0089]
处理在操作1104处继续,在该操作中基于成本函数的优化来确定3d场景中3d模型的最终位置和取向,该成本函数将第一和第二对象遮罩图像与第一和第二图像平面上的投影3d点进行比较。例如,成本函数可惩罚在第一对象遮罩图像和第二对象遮罩图像的每一个中在3d对象的2d表示之外的那些投影3d点。在一些实施例中,成本函数的优化包括分段线性函数的总和的最小化,每个分段线性函数包括以下两者之间的差值的总和:第一和第二对象遮罩图像的最大值、与多个3d点中的每个点在第一和第二对象遮罩图像上的投影相对应的第一和第二对象遮罩图像的值。在一些实施例中,多个3d点中的每一个的投影包括:利用3d模型的当前位置和取向确定3d场景中的多个3d点中的每一个的3d位置,以及利用与第一和第二图像平面相对应的第一和第二投影矩阵从3d位置投影到第一和第二对象遮罩图像上。如上所述,过程1100可被应用于刚性或非刚性的3d模型。在一些实施例中,3d模型是非刚性3d模型,对于3d模型的3d片段之间的运动包括一个或多个自由度,并且确定3d模型的最终位置和取向还包括基于成本函数的优化确定用于运动的一个或多个自由度的最终参数。
[0090]
3d模型的最终位置和取向可被输出以用于任何适当的情境中,例如3d场景的重建、自主驾驶应用、机器人导航和/或交互应用、增强现实应用或者类似应用。在一些实施例中,方法1100还包括至少部分基于3d场景中的3d模型的最终位置和取向来生成3d场景内的
虚拟视图。
[0091]
过程1100可对任何数目的3d对象串行或并行地重复任意多次。过程1100提供了在场景中定位和定向3d对象的3d模型。过程1000可由任何(一个或多个)适当的设备、(一个或多个)系统、(一个或多个)装置或者(一个或多个)平台实现,例如本文论述的那些。在一实施例中,过程1100是由一种系统或装置实现的,该系统或装置具有存储器来存储3d模型源和目标图像,以及任何其他论述的数据结构,以及具有处理器来执行操作1101-1104。在一实施例中,存储器和处理器是经由单片现场可编程门阵列集成电路实现的。如本文所使用的,术语单片指的是一器件与其他器件分立,虽然其可为了通信和电力供给而耦合到其他器件。
[0092]
本文描述的系统的各种组件可以用软件、固件和/或硬件和/或其任何组合实现。例如,本文论述的设备或系统的各种组件可至少部分由计算片上系统(soc)的硬件提供,例如可存在于计算系统中,例如智能电话中。本领域技术人员可认识到,本文描述的系统可包括在相应附图中没有描绘的额外组件。例如,本文论述的系统可包括为了清晰起见没有描绘的额外组件。
[0093]
虽然本文论述的示例过程的实现方式可包括按图示顺序进行所示出的所有操作,但本公开不限于此,并且在各种示例中,这里的示例过程的实现方式可只包括所示出的操作的子集,包括按与图示不同的顺序执行的操作,或者包括额外的操作。
[0094]
此外,本文论述的操作中的任何一个或多个可响应于由一个或多个计算机程序产品提供的指令来进行。这种程序产品可包括提供指令的信号承载介质,所述指令当被例如处理器执行时可提供本文描述的功能。计算机程序产品可在任何形式的一个或多个机器可读介质中提供。从而,例如,包括一个或多个图形处理单元或处理器核心的处理器可响应于被一个或多个机器可读介质输送到处理器的程序代码和/或指令或指令集而执行这里的示例过程的一个或多个块。一般而言,机器可读介质可通过程序代码和/或指令或指令集的形式输送软件,所述程序代码和/或指令或指令集可使得本文描述的任何设备和/或系统实现这些设备或系统的至少一些部分,或者如本文所述的任何其他模块或组件。
[0095]
按照在本文描述的任何实现方式中使用的,术语“模块”指的是被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可实现为软件封装、代码和/或指令集或指令,并且如本文描述的任何实现方式中使用的“硬件”例如可单一地或者组合地包括硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储被可编程电路执行的指令的固件。模块可集体地或者单独地实现为形成更大系统的一部分的电路,例如集成电路(ic)、片上系统(soc),等等。
[0096]
图13是根据本公开的至少一些实现方式布置的示例系统1300的说明图。在各种实现方式中,系统1300可以是移动设备系统,虽然系统1300不限于此情境。例如,系统1300可被包含到以下各项中:个人计算机(personal computer,pc)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(personal digital assistant,pda)、蜂窝电话、组合蜂窝电话/pda、电视机、智能设备(例如,智能电话、智能平板或智能电视机)、移动互联网设备(mobile internet device,mid)、消息传递设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lens reflex,dslr)相机)、监视相机、包括相机的监视系统,等等。
network,wman)、蜂窝网络和卫星网络。在跨这种网络通信时,无线电装置1318可根据任何版本的一个或多个适用的标准来进行操作。
[0106]
在各种实现方式中,显示器1320可包括任何电视机型监视器或显示器。显示器1320例如可包括计算机显示屏幕、触摸屏显示器、视频监视器、类似电视机的设备和/或电视机。显示器1320可以是数字的和/或模拟的。在各种实现方式中,显示器1320可以是全息显示器。另外,显示器1320可以是可接收视觉投影的透明表面。这种投影可传达各种形式的信息、图像和/或对象。例如,这种投影可以是移动增强现实(mobile augmented reality,mar)应用的视觉覆盖。在一个或多个软件应用1316的控制下,平台1302可在显示器1320上显示用户界面1322。
[0107]
在各种实现方式中,(一个或多个)内容服务设备1330可由任何国家的、国际的和/或独立的服务所容宿并且从而例如是平台1302经由互联网可访问的。(一个或多个)内容服务设备1330可耦合到平台1302和/或显示器1320。平台1302和/或(一个或多个)内容服务设备1330可耦合到网络1360以向和从网络1360传输(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备1340也可耦合到平台1302和/或显示器1320。
[0108]
图像传感器1319可包括可基于场景提供图像数据的任何适当的图像传感器。例如,图像传感器1319可包括基于半导体电荷耦合器件(charge coupled device,ccd)的传感器、基于互补金属氧化物半导体(complimentary metal-oxide-semiconductor,cmos)的传感器、基于n型金属氧化物半导体(n-type metal-oxide-semiconductor,nmos)的传感器,等等。例如,图像传感器1319可包括可检测场景的信息以生成图像数据的任何设备。
[0109]
在各种实现方式中,(一个或多个)内容服务设备1330可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的具备互联网能力的设备或家电以及能够经由网络1360或者直接地在内容提供者与平台1302和/或显示器1320之间单向或双向地传输内容的任何其他类似设备。将会明白,可经由网络1360单向地和/或双向地向和从系统1300中的组件的任何一者和内容提供者传输内容。内容的示例可包括任何媒体信息,例如包括视频、音乐、医疗和游戏信息,等等。
[0110]
(一个或多个)内容服务设备1330可接收内容,例如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供者的示例可包括任何有线电视或卫星电视或者无线电或互联网内容提供者。提供的示例并不意图以任何方式限制根据本公开的实现方式。
[0111]
在各种实现方式中,平台1302可从具有一个或多个导航特征的导航控制器1350接收控制信号。导航控制器1350的导航特征例如可用于与用户界面1322交互。在各种实施例中,导航控制器1350可以是指点装置,该指点装置可以是允许用户将空间(例如,连续的和多维的)数据输入到计算机中的计算机硬件组件(具体而言是人机接口设备)。诸如图形用户界面(gui)以及电视机和监视器之类的许多系统允许用户利用物理手势控制计算机或电视机和向其提供数据。
[0112]
导航控制器1350的导航特征的移动可通过在显示器上显示的指针、光标、聚焦环或其他视觉指示物的移动被复制在显示器(例如,显示器1320)上。例如,在软件应用1316的控制下,位于导航控制器1350上的导航特征例如可被映射到在用户界面1322上显示的虚拟导航特征。在各种实施例中,导航控制器1350可以不是单独的组件,而是可被集成到平台1302和/或显示器1320中。然而,本公开并不限于本文示出或描述的元素或者情境。
[0113]
在各种实现方式中,例如,当被使能时,驱动器(未示出)可包括使得用户能够在初始启动之后通过触摸按钮像电视机那样即刻开启和关闭平台1302的技术。程序逻辑可允许平台1302即使在平台被“关闭”时也可将内容流传输到媒体适配器或(一个或多个)其他内容服务设备1330或(一个或多个)内容递送设备1340。此外,芯片集1305可包括对例如5.1环绕立体声音频和/或高清晰度7.1环绕立体声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可包括外围组件互连(peripheral component interconnect,pci)express图形卡。
[0114]
在各种实现方式中,系统1300中示出的组件中的任何一个或多个可被集成。例如,平台1302和(一个或多个)内容服务设备1330可被集成,或者平台1302和(一个或多个)内容递送设备1340可被集成,或者平台1302、(一个或多个)内容服务设备1330和(一个或多个)内容递送设备1340可被集成。在各种实施例中,平台1302和显示器1320可以是集成的单元。例如,显示器1320和(一个或多个)内容服务设备1330可被集成,或者显示器1320和(一个或多个)内容递送设备1340可被集成。这些示例并不意图限制本公开。
[0115]
在各种实施例中,系统1300可实现为无线系统、有线系统或者两者的组合。当实现为无线系统时,系统1300可包括适合于通过无线共享介质通信的组件和接口,例如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑,等等。无线共享介质的示例可包括无线频谱的一些部分,例如rf频谱等等。当实现为有线系统时,系统1300可包括适合于通过有线通信介质通信的组件和接口,例如输入/输出(i/o)适配器、将i/o适配器与相应的有线通信介质连接的物理连接器、网络接口卡(network interface card,nic)、盘控制器、视频控制器、音频控制器,等等。有线通信介质的示例可包括导线、电缆、金属引线、印刷电路板(printed circuit board,pcb)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤,等等。
[0116]
平台1302可建立一个或多个逻辑或物理信道来传输信息。该信息可包括媒体信息和控制信息。媒体信息可以指表示打算给用户的内容的任何数据。内容的示例例如可包括来自语音交谈的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等。来自语音交谈的数据可例如是话音信息、静默时段、背景噪声、舒适噪声、音调,等等。控制信息可以指表示打算给自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于将媒体信息路由通过系统,或者指示节点以预定的方式处理媒体信息。然而,实施例并不限于图13中示出或描述的元素或情境。
[0117]
如上所述,系统1300可实现为不同的物理风格或外形参数。图14图示了根据本公开的至少一些实现方式布置的示例小外形参数设备1400。在一些示例中,系统1400可经由设备1400实现。在其他示例中,本文论述的其他系统、组件或模块或者其一些部分可经由设备1400实现。在各种实施例中,例如,设备1400可实现为具有无线能力的移动计算设备。移动计算设备例如可以指具有处理系统和移动电源或供给电源(例如一个或多个电池)的任何设备。
[0118]
移动计算设备的示例可包括个人计算机(personal computer,pc)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(personal digital assistant,pda)、蜂窝电话、组合蜂窝电话/pda、智能设备(例如,智能电话、智能平板或智能移动电视机)、移动互联网设备(mobile internet device,
mid)、消息传递设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lens reflex,dslr)相机),等等。
[0119]
移动计算设备的示例还可包括被布置为由机动车辆或机器人实现的或者被人穿戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带扣计算机、臂环计算机、鞋子计算机、衣服计算机和其他可穿戴计算机。在各种实施例中,例如,移动计算设备可实现为除了语音通信和/或数据通信以外还能够执行计算机应用的智能电话。虽然作为示例一些实施例可利用被实现为智能电话的移动计算设备来描述,但可明白其他实施例也可利用其他无线移动计算设备来实现。实施例不限于此情境中。
[0120]
如图14中所示,设备1400可包括具有正面1401和背面1402的外壳。设备1400包括显示器1404、输入/输出(i/o)设备1406、彩色相机1421、彩色相机1422、红外发送器1423和集成天线1408。在一些实施例中,彩色相机1421和彩色相机1422获得如本文所述的平面图像。在一些实施例中,设备1400不包括彩色相机1421和1422并且设备1400从另一设备获得输入图像数据(例如,本文论述的任何输入图像数据)。设备1400还可包括导航特征1412。i/o设备1406可包括用于将信息输入到移动计算设备中的任何适当的i/o设备。i/o设备1406的示例可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别设备和软件,等等。信息也可通过麦克风(未示出)被输入到设备1400中,或者可被语音识别设备数字化。如图所示,设备1400可包括彩色相机1421、1422,以及集成到设备1400的背面1402(或者别处)的闪光灯1410。在其他示例中,彩色相机1421、1422和闪光灯1410可被集成到设备1400的正面1401,或者正面和背面相机集合都可被提供。彩色相机1421、1422和闪光灯1410可以是相机模块的组件以产生具有ir纹理校正的彩色图像数据,该彩色图像数据可被处理成图像或流视频,该图像或流视频例如被输出到显示器1404和/或从设备1400经由天线1408远程传输。
[0121]
各种实施例可利用硬件元素、软件元素或者两者的组合来实现。硬件元素的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(application specific integrated circuit,asic)、可编程逻辑器件(programmable logic device,pld)、数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field programmable gate array,fpga)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集,等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(application program interface,api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者这些的任何组合。确定一实施例是否利用硬件元素和/或软件元素来实现可根据任何数目的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
[0122]
至少一个实施例的一个或多个方面可由存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令实现,这些代表性指令当被机器读取时使得该机器制作逻辑来执行本文描述的技术。这种被称为ip核心的表示可被存储在有形机器可读介质上并且被提供到各种客户或制造设施以加载到实际制作该逻辑或处理器的制造机器中。
[0123]
虽然已参考各种实现方式描述了本文记载的某些特征,但此描述并不打算被从限
制意义上来解释。因此,对本公开所属领域的技术人员来说显而易见的对本文描述的实现方式的各种修改以及其他实现方式被认为属于本公开的精神和范围内。
[0124]
在一个或多个第一实施例中,一种用于生成3d场景内的虚拟视图的方法包括接收所述3d场景内的3d对象的3d模型,生成第一对象遮罩图像和第二对象遮罩图像,所述第一对象遮罩图像和第二对象遮罩图像的每一者包括所述3d对象的2d表示,并且所述第一对象遮罩图像和第二对象遮罩图像代表在所述3d场景上经训练的第一相机和第二相机的第一图像平面和第二图像平面,基于所述3d场景中的所述3d模型的初始位置和取向,将所述3d模型的多个3d点投影到所述第一图像平面和第二图像平面上,并且基于成本函数的优化来确定所述3d场景中的所述3d模型的最终位置和取向,所述成本函数将所述第一对象遮罩图像和第二对象遮罩图像与所述第一图像平面和第二图像平面上的投影3d点进行比较。
[0125]
在一个或多个第二实施例中,关于所述第一实施例,又及,所述成本函数的优化包括分段线性函数的总和的最小化,每个分段线性函数包括以下两者之间的差值的总和:所述第一对象遮罩图像和第二对象遮罩图像的最大值、与所述多个3d点中的每一者在所述第一对象遮罩图像和第二对象遮罩图像上的投影相对应的所述第一对象遮罩图像和第二对象遮罩图像的值。
[0126]
在一个或多个第三实施例中,关于所述第一或第二实施例,又及,所述多个3d点中的每一者的投影包括:利用所述3d模型的当前位置和取向对所述3d场景中的所述多个3d点中的每一者的3d位置的确定,以及利用与所述第一图像平面和第二图像平面相对应的第一投影矩阵和第二投影矩阵从所述3d位置到所述第一对象遮罩图像和第二对象遮罩图像上的投影。
[0127]
在一个或多个第四实施例中,关于所述第一至第三实施例的任何一者,又及,所述方法还包括:将所述3d模型的初始位置和取向选择为所述3d场景的先前建模中的所述3d模型的先前最终位置和取向。
[0128]
在一个或多个第五实施例中,关于所述第一至第四实施例的任何一者,又及,所述生成所述第一对象遮罩图像和第二对象遮罩图像包括:确定第一二进制遮罩图像和第二二进制遮罩图像,并且对所述第一二进制遮罩图像和第二二进制遮罩图像进行扩张以生成所述第一对象遮罩图像和第二对象遮罩图像,其中,所述第一二进制遮罩图像和第二二进制遮罩图像包括针对被认为在所述3d对象内的像素的第一像素值以及针对被认为在所述3d对象以外的像素的第二像素值,所述第一对象遮罩图像和第二对象遮罩图像包括灰度图像。
[0129]
在一个或多个第六实施例中,关于所述第一至第五实施例的任何一者,又及,所述确定所述第一二进制图像和第二二进制图像包括将卷积神经网络应用到经由所述第一相机和第二相机获得的第一源图像和第二源图像。
[0130]
在一个或多个第七实施例中,关于所述第一至第六实施例的任何一者,又及,所述扩张包括在第一分割图像中,在所述对象以外的一部分像素中生成朝着所述对象内的像素递增的梯度。
[0131]
在一个或多个第八实施例中,关于所述第一至第七实施例的任何一者,又及,所述扩张包括:响应于第一初始位置和取向置信度值或者第二初始位置和取向置信度值分别应用第一梯度或第二梯度,所述第二初始位置和取向置信度值小于所述第一初始位置和取向
置信度值,其中,所述第一梯度与所述第二梯度相比,随像素距离变化的像素值变化具有更大的斜率。
[0132]
在一个或多个第九实施例中,关于所述第一至第八实施例的任何一者,又及,所述3d模型包括网格对象模型,所述网格对象模型包括代表所述3d对象的多个索引和所述索引之间的面,并且所述多个3d点包括来自所述网格模型的面的点。
[0133]
在一个或多个第十实施例中,关于所述第一至第九实施例的任何一者,又及,所述3d模型包括非刚性3d模型,所述非刚性3d模型包括针对所述3d模型的3d片段之间的运动的一个或多个自由度,并且确定所述3d模型的最终位置和取向还包括基于所述成本函数的优化来确定针对所述运动的一个或多个自由度的最终参数。
[0134]
在一个或多个第十一实施例中,关于所述第一至第十实施例的任何一者,又及,所述方法还包括至少部分基于所述3d场景中的所述3d模型的最终位置和取向来生成所述3d场景内的虚拟视图。
[0135]
在一个或多个第十二实施例中,一种设备或系统包括存储器和一个或多个处理器来执行根据上述实施例的任何一者的方法。
[0136]
在一个或多个第十三实施例中,至少一个机器可读介质包括多个指令,所述多个指令响应于在计算所述上被执行,使得所述计算设备执行根据上述实施例的任何一者的方法。
[0137]
在一个或多个第十四实施例中,一种装置包括用于执行根据上述实施例的任何一者的方法的构件。
[0138]
将会认识到,实施例不限于这样描述的实施例,而是可在带有修改和变更的情况下实现,而不脱离所附权利要求的范围。例如,上述实施例可包括特征的特定组合。然而,上述实施例不限于此,并且在各种实现方式中,上述实施例可包括仅采取这些特征的子集,采取不同顺序的这些特征,采取这些特征的不同组合和/或采取除明确列出的那些特征以外的附加特征。实施例的范围因此应当参考所附权利要求以及这些权利要求有权享有的等同物的完整范围来确定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献