一种增强现实实现工具的设计方法与设备与流程

文档序号:13423195阅读:463来源:国知局
一种增强现实实现工具的设计方法与设备与流程

本发明涉及计算机技术领域,更具体地,涉及一种增强现实实现工具的设计方法与设备。



背景技术:

增强现实技术是指将虚拟的信息应用到真实世界,即将计算机生成的虚拟物体、场景或系统提示信息叠加到真实场景中,以实现增强现实的技术。增强现实技术能够实现对现实信息的补充和完善,增加用户对现实世界的感知。

传统的对于三维物体的增强现实实现主要通过多图识别来进行匹配,但是这种处理方式存在识别精度低、存储量大和运行效率差等问题。



技术实现要素:

为了克服上述问题或者至少部分地解决上述问题,本发明提供一种增强现实实现工具的设计方法与设备,以实现改善增强现实效果、降低系统存储量及提高系统运行效率的目的。

一方面,本发明提供一种增强现实实现工具的设计方法,包括:s1,在windows运行环境下,基于设定处理流程修改视觉slam算法并使其运行,生成所述视觉slam算法的动态链接库;s2,基于所述动态链接库,利用unity3d构建所述视觉slam算法与惯性测量单元协同的增强现实实现工具。

进一步的,在所述步骤s1之前,还包括:通过配置所述windows运行环境,实现所述视觉slam算法在所述windows运行环境下的运行。

其中,所述步骤s1中基于设定流程修改视觉slam算法的步骤进一步包括:将linux下的orb_slam2算法修改为monoslam算法。

进一步的,在所述步骤s1和所述步骤s2之间,还包括:将所述动态链接库导入unity3d;通过unity3d中monodevelop的开发平台对所述动态链接库c++接口的访问,实现对所述动态链接库的调用。

其中,所述步骤s2进一步包括:基于unity3d中monodevelop的开发平台,通过访问所述动态链接库c++接口,调用所述视觉slam算法的动态链接库;基于所述视觉slam算法的动态链接库、目标场景的惯性测量单元数据信息和扩展卡尔曼滤波器,利用unity3d中monodevelop的开发平台,实现视觉slam信息和所述惯性测量单元信息的融合。

其中,所述配置windows运行环境的步骤进一步包括:将所述视觉slam算法的动态链接库文件按对应文件目录结构存入所述windows运行环境,并将所述动态链接库文件的存储路径写入所述视觉slam算法的path环境变量;编辑跨平台编译工具的组态档,并通过添加所有待使用动态链接库文件的存储路径,设置其中的目标库。

进一步的,在所述步骤s2之后,还包括:基于所述增强现实协同处理模型,通过对目标场景进行特征提取和跟踪,实现增强现实。

其中,所述基于所述增强现实协同处理模型,通过对目标场景进行特征提取和跟踪,实现增强现实的步骤进一步包括:基于所述增强现实协同处理模型,提取当前所述目标场景特征,并对所述当前目标场景进行跟踪;基于所述跟踪获取的目标场景特征,实现虚拟元素与所述目标场景的叠加。

进一步的,在所述基于所述增强现实协同处理模型,提取当前目标场景特征的步骤之前还包括:根据用户操作,实现所述目标场景的初始化,所述用户操作包括点击开启按键打开相机或平移设备。

另一方面,本发明提供一种增强现实实现工具的生成设备,包括:至少一个存储器、至少一个处理器、通信接口和总线;所述存储器、所述处理器和所述通信接口通过所述总线完成相互间的通信,所述通信接口用于所述设备与用户输入装置通信接口之间的信息传输;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如如上所述的增强现实实现工具的设计方法。

本发明提供的一种增强现实实现工具的设计方法与设备,通过在unity3d开发环境中对视觉slam算法和惯性测量单元信息的融合,能够摆脱原本传统增强现实对于单个平面识别的依赖,实现用户对目标场景多视角增强现实效果的精确且实时的体现,并能有效降低系统存储量,提高运行效率,增强用户对增强现实的体验。

附图说明

图1为本发明实施例一种增强现实实现工具的设计方法的流程图;

图2为本发明实施例一种基于动态链接库构建视觉slam算法与imu协同的增强现实实现工具的处理流程图;

图3为本发明实施例一种获取尿素热解炉烟气中氮氧化物初始含量的数值保持框图;

图4为本发明实施例一种增强现实实现工具的生成设备的结构框图;

图5为本发明实施例增强现实工具初始化界面示意图;

图6为本发明实施例增强现实工具叠加物体的主视示意图;

图7为本发明实施例增强现实工具叠加物体的左视示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

作为本发明实施例的一个方面,本实施例提供一种增强现实实现工具的设计方法,参考图1,为本发明实施例一种增强现实实现工具的设计方法的流程图,包括:

s1,在windows运行环境下,基于设定处理流程修改视觉slam算法并使其运行,生成所述视觉slam算法的动态链接库。

其中,slam:即即时定位与地图构建(simultaneouslocalizationandmapping)。例如,机器人在未知环境中从一个未知位置开始移动,在移动过程中,根据位置估计和地图进行自身定位;同时在自身定位的基础上,精确地建立时间与空间的对应关系,递增地创建周围环境的地图,利用创建的地图实现自主定位和导航。

视觉slam算法:基于视觉的slam算法,表现为利用图像信息的特征进行检测及提取,并基于2d或3d的特征匹配计算相机位姿及对环境进行建图。

动态链接库(dynamiclinklibrary,dll):为微软公司在微软windows操作系统中实现共享函数库概念的一种方式,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个dll文件中,该dll文件包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。

对于步骤s1,可以理解为,在已经在windows运行环境中建立了视觉slam算法运行环境的基础上,按照预先设定的处理流程,在windows运行环境中修改视觉slam算法,并在windows运行环境中运行修改后的视觉slam算法,运行过程中生成对应的动态链接库。

s2,基于所述动态链接库,利用unity3d构建所述视觉slam算法与惯性测量单元协同的增强现实实现工具。

其中,unity3d:是由unitytechnologie公司开发的一款跨平台的综合型3d游戏引擎,是一款多平台的综合型游戏开发工具,可以与一些增强现实开发工具相结合实现虚实叠加及人机交互功能。

惯性测量单元(inertialmeasurementunit,imu):是测量物体三轴姿态角(或角速率)以及加速度的装置。一般的,一个imu内会装有三轴的陀螺仪和三个方向的加速度计,可以用来测量物体在三维空间中的角速度和加速度,并以此解算出待测物体的姿态。

对于步骤s2,可以理解为,在上述步骤生成视觉slam算法的动态链接库之后,需要在三维开发环境中调用该动态链接库并对视觉slam算法的数据进行应用。具体为,首先在unity3d开发平台上通过调用动态链接库获取视觉slam信息,并获取目标场景的imu信息;再在unity3d开发平台上通过将视觉slam信息与imu信息结合,实现两个系统数据的融合,构成视觉slam算法与imu的协同运算的增强现实实现工具。

本发明实施例提供的一种增强现实实现工具的设计方法,通过在unity3d开发环境中对视觉slam算法和imu信息的融合,实现用户对目标场景多视角增强现实效果的精确且实时的体现,并能有效降低系统存储量,提高运行效率,增强用户对增强现实的体验。

其中可选的,所述步骤s1中基于设定流程修改视觉slam算法的步骤进一步包括:将linux下的orb_slam2算法修改为monoslam算法。

其中,linux:一种操作系统。是一个多用户、多任务、支持多线程和多cpu的操作系统。

orb_slam2算法:一种基于orb特征的三维定位与地图构建算法。orb-slam算法的一大特点是在所有步骤统一使用图像的orb特征。orb特征是一种非常快速的特征提取方法,具有旋转不变性,并可以利用金字塔构建出尺度不变性。使用统一的orb特征有助于slam算法在特征提取与追踪、关键帧选取、三维重建、闭环检测等步骤具有内生的一致性。

monoslam:通过拍摄连续的图像确定相机自身的运动,并且确定像素点之间的距离,然后知道特征点的3d位置,通过3d-2d的匹配信息来估计相机的姿态来实现定位。

本实施例可以理解为,在windows运行环境下,将传统linux下的orb_slam2算法修改为monoslam,使其能够在单目相机下依靠运动中的三角测量,实现求解相机运动和相机空间位置的估计。以机器人为例,机器人的运动轨迹和地图只有在相机初始化运动之后才能收敛,进而实现对于目标场景的增强现实。图片坐标系与单目相机拍到的现实坐标系之间的转换关系如下:

式中,r和t均表示单目相机的姿态,其中r表示旋转矩阵,t表示位移矢量。

本发明实施例提供的一种增强现实实现工具的设计方法,通过结合多张图片即可定位出相机姿态,从而实现对于物体实现增强现实做好铺垫。

在上述实施例的基础上,在所述步骤s1和所述步骤s2之间,还包括:将所述动态链接库导入unity3d;通过unity3d中monodevelop的开发平台对所述动态链接库c++接口的访问,实现对所述动态链接库的调用。

其中,monodevelop:一种适用于linux等开放源代码集成开发环境,主要用来开发mono与.netframework软件。集成了很多eclipse与microsoftvisualstudio的特性,支持使用c#和其他.net语言进行开发,使开发者可以在linux等环境中非常迅速的开发出桌面软件和aspnetweb应用。

本实例可以理解为,由于存在以下因素:其一,unity3d不支持c++的代码平台开发;其二,slam算法主要是由c++实现;其三,dll文件具有很强的可维护性和可拓展性,能够实现不同编程语言的互通性。因此,在进行数据融合时选择采用动态链接库。

具体为,在根据上述实施例生成视觉slam算法的动态链接库时,同时在动态链接库上留有c++接口。在进行视觉slam算法的调用时,首先通过unity3d开发平台将上述步骤生成的视觉slam算法的动态链接库导入unity3d系统,再通过unity3d中monodevelop的开发平台,如c#或者jsp上访问所述c++接口,实现monodevelop的开发平台对slam算法的动态链接库的调用。

本发明实施例提供的一种增强现实实现工具的设计方法,能够实现slam算法在unity3d中的便捷实现,从而简化软件开发流程,提高软件开发效率。

其中可选的,所述步骤s2的进一步处理步骤参考图2,为本发明实施例一种基于动态链接库构建视觉slam算法与imu协同的增强现实实现工具的处理流程图,包括:

s21,基于unity3d中monodevelop的开发平台,通过访问所述动态链接库c++接口,调用所述视觉slam算法的动态链接库。

步骤s21可以理解为,根据上述实施例,在monodevelop中调用相应的slam动态链接库,即可在unity3d中实现slam算法。在unity3d环境中,通过monodevelop的开发平台访问视觉slam算法的动态链接库留出的c++接口,调用视觉slam算法的动态链接库,并读取其中的数据。

s22,基于所述视觉slam算法的动态链接库、目标场景的惯性测量单元数据信息和扩展卡尔曼滤波器,利用unity3d中monodevelop的开发平台,实现视觉slam信息和所述惯性测量单元信息的融合。

扩展卡尔曼滤波器(extendedkalmanfilter,ekf):一种高效率的递归滤波器,能够从一系列的不完全包含噪声的测量中,估计动态系统的状态。

步骤s22可以理解为,考虑时间效率和精准度等因素,以卡尔曼滤波器(kf)的衍生方法ekf来解决imu和视觉slam算法的融合问题。基于imu所提供的信息和单目相机的当前姿态,利用视觉slam算法估计相机的姿态,然后用ekf描述其姿态实现信息融合。

本发明实施例提供的一种增强现实实现工具的设计方法,通过ekf方法将imu与slam进行结合,能够有效提高姿态定位的准确性,以及用更准确的物理模型估计系统的状态,从而更好地在unity3d中实现物体的增强现实实现工具的开发。

在上述实施例的基础上,在所述步骤s1之前,还包括:通过配置所述windows运行环境,实现所述视觉slam算法在所述windows运行环境下的运行。

可以理解为,通常视觉slam算法是在linux运行环境下运行,而增强现实开发环境是在windows运行环境下运行,为了有效利用视觉slam算法的准确定位功能,需要引进视觉slam算法。因此需要进行跨平台运行环境匹配。具体根据视觉slam算法的运行需求,通过配置windows运行环境,设置适于视觉slam算法运行的windows运行环境,使视觉slam算法能够在windows运行环境下有效运行。

其中可选的,所述配置windows运行环境的步骤进一步包括:将所述视觉slam算法的动态链接库文件按对应文件目录结构存入所述windows运行环境,并将所述动态链接库文件的存储路径写入所述视觉slam算法的path环境变量;编辑跨平台编译工具的组态档,并通过添加所有待使用动态链接库文件的存储路径,设置其中的目标库。

可以理解为,为了便于程序的引用,需要在windows运行环境中载入视觉slam算法的运行条件,视觉slam算法运行时,会从相应的位置调用相应的文件数据,在windows运行环境中这些文件数据称视觉slam算法的动态链接库文件。为了视觉slam算法的调用,将这些动态链接库文件按视觉slam算法的配置需求存入windows运行环境的相应位置,即按对应文件目录结构存入windows运行环境。

同时,为了在需要时准确调用存入的动态链接库文件,需要将这些文件的准确存储路径写入视觉slam算法的path环境变量。视觉slam算法运行过程中通过访问path环境变量获取相应动态链接库文件的存储路径,并根据该存储路径调用相应的动态链接库文件。

例如,将opengl的freeslut库的mingw版本按dll/include/lib的文件目录结构进行存放,并且要将dll的文件路径加入到系统的path环境变量中,以解决相互之间的依赖关系。

然后,对跨平台的编译工具cmake的组态档进行编写,并添加所有需要用到的库文件的绝对路径,对其中target_lib进行设置。

本发明实施例提供的一种增强现实实现工具的设计方法,通过对windows运行环境进行基于视觉slam算法配置需求的配置,实现视觉slam算法的跨平台应用,为增强现实的更准确实现奠定基础。

在上述实施例的基础上,在所述步骤s2之后,还包括:s3,基于所述增强现实协同处理模型,通过对目标场景进行特征提取和跟踪,实现增强现实。

可以理解为,在根据上述实施例构建了增强现实实现工具之后,还包括对该增强现实实现工具的实际应用步骤。在应用该增强现实实现工具的过程中,该工具根据相机采集到的目标场景的图像进行特征提取,并根据提取到的图像特征进行自身定位和跟踪,然后在准确定位的目标场景中叠加虚拟模块,包括模型、视频或文字等,实现增强现实。

在一个实施例中,在所述基于所述增强现实协同处理模型,提取当前目标场景特征的步骤之前还包括:根据用户操作,实现所述目标场景的初始化,所述用户操作包括:点击开启按键打开相机或平移设备。

可以理解为,在利用增强现实实现工具进行增强现实实现之前,需要根据用户的开启指令启动实现流程。具体为,在需要进行增强现实实现时,用户点击开启按键打开相机,平移设备,实现目标场景的初始化。

本发明实施例提供的一种增强现实实现工具的设计方法,通过对对构建的增强现实实现工具的实际应用,实现更精准且有效的增强现实,对提高用户体验具有重大意义。

其中可选的,所述基于所述增强现实协同处理模型,通过对目标场景进行特征提取和跟踪,实现增强现实的进一步处理步骤参考图3,为本发明实施例一种增强现实实现工具的应用实现流程图,包括:

s31,基于所述增强现实协同处理模型,提取当前目标场景目标环境特征,并对所述当前目标场景进行跟踪。

可以理解为,在实现目标场景的初始化之后,增强现实实现工具进入正常增强现实实现流程。由相机采集当前目标场景图像,增强现实实现工具访问该目标场景图像,并对该目标场景图像进行特征提取,获取当前目标场景特征。然后根据该当前目标场景特征实现自身定位并跟踪当前目标场景。

s32,基于所述跟踪获取的目标场景特征,实现虚拟元素与所述目标场景的叠加。

可以理解为,在上述步骤增强现实实现工具对当前目标场景进行跟踪的过程中,会递增的对当前目标场景进行特征提取,提取出跟踪的特征点。在到达用户的期望位置时,用户点击叠加按键。增强现实实现工具启动叠加流程,将相应的模型、视频或者文字等叠加到用户期望的目标场景上,实现增强现实。

本发明实施例提供的一种增强现实实现工具的设计方法,基于用户操作指令和目标场景图像,利用增强现实实现工具对目标场景图像进行特征提取,并最终实现虚拟元素与目标场景的叠加,从而达到对环境干扰较少、识别速度快且识别精度高的效果。

作为本发明实施例的另一个方面,本实施例提供一种增强现实实现工具的生成设备,参考图4,为本发明实施例一种增强现实实现工具的生成设备的结构框图,包括:至少一个存储器1、至少一个处理器2、通信接口3和总线4。

其中,存储器1、处理器2和通信接口3通过总线4完成相互间的通信,通信接口3用于所述生成设备与用户输入装置通信接口之间的信息传输;存储器1中存储有可在处理器2上运行的计算机程序,处理器2执行所述程序时实现如上述实施例所述的增强现实实现工具的设计方法。

可以理解为,所述的增强现实实现工具的生成设备中至少包含存储器1、处理器2、通信接口3和总线4,且存储器1、处理器2和通信接口3通过总线4形成相互之间的通信连接,并可完成相互间的通信。

通信接口3实现增强现实实现工具的生成设备与用户输入装置通信接口之间的通信连接,并可完成相互间信息传输,如通过通信接口3实现对用户编码数据的获取等。

生成设备运行时,处理器2调用存储器1中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:基于unity3d中monodevelop的开发平台,通过访问所述动态链接库c++接口,调用所述视觉slam算法的动态链接库;并基于所述视觉slam算法的动态链接库、目标场景的imu数据信息和扩展卡尔曼滤波器,利用unity3d中monodevelop的开发平台,实现视觉slam数据信息和所述imu数据信息的融合。以及将所述动态链接库导入unity3d,并在所述unity3d中,基于所述动态链接库,构建所述视觉slam算法与imu协同的增强现实实现工具等。

本发明另一个实施例中,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上述实施例所述的增强现实实现工具的设计方法。

可以理解为,实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的增强现实实现工具的生成设备的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。

本发明实施例提供的一种增强现实实现工具的生成设备和一种非暂态计算机可读存储介质,通过在unity3d开发环境中对视觉slam算法和imu信息的融合,能够摆脱原本传统增强现实对于单个平面识别的依赖,实现用户对目标场景多视角增强现实效果的精确且实时的体现,同时能有效降低系统存储量,提高运行效率,增强用户对增强现实的体验。

本发明实施例根据上述实施例方法和设备进行了仿真实验,具体的仿真效果如下:

参考图5,为本发明实施例增强现实工具初始化界面示意图。由图5可见,该工具实现了对于环境的特征提取。

参考图6,为本发明实施例增强现实工具叠加物体的主视示意图。由图6可见,在正视角度下,虚拟的物体完美的叠加在与其相匹配的目标实物上。

参考图7,为本发明实施例增强现实工具叠加物体的左视示意图。由图7可见,持续不断地提取特征的过程中,在该视角下,环境中局部特征点丢失、光照强度降低,但是虚拟物体任能够完美的叠加在与其相匹配的目标实物上。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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