本技术涉及增强现实,尤其涉及一种微信小程序结合unity开发的大空间ar识别方法和系统。
背景技术:
1、ar(augmented reality,增强现实)技术是一种将虚拟信息与真实世界巧妙融合的技术。成熟的ar实现是基于国外arcore和arkit等引擎,或者基于国内的easyar等策略,结合各大厂商的大空间识别算法开发出有增强现实能力的app。这种app能够带来ar体验,然而对于ar体验而言,其门槛较高,需要在安装app的同时安装各种ar服务,其次,app适配的机型比较局限,根据不同的引擎厂商又有不同程度的兼容瓶颈。
2、基于上述背景,现在亟需开发一个以大平台为基础的ar项目显得尤为重要,这其中的微信小程序就是一个很不错的突破口。现有微信小程序的ar项目绝大部分是基于3dof进行开发,而基于6dof的ar能力较差,支持的安卓机型极其有限,不到市面安卓机器的十分之一。微信小程序中基于3dof开发的ar项目必须依赖xr-frame插件,但是这种xr-frame插件支持的机型有限,与与现有成熟的unityar开发技术无法关联,开发难度大,会耗费大量的人力、物力和周期,实现效果也不如unity。此外,微信小程序xr-frame插件结合大空间识别算法开放参考案例只有一些非开源案例。
3、因此,基于微信开发者工具实现在微信小程序上的大空间识别,需要做更多工作,难以达到预期的效果。
4、申请内容
5、本技术提供一种微信小程序结合unity开发的大空间ar识别方案,能够更好的解决上述问题方案,能够解决现有技术中xr-frame插件支持的机型有限,与与现有成熟的unityar开发技术无法关联,开发难度大,会耗费大量的人力、物力和周期,难以达到预期的问题。
6、为解决上述问题,根据本技术的第一方面,本技术提供了一种微信小程序结合unity开发的大空间ar识别方法,包括:
7、使用unity编辑器获取web端实时摄取的关于真实场景的真实相机流;
8、使用unity编辑器渲染虚拟相机获取的ar虚拟物体,使用空间坐标系对齐方法将渲染后的ar虚拟物体融合至真实相机流的真实场景中,得到ar场景影像;
9、建立与html的双向通信,根据双向通信,使用ar引擎加载ar场景影像至微信小程序的前端;
10、根据视觉定位技术持续接收web端实时发送的真实相机流,并不断刷新虚拟相机拍摄的ar虚拟物体。
11、优选的,上述大空间ar识别方法中,使用unity编辑器获取web端实时摄取的关于真实场景的真实相机流的步骤,包括:
12、web端真实相机实时拍摄真实场景的真实相机流,将真实相机流发送至ar引擎;
13、使用ar引擎实时加载真实相机流至unity编辑器。
14、优选的,上述大空间ar识别方法中,使用unity编辑器渲染虚拟相机获取的ar虚拟物体,使用空间坐标系对齐方法将渲染后的ar虚拟物体融合至真实相机流的真实场景中,得到ar场景影像的步骤,包括:
15、使用unity编辑器渲染虚拟相机获取到的ar虚拟物体;
16、使用ar引擎对真实相机流进行图像处理,根据图像处理后的真实相机流渲染ar虚拟物体;
17、使用着色器实时渲染ar虚拟物体,并更新真实相机流的真实场景;
18、实时测试并优化ar场景影像的渲染流畅度。
19、优选的,上述大空间ar识别方法中,使用unity编辑器渲染虚拟相机获取到的ar虚拟物体的步骤,包括:
20、根据虚拟相机的传感器参数,构建与真实场景对应的虚拟空间坐标系;
21、使用虚拟空间坐标系,确定ar虚拟物体的渲染位置;
22、根据ar虚拟物体的渲染位置,对ar虚拟物体的背景图像进行透明化处理,得到具有透明背景的ar虚拟物体;
23、使用渲染层按照渲染位置,对ar虚拟物体进行编辑和渲染操作,在ar场景影像中显示渲染后的具有透明背景的ar虚拟物体。
24、优选的,上述大空间ar识别方法中,根据ar虚拟物体的渲染位置,对ar虚拟物体的背景图像进行透明化处理,得到具有透明背景的ar虚拟物体的步骤,包括:
25、搭建ar框架,使用ar框架配置虚拟相机,使用虚拟相机捕获周围环境的实时图像;
26、对实时图像进行背景分割处理,得到背景分割信息;
27、使用计算机视觉技术区分实时图像中的前景图像和背景图像;
28、将ar虚拟物体设置在前景图像中;
29、根据背景分割信息,将ar虚拟物体的背景图像设置为透明。
30、优选的,上述大空间ar识别方法中,建立与html的双向通信,根据双向通信,使用ar引擎加载ar场景影像至微信小程序的前端的步骤,包括:
31、建立与html的双向通信;
32、当双向通信建立时启用ar引擎;
33、使用ar引擎将ar控制能力传递至虚拟相机和ar虚拟物体,加载ar场景影像至微信小程序的前端。
34、优选的,上述大空间ar识别方法中,根据视觉定位技术持续接收web端实时发送的真实相机流,并不断刷新虚拟相机拍摄的ar虚拟物体的步骤,包括:
35、实时获取虚拟相机拍摄的大空间环境图像,为大空间环境图像创建基于6dof的ar点云地图;
36、从真实相机流中的多角度图像中提取视觉特征点,使用视觉特征点对多角度图像与ar点云地图进行位置比较,以确定虚拟相机在真实场景中的位置;
37、实时追踪虚拟相机在真实场景中的移动位置;
38、当虚拟相机在真实场景中的移动位置确定时,将ar虚拟物体叠加至真实场景中。
39、优选的,上述大空间ar识别方法中,实时获取虚拟相机拍摄的大空间环境图像,为大空间环境图像创建基于6dof的ar点云地图的步骤,包括:
40、控制虚拟相机实时移动拍摄周围环境,得到大空间环境图像;
41、对大空间环境图像进行数据采集,对采集到的图像数据标注gps和方向信息;
42、使用大空间环境图像中的标注的gps和方向信息,识别和创建基于6dof的ar点云地图。
43、根据本技术的第二方面,本技术还提供了一种微信小程序结合unity开发的大空间ar识别系统,包括:
44、真实相机流获取模块,用于使用unity编辑器获取web端实时摄取的关于真实场景的真实相机流;
45、ar虚拟物体渲染模块,用于使用unity编辑器渲染虚拟相机获取的ar虚拟物体;
46、ar场景融合模块,用于使用空间坐标系对齐方法将渲染后的ar虚拟物体融合至真实相机流的真实场景中,得到ar场景影像;
47、ar场景影像加载模块,用于建立与html的双向通信,根据双向通信,使用ar引擎加载ar场景影像至微信小程序的前端;
48、ar虚拟物体刷新模块,用于根据视觉定位技术持续接收web端实时发送的真实相机流,并不断刷新虚拟相机拍摄的ar虚拟物体。
49、优选的,上述ar场景融合模块,具体用于使用unity编辑器渲染虚拟相机获取到的ar虚拟物体;使用ar引擎对真实相机流进行图像处理,根据图像处理后的真实相机流渲染ar虚拟物体;使用着色器实时渲染ar虚拟物体,并更新真实相机流的真实场景;实时测试并优化ar场景影像的渲染流畅度。
50、优选的,上述ar场景融合模块,具体还用于根据虚拟相机的传感器参数,构建与真实场景对应的虚拟空间坐标系;使用虚拟空间坐标系,确定ar虚拟物体的渲染位置;根据ar虚拟物体的渲染位置,对ar虚拟物体的背景图像进行透明化处理,得到具有透明背景的ar虚拟物体;使用渲染层按照渲染位置,对ar虚拟物体进行编辑和渲染操作,在ar场景影像中显示渲染后的具有透明背景的ar虚拟物体。
51、优选的,上述ar虚拟物体刷新模块,具体用于实时获取虚拟相机拍摄的大空间环境图像,为大空间环境图像创建基于6dof的ar点云地图;从真实相机流中的多角度图像中提取视觉特征点,使用视觉特征点对多角度图像与ar点云地图进行位置比较,以确定虚拟相机在真实场景中的位置;实时追踪虚拟相机在真实场景中的移动位置;当虚拟相机在真实场景中的移动位置确定时,将ar虚拟物体叠加至真实场景中。
52、优选的,上述ar虚拟物体刷新模块,具体还用于控制虚拟相机实时移动拍摄周围环境,得到大空间环境图像;对大空间环境图像进行数据采集,对采集到的图像数据标注gps和方向信息;使用大空间环境图像中的标注的gps和方向信息,识别和创建基于6dof的ar点云地图。
53、根据本技术的第三方面,本技术还提供了一种微信小程序结合unity开发的大空间ar识别系统,包括:
54、存储器、处理器及存储在存储器上并在处理器上运行的微信小程序结合unity开发的大空间ar识别程序,大空间ar识别程序被处理器执行时实现如上述任一项技术方案提供的大空间ar识别方法的步骤。
55、综上,本技术上述技术方案提供的微信小程序结合unity开发的大空间ar识别方案,使用unity编辑器获取web端实时摄取的关于真实场景的真实相机流,然后使用unity编辑器渲染虚拟相机获取的ar虚拟物体,再采用空间坐标系对齐的方法将渲染后的ar虚拟物体融合值真实相机流的真实场景中,从而得到ar场景影像,建立与电子设备的前端浏览器中html的双向通信,根据所述双向通信,使用ar引擎加载所述ar场景影像至微信小程序的前端,这样就能够深度融合大空间算法,兼容并实现微信小程序上的算法策略,通过多技术融合最终实现了大空间的ar物体识别功能。最后根据视觉定位技术持续接收所述web端实时发送的真实相机流,并不断刷新所述虚拟相机拍摄的ar虚拟物体,从而在基础数据计算的基础上,通过提高计算效率达到标准相机标定的效果,这样就能够实现unity+微信小程序+ar的技术,为ar技术落地的重大突破。综上,通过本技术提供的技术方案,能够解决现有技术中xr-frame插件支持的机型有限,与与现有成熟的unityar开发技术无法关联,开发难度大的问题。
技术实现思路