首页> 中国专利> 使用合成图像训练对象检测算法的方法和系统和存储介质

使用合成图像训练对象检测算法的方法和系统和存储介质

摘要

使用合成图像训练对象检测算法的方法和系统和存储介质。一种非暂时计算机可读介质,其实施使得一个或更多个处理器执行方法的指令。该方法包括以下步骤:(A)接收对于在一个或更多个存储器中存储的3D模型的选择,3D模型对应于对象;以及(B)设置检测真实场景中的对象的姿态时使用的摄像头的摄像头参数集。方法还包括以下步骤:(C)接收表示视图范围的数据的选择;(D)通过渲染视图范围内的3D模型,基于摄像头参数集生成至少一个2D合成图像;(E)使用该至少一个2D合成图像生成训练数据以训练对象检测算法;以及(F)将所生成的训练数据存储在一个或更多个存储器中。

著录项

  • 公开/公告号CN112926428A

    专利类型发明专利

  • 公开/公告日2021-06-08

    原文格式PDF

  • 申请/专利权人 精工爱普生株式会社;

    申请/专利号CN202110187705.9

  • 发明设计人 I·莫拉维奇;王洁;S·A·胡大;

    申请日2018-12-12

  • 分类号G06K9/00(20060101);G06K9/62(20060101);G06T7/70(20170101);G06T19/00(20110101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人黄纶伟;李辉

  • 地址 日本东京都

  • 入库时间 2023-06-19 11:19:16

说明书

本申请是申请号为201811515330.9(申请日为2018年12月12日,发明名称为“使用合成图像训练对象检测算法的方法和系统和存储介质”)的发明专利申请的分案申请。

技术领域

本公开总体涉及训练对象检测算法的领域,更具体地涉及使用合成二维(2D)图像训练对象检测算法的方法和系统。

背景技术

增强现实(AR)已经随着计算机技术的进步而变得越来越常见。AR的一般定义是拍摄真实世界场景并使用软件添加人造(虚拟)元素。这可以增强真实世界的用户感知或向用户提供娱乐。

对象跟踪在许多AR实施方案中使用。在对象跟踪中,真实世界对象被人造对象“跟随”,人造对象诸如计算机图形增强或信息泡(如由用户感知的)。换言之,如果真实世界对象移动或用户的视图相对于真实世界对象移动,则人造对象将相对于真实世界对象保持在相同位置中,和/或将基于真实世界对象的移动和/或新位置来确定人造对象的内容。许多AR实施方案中还使用位置跟踪。在位置跟踪中,虚拟对象将停留在场景中的一个位置中,而不管用户的移动如何。

用于实施AR的一个平台是智能电话。摄像头、显示装置以及处理器在同一装置上的存在允许软件将人造元素容易地添加到由摄像头拍摄的现场场景。而且,运动传感器和定位器(例如,加速计和GPS)在这些装置上的存在由软件利用来更佳地实施AR。

虽然智能电话提供了用于实施AR的简单且方便的平台,但它们不提供针对用户的非常沉浸式的体验。这是因为用户的眼睛与智能电话在空间上是分开的,并且不是用他们自己的眼睛感知环境,其观看如由摄像头拍摄的场景。

发明内容

为了对AR体验改进,透明头戴式显示器(HMD)可以实施AR。这些系统通常为眼镜,在眼镜中在眼睛前面设置棱镜。用户直接借助眼镜来观看场景。棱镜允许将人造图像叠加在如由用户感知的场景上。同时,HMD使用摄像头从场景收集数据。

3D姿态估计是具有许多应用的重要技术,应用包括AR、VR以及机器人学领域。

跟踪器常使用初始化方法来第一次启动跟踪,并且在跟踪丢失的情况下重新启动跟踪。这会需要根据没有先前历史的图像估计对象的姿态,一种有时被称为对象检测和姿态估计(ODPE)的技术。

经常用要用于AR系统的摄像头拍摄的对象的图像来训练对象检测算法以识别特定对象。在至少一些已知系统中,训练处理的初始阶段耗时且人工执行。在这种人工训练中,训练者定位对象,使用AR系统的摄像头从大量不同视角拍摄对象的大量图像,并且向训练计算机上传图像。训练者使用训练计算机将对象的三维(3D)模型对齐到各所拍摄图像中的对象的图像。

本公开的一些方面的优点是解决了上述问题中的至少一部分,并且本公开的方面可以作为以下方面来实施。

本公开的一个方面是一种使用合成图像训练对象检测算法的方法。方法包括以下步骤:(A)接收对于在一个或更多个存储器中存储的3D模型的选择,3D模型对应于对象;以及(B)设置检测真实场景中的对象的姿态时使用的摄像头的摄像头参数集。设置摄像头参数集包括接收标识包括摄像头的增强现实(AR)装置的信息,并且至少部分基于标识AR装置的信息从一个或更多个存储器中存储的多个摄像头参数集获取用于摄像头的摄像头参数集。多个摄像头参数集中的各摄像头参数集在一个或更多个存储器中与多个不同AR装置中的至少一个AR装置关联。方法还包括以下步骤:(C)通过渲染视图范围内的3D模型至少基于摄像头参数集生成至少一个2D合成图像;(D)使用至少一个2D合成图像生成训练数据以训练对象检测算法;以及(E)将所生成的训练数据存储在一个或更多个存储器中。

本公开的另一个方面是一种使用合成图像训练对象检测算法的方法。方法包括以下步骤:(A)接收对于在一个或更多个存储器中存储的3D模型的选择,3D模型对应于对象;以及(B)设置检测真实场景中的对象的姿态时使用的摄像头的摄像头参数集。设置摄像头参数集包括在包括摄像头的增强现实(AR)装置变得由一个或更多个处理器借助数据连接可访问时,借助数据连接从AR装置获取摄像头参数集。方法还包括以下步骤:(C)通过渲染视图范围内的3D模型至少基于摄像头参数集生成至少一个2D合成图像;(D)使用至少一个2D合成图像生成训练数据以训练对象检测算法;以及(E)将所生成的训练数据存储在一个或更多个存储器中。

本公开的另外方面是一种使用合成图像训练对象检测算法的方法。方法包括以下步骤:(A)接收对于在一个或更多个存储器中存储的3D模型的选择,3D模型对应于对象;以及(B)设置用于检测真实场景中的对象的姿态的摄像头的摄像头参数集。方法还包括以下步骤:(C)接收表示视图范围的数据的选择;(D)通过渲染视图范围内的3D模型,至少基于摄像头参数集生成至少一个2D合成图像;(E)使用至少一个2D合成图像生成训练数据以训练对象检测算法;以及(F)将所生成的训练数据存储在一个或更多个存储器中。

附图说明

将参照附图描述本公开,附图中,同样的附图标记引用同样的要素。

图1是例示了示例HMD的示意构造的图。

图2是例示了图1所示的HMD的功能构造的框图。

图3是例示了用于执行本公开的方法的计算机的功能构造的框图。

图4是根据本公开的示例方法的流程图。

图5是用于与本公开的一些示例方法一起使用的图形用户接口(GUI)的输入窗口。

图6是与图5所示的GUI输入窗口关联的预览窗口。

具体实施方式

本公开总体涉及训练对象检测算法,更具体地涉及用于使用合成二维(2D)图像训练对象检测算法的方法和系统。

在一些实施方式中,诸如AR装置这样的对象检测装置使用训练后的对象检测算法。一些示例系统包括AR装置和/或与其接口连接。在又一些实施方式中,这里描述的用于训练对象检测算法的方法由AR装置本身来执行。

AR装置例如可以是HMD。将参照图1和图2描述适于与这里描述的方法和系统一起使用的示例HMD。

图1是HMD 100的示意构造。HMD 100是头戴式显示装置(头戴式显示器)。HMD 100为光学透射式。即,HMD 100可以使得用户感测虚拟图像,并且同时使得用户直接视觉识别外部场景。

HMD 100包括可戴在用户头上的穿戴带90、显示图像的显示部20以及控制显示部20的控制部10。显示部20在显示部20戴在用户头上的状态下使得用户感测到虚拟图像。使得用户感测到虚拟图像的显示部20还被称为“显示AR”。用户所感测的虚拟图像还被称为AR图像。

穿戴带90包括由树脂制成的穿戴基部91、由联接到穿戴基部91的布制成的带92、摄像头60、以及IMU(惯性测量单元)71。穿戴基部91具有沿着人前额的额区的形式弯曲的形状。带92被戴在用户的头部周围。

摄像头60起成像部的作用。摄像头60能够对外部场景成像,并且设置在穿戴基部91的中部。换言之,摄像头60在穿戴带90戴在用户头上的状态下设置在与用户前额的中心对应的位置中。因此,摄像头60对沿用户的视线方向在外部的真实场景的外部场景成像,并且在用户将穿戴带90戴在头上的状态下获取所拍摄图像,该图像是由摄像头60拍摄的图像。

摄像头60包括:摄像头基部61,该摄像头基部相对于穿戴基部91旋转;和镜头部62,该镜头部的相对位置相对于摄像头基部61固定。摄像头基部61被设置为能够在穿戴带90戴在用户头部上时沿着箭头CS1旋转,该箭头指示在包括用户的中心轴的平面中包括的轴线的预定范围。因此,镜头部62的光轴,即摄像头60的光轴的方向可以在箭头CS1的范围内改变。镜头部62对根据以光轴为中心的变焦变化的范围成像。

IMU 71是检测加速度的惯性传感器。IMU 71除了可以检测加速度之外,还可以检测角速度和地磁。IMU 71被并入穿戴基部91中。因此,IMU 71检测穿戴带90和摄像头基部61的加速度、角速度、以及地磁。

IMU 71对穿戴基部91的相对位置固定。因此,摄像头60可相对于IMU 71移动。进一步地,显示部20与穿戴基部91的相对位置固定。因此,摄像头60与显示部20的相对位置可移动。

显示部20联接到穿戴带90的穿戴基部91。显示部20为眼镜式的。显示部20包括右保持部21、右显示驱动部22、左保持部23、左显示驱动部24、右光学图像显示部26、以及左光学图像显示部28。

右光学图像显示部26和左光学图像显示部28在用户戴着显示部20时位于用户的右眼和左眼的前面。右光学图像显示部26的一端和左光学图像显示部28的一端在当用户戴着显示部20时与用户前额的中间对应的位置中连接到彼此。

右保持部21具有从端部ER沿大致水平方向延伸并且在中途斜向上倾斜的形状,该端部ER是右光学图像显示部26的另一端。右保持部21连接端部ER和在穿戴基部91的右侧的联接部93。

类似地,左保持部23具有从端部EL沿大致水平方向延伸并且在中途斜向上倾斜的形状,该端部EL是左光学图像显示部28的另一端。左保持部23连接端部EL和在穿戴基部91的左侧的联接部(图中未示出)。

右保持部21和左保持部23由左联接部93和右联接部93联接到穿戴基部91,以将右光学图像显示部26和左光学图像显示部28定位在用户眼睛的前面。注意,联接部93将右保持部21和左保持部23联接为能够在任意旋转位置中旋转并且能够固定。因此,显示部20被设置为能够相对于穿戴基部92旋转。

右保持部21是被设置为在用户戴着显示部20时从作为右光学图像显示部26另一端的端部ER延伸到与用户的颞区对应的位置的构件。

类似地,左保持部23是被设置为在用户戴着显示部20时从作为左光学图像显示部28另一端的端部EL延伸到与用户的颞区对应的位置的构件。右显示驱动部22和左显示驱动部24在用户戴着显示部20时设置在与用户头部相对的侧。

显示驱动部22和24包括液晶显示器241和242(下文中,还被称为“LCD 241和242”)以及以下说明的投影光学系统251和252。以下详细说明显示驱动部22和24的构造。

光学图像显示部26和28包括以下说明的导光板261和262以及调光板。导光板261和262由透光树脂材料等形成,并且将从显示驱动部22和24输出的图像光引导到用户的眼睛。

调光板是薄板状光学元件,并且被设置为覆盖在用户眼睛侧的相反侧的、显示部20的前侧。通过调节调光板的透射率,可以调节进入用户眼睛的外部光量,并且调节虚拟图像的可见度。

显示部20还包括连接部40,该连接部用于将显示部20连接到控制部10。连接部40包括连接到控制部10的主体线缆48、右线缆42、左线缆44以及联接构件46。

右线缆42和左线缆44是从主体线缆48分出的两根线缆。显示部20和控制部10经由连接部40执行各种信号的传输。作为右线缆42、左线缆44以及主体线缆48,例如,可以采用金属电缆或光纤。

控制部10是用于控制HMD 100的装置。控制部10包括操作部135,该操作部包括静电跟踪垫和可以被按压的多个按钮。操作部135设置在控制部10的面上。

图2是功能地示出了HMD 100的构造的框图。如图2所示,控制部10包括ROM 121、RAM 122、电源130、操作部135、CPU 140(这里有时还被称为处理器140)、接口180以及发送部51(Tx 51)和发送部52(Tx 52)。

电源130向HMD 100的各部供电。各种计算机程序存储在ROM 121中。CPU 140在RAM122中展开或加载在ROM 121中存储的计算机程序,以执行计算机程序。计算机程序包括用于实现以下说明的跟踪处理和AR显示处理的计算机程序。

CPU 140在RAM 122中展开在ROM 121中存储的计算机程序,以起操作系统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中的扬声器(图中未示出)和连接到联接构件46的左耳机34中的扬声器(图中未示出)。

处理部167与时间关联地从摄像头60获取所拍摄的图像。时间在该实施方式中可以或可以不基于标准时间。处理部167例如根据变换矩阵来计算对象(真实对象)的姿态。对象的姿态意指摄像头60与对象之间的空间关系(旋转和平移关系)。处理部167使用所计算的空间关系和由IMU 71检测的加速度等的检测值来计算变换矩阵,该变换矩阵用于将固定到摄像头60的坐标系转换成固定到IMU 71的坐标系。处理部167的功能是用于以下说明的跟踪处理和AR显示处理。

接口180是用于将是内容供应源的各种外部装置OA连接到控制部10的输入/输出接口。外部装置OA的示例包括内部存储有AR场景的存储装置、个人计算机(PC)、蜂窝电话终端以及游戏终端。作为接口180,例如,可以使用USB接口、微USB接口以及用于存储卡的接口。

显示部20包括右显示驱动部22、左显示驱动部24、起右光学图像显示部26的作用的右导光板261、以及起左光学图像显示部28的作用的左导光板262。右导光板261和左导光板262是透过来自真实场景的光的光学透视元件。

右显示驱动部22包括接收部53(Rx 53)、右背光光源控制部201和右背光光源221、右LCD控制部211和右LCD 241、以及右投影光学系统251。右背光光源控制部201和右背光光源221起光源的作用。

右LCD控制部211和右LCD 241起显示元件的作用。上述的显示元件和光学透视元件允许用户视觉地感知AR图像,该AR图像被显示元件显示为叠加在真实场景上。注意,在其他实施方式中,代替以上说明的构造,右显示驱动部22可以包括诸如有机电致发光(EL)显示元件的自发射显示元件,或者可以包括在视网膜上扫描来自激光二极管的光束的扫描式显示元件。这同样适用于左显示驱动部24。

接收部53起用于控制部10与显示部20之间的串行传输的接收器的作用。右背光光源控制部201基于输入控制信号来驱动右背光光源221。右背光光源221是诸如LED或EL元件的发光体。右LCD控制部211基于从图像处理部160和显示控制部190发送的控制信号来驱动右LCD 241。右LCD 241是上面多个像素以矩阵形状排列的透射式液晶面板。

右投影光学系统251由准直透镜来构造,该准直透镜将从右LCD 241发射的图像光转换成平行状态的光束。起右光学图像显示部26的作用的右导光板261在沿着预定光路反射图像光的同时将从右投影光学系统251输出的图像光引导到用户的右眼RE。注意,左显示驱动部24具有与右显示驱动部22的构造相同的构造,并且与用户的左眼LE对应。因此,省略左显示驱动部24的说明。

作为实施方式公开的技术所应用于的装置可以为除了HMD外的成像装置。例如,装置可以为没有图像显示功能的成像装置。

图3是例示了执行这里描述的方法的作为本实施方式中的信息处理装置的计算机300的功能构造的框图。计算机300包括CPU 301、显示单元302、电源303、操作单元304、存储单元305、ROM、RAM、AR接口309以及网络适配器310。电源303向计算机300的各单元供电。操作单元304是用于从用户接收操作的用户界面(GUI)。操作单元304包括键盘、鼠标和触摸板等及其驱动器软件。

存储单元305存储各项数据和计算机程序,并且包括硬盘驱动器、固态驱动器等。存储单元305包括3D模型存储部307和模板存储部308。3D模型存储部307存储通过使用计算机辅助设计(CAD)或其他3D重构方法创建的、目标对象的三维模型。训练数据存储部308存储如这里描述创建的训练数据(未示出)。存储单元305还存储用于由CPU 301执行的指令(未示出)。指令使得CPU 301执行这里描述的方法。AR接口309是用于到AR装置的通信连接的接口。AR接口可以为适于建立用于计算机300与AR装置之间的通信的数据连接的任意有线或无线接口。AR接口例如可以为Wi-Fi收发器、USB端口、

CPU 301从ROM和/或存储单元305读取各种程序(这里有时还被称为指令),并且在RAM中展开程序,以执行各种程序。合适的指令存储在存储单元305和/或ROM中,并且由CPU301执行为使得计算机300作为如这里描述的训练对象检测算法的训练计算机操作。在一些实施方式中,计算机300凭借合适的编程是用于使用合成图像来训练对象检测算法的系统。在其他实施方式中,HMD 100是用于使用合成图像来训练对象检测算法的系统。在又一些实施方式中,用于使用合成图像训练对象检测算法的系统包括计算机300和HMD 100。

这里描述的实施方式涉及用于使用合成图像(而不是真实世界对象的实际图像)来训练对象检测算法的方法和系统。如这里使用的,合成图像通常指2D图像,该2D图像不是由拍摄3D场景的表示的摄像头创建多。更具体地,关于训练对象检测算法来在由摄像头拍摄的图像帧中检测真实世界3D对象的表示,合成图像2D图像,该2D图像不是由拍摄真实世界3D对象的表示的摄像头创建。合成图像可以通过以下处理来生成:拍摄计算机中的对象的3D模型(例如,对象的3D CAD模型)的2D图像,绘制对象的2D图像(用手或使用计算机)等。应注意,合成图像包括合成图像的图像。例如,在一个实施方式中,照片或合成图像的扫描件本身可以是合成图像。相反,在一个实施方式下,为了本公开的目的,实际图像的图像(诸如真实世界3D图像的照片或照片的扫描件)可以不是合成图像。

图4是使用合成图像训练对象检测算法的示例方法400的流程图。方法400可以由计算机300执行,以训练针对与HMD 100一起使用的对象检测算法,并且将参照计算机300和HMD 100来描述。在其他实施方式中,方法400可以由不同计算机(包括例如控制部10)来执行,可以用于训练针对不同AR装置的对象检测算法,和/或可以用于训练针对基于图像帧执行对象检测的任意其他装置的对象检测算法。为了促进由计算机执行,方法400被实施为可以由一个或更多个处理器执行并且存储在非暂时计算机可读介质中的指令。

初始地,在S402中,CPU 301接收对于在一个或更多个存储器(诸如ROM或存储单元305)中存储的3D模型的选择。3D模型可以与对象检测算法要被训练为在2D图像帧中检测的真实世界对象对应。在示例实施方式中,选择从用户来接收,诸如由借助计算机300的GUI进行的用户选择来接收。

注意,3D模型在这里被讨论为用于在方法400中生成合成图像。然而,在一些实施方式中,可以不需要3D模型,相反,可以在步骤S402中使用除了3D模型之外的电子数据(例如,2D模型、一个或更多个2D或3D合成图像等)。由此可见,为了便于描述,使用3D模型来描述方法400的步骤(以及本公开的其他部分)。然而,本公开不限于步骤S402下以及在参考3D模型的任何地方的使用3D模型,应理解的是,一些实施方式可以与使用除了3D模型之外的电子数据有关。

在步骤S404中设置检测真实场景中的对象的姿态时使用的摄像头(诸如摄像头60)的摄像头参数集。由不同摄像头拍摄的同一真实场景的图像通常将至少某种程度基于各摄像头的特定构造和部件而不同。摄像头参数集至少部分定义其关联的摄像头将如何拍摄图像。在示例实施方式中摄像头参数集可以包括要由摄像头拍摄的图像的分辨率和摄像头固有特性(或“摄像头属性”),诸如X和Y方向焦距(分别为fx和fy)以及摄像头主点坐标(cx和cy)。其他实施方式可以使用另外或另选的参数用于摄像头参数集。在一些实施方式中,摄像头参数集由用户来设置,诸如由借助计算机300的图形用户接口(“GUI”)(如稍后关于图5讨论的)的用户选择来进行。

在一些实施方式中,摄像头参数集在不由用户进行选择的情况下由计算机300设置。在一些实施方式中,由计算机300设置默认摄像头参数集。该默认摄像头参数集可以在将用于检测真实场景中的对象的姿态的摄像头是未知或其参数未知时使用。默认摄像头集可以包括针对理想摄像头、特定摄像头、选择来摄像头参数集的最后摄像头的参数或任意其他合适的摄像头参数集。而且,一些实施方式提供设置摄像头参数集的上述方法中的一个或更多个的组合。

根据各种实施方式,可以由许多不同方式设置摄像头参数集(S404),包括由计算机从预存储在数据库上的多个模型取得预存储模型,计算机从所连接的AR装置接收摄像头参数,和/或通过用户直接输入(和/或修改)到GUI。然而,本申请不应限于这些特定实施方式。然而,这里在以下描述了上述实施方式。

首先,在一些实施方式中,设置摄像头参数集(S404)通过接收标识包括摄像头的已知AR装置的信息(S406)来执行。标识AR装置的信息诸如通过借助计算机的GUI从已知AR装置的列表选择AR装置来从用户输入接收。在其他实施方式中,用户可以诸如通过键入模型名、型号、编号等来输入标识AR装置的信息。

CPU 301至少部分基于标识AR装置的信息来获取摄像头的摄像头参数集(S408)。摄像头参数集可以从一个或更多个存储器(诸如存储单元305或本地或远程数据库)中存储的多个摄像头参数集来获取。各摄像头参数集在一个或更多个存储器中与多个不同AR装置中的至少一个AR装置关联。因为多个不同AR装置可以包括相同的摄像头,所以单个摄像头参数集可以与多个AR装置关联。

在一些实施方式中,在S404中设置摄像头参数包括在AR装置变得可由一个或更多个处理器访问时,借助数据连接从包括摄像头的AR装置获取摄像头参数集(S410)。例如,在HMD 100连接(有线或无线地)到计算机300的AR装置接口309时,CPU 301可以从HMD 100取得摄像头参数集(例如,存储在ROM 121中)在其他实施方式中,计算机300可以通过确定摄像头参数集来从AR装置获取摄像头参数集。例如,计算机300可以使得HMD 100中的摄像头60拍摄例如校准片的一个或更多个图像帧,并且计算机300可以分析产生的图像帧,以确定摄像头参数集。在又一些实施方式中,计算机300可以从AR装置取得AR装置和/或AR装置中的摄像头的标识,并且基于所取得的标识从一个或更多个存储器取得适当的摄像头参数集。如以上提及的,可以组合各种技术。例如,在一些实施方式中,如果AR装置对于计算机而言可用(例如,其连接到AR装置接口309),则从摄像头获取摄像头参数集,并且如果AR装置对于计算机而言不可用,则执行S406和S408的设置。

当设置了摄像头参数集,则CPU 301通过渲染视图范围内的3D模型,基于摄像头参数集生成至少一个2D合成图像(S414)。视图范围是在同步图像所针对的静止对象周围的摄像头60的潜在位置的范围。在示例性实施方式中,视图范围包括方位角分量和仰角分量。视图范围还可以包括距离分量,该距离分量设置视图范围内的潜在位置离对象的3D模型的距离。视图范围总体上定义了具有等于距离分量的长度的半径的球体的表面上的区域。生成合成图像所针对的在视图范围内的各视点表示对象的不同姿态。

在一些实施方式中,CPU 301在生成至少一个2D合成图像之前接收表示视图范围的数据的选择(S412)。该选择例如可以从经由GUI(诸如稍后对于图5示出并讨论的GUI)进行的用户选择来接收。在一些实施方式中,GUI包括对象的预览图和用户选择的视图范围的图形表示。在一些实施方式中,视图范围是用户所选择的对象的单个姿态。在其他实施方式中,视图范围是预定(例如,默认)视图范围。在另一些实施方式中,CPU 301使用预定视图范围,除非用户提供视图范围的不同选择(或预定视图范围的修改)。在一些实施方式中,预定视图范围在方位角或仰角中的一个或更多个上小于围绕对象的360度。以下将参照图5和图6更详细地说明视图范围。

CPU 301从视图范围内的位置生成表示3D模型的视图的、3D模型的至少一个2D合成图像。要生成的2D合成图像的数量可以是固定的、可变的或用户可选择的。只要生成至少一个2D合成图像,则可以生成任意合适数量的图像。如果生成单个2D合成图像,则对于视图范围内的中心点生成图像。如果生成超过一个图像,则贯穿视图范围相对均匀地生成图像。在一些实施方式中,如果视图的数量固定或由用户设置,则计算机300确定在视图范围内相聚多远来分离各图像,以实现视图范围内图像的某一分布,诸如平均分布(例如,使得各图像是离各相邻图像的视图相同距离的视图)。在其他实施方式中,计算机300基于视图范围的大小和图像的固定间隔生成可变数量的图像。例如,计算机可以从视图范围内的方位角和仰角的每一度、每五度、每十度、每二十度的视点生成图像。上述间隔是示例的,并且可以使用包括小于完全度间隔的任意其他合适间隔。图像之间的间隔对于方位角和仰角而言不需要相同。

计算机300基于在S404中设置的摄像头参数集生成至少一个2D合成图像。摄像头参数集改变用于图像的视点的3D对象的渲染,以复制从同一视点拍摄的真实世界对象的真实图像。在该实施方式中,生成合成图像的处理使用刚体变换矩阵和透视投影变换矩阵,该刚体变换矩阵用于将在3D模型坐标系中表示的3D点的3D坐标值变换成在图像摄像头坐标系中表示的坐标值,透视投影变换矩阵用于将变换后的3D坐标值投影为合成图像的虚拟平面上的2D坐标值。刚体变换矩阵与视点对应或简单地与视图对应,并且由表示围绕彼此正交的三个轴线的旋转的旋转矩阵和表示沿着三个轴线的平移的平移向量来表达。透视投影变换矩阵包括摄像头参数,并且被适当调节以使得虚拟平面与诸如摄像头60的摄像头的成像面对应。3D模型可以是CAD模型。对于各视图,计算机300通过向3D点应用刚体变换和透视投影变换将3D模型上的3D点变换并且投影为虚拟平面上的2D点,从而生成合成图像。

在S416中,计算机300使用至少一个2D合成图像生成训练数据以训练对象检测算法。可以使用适于与真实图像一起使用的任意技术来生成基于合成图像的训练数据。在一些实施方式中,生成训练数据包括使用2D合成图像生成外观模板和/或形状模板(S418)。外观模板包括诸如颜色、表面图像或文本、角等的一个或更多个特征。外观模板例如可以包括2D合成图像中的对象的特征的位置的坐标值及其特性描述、与这些2D位置对应的3D模型上的位置的坐标、以及生成2D图像的姿态的3D模型。形状模板在没有在外观模板中包括的表面特征的情况下以二维描述对象的形状。形状模板可以包括例如在表示2D合成图像中的对象的外部的轮廓线(下文中,还被简称为“轮廓”)中包括的点(2D轮廓点)的坐标值、与2D轮廓点对应的3D模型上的点、以及生成2D图像所针对的姿态的3D模型。在一些实施方式中,对于针对视图范围生成的各合成图像创建单独的形状和外观模板。在其他实施方式中,针对多个图像的数据可以存储在单个模板中。

所生成的训练数据被存储在一个或更多个存储器中(S419)。在一些实施方式中,训练数据存储在计算机的训练系统存储器305中。在一些实施方式中,当HMD 100借助AR装置接口309通信地联接到计算机300时,训练数据由计算机300存储在HMD 100的存储器(诸如ROM 121)中。在其他实施方式中,训练数据存储在计算机的训练系统存储器305和HMD100中。

在将训练数据存储在HMD 100中之后,HMD 100可以操作以基于训练数据来检测对象。在一些实施方式中,HMD通过尝试使用HMD的对象检测算法找到模板与图像之间的匹配来尝试在由摄像头60拍摄的真实场景的图像帧中检测对象。

在一些实施方式中,针对检测真实场景中的对象的姿态时使用的多个摄像头和/或AR装置生成训练数据。在一些这种实施方式中,在S404中设置摄像头参数集包括设置针对多个摄像头的多个摄像头参数集,S414包括至少基于多个摄像头参数集生成多个2D合成图像,并且S416包括使用多个2D合成图像来生成训练数据以训练针对具有多个摄像头的多个AR装置的对象检测算法。在其他实施方式中,步骤S404、S414以及S416(可选地包括S406、S408、S410、S412以及S418中的一个或更多个)简单地重复多次,每次对于不同摄像头执行。

如以上提及的,在一些实施方式中,执行方法400的计算机包括用于向用户提供信息和从用户接收选择的GUI。图5和图6是可以用作实施方法400的系统的一部分的GUI的图像。例如,GUI可以由计算机300显示在显示单元302上,并且经由操作单元304对用户输入进行响应。图5是用于从用户接收输入的GUI 500,并且图6是显示对象的3D模型602以辅助视图范围的选择和/或预览的预览窗口600。虽然将参照方法400描述图5和图6所示的GUI,但应理解,方法400可以在不使用图5和图6的GUI的情况下来执行,并且图5和图6所示的GUI可以用于用除了方法400外的方法执行训练。

初始地转到图5,GUI 500包括用于实施方法400的S402的模型加载按钮502和所选模型显示栏504。在示例实施方式中,在用户选择模型加载按钮502时,打开另一个窗口,以允许用户浏览到对于训练而要选择的3D模型位于的位置(计算机300、数据库或其他存储位置(本地或远程的))。所选模型显示栏504显示所选择的模型的位置(如果已经选择模型)。在一些实施方式中,用户可以通过将位置直接输入到所选模型显示栏504中来选择模型。而且,在一些实施方式中,用户可以通过任意其他合适的技术(包括通过将模型拖放到GUI500中)来选择模型。

可以通过在AR装置选择栏506中选择训练对象检测算法的AR装置在S404中设置摄像头参数集。在图5的例示性实施方式中,AR装置选择栏506是“下拉菜单”或“落下菜单”。在用户选择栏506时,下拉已知AR装置的列表,以供用户选择。在一些实施方式中,可以由计算机300通过检测来选择AR装置(例如如S410所述)。基于所检测/所选择的AR装置,计算机300取得在AR装置中包括的摄像头的摄像头参数集。在栏506中的AR装置中包括的摄像头的分辨率和摄像头固有参数显示在分辨率栏508和属性栏510中。在该实施方式中,分辨率和摄像头固有参数共同形成摄像头参数集。

在一些实施方式中,用户可以通过指定多个现有的合成图像在不必完成步骤S402的情况下将摄像头参数直接人工输入到属性栏510和/或分辨率栏508中。同样,可以允许用户修改由计算机输入到属性栏510和/或分辨率栏508中的摄像头参数。而且,在一些实施方式中,用户可以将输入/修改后的摄像头参数集与特定AR装置或摄像头关联,并且存储新摄像头参数集,以供将来使用。

GUI 500的设置部分512允许用户设置和/检查用于生成对象602的合成图像并且训练对象检测算法的设置。设置部分包括方位角设置部514、仰角设置部516、摄像头距离部518、模型旋转部520、单视图选择器524、光照选择器526、内部渲染选择器528以及特征水平选择器522。

将另外参照图6描述设置部分512。模型旋转部520允许用户选择对象的模型602的三维旋转。在示例实施方式中,模型的默认旋转是如在模型文件中存储的模型602的旋转。模型602根据在模型旋转部520中显示的模型旋转而在预览窗口600中显示。为了改变模型的旋转,用户可以在模型旋转部520中数字地输入旋转,或者在预览窗口600中旋转模型602,诸如通过选择并拖动模型以使它旋转(使用鼠标、触摸屏上的用户手指等)来进行。摄像头距离部518允许用户设置从模型到将被进行合成图像的摄像头的距离。在一些实施方式中,摄像头距离还可以通过使用鼠标上的滚轮来放大/缩小或由任意其他合适的控制来修改。

模型602根据旋转选择和摄像头距离选择而定向地在预览窗口600中显示,并且其被网格604部分包围。网格604限定围绕模型602的球体的一部分,模型602位于该球体的中心处。在一些实施方式中,网格604限定围绕模型602的完整球体。网格604是帮助使视图范围可视化以创建合成图像的视觉工具。网格包括仰角线608和方位角线。各方位角线以特定仰角在方位角方向606上追踪三百六十度。类似地,各仰角线在给定方位角在仰角方向608上追踪多达三百六十度。在所例示的示例中,网格604不是完整球体,并且仰角线追踪小于完整的三百六十度。方位角线和仰角线限定栅格部610。栅格部610包括所选择的栅格部612和未选择的栅格部614。所选择的栅格部612形成视图范围616。视图范围616是生成合成图像的摄像头位置或方位的范围。用户可以通过在预览窗口中选择栅格部610或通过在窗口500的方位角设置部514、仰角设置部516中数字地输入视图范围来选择视图范围。如果用户数字地输入视图范围,则将在预览窗口600中适当的栅格部610被选择。相反,如果用户在预览窗口600中选择(或未选)栅格部610,则输入窗口500中的数字表示将被相应更新。

在一些实施方式中,预设了视图范围616。在一些实施方式中,默认/预设的视图范围可以是固定的,即,不是用户可改变的。在其他实施方式中,默认/预设的视图范围可由用户改变。在示例实施方式中,默认视图范围616设置有六十度方位角和四十五度仰角的范围。

返回到图5,单视图选择器524允许用户选择合成模型602的单个视图。如果未选择单视图选择器524,则基于所选择的视图范围生成模型602的多个视图。光照选择器526允许用户在生成合成图像时选择是否应仿真光照。内部渲染选择器528允许用户在生成合成图像时选择是否应使用内部渲染。

特征水平选择器522用于指示模型602是多特征对象还是少特征对象,这促进训练对象检测算法。例如,模型602包括具有可以用于对象检测和跟踪的不同颜色、对比度、形状等的表面特征618。因此,在特征水平选择器522中选择多特征,并且训练对象检测算法以检测这种特征,例如通过创建一个或更多个外观模板。如果模型602不包括表面特征618或如果用户不想使用这种特征,则将在特征水平选择器522中选择少特征,并且训练对象检测算法以在不使用表面特征的情况下诸如通过使用形状模板来检测对象。

当用户准备好训练检测算法时,用户选择训练按钮532。计算机300响应性地根据用户选择的设置(或默认)来生成合成图像,基于该合成图像生成训练对象检测算法的训练数据,并且存储训练数据。所存储的训练数据已准备好由AR装置用于检测并跟踪对象,并且用户可以继续训练针对不同对象的算法或训练使用不同AR装置来检测同一对象的算法。

这里描述的各种实施方式提供了一种用于使用合成图像自动训练对象检测算法的系统。实施方式减少了训练算法中的用户介入量,免除了使用要被训练以检测对象的各特定AR装置拍摄实际对象的多个图像所需的时间和工作,并且免除了具有对象和要被训练的AR装置的实际副本的需要。

一些实施方式提供一种包含程序指令的非暂时存储介质(例如,ROM 121、RAM122、标识目标存储部139等),当这些程序指令在由计算机处理器(例如,CPU 140、处理器167、CPU 301)执行时执行这里描述的方法。

虽然已经参照这里的实施方式描述了本发明,但这些实施方式不限制本发明的范围。对这些实施方式的修改或不同实施方式可以落在本发明的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号