3dof和6dof
3dof和6dof描述的是物体的状态有几个自由度,也就是是一个几维的向量。3dof就是3维向量,6dof就是6维向量。 3dof描述的是3个角度,6dof描述的是位置向量和角度向量。 3dof和6dof的检测是一个非常有趣的物理问题。 3dof很早就被攻克了,它用到的是陀螺仪这种传感器。陀螺仪能够感知到每一时刻的旋转速度,在三个方向上设置好陀螺仪就能够获取三个方向上的角速度。通过积分就能够得到当前的欧拉角。 6dof的核心是检测物体的位置,有两种实现方案,一种是把摄像头放在外面,感知物体的变化,这样做的好处是实现简单,坏处是用户用起来会多一个设备。第二种方案是把摄像头与头显放置在一起,摄像头会检测周围环境的变化,通过关键点匹配算法感知物体的位移,这种方式对于环境有一些特殊的要求。
VR成像的原理
VR的特点就是立体感,在图像的基础上多了远近,也就是多了一个z轴。两个眼睛看到的图片不一样,这就是立体感的来源。与其说是立体感,不如说人眼是一种非常容易欺骗的东西。与其说人眼是一种容易欺骗的东西,不如说人的大脑是一个复杂的处理器,立体感来源于大脑。只要对大脑的输入相同,大脑就会产生立体感。 我们看过VR电影,需要带VR眼镜。VR眼镜的原理是就是光的偏振,同一束光穿过左右两个镜片得到的图像会变得不一样。镜片就是偏振片,能够把特定方向的光过滤掉。通过调整光的偏振就能够让两个眼睛接收到不同的图像信息。 现实世界中,人并没有佩戴VR眼镜,为什么照样能够看到立体的世界?因为人的两只眼睛中间有一个距离,这个距离决定了人眼看到的东西不一样。 有两种视差,一种叫做双目视差,就是上面说的。另一种叫做运动视差,由于物体运动导致投在视网膜上的像不一致。运动视差会导致只能够看到运动的物体到眼睛的距离。 既然说双目视觉差异带来了立体感,那么人如果只有一只眼睛,还有立体感吗?答案是:可能有。立体感这个问题实际上是一门综合学科,涉及到神经学、心理学等。失去一只眼睛的人生活一段时间之后凭借生活经验也能够产生立体感,人的大脑具备较强的可塑性。 在CV领域中有一个方向就是根据一个二维图片建模三维图像,这就是模拟“独眼龙”产生立体感的算法。
色散和反色散
VR眼睛那么小,我们却能够看到很大的世界,原因就是里面用到了透镜。透镜就像显微镜一样把投屏到微小空间中的图像放大。图像有RGB三种颜色,每种颜色的光频率不同,因此同一像素经过透镜之后RGB三种颜色不再位于同一个点上,这就会导致用户看到的图像不真实。 反色散的原理就是把通过透镜前的图像进行校正,从而通过透镜后变得正常。