酱学堂 | AR中的光学标定

2017 年 7 月 26 日 AR酱 雁回晴空

↑  ↑  ↑      关注AR酱,

和我们一起发现闪闪发光的AR从业者!


转载

雁回晴空

http://blog.csdn.net/zzlyw/article/details/53215105


什么是光学透射式头盔显示器

头盔显示器,也叫头戴式显示器,顾名思义就是一种戴在用户头上使用的显示器。它的主要部件就是一个放置在人眼前面的显示装置,此外还有用于将显示器固定在头上的固定结构等。头盔显示器主要分为两大类,沉浸式头盔和透射式头盔。沉浸式头盔主要是虚拟现实头盔,用于构建沉浸式的虚拟现实环境,典型的设备如Oculus Rift、HTC Vive、暴风魔镜等。透射式头盔主要用于增强现实,也是我们要重点讲到的一类设备,典型的如Hololens、Magic Leap等等。在透射式头盔中,又分为两个小类,视频透射式头盔和光学透射式头盔。视频透射式头盔显示器是利用摄像头捕获场景的视频流,并将虚拟的信息叠加到视频流中,最后把加工后的视频流逐帧渲染在显示器上供用户观看。这种显示器就如同手机一样。而光学透射式头盔显示器(有的地方叫“光学透视型头盔显示器”,英文为“optical see-through head-mounted display”),有一个半透半反的光学系统,它一方面像普通眼镜一样可以透过外部的环境光,使用户可以看到眼前的真实世界,另一方面可以反射来自微型显示器的图像,叠加到人的视野中。

 上图摘自一篇介绍光学透射式头盔显示器的论文,大致能表明这类显示器的基本结构。当然这款是自由曲面棱镜组成的,还有其他的类型如光波导镜片等。


之所以要应用光学透射式头盔显示器,是因为它可以将虚拟信息直接叠加到真实环境中,给人更加自然的交互体验,而不需要让人去看加工后的视频,如同看电视一般乏味无新意。


理想情况下,佩戴上头盔显示器后应该看到如下的效果。

 

上图截图自电影《钢铁侠》,主人公可以看到虚拟的物体叠加在空中。我们先不管电影中的效果可以用哪些现实手段实现(全息投影也好,真三维光学全息也罢),我们只考虑如何采用光学透射式增强现实来实现它。


当然唯一不同的是,采用光学透射式头盔显示器以后,我们必须佩戴它才能从用户视角看到这些炫酷的效果。实际看到的可能是下面这样子的。该图选自一篇做人机交互的论文。


光学透射式头盔显示器的标定原理


(1)所谓标定,到底是标定什么,怎么进行?

  首先,必须明确几个用到的坐标系统。世界坐标系使用W表示,跟踪摄像机(跟踪摄像机用来建立本系统与外部环境之间的联系)坐标系使用C表示,头盔显示器的像面是一个2D的平面,采用S表示其平面坐标系,人眼与头盔显示器的像面组成一个针孔模型的虚拟摄像机,坐标系使用V表示。如果读者没有计算机视觉基础,可以参考清华大学出版社出版的《计算机视觉:算法与应用》一书,或者自行百度,也可搜索到相关介绍。针孔模型介绍可参考博文

http://blog.csdn.net/lixianjun913/article/details/10032019。

      标定主要是通过一些测量和计算,来确定一些参数。这里主要标定的是跟踪摄像机坐标系到头盔显示器屏幕坐标系的映射关系。

假设空间中的任意一点P,在世界坐标系W中的坐标为Pw,在跟踪摄像机坐标系下的坐标为Pc,通过屏幕看该点,该点在屏幕上的坐标为Ps,则得到两个等式

      其中,Pw,Pc是三维位置的齐次坐标,因此都是四维向量。Ps是二维位置的齐次坐标,因此是三维向量。每一个出现的R都是3*3的旋转矩阵,每个T都是3*1的平移向量,它是包含3个元素的列向量。K是表示包含人眼的虚拟摄像机的内参数矩阵,是3*3矩阵。令Ps = [u v 1]T,Pc = [xc  yc  zc  1]T,G=[g11  g12  g13  g14 ; g21  g22  g23  g24 ; g31  g32  g33  g34  ],则得到

 

 

 

      所以我们要标定的就是G。有了G就有了从跟踪摄像机三维坐标系到显示器屏幕二维坐标的映射关系,进而可以在屏幕上对现实中的物体做虚拟信息标注。当然,G可以直接分解成内参数矩阵和旋转、平移矩阵(平移向量看成是n*1的矩阵),这样,我们不仅可以进行文字标注,还可以根据虚拟摄像机和跟踪摄像机之间的空间位置关系,进行三维虚拟物体的叠加。这也就是最后我们看到的在真实世界中叠加一些虚拟的人物、建筑等物体的效果了。

(2)软件怎么写?

      了解了标定原理之后,你也许就迫不及待地要进行实验了。

      其实要想求解上述的G,还是比较容易的。首先观察Ps=G Pc,左边是三维的,右边是四维的,很明显G应当是3*4的矩阵。对于这12个未知数(实际上只有11个独立的,剩余一个是尺度缩放因子,在齐次坐标系统中不影响最终结果),可以由至少6组对应点求解得到。因为每组对应点是可以得到两个独立的方程的。忘了说了,每组对应点指的是某一个头部位姿状态下,P点的跟踪摄像机坐标Pc和屏幕坐标Ps。

      软件只需要获取不同的至少6个头部位姿下的6组对应点即可。在求解时,所有的未知数移动到等式左边,那么右边全是0,直接求解可能得到零解。因此我们对系数矩阵进行奇异值分解。假设取了n组对应点,则只需要把2n*12的矩阵使用matlab的SVD函数进行分解就行了。右奇异矩阵中对应最小特征值的向量就是要求的解。直接拷贝出来就是要求的G。

      具体的程序代码还需要各位读者自己写写看,只有两个步骤哦,第一步读取一系列(不少于6组,建议10组以上)对应点位置坐标,第二步使用matlab的SVD函数进行求解。之后,得到G就能知道任意的三维位置对应的屏幕位置了。这时,你还不能在你想要的位置上叠加想要的虚拟信息吗?


看看,是不是很简单。其实很多事情都是看上去复杂难解,实则脉络清晰,求解容易。当然了,在实现的过程中还有很多小技巧。相信初次接触的朋友也会遇到很多难题。


AR酱原创

转自微信号AR酱(ARchan_TT)

并附上原文链接


阅读推荐

酱发现 | Aipoly:用AI让盲人“看见”,顺便增强下增强现实

酱发现 | 不是所有的望远镜,都叫AR望远镜

酱学堂 | AR VR中的光照一致性


“呐,做 AR VR,最重要的就是开心啦”

梦想重要,开心也重要

当你有有趣的想法时,也要来AR酱上

和我们一起分享啊


关注一下好不好



    点击下方“阅读原文”留下联系信息

登录查看更多
0

相关内容

增强现实(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。
基于深度学习的表面缺陷检测方法综述
专知会员服务
86+阅读 · 2020年5月31日
【UCLA】基于深度神经网络的工业大模型预测控制,36页ppt
少标签数据学习,54页ppt
专知会员服务
199+阅读 · 2020年5月22日
基于视觉的三维重建关键技术研究综述
专知会员服务
164+阅读 · 2020年5月1日
姿势服装随心换-CVPR2019
专知会员服务
36+阅读 · 2020年1月26日
密歇根大学《20年目标检测综述》
专知会员服务
99+阅读 · 2019年10月13日
计算机视觉方向简介 | 多视角立体视觉MVS
计算机视觉life
15+阅读 · 2019年10月10日
IMU 标定 | 工业界和学术界有什么不同?
计算机视觉life
14+阅读 · 2019年1月8日
机器人操作的“圣杯问题” -- Bin Picking
机器人学家
14+阅读 · 2018年8月2日
HoloLens新应用:扫描脸部就能读出你的心跳
雷锋网
3+阅读 · 2018年3月3日
Blippar发布AR导航应用,UVP定位系统
AR酱
3+阅读 · 2017年11月13日
Knowledge Distillation from Internal Representations
Arxiv
4+阅读 · 2019年10月8日
Area Attention
Arxiv
5+阅读 · 2019年5月23日
Arxiv
4+阅读 · 2018年3月14日
VIP会员
相关VIP内容
基于深度学习的表面缺陷检测方法综述
专知会员服务
86+阅读 · 2020年5月31日
【UCLA】基于深度神经网络的工业大模型预测控制,36页ppt
少标签数据学习,54页ppt
专知会员服务
199+阅读 · 2020年5月22日
基于视觉的三维重建关键技术研究综述
专知会员服务
164+阅读 · 2020年5月1日
姿势服装随心换-CVPR2019
专知会员服务
36+阅读 · 2020年1月26日
密歇根大学《20年目标检测综述》
专知会员服务
99+阅读 · 2019年10月13日
相关资讯
计算机视觉方向简介 | 多视角立体视觉MVS
计算机视觉life
15+阅读 · 2019年10月10日
IMU 标定 | 工业界和学术界有什么不同?
计算机视觉life
14+阅读 · 2019年1月8日
机器人操作的“圣杯问题” -- Bin Picking
机器人学家
14+阅读 · 2018年8月2日
HoloLens新应用:扫描脸部就能读出你的心跳
雷锋网
3+阅读 · 2018年3月3日
Blippar发布AR导航应用,UVP定位系统
AR酱
3+阅读 · 2017年11月13日
Top
微信扫码咨询专知VIP会员