3D检测和跟踪管线推荐的方法和计算机可读介质与流程

文档序号:20357923发布日期:2020-04-10 23:28阅读:249来源:国知局
3D检测和跟踪管线推荐的方法和计算机可读介质与流程
本公开总体上涉及图像数据流中的对象检测和姿态估计的领域,更具体地,涉及包括图像数据流中的低特征对象检测和姿态估计的增强现实系统。
背景技术
:随着计算机技术的进步,增强现实(ar)已变得越来越常见。ar的一般定义是捕获真实世界场景并使用软件添加人工(虚拟)元素。这可增强用户对真实世界的感知或向用户提供娱乐。在许多ar实现中对象跟踪是重要的。这意味着真实世界对象“跟随”有诸如计算机图形增强或信息泡泡(由用户感知)的人工对象。换言之,如果真实世界对象移动或者用户的视角相对于真实世界对象移动,则人工对象将相对于真实世界对象保持在相同的位置和/或将基于真实世界对象的移动和/或新位置来确定人工对象的内容。在许多ar实现中位置跟踪也是重要的。这意味着虚拟对象将停留在场景中的一个位置,而不管用户的移动。用于实现ar的一个平台是智能电话。相机、显示装置和处理器存在于相同的装置上允许软件容易地向相机所捕获的实时场景添加人工元素。此外,软件利用这些装置上的运动传感器和定位器(例如,加速度计和gps)的存在来更好地实现ar。为了改进ar体验,透明头戴式显示器(hmd)可实现ar。这些系统通常是在眼睛前方放置具有棱镜的眼镜。用户直接通过眼镜来观看场景。棱镜允许人工图像叠加在用户所感知的场景上。此外,hmd使用相机从场景收集数据。为了创建ar环境,ar软件开发者可使用各种对象的样本图像数据来训练处理器。给定适当工具来创建ar环境,ar软件开发者可开发可利用真实世界场景增强的图形。为了开发图形,软件开发者可在执行姿态估计的同时收集训练数据。另外,软件开发者可能需要选择规定如何在训练计算机的处理管线(pipeline)内处理样本图像数据的算法或配置。然而,众多算法可能可用,并且ar软件开发者通常不知道对于特定软件应用,何种算法将是最佳的。增强现实软件开发包(arsdk)可包括用于3d对象检测和跟踪(od/pe/跟踪)的系统以由ar软件开发者用于ar应用软件。技术实现要素:系统可按照不止一种方式来配置,并且更适当的配置取决于应用域的物理方面,例如要跟踪何种类型的对象。希望使用sdk来开发ar应用软件的开发者必须选择适合于应用域的系统算法或配置。问题在于,无法预期开发者具有3d对象检测和跟踪(od/pe/跟踪)领域的专业知识以便能够理解如何选择最适合于其应用域的配置。可能优选的是向软件开发者提供推荐系统,其能够基于他们关于其应用域提供的数据来自动地为他们推荐或选择配置。本公开的一些方面的优点在于解决上述至少一部分问题,本公开的各方面可被实现为以下方面。本公开的目的之一在于向ar软件开发者提供推荐系统,其可在提供od/pe/跟踪算法训练数据时给予他们关于哪一管线用于其应用的推荐。推荐系统可使用关于在实验室设置下获得的性能的先前经验来构造(当ar软件开发者在使用之前开发训练工具时)。本公开的一方面是一种存储指令的非暂时性计算机可读介质,所述指令使得一个或更多个处理器能够基于(i)测试对象的训练输入数据集和(ii)第一性能数据集来训练第一回归元(regressor),以使得当训练输入数据集输入时第一回归元输出近似于第一性能数据集的数据。第一性能数据集可基于各个测试对象的第一姿态和基准姿态。各个测试对象的第一姿态可从姿态推导装置获得,该姿态推导装置运行第一管线以基于对应训练输入数据集以及由相机捕获的各个测试对象的图像来推导第一姿态。所述一个或更多个处理器还可基于(iii)测试对象的训练输入数据集和(iv)第二性能数据集来训练第二回归元,以使得当训练输入数据集输入时第二回归元输出近似于第二性能数据集的数据。第二性能数据集可基于各个测试对象的第二姿态和基准姿态。各个测试对象的第二姿态可从姿态推导装置获得,该姿态推导装置运行第二管线以基于对应训练输入数据集以及由相机捕获的各个测试对象的图像来推导第二姿态。本公开还包括一种方法的实施方式,该方法包括在第一存储器区域中存储至少两个回归元。各个回归元被训练用于对应特定对象检测(od)、姿态估计(pe)和/或跟踪管线,以使得各个回归元响应于作为输入的第一特征向量而输出等于或大于其它回归元的得分。第一特征向量对应于相比其它管线更适合于对应管线的第一对象。该方法还包括在第二存储器中存储与第二对象对应的第二特征向量,并且以第二特征向量作为输入来运行回归元以推导相应得分。另外,该方法包括相对于第二对象基于所推导的得分在显示器上指示至少一个管线的推荐。该方法还包括使用所指示的至少一个管线来执行od/pe/跟踪。根据另一实施方式,提供一种存储指令的非暂时性计算机可读介质,所述指令在由一个或更多个处理器执行时执行方法,该方法包括在第一存储器区域中存储与对象对应的训练数据,其中,该训练数据包括标志数据。该方法还包括接收包括真实场景中的所述对象的图像帧,并且基于标志数据从存储在第二存储器区域中的多个对象检测(od)、姿态估计(pe)和/或跟踪算法当中选择一个od/pe/跟踪算法。另外,该方法包括使用图像帧之一和所选择的od/pe/跟踪算法来推导对象相对于捕获图像帧的相机的姿态。根据本公开的一些方面,一种头戴式显示装置包括相机、一个或更多个存储器、显示装置和处理器,该处理器由存储在一个或更多个存储器中的指令配置以执行方法。该方法可包括上述方法中的一个或更多个。附图说明将参照附图描述本公开,其中,相似的标号表示相似的元件。图1是示出示例hmd的示意性配置的图。图2是示出图1所示的hmd的功能配置的框图。图3是示出图1和图2所示的hmd在三维(3d)真实世界场景中的使用的图。图4是示出立方体的渲染和补丁(patch)的示例的图。图5是示出用于创建和使用训练工具的实验室/开发/用户设置中的系统的实施方式的图。图6是示出图5所示的训练工具的推荐系统所采用的方法的实施方式的流程图。图7是示出用于实现本申请的细节的方法的实施方式的流程图。图8是示出用于创建回归元的数据流的图。具体实施方式图1示出hmd100的示意性配置。hmd100是头戴式显示装置(头戴式显示器)。hmd100是光学透射型。即,hmd100可使得用户感测虚拟图像,同时使得用户直接视觉上识别外部场景。hmd100包括可穿戴在用户的头部上的穿戴带90、显示图像的显示部20以及控制显示部20的控制部10。在显示部20被穿戴在用户的头部上的状态下,显示部20使得用户感测虚拟图像。使得用户感测虚拟图像的显示部20也被称为“显示ar”。由用户感测的虚拟图像也被称为ar图像。穿戴带90包括由树脂制成的穿戴基部91、联接到穿戴基部91的由布料制成的带92、相机60和imu(惯性测量单元)71。穿戴基部91具有沿着人的前额区域的样子弯曲的形状。带92围绕用户的头部穿戴。相机60用作成像器。相机60能够对外部场景进行成像并被设置在穿戴基部91的中央部分中。换言之,在穿戴带90被穿戴在用户的头部上的状态下,相机60设置在与用户的前额的中央对应的位置。因此,在用户将穿戴带90穿戴在头部上的状态下,相机60对外部场景(在用户的视线方向上外侧的真实场景)进行成像,并获取捕获的图像(由相机60捕获的图像)。相机60包括相对于穿戴基部91旋转的相机基座61以及相对于相机基座61的相对位置固定的镜头62。相机基座61被设置为当穿戴带90被穿戴在用户的头部上时能够沿着箭头cs1(指示包括用户的中心轴线的平面中所包括的轴线的预定范围)旋转。因此,镜头62的光轴(相机60的光轴)的方向可在箭头cs1的范围内改变。镜头62对根据以光轴为中心的变焦改变的范围进行成像。imu71是检测加速度的惯性传感器。除了加速度之外,imu71可检测角速度和地磁。imu71被包含在穿戴基部91中。因此,imu71检测穿戴带90和相机基部61的加速度、角速度和地磁。imu71与穿戴基部91的相对位置固定。因此,相机60可相对于imu71移动。此外,显示部20与穿戴基部91的相对位置固定。因此,相机60与显示部20的相对位置是可移动的。在一些其它实施方式中,相机60和imu71可设置在显示部20中,以使得它们相对于显示部20固定。通过校准获得的由相机60、imu70和显示部20之间的旋转和平移矩阵表示的空间关系被存储在控制部10中的存储器区域或装置中。显示部20联接到穿戴带90的穿戴基部91。显示部20为眼镜型。显示部20包括右支架21、右显示驱动器22、左支架23、左显示驱动器24、右光学图像显示器26和左光学图像显示器28。当用户穿戴显示部20时,右光学图像显示器26和左光学图像显示器28位于用户的右眼和左眼前方。当用户穿戴显示部20时,右光学图像显示器26的一端和左光学图像显示器28的一端在与用户的前额的中间对应的位置彼此连接。右支架21具有从端部er(右光学图像显示器26的另一端)在基本上水平方向上延伸并中途斜向上倾斜的形状。右支架21在穿戴基部91的右侧将端部er和联接部93连接。类似地,左支架23具有从端部el(左光学图像显示器28的另一端)在基本上水平方向上延伸并中途斜向上倾斜的形状。左支架23在穿戴基部91的左侧将端部el和联接部(图中未示出)连接。右支架21和左支架23通过左右联接部93联接到穿戴基部91,以将右光学图像显示器26和左光学图像显示器28定位在用户的眼睛前方。需要注意的是,联接部93将右支架21和左支架23联接以能够旋转并能够固定在任何旋转位置。结果,显示部20被设置为能够相对于穿戴基部91旋转。当用户穿戴显示部20时,右支架21是被设置为从端部er(右光学图像显示器26的另一端)延伸到与用户的太阳穴区域对应的位置的构件。类似地,当用户穿戴显示部20时,左支架23是被设置为从端部el(左光学图像显示器28的另一端)延伸到与用户的太阳穴区域对应的位置的构件。当用户穿戴显示部20时,右显示驱动器22和左显示驱动器24设置在与用户的头部相对的一侧。显示驱动器22和24包括下面说明的液晶显示器241和242(以下也称为“lcd241和242”)和投影光学系统251和252。下面详细说明显示驱动器22和24的配置。光学图像显示器26和28包括下面说明的导光板261和262以及调光板。导光板261和262由透光树脂材料等形成,并且将从显示驱动器22和24输出的图像光引导到用户的眼睛。调光板是薄板状光学元件,并且被设置为在用户的眼睛一侧的相对侧覆盖显示部20的前侧。通过调节调光板的透光率,可调节进入用户的眼睛的外部光量并调节虚拟图像的可见性。显示部20还包括用于将显示部20连接到控制部10的连接部40。连接部40包括连接到控制部10的主体绳48、右绳42、左绳44和联接构件46。右绳42和左绳44是从主体绳48分支的两根绳。显示部20和控制部10经由连接部40执行各种信号的传输。作为右绳42、左绳44和主体绳48,例如,可采用金属线缆或光纤。控制部10是用于控制hmd100的装置。控制部10包括操作部135,操作部135包括静电轨迹板以及可按压的多个按钮。操作部135设置在控制部10的表面上。图2是在功能上示出hmd100的配置的框图。如图2所示,控制部10包括rom121、ram122、电源130、操作部135、cpu140(本文中有时也称为处理器140)、接口180以及发送器51(tx51)和发送器52(tx52)。电源130向hmd100的各部分供电。各种计算机程序被存储在rom121中。cpu140在ram122中开发存储在rom121中的计算机程序以执行计算机程序。计算机程序包括用于实现下面说明的跟踪处理和ar显示处理的计算机程序。cpu140在ram122中开发或加载存储在rom121中的计算机程序以用作操作系统150(os150)、显示控制部190、声音处理部170、图像处理部160和处理部167。显示控制部190生成用于控制右显示驱动器22和左显示驱动器24的控制信号。显示控制部190分别通过右显示驱动器22和左显示驱动器24来控制图像光的生成和发射。显示控制部190分别经由发送器51和52向右lcd控制部211和左lcd控制部212发送控制信号。显示控制部190分别向右背光控制部201和左背光控制部202发送控制信号。图像处理部160获取包括在内容中的图像信号并经由发送器51和52将所获取的图像信号发送到显示部20的接收器53和54。声音处理部170获取包括在内容中的声音信号,放大所获取的声音信号,并将声音信号供应给连接到联接构件46的右耳机32中的扬声器(图中未示出)和左耳机34中的扬声器(图中未示出)。处理部167与时间关联从相机60获取捕获的图像。此实施方式中的时间可基于或可不基于标准时间。处理部167根据例如单应矩阵来计算对象(真实对象)的姿态。对象的姿态意指相机60和对象之间的空间关系(旋转关系)。处理部167使用所计算的空间关系以及imu71所检测的加速度等的检测值来计算用于将固定到相机60的坐标系转换为固定到imu71的坐标系的旋转矩阵。处理部167的功能用于下面说明的跟踪处理和ar显示处理。接口180是用于将各种外部装置oa(内容的供应源)连接到控制部10的输入/输出接口。外部装置oa的示例包括存储有ar情景的存储装置、个人计算机(pc)、蜂窝电话终端和游戏终端。作为接口180,例如,可使用usb接口、微型usb接口以及用于存储卡的接口。显示部20包括右显示驱动器22、左显示驱动器24、用作右光学图像显示器26的右导光板261以及用作左光学图像显示器28的左导光板262。右导光板261和左导光板262是透射来自真实场景的光的光学透视元件。右显示驱动器22包括接收器53(rx53)、右背光控制部201和右背光221、右lcd控制部211和右lcd241以及右投影光学系统251。右背光控制部201和右背光221用作光源。右lcd控制部211和右lcd241用作显示元件。上述显示元件和光学透视元件允许用户视觉上感知由显示元件显示以叠加在真实场景上的ar图像。需要注意的是,在其它实施方式中,代替上面说明的配置,右显示驱动器22可包括诸如有机el显示元件的自发光显示元件,或者可包括在视网膜上扫描来自激光二极管的光束的扫描型显示元件。这同样适用于左显示驱动器24。接收器53用作用于控制部10和显示部20之间的串行传输的接收器。右背光控制部201基于输入控制信号来驱动右背光221。右背光221是诸如led或电致发光(el)元件的发光体。右lcd控制部211基于从图像处理部160和显示控制部190发送的控制信号来驱动右lcd241。右lcd241是多个像素按照矩阵形状布置的透射型液晶面板。右投影光学系统251由准直透镜配置,准直透镜将从右lcd241发射的图像光转换为平行状态的光束。用作右光学图像显示器26的右导光板261在沿着预定光路反射图像光的同时将从右投影光学系统251输出的图像光引导到用户的右眼re。需要注意的是,左显示驱动器24具有与右显示驱动器22的配置相同的配置并且对应于用户的左眼le。因此,省略左显示驱动器24的说明。应用作为实施方式公开的技术的装置可以是hmd以外的成像装置。例如,装置可以是不具有显示图像的功能的成像装置。图3是示出hmd100在三维(3d)真实世界场景300中的使用的图。场景300包括桌子302以及桌子302上的对象304。穿戴hmd100的用户(未示出)定位成观看场景300。hmd100的相机60也从与用户近似相同的视点观看场景300。相机60从该视点捕获场景300的图像并向控制部10提供图像数据流。图像数据流包括多个时间上分离的二维(2d)图像帧。图3包括由控制部10接收的示例图像帧306(有时称为图像)。图像帧306包括从相机的视点观看的对象304的表示308以及桌子302的一部分的表示310。图像帧中的对象的表示(例如,对象304的表示308)在本文中有时也称为图像帧中的对象。控制部10初始尝试定位图像帧306中的对象304的表示308并确定其姿态。控制部10然后尝试跟踪对象304的表示308并通过后续图像帧更新对象的姿态。如上所述,图2所示的cpu140被配置为从hmd100的相机60接收图像帧306。基于对象304的检测和跟踪,cpu140可处理图像帧306以创建ar输出。然而,如下所述,各种不同的配置可包含在cpu140中以允许cpu140更好地检测和跟踪特定类型的对象。如下所述,用于检测和跟踪对象的算法的选择不是直观的,因此本公开关于哪些算法可能最适合于可能检测/跟踪的对象为ar软件开发者提供推荐。管线推荐系统的介绍以下公开描述了执行将最终导致由cpu140执行的指令/过程的过程的系统和方法。基于推荐管线的确定,这些过程要由装置、cpu140、相机60等执行。作为介绍,发起实体(例如,制造商)开发ar软件开发包(arsdk),其可包括用于od/pe/跟踪任务的一个或更多个管线。该实体还可开发推荐系统,其通常在表示或对应于在od/pe/跟踪任务中要用作目标的真实对象的基于arsdk的数据中推荐管线之一。arsdk和推荐系统可被提交给ar软件开发者,该ar软件开发者可能想要开发相对于其自己的真实对象执行od/pe/跟踪任务的ar软件产品。然后,采用从包括在arsdk中的管线当中推荐一个管线的推荐系统,开发者可选择适合于其对象的管线之一。arsdk具有核心库,其具有核心芯片技术。开发者查看sdk和windows应用,其用于帮助开发者设置其增强现实(ar)应用。开发者利用本公开的推荐系统在sdk的帮助下经过一系列过程,以配置应用。在开发ar应用之后,应用可被部署在诸如bt装置的用户装置上。在选择真实对象以用作要由其ar软件产品检测和/或跟踪的目标之后,开发者生成表示或对应于对象的训练输入数据,其要由运行ar软件产品的处理器用来检测和/或跟踪相机所捕获的图像帧中的对象。训练输入数据可包括下列中的至少一个:(i)与真实对象对应的3d模型;(ii)通过从视角或视点渲染3d模型而获得的至少一个合成图像;(iii)从视角拍摄的真实对象的至少一个真实图像;(iv)包括从合成图像和/或真实图像提取的2d特征元素的每视角模板数据。可利用头戴式装置(hmd)100上的相机60拍摄真实图像。在一些实施方式中,发起实体可使用旁边可放置对象的校准标记(例如,桌子上的测量网格)来推导姿态,该姿态可用作基本事实(groundtruth)或基准姿态,以生成稍后描述的性能数据。在配置随开发者的应用使用的跟踪器的过程期间,开发者可能来到必须在可能用于执行od/pe/跟踪任务的两个或更多个配置或算法之间进行选择的关头。然而,任何开发者可能难以知道选择哪一算法可能为其对象提供最佳结果。因此,在开发者面临关于选择哪一算法用于od/pe/跟踪任务的困境的情况下,本公开提供一种解决方案。本公开的第一目的在于向开发者和/或最终用户提供推荐或选择以用于选择任何数量的可能配置(或算法)中可被预测为最适合于给定对象的一个。本公开的另一目的在于向开发者和/或最终用户指示图像数据的给定数据集具有高质量、中等质量还是低质量。数据的质量可由得分来指示。考虑可用在arsdk中的od/pe/跟踪系统的不同的可能配置,各个枚举的配置可被定义为管线。例如,管线可以是由下列组成的od/pe/跟踪系统的配置:1.系统参数的赋值的选择;2.从其组成od/pe/跟踪系统的软件系统组件的选择;或者3.(1)和(2)二者的某种组合。术语“训练输入数据”或“训练数据”可指用于准备用于3d对象检测和/或姿态估计和/或某一对象的跟踪的od/pe/跟踪系统的数据集。除了以上描述之外,在另一实施方式中,训练输入数据可包括下列中的至少一个:1)可包括或可不包括纹理知识的cad模型;2)包含对象的视角的一个或更多个标记的合成和/或真实图像;以及3)作为标记的姿态。训练输入数据可以是ar跟踪应用的应用域的一部分。本申请的实施方式可被提供用于基于关于od/pe/跟踪系统性能的先验知识以及表示或对应于给定对象的这种训练数据的某种基本分析来推荐管线,以确定这种训练数据或对象是否应该随用于od/pe/跟踪任务的特定算法(例如,富特征od/pe或低特征od/pe)使用。因此,在实施方式中,管线推荐可基于性能或配置随特定训练输入数据在实际环境中使用时的实际性能的体验。为了确定性能,以下公开描述了基于正跟踪的对象的几何特性的复杂度的估计过程。图5是示出系统500的实施方式的图。系统500包括(i)用于训练推荐系统504的训练计算机514以及(ii)运行训练的推荐系统504的运行时计算机506。图5还示出具有推荐系统所推荐的管线的ar软件产品512。ar软件产品512要在例如hmd100上实现。推荐系统504具有多个回归元(回归元1、2、…n)。例如,回归元可包括使用在各种环境条件下捕获的各种对象、训练数据等的一组评估结果(cdr),并且使用评估结果连同在评估中使用的对应od/pe/跟踪训练数据一起,来使用回归方法计算回归函数的过程。在一个实施方式中,可通过随机森林来计算回归函数。在另一实施方式中,推荐系统504中的回归元作为整体可由深度神经网络算法模型代替。一旦通过训练计算机514训练了推荐系统504,在开发者环境中,开发者可利用运行时计算机506来执行推荐系统504。推荐系统502向开发者推荐od/pe/跟踪系统508的何种配置(例如,算法、模型等)可随od/pe/跟踪训练输入数据最佳使用。在开发者利用所选管线开发ar软件产品512之后,ar软件产品512可被部署以便于最终用户在最终用户环境中与训练输入数据一起使用。然后,最终用户可获得对象的图像(例如,使用头戴式显示器(hmd)装置上的相机、智能电话、平板计算机、机器人或任何其它装置,本文中称为姿态推导装置)。由ar软件产品512处理图像,ar软件产品512使用配备有训练输入数据的管线来检测对象,估计其姿态和/或跟踪姿态,以获得可按照与对象姿态一致的姿态显示给用户的ar图像(例如,在hmd装置或具有相机的任何其它装置上)。在一个方法中,可使用性能预测来向开发者(或者在一些实施方式中,向最终用户)推荐随开发者(或最终用户)所提供的od/pe/跟踪训练输入数据集使用的最佳od/pe/跟踪管线。该方法可使用训练计算机514在训练输入数据上运行各个管线的性能模型,然后推荐与给出最高得分的所选模型关联的管线。为了构造性能模型,可使用统计学习方法(例如,机器学习)。各个性能模型可被配置为从生成自在受控实验室环境中进行的性能评估实验的性能评估结果学习的“回归元”。训练回归元采用特定管线的od/pe/跟踪训练输入数据集及其对应性能评估结果(或性能数据集)来训练预测有界范围(例如,0-1)内的得分的回归元,指示要随od/pe/跟踪训练输入数据集使用的管线的适用性。类似地,还采用另一管线的od/pe/跟踪训练输入数据集及其对应性能数据集来训练另一回归元。需要注意的是,在另一实施方式中,稍后详细描述的特征向量可从训练输入数据集估计,并且可与其对应性能数据集一起使用以训练回归元。所得训练的回归元用于计算得分,用于标记对于给定输入训练数据集,od/pe/跟踪系统的特定配置的性能质量。该标记是通过回归元学到的,并在下面说明。然后,在运行时期间给定一些od/pe/跟踪训练输入数据集,正确训练的回归元被预期:ο如果其关联的管线在数据集上训练时具有强性能,则生成良好得分(即,大于阈值的得分);并且ο如果其关联的管线具有弱性能,则生成不良得分(即,小于阈值的得分)。因此,可存在两种不同类型的训练。根据本公开,一种类型的训练涉及收集od/pe训练数据,其用于训练od/pe或跟踪系统以在ar应用中执行od/pe或跟踪过程。另一种类型的训练涉及如果在第一种类型的训练中收集的od/pe训练数据将用于执行第一种类型的训练,则训练回归元以预测od/pe或跟踪系统的性能。在第一种类型的训练中,软件开发者意图训练od/pe或跟踪系统。软件开发者收集某一所选对象的一组训练视角(例如,图像和姿态),然后使用其来准备od/pe或跟踪系统以用于操作。该训练可利用训练工具来执行。第二种类型的训练涉及训练回归元并且取决于在实验室中在多个不同的对象上收集的评估结果。标记或性能数据这里更详细地描述如何生成性能数据。使用内部系统来生成用作标记的得分以进行性能评估,这可被称为评估框架。本申请中所公开的评估框架包括输入数据和输出数据。所有管线可在所有输入数据上运行以生成输出数据或性能数据,这可被称为“执行”框架。所涉及的数据可包括:·输入数据。输入数据包括:ο表示或对应于具有各种特征性的对象的各种od/pe/跟踪训练输入数据集。一些对象的特征非常丰富,这可被称为“富特征”对象。其它对象的特征贫乏,这可被称为“低特征”对象。其它对象的特征中等,难以明确地描述为“富特征”或“低特征”。ο评估测试数据包括由围绕许多不同类型的对象(具有变化的特征性)以各种各样的方式移动的相机(在头戴式装置上)在各种照明条件下生成的视频序列。与各个视频序列的各个帧关联的是基本事实,描述各个帧中的各个对象的真正姿态。·输出数据。当执行框架时,各个管线生成各个图像中的各个对象的姿态估计,并且将结果与基本事实进行比较以决定性能质量。性能质量被定义为正确检测率(cdr),它是序列中的“正确”检测的比率。如本文所公开的,“正确”可指满足arsdk的产品规范中针对arsdk定义的要求/阈值的姿态估计。在本实施方式中,输出数据也被称为性能数据。训练回归元的方法图7示出方法700的实施方式,其示出实现本申请的实施方式的细节。方法700可旨在专用于随arsdk交付的3d对象跟踪系统。训练过程可在实验室中进行(即,在交付给开发者之前)。在一些实施方式中,由开发者开发的ar应用软件产品可包括用于od/pe/跟踪任务的多个管线或算法。在这种情况下,推荐可从开发者传递到最终用户软件。最终用户可选择使用哪一算法。然而,关于不同的算法将如何针对最终用户的对象执行,最终用户的知识可能少于开发者。因此,最终用户可获益于本公开的推荐系统。在这种情况下,如上所述选择配置的第三步骤将针对开发者消除,责任将转移给最终用户。方法700包括创建训练数据集,如方框702中指示的。方法700还生成性能数据,如方框702中指示的。在方框700和702中,使用各种对象相对于所有管线创建数据。然后,方法700在方框708中训练回归元。在方框708中,使用可用对象的所有训练输入数据相对于一个管线训练一个回归元。当回归元的训练完成时,确定表示各个回归元的数据并将其存储在训练计算机506(图5)的存储器中,如方框710中指示的。然后,方法700生成可执行推荐系统502并将其存储在训练计算机的存储器中。在算法是随机森林模型的示例中,可建立一组决策树(例如,if/then分支)。模型可针对阈值测试,选择分支,将训练数据存储在存储器(表示模型)中,然后应用以作出决策以与存储器进行比较。在具有神经网络的示例中,神经网络的架构应该与用于训练神经网络的权重相区分。计算机内部的表示可不同于模型并且取决于所使用的技术。对于神经网络,可存在两种方式来训练。首先,设想计算机程序包括100组“if/then”语句分支。在选择决策树的分支之后,可在回归元的情况下执行插值。其次,考虑第一示例,除了代替分支,获得动态存储器。对于分支通过存储器中的指针链接的树数据结构,在比较过程中执行遍历。尽管这些生成相同的结果,各自可更适合于特定类型的对象。训练模型涉及构造决策树。不同于可能以架构开始的神经网络,可遵循过程以决定权重将是多少,但是结构不改变。运行回归元然后,一组训练的回归元被组成推荐系统504。推荐系统504接受od/pe/跟踪训练数据集作为输入,在相同训练数据集上运行每一个回归元,并获得各个回归元的得分。然后,推荐系统504作为推荐返回与生成最佳得分的回归元关联的管线。预期所有回归元当中,训练数据集上与最准确的管线关联的回归元将返回最高得分。图6是示出在运行时期间推荐系统502所采用的方法600的实施方式的流程图。方法600包括接收训练数据,如方框602中所指示的。在本实施方式中,方法600可包括基于训练输入数据来生成特征向量,如方框604中所指示的。方法600包括使用基于训练输入数据集的特征向量运行各个回归元。在此实施方式中,使用特征向量作为输入来训练回归元。各个特征向量包括(但不限于)如下计算的信息。首先,对于与对象对应的各个对象或3d模型,计算mc得分(并且可使用局部二值模式的标准化直方图)。具体地,在实施方式中,对于各个3d模型(例如,立体光刻(stl)cad模型),计算表征由3d模型定义的形状的复杂度的值,例如3d模型的面的数量,这些面按照它们与平面近似的程度来分组。然后,作为包含对象的图像像素的比例来计算合成图像中的对象大小。最后,对于包括合成图像、每图像的基本事实姿态和3d模型的各个训练输入数据集,特征向量的分量被构造为包括:·平均mc得分分量,其中各个分量是训练输入数据集中的合成和/或真实图像、3d模型的mc得分中的分量之一的平均;·表示标准化直方图的分量,在训练输入数据集中的各个图像的标准化局部二值模式直方图上聚合;·保存训练输入数据集的各个图像中的对象大小的平均的分量。如方法600的方框606中所指示的,第一回归元相对于特定管线在特征向量及其对应性能数据集上运行,并且在方框608,计算得分(例如,cdr得分)(该得分这里稍后更深入地讨论)。返回参照图6,在决策方框610中,系统确定是否已在训练输入数据集上分析了各个可用回归元的性能。换言之,系统确定是否有任何附加回归元还未运行/分析。如果还有回归元要运行/分析,则方法600返回到方框606。如果是这样,则下一回归元运行,并且可根据需要重复步骤606至610。当不再有回归元要运行/分析时,方法600可从决策方框610进行到方框612。如方框612中所指示的,方法600包括确定其相应管线上的多个回归元中的哪一个具有最高得分。例如,可将诸如相应回归元的cdr得分的得分彼此比较。在一些实施方式中,本公开可包括任何数量的处理管线,其中各个处理管线可被配置为一次执行一系列处理步骤。各个管线表示用于处理图像数据的算法或回归元。一些管线将能够提供比其它更好的对象检测,一些管线将能够提供比其它更好的姿态估计,一些管线将能够提供比其它更好的对象跟踪。从od、pe和/或跟踪的结果,例如通过计算得分来评估管线,由此得分然后可用于确定哪一管线(实质上,算法)最适合于所检测和跟踪的特定对象。在针对回归元之一确定最高得分的情况下,方法600包括推荐/选择具有最高得分的回归元和对应管线,如方框614中所指示的。可使用更依赖于对象上的多个点的富特征管线。可使用更依赖于对象的边缘的低特征管线。一个管线未必总是好于另一个;它们仅彼此不同。同样,应该注意的是,开发者可能难以知道对于特定对象,哪一管线将最佳。本公开使用性能估计过程来确定哪一管线可能最适合于特定对象。推荐系统504提供最适合的一个管线的推荐或选择。因此,本公开在行业中提供向软件开发者提供最佳管线推荐的改进。尽管推荐被认为可能最适合对象,但开发者可否决该推荐并决定使用另一管线。在一些情况下,推荐可以是为给定图像数据集自动选择最适合管线。推荐可包括配置、选择和/或选取最适合的配置。在接收到推荐之后,开发者可使用推荐的管线来为ar应用软件和ar装置开发软件。开发者利用sdk来开发ar应用软件并生成要在具有一些职业或娱乐任务的装置上运行的程序。实质上,推荐的管线的选择涉及存储管线并使用该管线来进一步跟踪。推荐系统决定将在开发者的应用中使用多个管线中的哪一个。尽管开发者可能不选择该推荐,但应该再次注意的是,开发者可能不理解为了跟踪用户的对象,哪些管线将是最佳的。需要注意的是,开发者可构建ar应用软件产品,以使得其包括可从sdk获得的所有管线,并且使得ar软件产品能够通过将最终用户侧的推荐与训练数据集一起传递给最终用户来响应于该推荐选择管线之一。由于开发者主要负责确定最终用户将要看到什么,所以本公开的推荐系统帮助开发者将其精力集中在该任务上,而不必获得关于如何利用不同的管线进行跟踪的知识。开发者需要做的所有事情是生成训练输入数据,然后可执行跟踪。在本公开的方法600中,提供预测不同类型的od/pe/跟踪系统的性能的详细过程,包括训练以离线方式(即,在不跟踪对象时)使用od/pe/跟踪训练输入数据进行预测的回归元的方法。推荐方法涉及在单个系统中同时对不止一个管线进行性能预测。可使用分类器来评估管线,分类器是基于评估该管线的性能的结果训练的算法(例如,回归元)。如果确定管线具有良好性能或者比其它管线更好的性能,则推荐该管线。在一些情况下,为开发者自动选择最佳管线。一个回归元不知道另一回归元可能如何执行,直至进行比较以确定哪一回归元最适合对象。在本发明的实施方式中,术语回归元被定义为包括回归元和分类器。各个回归元执行回归。当测量管线的性能时,计算评估度量以确定管线多准确。例如,评估度量可包括cdr,cdr实质上是通过算法检测到的正确估计的值的百分比。回归元预测cdr并评估各个管线的cdr是什么。为了评估管线,计算cdr。回归元包括学习过程以预测对于用户为所讨论的特定管线提供的与对象对应的训练输入数据,评估将是什么。然后,推荐系统比较预测得分以确定哪一管线将最佳。如果对于给定数据要遵循评估过程,则基于评估是什么来使用回归元。评估过程用于训练回归元。性能数据是获取供应给跟踪器的输入的视频序列,在不同的配置下运行它,计算cdr,然后将cdr连同训练输入数据或者从训练输入数据计算的特征向量一起供应给各个回归元以用于训练的结果。回归元通过训练输入数据和管线相对于对象的性能来学习对象的评估。回归是统计分析。回归元可以是一种人工智能(ai),其执行回归分析。回归元是可使用随机森林并包括机器学习的算法。各个算法可提供分类输出,或者可预测值。与对线进行拟合的线性回归一样,本公开的回归将表示或对应于对象的数据和性能数据拟合到不规则函数。从机器学习工程师的角度,该函数具有回归元的性质。表示或对应于对象的数据及其相对于特定管线的性能数据用于创建从输入x计算值y的函数(即,y=f(x))。另一性能预测实施方式可包括预测基于表决的对象识别系统的性能的不同方法。该实施方式可确定对基于表决的识别方法可实现的性能的限制。关于对象的跟踪,存在两个主要部分。第一部分(称为检测)包括在没有关于姿态的先验信息的情况下估计对象的姿态。然后,一旦确定对象的姿态的检测,第二部分(称为跟踪)包括基于关于姿态的先验信息估计对象图像的姿态。应该注意的是,管线具有检测和跟踪方法二者。另选实施方式可包括具有单个分类器的系统,该分类器以与本申请中所公开的训练方法相似的方式训练。然而,另选实施方式的一个可能限制可以是每当对od/pe/跟踪系统的管线之一进行设计改变时,可能需要重新训练分类器。重新训练本申请的系统可能更简单,因为仅与改变的管线关联的回归元需要重新训练。另外,本申请的系统可按照比另选实施方式中更简单的方式解决学习问题,因为参数空间可更小,因此可承受更简单的架构。根据一些典型的情况,开发者可能需要1)收集训练数据,2)尝试以多个配置执行姿态估计(或对准),并且3)选择用于执行跟踪的配置或算法模型(回归元)。然而,根据本公开的实施方式,开发者可获得推荐而无需第二步。如上所述,用于回归元的机器学习算法可以是随机森林算法,但是在一些实施方式中,python机器学习包(例如,scikit-learn)可用于学习特征向量和评估得分上的随机森林。需要注意的是,推荐系统还可将所计算的信息用于不同于管线推荐的目标。每图像或每模型计算的特征、直方图、度量等也可用于“性能预测”,其中推荐系统向用户提供关于各个训练输入数据多适合于给定管线的指导。如果用户决定训练输入数据不够适合于他的目的,则他可选择重新收集训练输入数据。尽管这并不完全为与管线推荐相同的目的服务,但两个不同的目标可相关。评估框架可在python中实现,使得易于使用scikit-learn来训练python环境内的随机森林。在训练两个回归元之后,python环境包含存储器中的随机森林对象。然后,另一脚本加载随机森林对象并生成在c++中实现随机森林的高效c++源代码。然后,c++代码被包括在arsdk附带的推荐系统的源代码中。上面提供了各种实施方式的描述。下面,本公开总结各种实施方式的各个方面和益处。以下描述还包括训练和推荐特征的更多细节以及评分的讨论。特征向量图8是示出系统800的图,其示出基于训练输入数据创建特征向量的数据流。训练数据集被供应给特征检测器808,特征检测器808从训练数据集中的一个或更多个真实和/或合成图像804和cad模型806生成特征向量。然后,特征向量可被供应给回归元以用于训练。下面描述基于训练输入数据生成特征向量的示例。根据本实施方式,特征向量包括说明由对应3d模型表示的目标对象的复杂度的一些元素。聚合度量(mc得分)可以是特征向量中使用的元素。另外,从真实和/或合成图像提取的诸如角和边缘的2d特征的数量可以是特征向量的元素。几何复杂度由中等(m)、不规则(i)、边界(b)或平滑(s)(以下,“mibs”)的表面比例描述。补丁中的每一个3d点与其最佳拟合平面之间的平均距离通过mibs归类。例如,边界补丁(b)是在其超过5%的点且少于95%的点中包含对象的那些。下表描述了归类:补丁类型条件中等0.5%对象大小<平均距离<2%对象大小不规则平均距离>2%对象大小边界5%补丁大小<包含对象的点<95%补丁大小平滑平均距离<0.5%对象大小mibs得分是属于各个类型的补丁的比例,由四个数字组成。例如,mibs得分可包括中等=0.1,不规则=0.05,边界=0.45,平滑=0.4。如果补丁适合边界条件和另一条件二者,则补丁将被视为“边界”补丁。mibs得分与2d特征(在一个实施方式中,角特征)的数量组合,以生成mc得分。mc得分考虑了对象几何复杂度和对象上的特征的丰富度二者。将对象复杂度量化确定对象复杂度(例如,通过计算mibs得分)的因素是cad模型和对象在相机参考系中的姿态。首先,在相机参考系中渲染对象以获得不包含背景的感兴趣区域(roi)。通过将roi的长度和宽度分成等间隔的网格来将该roi分成补丁。例如,roi可被分成20行和20列。图4示出渲染并获得立方体400的补丁的示例。图4中的各个补丁402可为相同的尺寸并且可包含2d点(像素坐标)的集合。(应该注意的是,补丁402未必需要为正方形,可为任何形状或尺寸。)对于各个补丁402,各个2d点被变换到cad模型参考系以形成3d点的集合。平面将被计算为各个补丁402的最佳拟合,并且将通过平面对补丁402中的3d点的拟合程度来归类。确定最佳拟合平面是描述对象几何形状的一种方式,因为平面具有完全平滑的表面,并且很好地拟合平面的点往往属于平滑补丁。另一方面,属于粗糙或崎岖的表面的点将相对于最佳拟合平面具有大的几何距离。给定n个3d点的集合可利用使n个点的集合与平面之间的几何误差最小化的平面方程ax+by+cz+d=0来定义平面:c=min||p·[a,b,c,d]t||(1)其中p是包含点的集合的坐标的矩阵:可利用奇异值分解(svd)来求解最佳拟合平面的计算。在一个实现方式中,可进行近似以近似最佳拟合平面。为了利用具有n个未知系数的m个线性方程的超定系统对于x求解线性最小二乘方程yx=b,可使用下式:x=(yty)-1yt(2)其中这可通过假设a=1从平面方程应用于最佳拟合平面计算。例如,当by+cz+d=0时,最小二乘方程变为:因此,可利用上面的方程(2)求解a=1的平面。针对b=1、c=1和d=1的假设重复该操作,以获得四个平面。从这四个平面选择最佳拟合平面作为具有到点的最小平均几何距离的平面。由ax+by+cz+d=0描述的平面与3d点(x0,y0,z0)之间的几何距离可由下式计算:记录补丁中的每一个3d点与其最佳拟合平面之间的距离的算术平均。该距离平均用于对补丁进行归类以获得mibs得分。如果补丁适合边界和另一条件,则该补丁将被视为边界补丁。mibs得分是属于各个类型的补丁的比例,由四个数字组成(例如,m=0.1,i=0.05,b=0.45,s=0.4)。在mc中,存在计算的第五个数字:在包含对象的图像区域中检测到的角特征的数量。mc的前四个特征是“mibs”特征,第五个是角特征。在其它实施方式中,角特征可以是“orb”特征。如此计算的数字可以是特征向量中的部分元素。另外,从真实和/或合成图像提取的诸如角或边缘的2d特征的数量可以是特征向量的附加元素。根据一些实施方式,本公开可包括用于提供关于od/pe/跟踪系统的哪一配置最适合用于给定od/pe/跟踪训练数据集的推荐的系统和/或方法。方法可包括使用机器学习算法来训练在推荐中使用的回归元。回归元可指用于执行回归过程以跟踪对象的管线内的算法。所计算的特征的附加用途训练工具还在系统的另一部分中使用相对于特征向量描述的所计算的信息。例如,训练工具可用于不同于管线推荐的目标。每图像或每模型计算的特征、直方图、度量等也用于“性能预测”,其中训练工具向用户提供关于各个训练图像多适合于给定管线的指导。如果用户决定训练图像不够适合于他的目的,则他可选择重新收集训练输入数据。尽管这并不完全为与管线推荐相同的目的服务,但据信,这两个不同的目标可能相关。对象的跟踪基于光流或其它运动性质(例如,图像运动数据)。然后,使用预期可能出现线的对象的cad模型,可进行姿态估计的细化。尽管参照本文所公开的实施方式描述了本发明,但实施方式不限制本发明的范围。对那些实施方式的修改或不同实施方式可落在本发明的范围内。本领域技术人员将理解,本发明的各方面可被具体实现为一种系统、方法或计算机程序产品。因此,本发明的各方面可采取全硬件实施方式、全软件实施方式(包括固件、常驻软件、微码等)或者将软件和硬件方面组合的实施方式的形式,其在本文中通常可全部称为“电路”、“模块”或“系统”。此外,本发明的各方面可采取在具体实现有计算机可读程序代码的一个或更多个计算机可读介质中具体实现的计算机程序产品的形式。可使用一个或更多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或非暂时性计算机可读存储介质。计算机可读存储介质可以是(例如,但不限于)电子、磁、光学、电磁、红外或半导体系统、设备或装置或者前述的任何合适的组合。非暂时性计算机可读存储介质的更具体的示例(非穷尽性列表)将包括下列项:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、便携式光盘只读存储器(cd-rom)、光学存储装置、磁存储装置或者前述的任何合适的组合。在本文献的上下文中,非暂时性计算机可读存储介质可以是可包含或存储由指令执行系统、设备或装置使用或与其结合使用的程序的任何有形介质。计算机可读信号介质可包括具体实现有计算机可读程序代码的传播数据信号(例如,在基带中或作为载波的一部分)。这样的传播信号可采取各种形式中的任何形式,包括(但不限于)电磁、光学或其任何合适的组合。计算机可读信号介质可以是不是非暂时性计算机可读存储介质并且可传送、传播或传输程序以供指令执行系统、设备或装置使用或与其结合使用的任何计算机可读介质。在计算机可读介质上具体实现的程序代码可使用任何适当的介质来发送,包括(但不限于)无线、有线、光纤线缆、rf等或者前述的任何合适的组合。用于实现本发明的各方面的操作的计算机程序代码可按照一个或更多个编程语言的任何组合编写,包括面向对象的编程语言(例如,java、smalltalk、c++等)以及传统过程编程语言(例如,“c”编程语言或类似的编程语言)。程序代码可完全在用户的计算机上执行,部分地在用户的计算机上执行,作为独立软件包执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户的计算机,或者可对外部计算机(例如,利用互联网服务提供商通过互联网)进行连接。上面参照根据本发明的实施方式的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各方面。将理解,流程图和/或框图的各个方框以及流程图和/或框图中的方框的组合可由计算机程序指令来实现。这些计算机程序指令可被提供给通用计算机、专用计算机或者其它可编程数据处理设备的处理器以生成机器,使得经由计算机或其它可编程数据处理设备的处理器执行的指令创建用于实现流程图和/或框图方框中所指定的功能/行为的手段。这些计算机程序指令也可被存储在计算机可读介质中,其可指导计算机、其它可编程数据处理设备或其它装置按照特定方式起作用,使得存储在计算机可读介质中的指令生成包括实现流程图和/或框图方框中所指定的功能/行为的指令的制品。计算机程序指令也可被加载到计算机、其它可编程数据处理设备或其它装置上以使得在计算机、其它可编程设备或其它装置上执行一系列操作步骤以生成计算机实现的处理,使得在计算机或其它可编程设备上执行的指令提供用于实现流程图和/或框图方框中所指定的功能/行为的步骤。附图中的流程图和框图示出根据本发明的各种实施方式的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这方面,流程图或框图中的各个方框可表示模块、段或代码部分,其包括用于实现所指定的逻辑功能的一个或更多个可执行指令。还应该注意的是,在一些另选实现方式中,方框中标明的功能可不按图中所标明的次序发生。例如,根据所涉及的功能,连续示出的两个方框实际上可基本上同时执行,或者方框有时可按照相反的次序执行。还将注意的是,框图和/或流程图中的各个方框以及框图和/或流程图中的方框的组合可由执行指定的功能或行为的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现。本文中所使用的术语仅是为了描述特定实施方式,而非旨在限制本发明的实施方式。如本文所使用的,除非上下文清楚地另外指示,否则单数形式“一个”、“一种”和“该”旨在也包括复数形式。还将理解,当用在本说明书中时,术语“具有”、“包括”和/或“包含”指定所述特征、整体、步骤、操作、元件和/或组件的存在,但是不排除一个或更多个其它特征、整体、步骤、操作、元件、组件和/或其组的存在或添加。如具体要求保护的,下面的权利要求书中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与其它要求保护的元件组合执行功能的任何结构、材料或动作。为了例示和描述呈现了本发明的明确描述,但是其并非旨在为穷尽性的或限于明确公开的形式的本发明的实施方式。在不脱离本发明的实施方式的范围和精神的情况下,对于本领域普通技术人员而言许多修改和变化将是显而易见的。选择并描述实施方式以便最佳地说明本发明的实施方式的原理和实际应用,并且使得本领域普通技术人员能够理解本发明的实施方式的各种实施方式以及适合于可以想到的特定用途的各种修改。尽管本文例示和描述了特定实施方式,但是本领域普通技术人员将理解,被计算为实现相同目的的任何布置方式可替换所示的特定实施方式,并且本发明的实施方式在其它环境中具有其它应用。本申请旨在涵盖本发明的任何更改或变化。以下权利要求书决非旨在将本发明的实施方式的范围限于本文所描述的特定实施方式。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1