一种定位方法及手柄与流程

文档序号:11145044阅读:537来源:国知局
一种定位方法及手柄与制造工艺

本发明实施例涉及虚拟现实技术领域,特别涉及一种定位方法及手柄。



背景技术:

虚拟现实(Virtual Reality,简称VR)技术是20世纪末兴起的一门崭新的综合性信息技术,是一种先进的、数字化的人机接口技术,它的实时三维空间表现能力、自然的人机交互式操作环境以及给人带来的身临其境感受,将从根本上改变人与计算机之间枯燥、生硬和被动的现状,为人机交互技术开创了一个全新的研究领域,随着VR技术的发展,用来实现与虚拟物交换的手柄也受到了广泛的关注。

现有技术中实现手柄与虚拟物的交互主要是通过复用VR眼镜上光谱波段覆盖红外线的普通彩色摄像头采集手柄上LED灯的光源,然后将手柄上LED灯用亮与暗表示一定的编码,借助单目立体成像的原理,获取手柄的空间位置,从而通手柄位置的变化实现对虚拟物的交互。

但是,在实现本发明过程中,发明人发现现有技术中至少存在如下问题:由于现有技术中通常是逐帧分析其编码,一一比对,但是这种方法,会因某一帧的亮度变化不明显,导致无法提取为有效编码,也就无法识别有效编码,并且基于汉明码(或者其它编码)的单目立体视觉,会因LED随着角度或者运动速度的影响而亮度发生变化,导致编码难以有效识别,这就导致无法准确确定手柄的位置。



技术实现要素:

本发明实施方式的目的在于提供一种定位方法及手柄,使得在灯组中的灯亮度编码不明显的情况下,准确识别灯组中各个灯的具体位置信息,大大提高了编码识别的准确度。

为解决上述技术问题,本发明的实施方式提供了一种定位方法,待定物上具有灯组,所述定位方法包括:获取所述灯组中每个灯对应的识别编码;根据各所述识别编码确定所述灯组中各个灯的位置信息;其中,在确定一个所述灯的位置信息时,利用一个所述识别编码对预存的N个模型进行测试,确定所述识别编码所属的模型;根据与所述模型一一对应的位置信息,确定所述识别编码所对应的灯的位置信息;其中,所述N为大于1的自然数;利用各所述灯的位置信息进行三维姿态估计,确定所述待定物的位置。

本发明的实施方式还提供了一种手柄,包括:灯组,以及:获取模块,用于获取所述灯组中每个灯对应的识别编码;确定模块,用于根据各所述识别编码确定所所述灯组中各个灯的位置信息;定位模块,用于利用各所述灯的位置信息进行三维姿态估计,确定所述手柄的位置;其中,所述确定模块中包括:第一确定子模块,用于在确定一个所述灯的位置信息时,利用一个所述识别编码对预存的N个模型进行测试,确定所述识别编码所属的模型;第二确定子模块,用于根据与所述模型一一对应的位置信息,确定所述识别编码所对应的灯的位置信息;其中,所述N为大于1的自然数。

本发明实施方式相对于现有技术而言,通过预存多个提供了预设位置的模型,使得在灯组中的灯亮度编码不明显的情况下,可以利用识别编码与预设的多个模型进行测试,从而获得各个识别编码所属模型对应的预设位置,确定灯组中各个灯的具体位置信息,然后通过三维姿态估计得到待定物的准确位置,大大提高了编码识别的准确度。

另外,待定物包括手柄,所述手柄和采集设备对应,所述采集设备上具有用于拍摄所述灯组的摄像模组;所述获取灯组中每个灯对应的识别编码包括:获取所述摄像模组拍摄的图像;识别所述图像中所述灯组中各个灯的亮暗信息;利用所述亮暗信息,获取所述灯组中每个灯对应的识别编码。本发明实施方式提供了一种具体的获取灯组中每个灯对应的识别编码的方法,可以准确获取每个灯对应的识别编码。

另外,所述预存的N个模型利用以下方法计算得到:在所述手柄处于M个不同位置时,所述摄像模组分别拍摄所述LED灯组,得到M个图像;分别识别所述M个图像中所述灯组的亮暗信息;利用所述M个图像中所述灯组的亮暗信息,获取所述灯组中每个灯对应的M个识别编码;标记所述灯组中各个灯的位置信息;针对每个位置上的灯,利用对应的M个识别编码进行训练,分别获得每个位置的灯所对应的模型;其中,所述M为大于1的自然数。通过拍摄模组分别拍摄手柄处于多个不同位置时的LED灯组,获取多个图像,丰富样本,使得利用机器学习法进行训练后可以获得多个预设模型,从而丰富对比检测位置信息。

另外,所述利用标记为第一位置的灯的M个识别编码进行训练中,利用多分类的机器学习算法训练,所述第一位置为所述手柄上的某一位置。通过提供一种简单、高效的多分类的机器学习算法,实现了高效的从训练样本到预设模型的转换。

另外,利用亮暗信息,获取灯组中每个灯对应的识别编码,具体包括:根据预设的亮暗信息和信息编码的对应关系,获取每个灯对应的信息编码;获取所述待获取识别编码的灯自身的信息编码,作为第一编码;获取所述待获取识别编码的灯周围的P个灯的信息编码,作为P个第二编码;组合所述第一编码和所述P个第二编码,获得所述待获取识别编码的灯对应的识别编码;其中,所述P为大于1的自然数。通过利用这种一对多的方式获取每个灯的编码,增加编码长度,从而提升了识别编码的准确度。

另外,所述亮暗信息为:不同的亮度等级;其中,不同等级的亮度,对应不同的信息编码。通过将灯的亮暗划分为不同的亮度等级,并为每一等级的亮度设置一个与之对应的信息编码,使得识别到的编码信息所要传递的信息更加丰富,从而可以更加准确的获取到手柄的具体空间位置。

附图说明

图1是本发明第一实施方式一种定位方法的流程图;

图2是本发明第二实施方式一种定位方法的流程图;

图3是本发明第三实施方式一种定位方法的流程图;

图4是本发明第四实施方式一种手柄的结构框图;

图5是本发明第五实施方式的用户终端实际装置结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种定位方法,具体流程如图1所示。

在步骤101中,获取灯组中每个灯对应的识别编码。

具体的说,本实施方式中的定位方法主要应用于具有灯组的待定物,并且组成灯组的灯为形状各异,排列不规则的红外LED灯。

更具体的说,由于识别编码和LED灯的位置信息相对应,所以利用识别编码可以实现对LED灯位置信息的识别。

在步骤102中,利用识别编码对预存的5个模型进行测试,确定识别编码所属的模型。

比如说,系统中预存了5个模型,且每个预存模型中都有多个位置信息,将步骤101中获取到的LED灯组中每个灯对应的识别编码与这5个预存模型中的位置信息进行逐一检测,当检测到预存的位置信息中包含的识别编码与获取的识别编码一致时,判定对应该位置信息的预存模型为与获取到的识别编码对应的所属模型。

需要说明的是,在实际应用中预存的模型不局限于5个,可以为多个,只要保证预存模型个数大于1即可。

在步骤103中,根据与所属模型一一对应的位置信息,确定识别编码所对应的灯的位置信息。

具体的说,在获取到灯组中每个灯对应的识别编码后,将识别编码与每个预设模型唯一对应的位置信息进行对比检测,获取到该识别编码所对应的灯的位置信息。

在步骤104中,利用各个灯的位置信息进行三维姿态估计,确定待定物的位置。

需要说明的是,姿态估计是一种用于确定某一三维目标物体的方位指向问题的方法,主要应用于机器人视觉、动作跟踪和单照相机定标等应用领域。不同的应用领域,使用的姿态估计方法也不相同,本实施方式中所涉及的主要为基于视觉的姿态估计中根据算法划分的基于学习的姿态估计。

具体的说,三维姿态估计是利用待定物上的各点在二维投射后的平面成像,分析后确定待定物的三维姿态,是一种三维坐标和二维坐标的转换方法。本实施方式中,由于在步骤103中对各灯的位置信息进行了标定,所以在步骤104中,可以仅根据步骤101中获取的一幅二维投射图估计各灯的三维姿态。

本实施方式与现有技术相比,通过本实施方式中定位方法,使得在灯组中的灯亮度编码不明显的情况下,可以利用多个识别编码与预设的多个模型进行测试,从而获得各个识别编码所属模型对应的预设位置,确定灯组中各个灯的具体位置信息,然后通过三维姿态估计得到待定物的准确位置,通过这种方式提高编码的识别度,从而大大提高了编码识别的准确度。

本发明的第二实施方式涉及一种定位方法,本实施方式为第一实施方式的优化,具体流程如图2所示。

在步骤201中,利用待获取识别编码的灯自身的亮暗信息,获取识别编码。

具体的说,本实施方式中的定位方法主要应用于具有灯组的待定物,并且组成灯组的灯为形状各异,排列不规则的红外LED灯。在获取灯组中每个灯对应的识别编码时,首先需要通过与手柄对应的采集设备上的拍摄模组拍摄灯组,然后识别拍摄的图像中灯组中各个灯的亮暗,并按照事先根据不同亮度划分的亮度等级,获取到当前灯的亮度等级,然后获取与亮度等级对应的不同信息编码,从而得到灯组中每个灯对应的识别编码。

比如说,在摄像头采集到待定物上的红外LED灯组成的灯组的LED光源后,根据灰度值提取编码值,并将获取到的一个阶段的编码值的平均灰度值作为一个样本进行存储,将其编码的属性用label标签号来表示。

需要说明的是,本实施方式中的待定物为手柄,如虚拟现实VR手柄,另外,采集设备为VR眼镜或VR头盔等虚拟现实设备,从而可以更好的配合虚拟现实VR手柄。

在步骤202中,利用识别编码对预存的5个模型进行测试,确定识别编码所属的模型。

需要说明的是,预存的5个模型可以利用以下方法计算得到:

首先,在手柄处于M个不同位置时,通过摄像模组分别拍摄LED灯组,得到M个图像,其中,M为大于1的自然数;

然后,分别识别M个图像中灯组的亮暗信息,即不同的亮度等级;

然后,利用识别到的M个图像中灯组的亮度等级与预设的亮度等级对应的识别编码的关系,获取灯组中每个灯对应的M个识别编码;并标记灯组中各个灯的位置信息;

最后,针对每个位置上的灯,利用对应的M个识别编码,根据SVM多分类或者其他多分类的机器学习算法进行训练,分别获得每个位置的灯所对应的模型。

具体的说,SVM多分类算法是一种具有监督的学习算法,可以快速高效的进行模式识别、分类、以及回归分析。通过SVM多分类算法,可以有效避免手柄在运动中造成的“维数灾难”,快速高效的训练出可以用于进行对比检测的模型,并且还可以通过采集到的新样本,预测出识别编码的所属类别。

于实际应用中,预存的模型不局限于5个,可以为多个,只要保证预存模型个数大于1即可;并且手柄处于的M个不同位置,M需要至少为1000,通过这种获取众多位置上拍摄的LED灯组图形中的识别编码,丰富了训练样本,从而可以获取到多个可以用于对比检测的模型。

在步骤203中,根据与所属模型一一对应的位置信息,确定识别编码所对应的灯的位置信息。

具体的说,根据上述获取预存的5个模型的方法,在获取到灯组中每个灯对应的识别编码后,将识别编码与每个预设模型唯一对应的位置信息进行对比检测,获取到该识别编码所对应的灯的位置信息。

在步骤204中,利用各个灯的位置信息进行三维姿态估计,确定手柄的位置。

通过本实施方式中的定位方法,进一步的优化了在灯组中的灯亮度编码不明显的情况下,可以利用多个识别编码与预设的多个模型进行测试,从而获得各个识别编码所属模型对应的预设位置,确定灯组中各个灯的具体位置信息,然后通过三维姿态估计得到手柄的准确位置,通过这种方式提高编码的识别度,从而大大提高了编码识别的准确度。

本发明的第三实施方式涉及一种定位方法。本实施方式和第二实施方式大致相同,主要区别在于:第二实施方式中,利用灯本身的亮暗信息获得对应的编码;而本发明第三实施方式是利用待获取识别编码的灯自身的亮暗信息,以及其周围的若干个灯的亮暗信息,也就是多个灯的亮暗信息,获取与自身对应的识别编码,具体流程如图3所示。

在步骤301中,利用待获取识别编码的灯自身的亮暗信息,以及其周围的若干个灯的亮暗信息,获取识别编码。

具体的说,待获取识别编码的灯周围的灯,与待获取识别编码的灯间隔一个灯,之所以将间隔设置为一个灯,是因为组成手柄上灯组的LED的分布不规则,每个LED灯之间的距离不是固定的,并且形状大小也存在差异,如果待获取识别编码的灯周围的灯与其之间间隔多个灯,则可能会因为距离太远,获取不到该LED灯的亮暗信息,因此待获取识别编码的灯周围的灯,与待获取识别编码的灯间隔一个灯是一个较优的选择,通过这种设置,采用一对多的方式来获取每个灯的编码,在保证亮暗信息尽可能有效的前提下,增加了编码长度,从而可以提升识别准确度。

更具体的说,在利用亮暗信息,获取灯组中每个灯对应的识别编码时,需要根据预设的亮暗信息和信息编码的对应关系,获取每个灯对应的信息编码;并将获取到的待获取识别编码的灯自身的信息编码,作为第一编码;获取到的待获取识别编码的灯周围的5个灯的信息编码,作为5个第二编码;组合第一编码和5个第二编码,最终获得待获取识别编码的灯对应的识别编码。

需要说明的是,在实际应用中,待获取识别编码的灯周围的灯并不局限于5个,还有可以为其他个数,比如大于或等于2个。

在步骤302中,利用识别编码对预存的5个模型进行测试,确定识别编码所属的模型。

在步骤303中,根据与所属模型一一对应的位置信息,确定识别编码所对应的灯的位置信息。

在步骤304中,利用各个灯的位置信息进行三维姿态估计,确定手柄的位置。

由于图3中的步骤302至步骤304与图2中的步骤202至步骤204完全一样,旨在通过将识别编码与预测的多个模型中的位子信息进行逐一测试,获取到各个灯的具体位置信息,然后按照已知的三维姿态估计方法确定手柄的具体位置,这里不再赘述。

本实施方式中通过利用待获取识别编码的灯自身的亮暗信息,以及其周围的若干个灯的亮暗信息,获取多个识别编码,增加了编码长度,使得在灯组中的灯亮度编码不明显的情况下,可以利用多个识别编码与预设的多个模型进行测试,从而获得各个识别编码所属模型对应的预设位置,确定灯组中各个灯的具体位置信息,然后通过三维姿态估计得到手柄的准确位置,通过这种方式提高编码的识别度,从而大大提高了编码识别的准确度。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第四实施方式涉及一种手柄,具体结构如图4所示。

手柄400具体包括:灯组401、获取模块402、确定模块403、定位模块404。

灯组401是由多个红外LED灯按照不同的排列方式组成的,且每个红外LED灯的形状可以相同,也可以不同。

获取模块402,用于获取灯组401中每个灯对应的识别编码。由于识别编码和LED灯的位置信息相对应,所以利用获取到的识别编码可以实现对LED灯位置信息的识别。

确定模块403,用于根据获取模块402中获取到的各个灯的识别编码确定灯组中各个灯的位置信息。

需要说明的是,在实际应用中确定模块403是由第一确定子模块4031和第二确定子模块4032组成的。

在确定一个灯的位置信息时,确定模块403的实现流程如下:

首先,第一确定子模块4031利用一个识别编码对预存的N个模型进行测试,确定识别编码所属的模型其中,其中,N为大于1的自然数;然后,第二确定子模块4032,根据与模型一一对应的位置信息,确定识别编码所对应的灯的位置信息。

定位模块404,用于利用获取到的各个灯的位置信息进行三维姿态估计,确定手柄的位置。

于实际上,手柄400还包括存储模块405,用于将一个编码阶段的平均灰度值作为一个样本存储,其编码的属性用label号来表示,实现预存多个模型,方便在获取到识别编码后可以进行对比检测。

通过本实施方式中提供的手柄,使得在灯组中的灯亮度编码不明显的情况下,确定模块403通过将获取模块402获取到每一个灯对应的识别编码与预设的多个模型进行对比检测,准确识别灯组中各个灯的具体位置信息,大大提高了编码识别的准确度。

不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式。

下面对本发明涉及的用户终端的实际装置结构进行说明。

本发明的第五实施方式涉及一种用户终端,其具体结构如图5所示。该用户终端500包括:发光组件501、摄像模块502、处理器503、定位器504、存储器505。其中发光组件501可以为LED发光二极管,可以通过LED二极管发出的光的亮暗表示一定的信息。其中摄像模块502可以为VR眼镜或VR头盔等采集设备上的普通彩色摄像头,用于拍摄发光组件501发射的光源图像,获取其表达的信息。其中处理器503为终端的核心,上述装置实施例中涉及的确定模块处理的功能主义由处理器503实现。其中定位器504具有GPS定位系统,用了实现对发光组件501位置的确定。其中存储器505用于存储处理器503可执行代码或其他信息。

本实施方式中,当用户终端500中的发光组件501在位置变化过程中发出光后,通过拍摄模块502对发光组件501所处不同位置时进行拍摄,并从拍摄的图像中获取需要识别的信息,将获取到的信息传递给处理器503,处理器经过处理后,将处理后的结构发送至定位器504进行发光组件实际位置的最终确定,并发送到存储器505保存该具体信息。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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