位置估计装置,跟踪器,位置估计方法和程序与流程

文档序号:22557309发布日期:2020-10-17 02:41阅读:191来源:国知局
位置估计装置,跟踪器,位置估计方法和程序与流程

本发明涉及位置估计装置、跟踪器、位置估计方法和程序。



背景技术:

已知一种用于估计跟踪器位置并生成环境地图的slam(同步定位和映射)技术。

在slam技术中,基于由跟踪器获取的感测数据(诸如由跟踪器中包括的相机捕获的图像)生成包括多个特征点的特征点数据。然后,在将生成的特征点数据与环境地图(是预先存储的点云)进行比较的结果的基础上,估计跟踪器的位置或方向并更新环境地图。



技术实现要素:

[技术问题]

发明者一直在考虑将slam技术应用到游戏等当中,戴着跟踪器的多个用户每个都参与其中。在这样的游戏等当中,有必要在跟踪器共享的公共坐标系中估计每个跟踪器的位置或方向。

然而,利用slam技术估计的跟踪器的位置和方向仅仅是在某一时刻相对于跟踪器的位置和方向。因此,使用slam技术估计每个跟踪器的位置和方向不能将估计的位置和方向映射到公共坐标系上。因此,不可能在公共坐标系中估计每个跟踪器的位置或方向。

本发明是考虑到上述问题做出的,并且本发明的目的是提供一种位置估计装置、跟踪器、位置估计方法和程序,其能够在公共坐标系中估计多个跟踪器中的每一个的位置或方向。

[问题解决方案]

为了解决上述问题,根据本发明的位置估计装置包括:点云存储部分,其存储使用公共坐标系表示位置的公共点云;以及估计部分,其估计第一跟踪器在所述公共坐标系中的位置或方向,以及第二跟踪器在所述公共坐标系中的位置或方向。所述估计部分基于所述公共点云和第一特征点数据估计所述第一跟踪器在所述公共坐标系中的所述位置或方向,所述第一特征点数据指示多个特征点的相对位置,并且是基于由所述第一跟踪器获取的第一感测数据生成的。所述估计部分基于所述公共点云和第二特征点数据估计所述第二跟踪器在所述公共坐标系中的所述位置或方向,所述第二特征点数据指示多个特征点的相对位置,并且是基于由所述第二跟踪器获取的第二感测数据生成的。

在本发明的一个实施例中,所述位置估计装置还包括:发送部分,所述发送部分将指示所述第一跟踪器在所述公共坐标系中的所述位置或方向的数据发送给所述第一跟踪器,并且所述发送部分将指示所述第二跟踪器在所述公共坐标系中的所述位置或方向的数据发送给所述第二跟踪器。

在该实施例中,所述发送部分还可将指示所述第二跟踪器在所述公共坐标系中的所述位置或方向的数据发送给所述第一跟踪器,并且所述发送部分还可将指示所述第一跟踪器在所述公共坐标系中的所述位置或方向的数据发送到所述第二跟踪器。

此外,在本发明的一个实施例中,所述位置估计装置还包括:添加部分,其基于所述公共点云和所述第一特征点数据,向所述公共点云添加在所述公共坐标系中的一个或多个位置处布置的一个或多个点,所述一个或多个位置与包含在所述第一特征点数据中的一个或多个所述特征点的一个或多个位置相关联。

可选地,所述点云存储部分还存储使用不同于所述公共坐标系的单独坐标系表示位置的单独点云;所述位置估计装置还包括:添加部分,当确定包含在所述公共点云中的多个点中的一些与包含在所述单独点云中的一些点一致时,将与包含在所述单独点云中的所述一些点相对应的点添加到所述公共点云中;在执行将与包含在所述单独点云中的所述一些点相对应的所述点添加到所述公共点云中之前,所述估计部分基于所述单独点云和所述第一特征点数据估计所述第一跟踪器在所述单独坐标系中的位置或方向;并且在执行将与包含在所述单独点云中的所述一些点相对应的所述点添加到所述公共点云中之后,所述估计部分基于所述公共点云和所述第一特征点数据估计所述第一跟踪器在所述公共坐标系中的位置或方向。

在本发明的一个实施例中,所述位置估计装置还包括:接收部分,所述接收部分从所述第一跟踪器接收所述第一特征点数据,所述接收部分从所述第二跟踪器接收所述第二特征点数据,所述估计部分基于由所述接收部分接收到的所述第一特征点数据,估计所述第一跟踪器在所述公共坐标系中的所述位置或方向,并且所述估计部分基于由所述接收部分接收到的所述第二特征点数据,估计所述第二跟踪器在所述公共坐标系中的所述位置或方向。

可选地,所述位置估计装置还包括:接收部分;以及特征点数据生成部分,其生成所述第一特征点数据和所述第二特征点数据,所述接收部分从所述第一跟踪器接收所述第一感测数据,所述接收部分从所述第二跟踪器接收所述第二感测数据,所述特征点数据生成部分基于所述接收到的第一感测数据生成所述第一特征点数据,所述特征点数据生成部分基于所述接收到的第二感测数据生成所述第二特征点数据,所述估计部分基于由所述特征点数据生成部分生成的所述第一特征点数据,估计所述第一跟踪器在所述公共坐标系中的所述位置或方向,并且所述估计部分基于由所述特征点数据生成部分生成的所述第二特征点数据,估计所述第二跟踪器在所述公共坐标系中的所述位置或方向。

根据本发明的另一种位置估计装置包括:点云存储部分,其存储多个点云,其中每个点云与区域相关联,位置信息获取部分,其获取指示跟踪器的位置的位置信息,点云选择部分,其从所述多个点云中选择与包括由所述位置信息指示的所述位置的所述区域相关联的点云,以及估计部分,其基于所述选择的点云和特征点数据估计所述跟踪器的位置或方向,所述特征点数据指示多个特征点的相对位置,并且是基于由所述跟踪器获取的感测数据生成的。

根据本发明的跟踪器包括:发送部分,其将指示所述跟踪器的位置的位置信息发送到服务器,所述服务器存储多个点云,其中每个点云与区域相关联;以及接收部分,其从所述服务器接收数据,所述数据指示在所述服务器中基于点云和特征点数据估计的所述跟踪器的位置或方向,所述点云是从所述多个点云中选择的、并且与包括由所述位置信息指示的所述位置的所述区域相关联,所述特征点数据指示多个特征点的相对位置、并且是基于由所述跟踪器获取的感测数据生成的。

根据本发明的位置估计方法包括以下步骤:基于使用公共坐标系表示位置的公共点云和第一特征点数据估计第一跟踪器在所述公共坐标系中的位置或方向,所述第一特征点数据指示多个特征点的相对位置,并且是基于由所述第一跟踪器获取的第一感测数据生成的,并且基于所述公共点云和第二特征点数据估计第二跟踪器在所述公共坐标系中的位置或方向,所述第二特征点数据指示多个特征点的相对位置,并且是基于由所述第二跟踪器获取的第二感测数据生成的。

根据本发明的程序使计算机执行:基于使用公共坐标系表示位置的公共点云和第一特征点数据估计所述第一跟踪器在所述公共坐标系中的位置或方向的步骤,所述第一特征点数据指示多个特征点的相对位置,并且是基于由所述第一跟踪器获取的第一感测数据生成的,并且基于所述公共点云和第二特征点数据估计第二跟踪器在所述公共坐标系中的位置或方向的步骤,所述第二特征点数据指示多个特征点的相对位置,并且是基于由所述第二跟踪器获取的第二感测数据生成的。

附图说明

图1是示出根据本发明实施例的位置共享系统的示例的配置图。

图2是示出根据本发明实施例的跟踪器的示例的配置图。

图3是示出公共点云的示例的图。

图4是示出第一单独点云的示例的图。

图5是示出第二独立点云的示例的图。

图6是示出捕获图像的示例的图。

图7是示出特征点的示例的图。

图8是示出第一单独点云的示例的图。

图9是示出第一单独点云的示例的图。

图10是示出公共点云的示例的图。

图11是示出捕获图像的示例的图。

图12是示出特征点的示例的图。

图13是示出第二单独点云的示例的图。

图14是示出示例性第二单独点云的图。

图15是示出公共点云的示例的图。

图16是示出在根据本发明实施例的位置共享系统中实现的功能的示例的功能框图。

图17是示出参考管理数据的示例的图。

图18是示出在根据本发明实施例的位置共享系统中执行的过程的示例的流程图。

具体实施方式

下面,将参考附图详细描述本发明的一个实施例。

图1是示出根据本发明实施例的位置共享系统1的示例的配置图。如图1所示,根据本实施例的位置共享系统1包括服务器10和多个终端(例如,本实施例中的跟踪器12)。在图1中,示出了跟踪器12a和跟踪器12b。

服务器10、跟踪器12a和跟踪器12b中的每一个都连接到诸如因特网的计算机网络14。因此,服务器10、跟踪器12a和跟踪器12b能够经由计算机网络14彼此通信。

如图1所示,例如,根据本实施例的服务器10是包括处理器20、存储部分22和通信部分24的服务器计算机。注意,服务器10可以由具有多个机箱的云系统或服务器系统实现。

处理器20是诸如cpu(中央处理单元)的程序控制设备,其例如根据安装在服务器10中的程序来操作。存储部分22例如是存储元件,诸如rom(只读存储器)或ram(随机存取存储器)、硬盘驱动器等。将由处理器20等执行的程序存储在存储部分22中。通信部分24是诸如网络板或无线lan(局域网)模块的通信接口。

例如,根据本实施例的每个跟踪器12是用于跟踪在本实施例中佩戴跟踪器12的用户的位置和方向的设备。在图1中,将头戴式显示器(hmd)示出为跟踪器12的示例。

如图2所示,根据本实施例的跟踪器12包括处理器30、存储部分32、通信部分34、输入/输出部分36、显示部分38、传感器部分40和音频输出部分42。

处理器30是诸如微处理器的程序控制设备,例如,其根据安装在跟踪器12中的程序进行操作。

存储部分32例如是存储元件,诸如rom或ram等。将由处理器30等执行的程序存储在存储部分32中。

通信部分34例如是通信接口,诸如无线lan模块。

输入/输出部分36例如是输入/输出端口,诸如hdmi(注册商标)(高清多媒体接口)端口、usb(通用串行总线)端口或aux(辅助)端口。

显示部分38例如是显示器,诸如液晶显示器或有机el(电致发光)显示器,并且设置在跟踪器12的正面。此外,显示部分38被封装在跟踪器12的外壳中。根据本实施例的显示部分38被配置成能够例如通过显示用于左眼的图像和用于右眼的图像来显示三维图像。注意,显示部分38可选地可以被配置为仅能够显示二维图像而不能显示三维图像。

传感器部分40例如包括诸如相机、惯性传感器(imu(惯性测量单元))、磁强计(即,方向传感器)和gps(全球定位系统)模块的传感器。例如,包括在传感器部分40中的相机以预定的帧速率捕获图像。此外,包括在传感器部分40中的磁强计以预定的帧速率向处理器30输出指示跟踪器12所朝向的方向的数据。此外,包括在传感器部分40中的惯性传感器以预定的帧速率向处理器30输出指示跟踪器12的加速度、旋转量、移动量等的数据。此外,包括在传感器部分40中的gps模块以预定的帧速率向处理器30输出指示跟踪器12的纬度和经度的数据。

音频输出部分42例如是耳机、扬声器等,并且输出由音频数据等表示的音频。

在本实施例中,例如,以如下所述的方式在服务器10中执行采用slam(同步定位和映射)技术的跟踪器12的位置和方向的估计。然后,从服务器10向跟踪器12提供指示由此估计的位置和方向的数据。

图3是示出根据本实施例的由服务器10管理的公共点云50的示例的图。公共点云50用于估计跟踪器12a和跟踪器12b中的每一个的位置和方向。如图3所示,公共点云50中包括多个点52。使用x1-y1-z1坐标系表示根据本实施例的公共点云50中的位置。因此,针对包括在公共点云50中的多个点52中的每一个,设置使用x1-y1-z1坐标系表示的坐标值。以下,x1-y1-z1坐标系将被称为公共坐标系。这里注意,公共点云50中包括的每个点52的坐标值可以表示为例如纬度,经度和海拔的组合。

图4是示出根据本实施例的由服务器10管理的第一单独点云54的示例的图。第一单独点云54用于估计跟踪器12a的位置和方向。如图4所示,在第一单独点云54中包括多个点56。为多个点56中的每一个设置使用x2-y2-z2坐标系表示的坐标值。以下,将x2-y2-z2坐标系称为第一单独坐标系。

图5是示出根据本实施例的由服务器10管理的第二单独点云58的示例的图。第二单独点云58用于估计跟踪器12b的位置和方向。如图5所示,在第二单独点云58中包括多个点60。为多个点60中的每一个设置使用x3-y3-z3坐标系表示的坐标值。以下,将x3-y3-z3坐标系称为第二单独坐标系。

在本实施例中,假设公共坐标系、第一单独坐标系和第二单独坐标系是彼此不同的独立坐标系。

在本实施例中,跟踪器12a和跟踪器12b的位置和方向的估计是基于图3所示的公共点云50、图4所示的第一单独点云54和图5所示的第二单独点云58执行的。

下面将描述基于跟踪器12a的传感器部分40生成的感测数据来估计跟踪器12a的位置和方向的示例。

在本实施例中,由跟踪器12a的传感器部分40中包括的相机以预定的帧速率捕获图像。以下,以这种方式捕获的图像将被称为捕获图像。捕获图像对应于由跟踪器12a的传感器部分40生成的感测数据的示例。在图6中,捕获图像62被示出为由包括在跟踪器12a的传感器部分40中的相机捕获的捕获图像的示例。对象64a和对象64b的图像包括在图6所示的捕获图像62中。

这里,在本实施例中,例如,如图7所示,基于捕获图像62提取捕获图像62的多个特征点66。在图7中,示出了沿对象64a和对象64b的边缘提取的特征点66。然后,生成指示所提取的特征点66的相对位置的特征点数据。这里,由于特征点66的相对位置在特征点数据中被指示,因此特征点数据可以被视为一种点云。

这里,特征点66的位置可由捕获图像62形成的二维平面上的二维坐标值(即,使用二维相机坐标系表示的二维坐标值)表示。可选地,特征点66的位置可由例如三维坐标值表示(即,使用三维相机坐标系表示的三维坐标值),三维坐标值包括由捕获图像62形成的二维平面上的二维坐标值和对应于深度的坐标值(在z方向)。

然后,在本实施例中,如图8所示,基于将从捕获图像62提取的特征点66与包括在第一单独点云54中的点56进行比较的结果,使用slam技术来估计跟踪器12a的位置68和方向70。这里估计的位置68和方向70例如对应于捕获到捕获图像62时跟踪器12a的位置和方向。此外,使用第一单独坐标系表示以上述方式估计的位置68和方向70。

然后,在本实施例中,从服务器10向跟踪器12a发送指示使用第一单独坐标系表示并以上述方式估计的位置68和方向70的数据,然后,跟踪器12a基于接收到的数据执行各种处理。

然后,在本实施例中,如图9所示,将与特征点66的那些点(其对应点56未包括在第一单独点云54中)相对应的点56添加到第一单独点云54。在图9的示例中,区域r1中的多个点56被添加到第一单独点云54。注意,此时,可以基于特征点66来执行已经包括在第一单独点云54中的点56的位置的更新。

在这种情况下,可以针对生成的特征点66多次执行点56的添加和更新。此外,可以针对例如受天气或时间段影响的阴影的点的特征点66不执行点56的添加和更新。

然后,在本实施例中,将包括在第一单独点云54中的点56和包括在公共点云50中的点52进行比较。假设这里包括在第一单独点云54中的一些点56被确定为与包括在公共点云50中的一些点52一致。在这种情况下,如图10所示,将与第一单独点云54中包括的点56中的那些点(其对应点52未包括在公共点云50中)相对应的点52添加到公共点云50。在图10的示例中,将区域r2中的多个点52添加到公共点云50。

然后,在本实施例中,在如上所述将点52添加到公共点云50之后,将从捕获图像中提取的特征点与包括在公共点云50中的点52进行比较。因此,将使用公共坐标系来表示要估计的跟踪器12a的位置和方向。这里,用纬度、经度和高度表示的数据可以用作指示使用公共坐标系表示的每个位置和方向的数据。

在这种情况下,将与特征点中的那些点(其对应点52未包括在公共点云50中)相对应的点52添加到公共点云50。注意,此时,可以基于特征点执行已经包括在公共点云50中的点52的位置的更新。

在这种情况下,可以针对生成的特征点多次执行点52的添加和更新。此外,可以针对例如受天气或时间段影响的诸如阴影的特征点不执行点52的添加和更新。

下面将描述基于跟踪器12b的传感器部分40生成的感测数据来估计跟踪器12b的位置和方向的示例。

与跟踪器12a的情况一样,在本实施例中,由跟踪器12b的传感器部分40中包括的相机以预定的帧速率捕获捕获图像。捕获图像对应于由跟踪器12b的传感器部分40生成的感测数据的示例。在图11中,将捕获图像72示出为由包括在跟踪器12b的传感器部分40中的相机捕获的图像的示例。对象64c和对象64d的图像包括在图11所示的捕获图像72中。

这里,在本实施例中,例如,如图12所示,基于捕获图像72提取捕获图像72的多个特征点74。在图12中,示出了沿对象64c和对象64c的边缘提取的特征点74。然后,生成指示所提取的特征点74的相对位置的特征点数据。这里,由于特征点74的相对位置在特征点数据中被指示,因此特征点数据可以被视为一种点云。

这里,特征点74的位置可以由捕获图像72形成的二维平面上的二维坐标值(即,使用二维相机坐标系表示的二维坐标值)表示。可选地,特征点74的位置可由例如三维坐标值表示(即,使用三维相机坐标系表示的三维坐标值),三维坐标值包括由捕获图像72形成的二维平面上的二维坐标值和对应于深度的坐标值(在z方向)。

然后,在本实施例中,如图13所示,基于将从捕获图像72中提取的特征点74与包括在第二单独点云58中的点60进行比较的结果,使用slam技术来估计跟踪器12b的位置76和方向78。这里估计的位置76和方向78例如对应于捕获到的图像72时跟踪器12b的位置和方向。此外,使用第二个单独的坐标系表示以上述方式估计的位置76和方向78。

然后,在本实施例中,从服务器10向跟踪器12b发送指示使用第二单独坐标系表示并以上述方式估计的位置76和方向78的数据,然后,跟踪器12b基于接收到的数据执行各种处理。

然后,在本实施例中,如图14所示,将与特征点74的那些点(其对应点60未包括在第二单独点云58中)相对应的点60添加到第二单独点云58。在图14的示例中,将区域r3中的多个点60添加到第二单独点云58。注意,此时,可以基于特征点74来执行已经包括在第二单独点云58中的点60的位置的更新。

在这种情况下,可以针对生成的特征点74多次执行点60的添加和更新。此外,可针对例如受天气或时间段影响的阴影等的点的特征点74不执行点60的添加和更新。

然后,在本实施例中,将包括在第二单独点云58中的点60和包括在公共点云50中的点52进行比较。假设这里包括在第二单独点云58中的一些点60被确定为与包括在公共点云50中的一些点52一致。在这种情况下,如图15所示,将与第二单独点云58中包括的点60中的那些点(其对应点52未包括在公共点云50中)相对应的点52添加到公共点云50。在图15的示例中,将区域r4中的多个点52添加到公共点云50。

然后,在本实施例中,在如上所述将点52添加到公共点云50之后,将从捕获图像中提取的特征点与包括在公共点云50中的点52进行比较。因此,将使用公共坐标系来表示要估计的跟踪器12b的位置和方向。这里,用纬度、经度和高度表示的数据可以用作指示使用公共坐标系表示的每个位置和方向的数据。

在这种情况下,将与特征点中的那些点(其对应点52未包括在公共点云50中)相对应的点52添加到公共点云50。注意,此时,可以基于特征点执行已经包括在公共点云50中的点52的位置的更新。

在这种情况下,可以针对生成的特征点多次执行点52的添加和更新。此外,可以针对例如受天气或时间段影响的诸如阴影的点的特征点不执行点52的添加和更新。

如上所述,在本实施例中,基于第一单独点云54或第二单独点云来执行跟踪器12的位置和方向的估计,直到例如执行将点52添加到公共点云50为止。

然后,在这种情况下,如上所述,例如,向跟踪器12a提供指示使用第一单独坐标系表示的位置和方向的数据。同时,向跟踪器12b提供指示使用第二单独坐标系表示的位置和方向的数据。因此,在这种情况下,不能识别跟踪器12a的位置和方向与跟踪器12b的位置和方向之间的关系。

然而,在执行了将点52添加到公共点云50之后,向跟踪器12a和跟踪器12b中的每一个提供指示使用公共坐标系表示的位置和方向的数据。因此,根据本实施例,可以向跟踪器12提供跟踪器12在公共坐标系中的估计的位置或方向。

这里,在执行了将点52添加到公共点云50之后,可以将指示使用公共坐标系表示的跟踪器12b的位置和方向的数据提供给跟踪器12a。此外,在执行了将点52添加到公共点云50之后,可以将指示使用公共坐标系表示的跟踪器12a的位置和方向的数据提供给跟踪器12b。这将使得能够执行处理,该处理涉及在跟踪器12a和跟踪器12b的每一个中使用由两个跟踪器12共享的坐标系表示的两个跟踪器12a的位置和方向。

此外,在本实施例中,在基于公共点云50执行跟踪器12的位置和方向的估计的情况下,例如,即使第一次估计跟踪器12的位置和方向,也将使用公共坐标系表示的位置和方向提供给跟踪器12。这里,如上所述,可以向跟踪器12提供指示用纬度、经度和高度表示的跟踪器12的位置的数据。这将使得即使在第一次估计跟踪器12的位置和方向时也能够估计跟踪器12的绝对位置和方向。

此外,在本实施例中,通过每个跟踪器12执行跟踪器12的位置和方向的估计来增加公共点云50中包括的点52的数量。因此,根据本实施例,在执行估计跟踪器12的位置和方向的处理时,可以扩大由跟踪器12共享的公共点云50覆盖的区域。因此,在本实施例中,管理员等不必费心执行用于扩大由公共点云50覆盖的区域的处理。

此外,例如,可以基于由包括在跟踪器12的传感器部分40中的磁强计测量的跟踪器12的方向来估计跟踪器12的方向。然后,可以基于该方向、特征点数据和公共点云50,在方向估计的结果的基础上估计跟踪器12的位置和方向。这将导致跟踪器12的位置和方向估计的精度得到提高。

此外,可以通过服务器10中的多个数据库管理公共点云50。然后,在每个数据库中,可以存储对应于该数据库的区域(例如,纬度和经度的范围)的公共点云50。这里,与存储在各个数据库中的公共点云50相对应的区域可以部分地彼此重叠。

这里,例如,基于由跟踪器12的传感器部分40中包括的gps模块测量的跟踪器12的大致纬度和经度,可以识别与包括由该纬度和该经度表示的位置的区域相对应的数据库。然后,可以基于存储在识别数据库中的公共点云50和特征点数据来估计跟踪器12的位置和方向。这将使得能够比仅基于gps模块的测量结果来估计跟踪器12的位置和方向时更精确地估计跟踪器12的位置和方向。注意,跟踪器12的大致纬度和经度不一定由gps模块测量。跟踪器12的大致纬度和经度可以例如基于wi-fi(注册商标)接入点的标识信息(ssid(服务集标识符))、用于移动电话的基站的信息、由位置服务提供的信息等来识别。

此外,在服务器10中,可以例如通过与时间段、季节、天气状况等相关联的数据库来管理公共点云50。然后,在这种情况下,例如,可以基于存储在与估计时的时间段、季节、天气状况等相关联的数据库中的公共点云50来估计跟踪器12的位置和方向。

此外,捕获图像例如可以作为公共点云50、第一单独点云54和第二单独点云58的纹理存储在服务器10中。例如,这些纹理可用于使用机器学习的估计。此外,在这些纹理的基础上,还可以生成其他纹理。

此外,可以从公共点云50、第一单独点云54和第二单独点云58生成三维形状数据。例如,三维形状数据可用于使用机器学习的估计。

此外,结合指示跟踪器12的估计位置和方向的数据,可以向跟踪器12提供存储在服务器10中以便与估计的位置和方向相关联的附加信息(例如,标签)。

此外,基于所接收到的指示跟踪器12的位置和方向的数据,跟踪器12可以在导航系统中执行使显示部分38显示捕获到的道路图像的处理,例如该图像上沿道路适当地叠加用于引导的箭头。根据本实施例,可以预期,即使为视力受损的人也能够以足够的精度显示用于引导的箭头。

此外,例如,跟踪器12可以基于接收到的指示跟踪器12的位置和方向的数据来执行元数据的叠加处理,诸如餐馆的广告、评级和口碑评价,或者对观光点的补充说明。此外,跟踪器12可以执行例如使显示捕获图像的处理(在该捕获图像的适当位置和适当方向上叠加了虚拟对象),或者从捕获图像或捕获的运动图像中消除不必要的人的图形的处理。这里,例如,可以将包括在捕获图像中的人物的图形和从服务器10发送的背景图像叠加。

此外,例如,跟踪器12可以基于接收到的指示跟踪器12的位置和方向的数据来执行ar(增强现实)游戏中的处理,诸如寻宝游戏、怪物收集游戏或位置获取游戏。在这种情况下,例如,项目或怪物可以被安排成主要出现在具有少量纹理和注册的公共点云50的地方。这将使从具有少量纹理和公共点云50的地方收集特征点数据变得更容易。

此外,根据本实施例的位置共享系统1还可用于vr(虚拟现实)主题公园,其中在保持三维模型的形状的同时显示各种纹理,以及用于基于三维模型、纹理等自动生成真实世界内容。

此外,根据本实施例的位置共享系统1可以用于虚拟世界中的交易情况。例如,在虚拟世界中拥有场所的用户可以向该场所添加诸如广告的信息。

根据本实施例的位置共享系统1的其他可能应用包括例如,测量、土地管理、灾害模拟、vr(虚拟现实)旅行、飞行体验、自动行走、自动驾驶和自动飞行。

如上所述,根据本实施例的跟踪器12能够基于接收到的指示跟踪器12的位置和方向的数据来执行各种处理。

下面,将进一步描述根据本实施例的位置共享系统1的功能以及在位置共享系统1中执行的处理。

图16是示出在根据本实施例的位置共享系统1中实现的功能的示例的功能框图。注意,根据本实施例的位置共享系统1不一定实现图16所示的所有功能,并且可以实现图16所示功能以外的功能。

如图16所示,服务器10例如在功能方面包括点云存储部分80、参考管理数据存储部分82、特征点数据接收部分84、位置估计部分86、位置发送部分88和添加/更新部分90。点云存储部分80和参考管理数据存储部分82中的每一个主要由存储部分22实现。特征点数据接收部分84和位置发送部分88中的每一个主要由通信部分24实现。位置估计部分86和添加/更新部分90中的每一个主要由处理器20实现。根据本实施例的服务器10充当位置发送装置的角色,其将指示跟踪器12在公共坐标系中的位置或方向的数据发送到跟踪器12。

上述功能可由处理器20执行安装在作为计算机的服务器10中的程序来实现,该程序包含与上述功能相对应的命令。该程序可以例如通过计算机可读信息存储介质(诸如光盘、磁盘、磁带、磁光盘或闪存)或者通过因特网等提供给服务器10。

此外,如图16所示,跟踪器12例如在功能方面包括感测数据获取部分92、特征点数据生成部分94、特征点数据发送部分96、位置接收部分98和处理执行部分100。感测数据获取部分92主要由处理器30和传感器部分40实现。特征点数据生成部分94和处理执行部分100中的每一个主要由处理器30实现。特征点数据发送部分96和位置接收部分98中的每一个主要由通信部分34实现。

上述功能可由处理器30执行安装在作为计算机的跟踪器12中的程序来实现,该程序包含与上述功能相对应的命令。该程序可以例如通过计算机可读信息存储介质(例如光盘、磁盘、磁带、磁光盘或闪存)或者通过因特网等提供给跟踪器12。

在本实施例中,例如,点云存储部分80存储在估计跟踪器12的位置或方向时要参考的点云,诸如公共点云50、第一单独点云54和第二单独点云58。

这里,如上所述,基于由跟踪器12中的每个获得的感测数据来生成公共点云50。此外,如上所述,使用由跟踪器12共享的公共坐标系表示公共点云50中包括的点52的位置。使用第一单独坐标系表示包括在第一单独点云54中的点56的位置。使用第二单独坐标系表示包括在第二单独点云58中的点60的位置。

在本实施例中,例如,参考管理数据存储部分82存储图17所示的参考管理数据。如图17所示,根据本实施例的参考管理数据包括跟踪器id和参考点云数据。

跟踪器id是跟踪器12的识别信息。这里假设,例如,跟踪器12a的跟踪器id是001,并且跟踪器12b的跟踪器id是002。

参考点云数据是表示在估计由与参考点云数据相关联的跟踪器id标识的跟踪器12的位置或方向时要参考的点云的数据。图17中示出的参考管理数据指示跟踪器12a参考第一单独点云54,并且跟踪器12b参考第二单独点云58。

在本实施例中,例如,特征点数据接收部分84从跟踪器12接收指示特征点的相对位置的特征点数据。特征点数据接收部分84例如从跟踪器12a接收指示特征点的相对位置的第一特征点数据。这里,可以使用在由捕获图像62形成的二维平面上定义的二维相机坐标系、或由二维平面和深度方向定义的三维相机坐标系来表示第一特征点数据。此外,特征点数据接收部分84从跟踪器12b接收指示特征点的相对位置的第二特征点数据。这里,可以使用在由捕获图像72形成的二维平面上定义的二维相机坐标系、或由二维平面和深度方向定义的三维相机坐标系来表示第二特征点数据。

在本实施例中,例如,位置估计部分86基于如上所述的点云和特征点数据来估计跟踪器12的位置或方向。这里,位置估计部分86可以在参考管理数据中识别与跟踪器12的跟踪器id相关联的参考点云数据,跟踪器12已经发送了由特征点数据接收部分84接收的特征点数据。然后,位置估计部分86可以基于从跟踪器12发送的特征点数据和由所识别的参考点云数据表示的点云来估计跟踪器12的位置或方向。

在这种情况下,可以使用其中布置了所参考的点云的坐标系来表示跟踪器12的位置或方向。例如,在估计跟踪器12a的位置或方向时参考公共点云50的情况下,可以使用公共坐标系来表示跟踪器12a的位置或方向。同时,例如,在估计跟踪器12a的位置或方向时参考第一单独点云54的情况下,可以使用第一单独坐标系来表示跟踪器12a的位置或方向。

例如,在估计跟踪器12b的位置或方向时参考公共点云50的情况下,可以使用公共坐标系来表示跟踪器12b的位置或方向。同时,例如,在估计跟踪器12b的位置或方向时参考第二单独点云58的情况下,可以使用第二单独坐标系来表示跟踪器12b的位置或方向。

此外,如上所述,位置估计部分86可以使用由传感器部分40中包括的磁强计测量的跟踪器12的方向和/或由gps模块测量的跟踪器12的近似纬度和经度来估计跟踪器12的位置或方向。

在本实施例中,例如,位置发送部分88向跟踪器12发送指示由位置估计部分86估计的跟踪器12的位置或方向的数据。这里,位置发送部分88例如向跟踪器12a发送指示由位置估计部分86估计的跟踪器12a的位置或方向的数据。此外,位置发送部分88例如向跟踪器12b发送指示由位置估计部分86估计的跟踪器12b的位置或方向的数据。

这里,位置发送部分88可以另外向跟踪器12a发送指示跟踪器12b在公共坐标系中的位置或方向的数据。此外,位置发送部分88还可以另外向跟踪器12b发送指示跟踪器12a在公共坐标系中的位置或方向的数据。

在本实施例中,例如,添加/更新部分90基于如上所述由特征点数据接收部分84接收的特征点数据来执行点云中包括的点的添加和更新。这里,如图10所示,基于公共点云50和第一特征点数据,可以将在公共坐标系中与包括在第一特征点数据中的特征点的位置相关联的位置处布置的点52添加到公共点云50中。此外,如图15所示,基于公共点云50和第二特征点数据,可以将在公共坐标系中与包括在第二特征点数据中的特征点的位置相关联的位置处布置的点52添加到公共点云50中。

此外,添加/更新部分90可以确定包括在公共点云50中的一些点52是否与第一单独点云54中包括的一些点56一致。然后,当确定存在这样的一致时,可以将与第一单独点云54中包括的一些点56相对应的点52添加到公共点云50中。

这里,例如,当已经执行了上述对公共点云50添加点52时,添加/更新部分90可以将包括跟踪器12a的跟踪器id的参考管理数据中的参考点云数据的值更新为“公共点云”。在这种情况下,在执行上述对公共点云50添加点52之前,位置估计部分86基于第一单独点云54和第一特征点数据估计跟踪器12a在第一单独坐标系中的位置或方向。此外,在执行上述对公共点云50添加点52之后,位置估计部分86基于公共点云50和第一特征点数据估计跟踪器12a在公共坐标系中的位置或方向。因此,表示跟踪器12a的估计位置或方向的坐标系从第一单独坐标系切换到公共坐标系,而无需用户显式操作。

类似地,添加/更新部分90可以确定包括在公共点云50中的一些点52是否与第二单独点云58中包括的一些点60一致。然后,当确定存在这样的一致时,可以将与包括在第二单独点云58中的一些点60相对应的点52添加到公共点云50中。

这里,例如,当已经执行了上述对公共点云50添加点52时,添加/更新部分90可以将包括跟踪器12b的跟踪器id的参考管理数据中的参考点云数据的值更新为“公共点云”。在这种情况下,在执行上述对公共点云50添加点52之前,位置估计部分86基于第二单独点云58和第二特征点数据估计跟踪器12b在第二单独坐标系中的位置或方向。此外,在执行上述对公共点云50添加点52之后,位置估计部分86基于公共点云50和第二特征点数据估计跟踪器12b在公共坐标系中的位置或方向。因此,表示跟踪器12b的估计位置或方向的坐标系从第二单独坐标系切换到公共坐标系,而无需用户显式操作。

在本实施例中,例如,感测数据获取部分92获取由传感器部分40生成的感测数据。这里,感测数据获取部分92可以获取捕获的图像、方向数据、指示纬度和经度的数据等。

在本实施例中,例如,特征点数据生成部分94基于由感测数据获取部分92获取的感测数据来生成特征点数据。这里,如上所述,特征点数据生成部分94可以从捕获图像中提取多个特征点,并且生成指示所提取的特征点的相对位置的特征点数据。

在本实施例中,例如,特征点数据发送部分96将由特征点数据生成部分94生成的特征点数据发送到服务器10。这里,特征点数据发送部分96也可以向服务器10发送捕获图像、方向数据、指示纬度和经度的数据等。

在本实施例中,例如,位置接收部分98接收由服务器10的位置发送部分88发送的指示位置或方向的数据。

在本实施例中,例如,处理执行部分100基于由位置接收部分98接收的数据所指示的位置或方向来执行处理。如上所述,可以在处理执行部分100中执行各种处理,诸如游戏中的处理和导航处理。

此外,如上所述,点云存储部分80可以存储多个点云,每个点云都与区域相关联。

然后,特征点数据发送部分96可以获取指示跟踪器12的位置的位置信息,并将位置信息发送到服务器10。这里,位置信息可以是例如指示由跟踪器12的传感器部分40中包括的gps模块测量的跟踪器12的纬度和经度的信息。此外,位置信息可以是基于wi-fi(注册商标)接入点的标识信息(ssid)、用于移动电话的基站的信息、由位置服务提供的信息等生成的。

然后,位置估计部分86可以获取从跟踪器12发送的位置信息。然后,位置估计部分86可以从存储在点云存储部分80中的多个点云中选择点云,该点云与包括由从跟踪器12发送的位置信息指示的位置的区域相关联。

然后,位置估计部分86可以基于所选择的点云和特征点数据来估计跟踪器12的位置或方向,所述特征点数据指示基于跟踪器12获取的感测数据生成的特征点的相对位置。

然后,位置发送部分88可以将指示跟踪器12的估计位置或方向的数据发送到跟踪器12。然后,跟踪器12的位置接收部分98可以接收指示跟踪器12的位置或方向的数据。

这里,下面将参照图18所示的流程图描述由根据本实施例的跟踪器12a和服务器10执行的过程的示例。在该过程示例中,以预定帧速率重复执行下面将描述的s101到s112的处理。

首先,跟踪器12a的感测数据获取部分92获取由传感器部分40的相机捕获的捕获图像(s101)。

然后,跟踪器12a的特征点数据生成部分94从在s101的处理过程中获取的捕获图像中提取多个特征点,并且生成指示所提取的特征点的各自位置的特征点数据(s102)。

然后,跟踪器12a的特征点数据发送部分96将在s102的处理中生成的特征点数据发送到服务器10。然后,服务器10的特征点数据接收部分84接收发送的特征点数据(s103)。这里假设已经发送了特征点数据的跟踪器12a的跟踪器id与发送的特征点数据相关联。

然后,服务器10的位置估计部分86识别与s103的处理中接收到的特征点数据相关联的跟踪器id。然后,服务器10的位置估计部分86识别在参考管理数据存储部分82中存储的参考管理数据中与所识别的跟踪器id相关联的参考点云数据(s104)。

然后,服务器10的位置估计部分86基于由在s104的处理中识别的参考点云数据表示的点云和在s103处理中接收到的特征点数据来估计跟踪器12a的位置和方向(s105)。这里估计的位置和方向使用虚拟空间的坐标系来表示,在虚拟空间中,由s104处理中识别的参考点云数据表示的点云被布置在其中。

然后,服务器10的位置发送部分88向跟踪器12a发送指示在s105的处理中估计的跟踪器12a的位置和方向的数据。然后,跟踪器12a的位置接收部分98接收该数据(s106)。

然后,跟踪器12a的处理执行部分100基于在s106的处理中接收到的指示跟踪器12a的位置和方向的数据来执行预定的处理(s107)。

然后,服务器10的添加/更新部分90基于在步骤s103的处理中接收到的特征点数据,执行将点添加到在s105的处理中使用的点云,并更新包括在该点云中的点(s108)。注意,可以在执行s106的处理之后执行s108的处理。

然后,服务器10的添加/更新部分90确定由在s104的处理中识别的参考点云数据表示的点云是否是公共点云50(s109)。

如果确定由在s104的处理中识别的参考点云数据表示的点云是公共点云50(s109:是),则结束该过程示例中的处理循环。

假设由在s104的处理中识别的参考点云数据表示的点云被确定为不是公共点云50(s109:否)。在这种情况下,服务器10的添加/更新部分90将经过s108的处理的点云与公共点云50进行比较,以确定是否能够将该点云集成到公共点云50中(s110)。这里,例如,可以确定包括在公共点云50中的一些点56是否与经过s108处理的点云中包括的一些点一致。这里,如果确定存在这样的一致,则可以确定集成是可能的,而如果确定不存在这种一致,则可以确定集成是不可能的。

这里,如果确定不可能集成到公共点云50(s110:否),则结束该过程示例中的处理循环。

同时,假设确定可以集成到公共点云50中(s110:是)。在这种情况下,添加/更新部分90向公共点云50添加与经过s108的处理的点云中包括的一些点相对应的点(s111)。此时,可以执行包括在公共点云50中的点的更新。

然后,添加/更新部分90将包括跟踪器12a的跟踪器id的参考管理数据中的参考点云数据的值更新为“公共点云”(s112),并且结束该过程示例中的处理循环。

注意,在上述过程示例中的s105的处理中,位置估计部分86未能基于第一单独点云54和在s103的处理中接收到的特征点数据来估计跟踪器12a的位置和方向。在这种情况下,位置估计部分86可以基于公共点云50和在s103的处理中接收到的特征点数据来估计跟踪器12a的位置和方向。

上述过程示例中的处理同样由跟踪器12b和服务器10执行。

注意,本发明不限于上述实施例。

例如,服务器10和跟踪器12的角色可以以不同于上述的方式在其之间划分。例如,可替代地在服务器10中实现跟踪器12的特征点数据生成部分94。在这种情况下,跟踪器12的特征点数据发送部分96可以将由感测数据获取部分92获取的诸如捕获图像的感测数据发送到服务器10。然后,服务器10中的特征点数据生成部分94可以基于从跟踪器12接收到的感测数据来生成特征点数据。

此外,例如,可以在跟踪器12中而不是在服务器10中实现图16所示的点云存储部分80、参考管理数据存储部分82、位置估计部分86和添加/更新部分90的功能。

还应注意,上述特定字符串和数值以及附图中所示的特定字符串和数值仅仅是示例,并且这些字符串和数值不具有限制性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1