vr游戏设备哪种最好?
500
2024-04-26
虚拟现实和增强现实,即VR和AR,两者分属不同的领域,并不具有竞争关系,相反,我认为两者的发展会起到互相促进的作用。VR目前主要应用于游戏娱乐业和商业地产等传统行业,而AR则是用在工厂生产流程展示等较多,两者的应用都会逐渐普及到越来越多的行业,今年被称为虚拟现实元年,虚拟现实概念的火热也达到了空前高度,行业内发展非常迅速。北京华锐视点专注于虚拟现实内容开发,主要业务有VR+地产、VR+家装、VR+教育、VR+游戏、VR+视频以及在线教育,欢迎咨询合作。021-611076
下面是基本的步骤,查阅 OpenCV 文档可以了解具体到函数用法 :
摄像头校正,undistortion。由于摄像头的镜片出厂时都存在扭曲,为了得到精确的数据需要在使用前进行较正。常用的方法是基于棋盘的各个姿态拍几次,然后计算相机的矩阵参赛。下图便是常见的标定界面。
图像对齐,rectification。因为两个摄像头的位置不同,因此它们各自看到的场景是有偏差的,左边的摄像头能看到最左的场景,右边的看到最右的场景。图像对齐的目的是得到相同的场景部分。
左右图像匹配,correspondence。可以使用 OpenCV ,得到 disparity map。
通过重映射函数,比如 OpenCV 中的 cv::reprojectImageTo3D,得到一张深度图。
只有一张深度图是不够的,它只是某一时刻真实的场景在摄像头中的映射。要想得到完整的三维场景,我们需要分析一系列的深度图。
HoloLens 如何从多张深度图重建三维场景?
答案是 SLAM,Simultaneous Localization And Mapping,即同步定位与建图系统。这个技术被用于机器人、无人汽车、无人飞行器的定位与寻路系统。解决的是非常哲学的问题:
我现在在哪里?
我可以去哪里?
SLAM 有很多实现的方式,有一个开源的方式,实现了很多深度图的处理和匹配算法,可以认为是三维版本的 OpenCV。
而微软围绕着 Kinect 的深度图数据发明了 Kinect Fushion 算法,并发表了两篇论文:
KinectFusion: Real-time 3D Reconstruction and Interaction Using a Moving Depth Camera;
KinectFusion: Real-Time Dense Surface Mapping and Tracking。
为什么我认为 HoloLens 与 Kinect Fushion 有关?答案在这个页面中 。 Shahram Izadi 是微软剑桥研究院的 principal researcher 及 research manager。他所领导的互动3D技术组 / interactive 3D technologies 为微软的多项产品提供了研究力量,包括 Kinect for Windows, Kinect Fusion 以及 HoloLens。顺便说一句,他们组在招人:)
Kinect Fushion,通过在室内移动 Kinect 设备,获取不同角度的深度图,实时迭代,对不同对深度图进行累积,计算出精确的房间以及房间内物体的三维模型。
它分四个阶段:
深度图格式转换,转化后的深度的单位是米,用浮点数保存。并计算顶点坐标和表面的法向量。
计算世界坐标系下的相机姿态(包含位置和朝向),通过迭代的对齐算法跟踪这两个值,这样系统总是知道当前的相机与最初的姿态相比变了多少。
第三阶段将姿态已知情况下的深度数据融合到单个三维乐高空间里,你也可以叫它为 MineCraft 空间,因为这个空间的基本元素不是三角形,而是方格子。演示视频中频频出现 MineCraft 场景估计也和这个阶段有关。
基于 Raycasting 的三维渲染,Raycasting 需要从当前的相机位置发出射线,与三维空间求交集。乐高空间特别适合Raycasting,可以用八叉树来加速射线的求交运算。Raycasting、Raytracing 以及 Rasterization 是三种常见的渲染方式,这里就不展开了。
在 HoloLens 的应用中我们运行到第三步,即获取三维乐高模型就可以了,第四步并不是必需的。因为 HoloLens 的屏幕是透明的,不需要再把房屋的模型渲染一遍,我们自带的眼睛已经渲染了一遍了:)
国外的AR智能硬件有:微软Hololens、谷歌眼镜、Realmax智能眼镜、爱普生BT200和Mbt2000,其中Realmax智能眼镜已经量产,并在医疗上有了很好的效果。