本申请属于虚拟现实、定位技术领域,尤其涉及一种红外定位方法、红外定位装置及红外定位系统。
背景技术:
虚拟现实(virtualreality,简称vr)技术是一种可以创建和体验虚拟世界的计算机仿真系统,其利用计算机生成虚拟环境,由该虚拟环境为用户提供一个多源信息融合交互的三维动态视景,让用户沉浸在该虚拟环境中。
随着通信技术的不断进步和高速发展,虚拟现实应用也得到了广泛的使用。例如模拟虚拟驾驶中实时获取小车的位置,或是展厅中获取人体的位置热力图,又或是互动游戏中获取实物的相对位置,在这些虚拟现实应用中,需要根据物体的真实位置进行定位,开发出一套虚拟系统来与该真实位置匹配。现有的一些应用于虚拟现实的定位方法仅能对物体进行定位识别,无法确定物体的运动方向,难以满足虚拟现实应用中用户的沉浸感需求和交互需求。
技术实现要素:
技术问题
本申请实施例的目的之一在于:提供了一种红外定位方法、红外定位置以及红外定位系统,可以在虚拟现实应用中准确地定位并获取物体的运动方向,满足虚拟现实应用中用户的沉浸感需求和交互需求。
技术解决方案
为解决上述技术问题,本申请实施例采用的技术方案是:
第一方面,提供了一种红外定位方法,所述红外定位方法包括:
基于物体图像对待定位物体进行红外点识别处理,获取与所述待定位物体对应的红外点信息,其中,所述红外点信息包括三个红外点的坐标数据,且所述三个红外点呈等腰三角形分布;
根据所述三个红外点的坐标数据识别所述等腰三角形的顶点和底边中点,根据所述等腰三角形的顶点和底边中点生成指向所述顶点的方向向量,所述方向向量表征所述待定位物体的运动方向;
计算所述待定位物体的方向向量与虚拟环境预设坐标系之间的向量夹角,根据所述向量夹角确定所述待定位物体的运动方向。
在一个实施例中,所述基于物体图像对待定位物体进行红外点识别处理,获取与所述待定位物体对应的红外点信息,其中,所述红外点信息包括三个红外点的坐标数据,且所述三个红外点呈等腰三角形分布的步骤之后,包括:
结合所述三个红外点的坐标数据,按照三角形几何原理计算出所述等腰三角形的重心位置,将所述等腰三角形的重心位置确定为所述待定位物体的位置。
在一个实施例中,所述基于物体图像对待定位物体进行红外点识别处理,获取与所述待定位物体对应的红外点信息,其中,所述红外点信息包括三个红外点的坐标数据,且所述三个红外点呈等腰三角形分布的步骤,包括:
通过ccv计算机视觉库打开摄像机画面,从摄像机拍摄的画面中获取含有待定位物体的第一物体图像;
对所述第一物体图像进行红外点识别处理,识别出所述第一物体图像中的所有红外点;
对所述第一物体图像中的所有红外点进行个数统计处理,获取从所述第一物体图像中识别出的红外点个数;
若从所述第一物体图像中识别出的红外点个数为三个,则验证三个红外点是否呈等腰三角形分布;
若所述三个红外点呈等腰三角形分布,则获取所述三个红外点的坐标数据。
在一个实施例中,所述对所述第一物体图像中的所有红外点进行个数统计处理,获取从所述第一物体图像中识别出的红外点个数的步骤之后,包括:
若所述红外点个数少于三个或所述红外点个数等于三个但不呈等腰三角形分布,则按照预设的调整规则对所述通过ccv计算机视觉库打开的摄像机画面进行角度调整,并基于调整后的摄像机画面重新获取第二物体图像;
对所述第二物体图像进行红外点识别处理,识别出所述第二物体图像中的所有红外点;
对所述第二物体图像中的所有红外点进行个数统计处理,获取从所述第二物体图像中识别出的红外点个数;
若从所述第二物体图像中识别出的红外点个数为三个,则验证三个红外点是否呈等腰三角形分布;
若所述三个红外点呈等腰三角形分布,则获取所述三个红外点的坐标数据。
在一个实施例中,所述对所述第一物体图像中的所有红外点进行个数统计处理,获取从所述第一物体图像中识别出的红外点个数的步骤之后,包括:
若所述从所述第一物体图像中识别出的红外点个数多于三个,则从所述第一物体图像识别出的所有红外点中筛选出呈等腰三角形分布的三个红外点,并获取所述三个红外点的坐标数据。
第二方面,提供了一种红外定位装置,所述红外定位装置包括:
获取模块,用于基于物体图像对待定位物体进行红外点识别处理,获取与所述待定位物体对应的红外点信息,其中,所述红外点信息包括三个红外点的坐标数据,且所述三个红外点呈等腰三角形分布;
生成模块,用于根据所述三个红外点的坐标数据识别所述等腰三角形的顶点和底边中点,根据所述等腰三角形的顶点和底边中点生成指向所述顶点的方向向量,所述方向向量表征所述待定位物体的运动方向;
计算模块,用于计算所述待定位物体的方向向量与虚拟环境预设坐标系之间的向量夹角,根据所述向量夹角确定所述待定位物体的运动方向。
第三方面,提供了一种红外定位系统,所述红外定位系统用于实现上述第一方面任意一项所述红外定位方法的步骤,包括摄像端、检测端和定位计算端,其中:
所述摄像端用于拍摄待定位物体的图像并从所述图像中获取红外点信息其中,所述红外点信息中含有红外点的坐标数据;
所述检测端用于接收所述摄像端获取的红外点信息,从所述获取的红外点信息中识别出与所述待定位物体对应的三个红外点,其中,所述三个红外点呈等腰三角形分布;
所述定位计算端用于结合呈等腰三角形分布的三个红外点的坐标点数据,通过计算等腰三角形的重心位置确定所述待定位物体的在虚拟现实环境中的位置以及通过计算表征待定位物体运动方向的方向向量与虚拟环境预设坐标系之间的向量夹角确定所述待定位物体在虚拟现实环境中的运动方向,其中,所述表征待定位物体运动方向的方向向量由等腰三角形的底边中点指向等腰三角形的顶点获得。
在一个实施例中,所述定位计算端还可以用于对所述经过计算确定的所述待定位物体在虚拟现实中的位置及运动方向进行验证处理,若验证结果不通过,则将所述验证结果反馈至所述检测端并触发所述检测端重新从所述获取的红外点信息中识别与所述待定位物体对应的三个红外点,以使所述定位计算端重新计算所述待定位物体在虚拟现实中的位置及运动方向,直至验证结果通过为止。
在一个实施例中,所述定位计算端采用队列的工作模式进行定位计算,通过实时获取多组红外点数据并根据所述多组红外点数据对所述经过计算确定的所述待定位物体在虚拟现实中的位置及运动方向进行验证处理,其中,每一组红外点数据中包含有等腰三角形分布的三个红外点的坐标数据,所述验证处理包括对所述多组红外点数据进行期望值计算处理和方差值计算处理。
在一个实施例中,所述检测端通过预设的数据模板定时接收所述摄像端获取的红外点信息,其中,所述预设的数据模块中的数据类型被配置为列表数据类型。
第四方面,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述红外定位方法的步骤。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述红外定位方法的步骤。
有益效果
本申请实施例与现有技术相比存在的有益效果在于:通过在物体上搭载呈等腰三角形分布的红外灯,基于物体图像对待定位物体进行红外点识别处理,识别出三个红外灯对应在图像中呈等腰三角形分布的三个红外点的位置,并按照该位置获取三个红外点的坐标数据。进而,根据三个红外点的坐标数据识别出等腰三角形的顶点和底边中点并根据该等腰三角形的顶点和底边中点生成指向所述顶点的方向向量。最后,通过计算待定位物体的方向向量与虚拟环境预设坐标系之间的向量夹角,由该向量夹角确定该待定位物体当前的运动方向。由此,实现了在虚拟现实应用中确定待定位物体的运动方向,使得用户沉浸在虚拟环境中时仍能够辨别方向,增强了用户在虚拟环境中的沉浸感,而且通过在虚拟环境中辨别方向还可以实现人与人、人与物在虚拟环境中进行互动,满足用户在虚拟环境中的互动需求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种红外定位方法的基本方法流程示意图;
图2为本申请实施例提供的红外定位方法中获取与物体对应的红外点信息的一种方法流程示意图;
图3为本申请实施例提供的红外定位方法中获取与物体对应的红外点信息的另一种方法流程示意图;
图4为本申请实施例提供的一种红外定位装置的结构示意图;
图5为本申请实施例提供的一种红外定位系统的基本示意框图;
图6为本申请实施例提供的一种实现红外定位方法的电子设备的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本申请。
需说明的是,当部件被称为“固定于”或“设置于”另一个部件,它可以直接在另一个部件上或者间接在该另一个部件上。当一个部件被称为是“连接于”另一个部件,它可以是直接或者间接连接至该另一个部件上。术语“上”、“下”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。术语“第一”、“第二”仅用于便于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明技术特征的数量。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了说明本申请所提供的技术方案,以下结合具体附图及实施例进行详细说明。
本申请的一些实施例中,请参阅图1,图1为本申请实施例提供的一种红外定位方法的基本方法流程示意图。详述如下:
步骤s101中,基于物体图像对待定位物体进行红外点识别处理,获取与所述待定位物体对应的红外点信息,其中,所述红外点信息包括三个红外点的坐标数据,且所述三个红外点呈等腰三角形分布。
本实施例中,待定位物体为在虚拟现实应用中使用的vr(virtualreality,虚拟现实)设备,例如vr眼镜、vr头盔等等。通过在待定位物体上搭载有三个红外灯,并在搭载红外灯时使该三个红外灯呈等腰三角形分布。由此,在虚拟现实应用中对待定位物体进行定位时,可以通过摄像机拍摄出该待定位物体的图像,然后基于该图像对待定位物体进行红外点识别处理,例如通过在摄像机端配置红外滤光片,对摄像机拍摄的图像进行滤光处理识别出待定位物体上搭载的三个红外灯对应在图像中的三个红外点的位置,这三个红外点的位置组合呈等腰三角形分布。并且,基于该三个红外点的位置结合虚拟环境中预设置的坐标系即可获取该三个红外点的坐标数据。
步骤s102中,识别所述等腰三角形的顶点和底边中点,根据所述等腰三角形的顶点和底边中点生成指向所述顶点的方向向量,所述方向向量表征所述待定位物体的运动方向;
本实施例中,获得待定位物体搭载的三个红外灯对应在图像中的三个红外点的位置之后,根据该三个红外点呈现的等腰三角形,识别出该等腰三角形中的顶点和底边中点,具体地,在等腰三角形中,两条短边相交的点为顶点,顶点相对的边即为底边,由此通过识别等腰三角形的各边长度即可获得等腰三角形的顶点,而识别出等腰三角形的长边后,对该长边的长度分为二等份,其二等份分割所对应的点即为等腰三角形的底边中点。当识别出等腰三角形的顶点和底边中点之后,根据该等腰三角形的顶点和底边中点生成指向顶点的方向向量,并以此方向向量来表征待定位物体的运动方向。
步骤s103中,计算所述待定位物体的方向向量与虚拟环境预设坐标系之间的向量夹角,根据所述向量夹角确定所述待定位物体在虚拟环境中的运动方向。
本实施例中,虚拟环境预设坐标系是在虚拟现实应用中基于摄像机端俯视视角下设置的二维坐标系,二维坐标系与物体的方向向量位于同一个平面上。另外,二维坐标系的原点可以根据计算需求在虚拟现实应用构建的虚拟环境中进行指定,指定的原则为便于计算。在一些具体实现中,可以按照东南西北四个方位来确定该二维坐标系的x轴方向和y轴方向,例如东方向为x轴的正方向,北方向为y轴正方向,此时,通过计算待定位物体的方向向量与该二维坐标系中的x轴正方向之间的向量夹角和/或计算待定位物体的方向向量与该二维坐标系中的y轴正方向之间的向量夹角,根据该计算得出的向量夹角即可确定待定位物体在虚拟环境中的运动方向。
举例说明,通过计算待定位物体的方向向量与该二维坐标系中的x轴正方向之间的向量夹角来确定待定位物体在虚拟环境中的运动方向时,可以预先设定物体运动方向的确定规则为:对于物体的方向向量与该二维坐标系中的x轴正方向之间的向量夹角,沿逆时针方向,满足角度在0°<向量夹角<90°区间时确定物体运动方向为东偏北+向量夹角;满足角度在90°<向量夹角<180°区间时确定物体运动方向为北偏西+(向量夹角-90°);满足角度在180°<向量夹角<270°区间时确定物体运动方向为西偏南+(向量夹角-180°);满足角度在270°<向量夹角<360°区间时确定物体运动方向为南偏东+(向量夹角-270°)。据此,若计算得出待定位物体的方向向量与该二维坐标系中的x轴正方向之间的向量夹角为30°,则此时可以确定该待定位物体的运动方向为东偏北30°方向。
可以理解的是,通过计算待定位物体的方向向量与该二维坐标系中的y轴正方向之间的向量夹角来确定待定位物体在虚拟环境中的运动方向或者结合待定位物体的方向向量与该二维坐标系中的x轴正方向之间的向量夹角以及待定位物体的方向向量与该二维坐标系中的y轴正方向之间的向量夹角来确定该待定位物体在虚拟环境中的运动方向时,均可以通过预先设定待定位物体运动方向的确定规则,然后基于确定规则来确定该待定位物体在虚拟环境中的运动方向。运动方向的确定规则的设定与上述举例类似,此处不作赘述。
上述实施例提供的红外定位方法通过在物体上搭载呈等腰三角形分布的红外灯,基于物体图像对待定位物体进行红外点识别处理,识别出三个红外灯对应在图像中呈等腰三角形分布的三个红外点的位置,并按照该位置获取三个红外点的坐标数据。进而,根据三个红外点的坐标数据识别出等腰三角形的顶点和底边中点并根据该等腰三角形的顶点和底边中点生成指向所述顶点的方向向量。最后,通过计算待定位物体的方向向量与虚拟环境预设坐标系之间的向量夹角,由该向量夹角确定该待定位物体当前的运动方向。由此,实现了在虚拟现实应用中确定待定位物体的运动方向,使得用户沉浸在虚拟环境中时仍能够辨别方向,增强了用户在虚拟环境中的沉浸感,而且通过在虚拟环境中辨别方向还可以实现人与人、人与物在虚拟环境中进行互动,满足用户在虚拟环境中的互动需求。
本申请的一些实施例中,获取得到待定位物体对应的三个红外点坐标数据之后,还可以结合所述三个红外点的坐标数据,按照三角形几何原理计算出等腰三角形的重心位置,从而将该等腰三角形的重心位置确定为是该待定位物体的位置。具体地,按照三角形几何原理,各边中线的交点即为等腰三角形的重心。
本申请的一些实施例中,请参阅图2,图2为本申请实施例提供的红外定位方法中获取与物体对应的红外点信息的一种方法流程示意图。详细如下:
步骤s201中,通过ccv计算机视觉库打开摄像机画面,从摄像机拍摄的画面中获取含有待定位物体的第一物体图像;
步骤s202中,对所述第一物体图像进行红外点识别处理,识别出所述第一物体图像中的所有红外点;
步骤s203中,对所述第一物体图像中的所有红外点进行个数统计处理,获取从所述第一物体图像中识别出的红外点个数;
步骤s204中,若从所述第一物体图像中识别出的红外点个数为三个,则验证三个红外点是否呈等腰三角形分布;
步骤s205中,若所述三个红外点呈等腰三角形分布,则获取所述三个红外点的坐标数据。
本实施例中,采用本申请提供的红外定位方法在虚拟现实应用中进行物体定位时,首先通过连接摄像机设备,然后,通过ccv计算机视觉库打开该摄像机画面,进而从摄像机拍摄的画面中获取含有待定位物体的第一物体图像,然后通过对该第一物体图像进行红外点识别处理,以识别出第一物体图像中的所有红外点。ccv计算机视觉库(cachedcomputervisionlibrary)是一个基于c语言的、带缓存的现代计算机视觉库,内置有缓存机制、功能接口简洁,能够透明缓存并图像进行预处理。在本实施例中,通过在待定位物体上搭载三个红外灯,然后由ccv配合红外识别的方式来获得第一物体图像中与待定位物体对应的红外点,充分利用了ccv计算机视觉库处理图像数据的准确性,同时通过配合红外识别解决了ccv易受外界干扰以及对指定物体的辨别度低的缺陷。在本实施例中,识别出第一物体图像中的所有红外点后,由于第一物体图像可能会受到外界因素干扰而产生出红外灯以外的其他红外点,因此,可以通过对从该第一物体图像中识别出的红外点进行个数统计处理,以判别从该第一物体图像中识别出的红外点是否有且只有三个,若统计得到的红外点个数为三个,则验证该三个红外点是否呈等腰三角形分布。需要说明的是,在待定位物体上搭载三个红外灯时,该三个红外灯呈等腰三角形分布,因此,从第一物体图像中识别出的三个红外灯对应的红外点也应呈等腰三角形分布。据此,当统计得到第一物体图像中红外点个数为三个时,进一步验证该三个红外点是否为与待定位物体上搭载的三个红外灯相对应的三个红外点。具体地,可以根据等腰三角形的特征进行验证,例如,根据三个红外点的坐标数据计算出该三个红外点两两之间的距离,得到三角形的三条边的边长,判断三条边的边长中是否有两条边长相等,若有,则确认该三个红外点呈等腰三角形分布,也即验证该三个红外点为与待定位物体上搭载的三个红外灯相对应的三个红外点。当验证确认该三个红外点呈等腰三角形分布后,获取该三个红外点的坐标数据。可以理解的是,此处获得的坐标数据为基于摄像机配置的相机坐标系中的坐标数据,在一些具体实现中,还可以在虚拟环境中自定义配置一个便于计算的自定义坐标系,进而,通过坐标中映射的方式将获得的相机坐标系中的坐标数据转化为虚拟环境自定义配置坐标系中的坐标数据。
本申请的一些实施例中,请参阅图3,图3为本申请实施例提供的红外定位方法中获取与物体对应的红外点信息的另一种方法流程示意图。详细如下:
步骤s301中,若所述红外点个数少于三个或所述红外点个数等于三个但不呈等腰三角形分布,则按照预设的调整规则对所述通过ccv计算机视觉库打开的摄像机画面进行角度调整,并基于调整后的摄像机画面重新获取第二物体图像;
步骤s302中,对所述第二物体图像进行红外点识别处理,识别出所述第二物体图像中的所有红外点;
步骤s303中,对所述第二物体图像中的所有红外点进行个数统计处理,获取从所述第二物体图像中识别出的红外点个数;
步骤s304中,若从所述第二物体图像中识别出的红外点个数为三个,则验证三个红外点是否呈等腰三角形分布;
步骤s305中,若所述三个红外点呈等腰三角形分布,则获取所述三个红外点的坐标数据。
本实施例中,摄像机拍摄的画面可能存在未能正常拍摄到待定位物体搭载红外定的位置,因而可能造成摄像机拍摄的第一物体图像中的红外点个数少于三个或红外点个数等于三个但不呈等腰三角形分布的情况。此时,当统计得出第一物体图像中的红外点个数少于三个或等于三个但不呈等腰三角形分布时,可以通过对ccv计算机视觉库打开的摄像机画面进行角度调整,以使摄像机拍摄的画面正常拍摄到待定位物体搭载红外定的位置,进而在摄像机拍摄画面的角度调整完成后,基于调整后的摄像机画面重新获取第二物体图像。进而根据第二物体图像来获取与待定位物体对应的三个呈等腰三角形分布的红外点。在本实施例中,步骤s302-步骤s305与前述实施例中的步骤s202-步骤s205内容基本一致,此处不再赘述。
本申请的一些实施例中,由于第一物体图像可能会受到外界因素干扰而产生出红外灯以外的其他红外点,此时会出现从所述第一物体图像中识别出的红外点个数多于三个的情况。对于此种情况,在本实施例中,可以先识别出第一物体图像中的所有红外点,然后通过设定的筛选规则来进行筛选,例如等腰三角形的特征(有且只有两条相等的边),即通过每三个红外点绘制一个三角形,基于红外点的坐标数据判别三角形中是否有且只有两条边相等,由此即可筛选出呈等腰三角形分布的三个红外点。当从第一物体图像中的所有红外点中确定出呈等腰三角形分布的三个红外点后,获取该三个红外点的坐标数据。可以理解的是,若前述实施例中的第二物体图像中出现识别出的红外点个数多于三个的情况时,亦可根据本实施例提供的方法进行处理。
可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请的一些实施例中,请参阅图4,图4为本申请实施例提供的一种红外定位装置的结构示意图,详述如下:
本实施例中,所述红外定位装置包括:获取模块401、生成模块402、比以及计算模块403。其中,所述获取模块401用于基于物体图像对待定位物体进行红外点识别处理,获取与所述待定位物体对应的红外点信息,其中,所述红外点信息包括三个红外点的坐标数据,且所述三个红外点呈等腰三角形分布。所述生成模块402用于根据所述三个红外点的坐标数据识别所述等腰三角形的顶点和底边中点,根据所述等腰三角形的顶点和底边中点生成指向所述顶点的方向向量,所述方向向量表征所述待定位物体的运动方向。所述计算模块403用于计算所述待定位物体的方向向量与虚拟环境预设坐标系之间的向量夹角,根据所述向量夹角确定所述待定位物体的运动方向。
所述红外定位装置,与上述的红外定位方法一一对应,此处不再赘述。
本申请的一些实施例中,请参阅图5,图5为本申请实施例提供的一种红外定位系统的基本示意框图。如图5所示,所述红外定位系统50包括有摄像端51、检测端52和定位计算端53。其中:
摄像端51用于拍摄待定位物体的图像并从所述图像中获取红外点信息其中,所述红外点信息中含有红外点的坐标数据。在本实施例中,摄像端51采用红外结合开源的ccv计算机视觉库来进行物体识别,充分利用了ccv计算机视觉库处理图像数据的准确性,同时通过配合红外识别解决了ccv易受外界干扰以及对指定物体的辨别度低的缺陷。在一些具体实现中,通过连接启动摄像端,然后采用ccv计算机视觉库打开摄像端画面,进而通过调节ccv计算机视觉库参数来调整摄像端的画面,从摄像端画面中获取物体图像并识别物体图像中的红外点。在一些具体实现中,还可以通过设置物体图像的识别区域来避免外界因素的干扰,实时向检测端52传输红外点信息。
检测端52用于接收所述摄像端获取的红外点信息,从所述获取的红外点信息中识别出与所述待定位物体对应的三个红外点,其中,所述三个红外点呈等腰三角形分布。在本实施例中,检测端52采用tuio协议接收来自摄像端51的红外点信息。具体地,接收到来自摄像端51的红外点信息后,首先对这些红外点信息进行统计,确认从物体图像中获得的红外点的数量。进而,根据该获得的红外点的数量判断是否为可以形成等腰三角形的数量(三个),如果是则将该三个红外点的坐标数据传送至定位计算端53进行计算。否则,若红外点的数量多于三个,则可以通过设定筛选规则来进行筛选,例如通过每三个红外点绘制一个三角形,基于红外点的坐标数据判别三角形中是否有且只有两条边相等,由此筛选出呈等腰三角形分布的三个红外点,进而将该三个红外点的坐标数据传送至定位计算端53进行计算。若红外点少于三个或者等于三个但不呈等腰三角形分布,则结束检测操作并监听tuio信息,等待接收下一次的来自摄像端51的红外点信息。
在一些具体实现中,检测端52可以通过一预设的数据模板来接收来自摄像端51的红外点信息。具体地,设计一数据模板,使其具备将标准tuio协议数据转换成易于解析的列表(list)数据类型的功能,并且将该数据模板关联定时器,使得该数据模板按照定时器设置的时间间隔进行定时的数据获取处理。在本实施例中,定时器设定为20ms,即每秒获取50组红外点信息,实现了实际环境与虚拟环境之间的数据低时延,避免了虚拟现实应用中实际环境与虚拟环境数据不对称的问题。
定位计算端53用于结合呈等腰三角形分布的三个红外点的坐标点数据,通过计算等腰三角形的重心位置确定所述待定位物体的在虚拟现实环境中的位置以及通过计算表征待定位物体运动方向的方向向量与虚拟环境预设坐标系之间的向量夹角确定所述待定位物体在虚拟现实环境中的运动方向,其中,所述表征待定位物体运动方向的方向向量由等腰三角形的底边中点指向等腰三角形的顶点获得。在本实施例中,获得呈等腰三角形分布的三个红外点的坐标数据后,通过记录该三个红外点的坐标并将该三个红外点的坐标数据作为一组数据添加至计算队列中,以采用队列先进先出的工作模式进行数据计算。按照队列顺序对队列中的每一组数据进行等腰三角形重心位置的计算以及方向向量与虚拟环境预设坐标系之间向量夹角的计算,由此确定出待定位物体的在虚拟现实环境中的位置以及运动方向。
在一些具体实现中,定位计算端53还可以对经计算确定的待定位物体在虚拟现实中的位置及运动方向进行验证处理,若验证结果不通过,则将该验证结果反馈至检测端52并触发该检测端52重新从获取的红外点信息中识别与待定位物体对应的三个红外点,进而由定位计算端53重新计算待定位物体在虚拟现实中的位置及运动方向,直至验证结果通过为止。具体地,在本实施例中,由定位计算端53采用队列先进先出的工作模式进行数据计算,进而在该计算过程中,会实时存储n组红外点数据,其中,每一组红外点数据中包含有等腰三角形分布的三个红外点的坐标数据。然后实时地计算出该n组(例如10组)数据的期望值和方差值,由此对对经计算确定的待定位物体在虚拟现实中的位置及运动方向进行验证,借助期望值和方差值排除意外数据,使得待定位物体的定位信息更加精确可靠。
本申请的一些实施例中,请参阅图6,图6为本申请实施例提供的一种实现红外定位方法的电子设备的示意图。如图6所示,该实施例的电子设备6包括:处理器61、存储器62以及存储在所述存储器62中并可在所述处理器61上运行的计算机程序63,例如红外定位程序。所述处理器61执行所述计算机程序62时实现上述各个红外定位方法实施例中的步骤。或者,所述处理器61执行所述计算机程序63时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序63可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器62中,并由所述处理器61执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序63在所述电子设备6中的执行过程。例如,所述计算机程序63可以被分割成:
获取模块,用于基于物体图像对待定位物体进行红外点识别处理,获取与所述待定位物体对应的红外点信息,其中,所述红外点信息包括三个红外点的坐标数据,且所述三个红外点呈等腰三角形分布;
生成模块,用于根据所述三个红外点的坐标数据识别所述等腰三角形的顶点和底边中点,根据所述等腰三角形的顶点和底边中点生成指向所述顶点的方向向量,所述方向向量表征所述待定位物体的运动方向;
计算模块,用于计算所述待定位物体的方向向量与虚拟环境预设坐标系之间的向量夹角,根据所述向量夹角确定所述待定位物体的运动方向。
所述电子设备可包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图6仅仅是电子设备6的示例,并不构成对电子设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器61可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器62可以是所述电子设备6的内部存储单元,例如电子设备6的硬盘或内存。所述存储器62也可以是所述电子设备6的外部存储设备,例如所述电子设备6上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器62还可以既包括所述电子设备6的内部存储单元也包括外部存储设备。所述存储器62用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器62还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。