本文主要是介绍头戴式AR/VR 光学标定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章:A Survey of Calibration Methods for Optical See-Through Head-Mounted Displays
作者:Jens Grubert , Yuta Itoh, Kenneth Moser
编译:点云PCL
本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。内容如有错误欢迎评论留言,未经允许请勿转载!
公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。
摘要
头戴式显示器(OST-hmd)是虚拟增强现实的主要显示方式,由于面向消费者的产品(如Microsoft Hololens)的不断发布,增强现实在普通公众中的普及和使用率显著增长。与虚拟现实耳机不同,OST-hmd本质上支持将计算机生成的图形直接添加到用户眼睛和用户眼中的物理世界的视图之中。与大多数虚拟增强和虚拟现实系统一样,OST-HMD的物理位置通常由外部或嵌入式6自由度跟踪系统确定。为了正确地呈现被认为在空间上与物理环境对齐的虚拟对象,还需要精确地测量用户眼睛在跟踪系统的坐标系中的位置。
20多年来,研究人员提出了各种各样的标定方法来确定穿戴者的眼睛位置。然而,到目前为止,还没有全面概述这些程序及其要求。因此,本文对OST-hmd的标定方法进行了综述。具体来说,它提供了对标定技术的基本原理的见解,并概述了手动和自动标定的方法,以及评估方法和度量。最后,探讨了未来研究的可能性。
SPAAM方法中的数据收集。左:单个2D点uk与3D点xk手动对齐。中间:通过OST-HMD将虚拟的2D十字线与3D跟踪标记对齐的自我中心视图。右:绿色虚拟正方形覆盖在校准前后的物理标记上。
介绍
增强现实(AR)是一种交互式的、实时的技术,它让用户感觉到虚拟增强现实(AR)是一种交互式的、实时的、存在于现实世界中的物体。例如,用户可能会看到一个虚拟玻璃杯放在在桌面上的真实的玻璃杯旁边。AR的一个主要目标是使虚拟的玻璃杯的位置看起来与真实的玻璃杯一样真实、可靠和可信。本文将这一概念称为 locational realism。这里对比了位置真实感和更广为人知的术语 photorealism,这种传统的计算机图形学的目标渲染对象和真实场景的物体是视觉上无法区分的。
在AR中,主要目标可能不是以照片级真实感渲染玻璃杯,但我们通常对玻璃杯的真实位置感兴趣,虽然它可能明显是卡通玻璃,具有不正确的照明和颜色,但我们仍然希望其位置能够以与真实玻璃杯以无法区分的方式被感知。
为了实现任意程度的位置真实感,AR系统必须知道6自由度(6DoF)姿势,即渲染虚拟相机在物理世界中的位置(x、y、z)和方向(滚动、俯仰、偏航)。根据这些信息,系统可以确定在相应的3D位置显示虚拟对象需要哪些2D屏幕像素。这个姿势越准确,位置的真实感就越强。渲染相机的姿势通常使用跟踪系统测量,为了报告准确的姿势估计,需要对其进行校准。跟踪系统可以直接使用AR系统内的物理摄像机;或者,跟踪系统跟踪连接到AR系统的基准点。在这种情况下,即使跟踪系统需要AR系统反馈渲染相机的姿势,跟踪器也会反馈基准点的姿势,但是这导致了需要执行二次校准的附加要求,这产生了跟踪基准点和渲染相机之间的转换。
另外,有两种主要的显示AR内容的方法。在视频的透视AR(VST-AR)系统中,用户通过AR系统中的相机看到物理世界。系统接收来自真实世界的恒定图像帧流,并将虚拟内容组合到这些图像帧中,VST-AR可以与标准视频监视器、手持设备(如平板电脑或手机)以及不透明的VR头戴式显示器(也称为混合现实(MR)显示器)一起使用。相比之下,光学透视 AR(OST-AR)直接向用户提供物理世界的视图,而虚拟对象则通过光学组合器同时施加到用户的视图中。OST-AR几乎都是通过头戴式显示器来完成的,尽管显微镜和其他光学设备也是可能的,虽然这两种AR形式都有各自的优点和缺点以及各种应用,但本文的重点是OST-AR,虽然在VST AR中,可以使用一个相机同时用于视频流和跟踪相机,但这在OST-AR中是不可能的,因为“视频流”来自用户的眼睛。相反,在OST-AR中,跟踪头戴式显示器的姿势,AR系统需要知道显示器和用户眼睛之间的转换。因此,在OST-AR中,标定程序始终是必要的,本文调查并总结了截至2017年9月发布的校准程序,首先,它概述了头戴式OST-AR显示器的标定的基础。然后介绍了标定方法的概述,按手动、半自动和自动方法分类。接下来,讨论如何评估这些标定方法以及如何进行度量和分析。最后,本文讨论了未来研究的可能性。
头戴式OST AR显示器标定的基础
命名方法
通过本文使用以下术语,小写字母表示标量值,例如焦距fu。大写字母表示坐标系,例如眼睛坐标系E。小写粗体字母表示向量,例如眼睛坐标系x_E 属于R3中的3D点,或2D图像点u属于R2。大写字母表示矩阵,例如旋转矩阵R属于R3×3。我们现在定义一个从一个坐标系到另一个坐标系的6自由度变换。给定坐标系A和B,定义A到B的变换(abr;abt),其中abr是旋转矩阵,abt是平移向量。例如,我们可以通过
轴外的针孔相机模型
在计算机视觉中,内参矩阵k属于R3×3,定义了从三维坐标空间到二维坐标空间的投影变换。该矩阵的元素描述了针孔相机的特性。如果读者希望获得一个完整且透彻的理解投影背后的物理和数学原理,请阅读引用的出版书籍。然而,这里我们提供一个简短的概述,目的是提高读者对eye-HMD转换的理解。eye-HMD系统通常被建模为轴外针孔相机。我们将其内在矩阵定义为:
E^K的参数直接针孔相机模型。焦距fu和fv表示成像平面和相机中心之间的距离。在理想的针孔相机模型中,方程(2)中的fu和fv分量是相同的,这意味着图像的像素是完全正方形的。例如,给定眼睛坐标系xE中的3D点,该点被投影到HMD屏幕空间S中的2D点u_S
图1 轴外针孔相机模型的y-z平面。
图2:图像平面的三维表示,以及针孔相机模型的相关固有特性。
在实践中,我们首先在HMD坐标系中获得世界坐标系下的x_E作为3D点x_H。因此,我们首先通过
其中,旋转矩阵HER属于 R3×3和平移向量HEt 属于R3,表示从附在头盔显示器上的显示器坐标系H到用户眼睛坐标系E的变换。通过将该变换集成到相机模型EK中,我们得到3×4投影矩阵HEP,从显示器(HMD)坐标到用户眼睛坐标:
下图这些坐标系的一个图示(个人理解:就是说传统的针孔相机下的图像坐标系的中心为透过屏幕上光心的中点,而AR设备中将图像坐标系分解成成像坐标系和显示坐标系,因为设备中的屏幕坐标系和成像坐标系不再是同一个坐标系了)
头盔显示器的坐标系通常由一个内向外看的相机或一个外向外看的跟踪系统来定义,该系统决定了一个虚拟人的姿态。
因此,所有标定方法必须能够产生HEP,或者一次求解所有矩阵分量,或者系统地确定方程(5)中的参数。通常,当一次求解HEP的所有分量时,最常用的方法是直接线性变换(DLT)。该方法通过求解一个由最少6个3D-2D对应关系构成的线性方程来估计HEP。给定线性解作为初始估计,然后可以应用非线性优化方法,如Levenberg-Marquardt。
自动校准方法
本节介绍了工作人员完全不必手动操作的标定方法。下表的底部总结了这些方法。
Luo等人为类似眼镜的OST HMD开发了一种轴上相机模型,理论上无需手动校准。然而,由于光学设计的小尺寸,相机必须放置在用户眼睛位置后面20毫米处,这可能导致近距离的配准错误。
在2007年,Priese等人在进行了初步的校准之后,提出了使用眼球跟踪来估计眼球位置的方法。然而,他们只使用眼睛的静态图像来测试了他们的方法,并没有用实际用户来验证系统。
Figl等人提出了一种使用全自动配置(包括用于改变校准模式距离的步进电机)确定双目医疗头盔(Varioscope M5)焦距和眼睛位置的方法。
2014年,Itoh和Klinger提出了无交互显示校准(INDICA)方法,该方法利用安装在OST头盔显示器上的眼动跟踪器,他们的方法在线测量眼睛中心并自动生成投影矩阵。使用与SPAAM相同的针孔相机模型,显示参数从投影矩阵中分解,投影矩阵是从预先离线执行的SPAAM校准中获得的。他们的后续工作评估了INDICA,通过摄像头离线校准显示参数,这意味着该方法完全不需要额外的用户输入。
对于每个方法,下图给出了一个关键的缩略图。
在之前的章节中,提到SPAAM2的假设导致了不同的解释。基于这个假设,我们得到
其中EK0表示缩放和位移参数。这意味着SPAAM2将屏幕参数矩阵重新定义为EK0 EK。由于屏幕参数应该保持不变,这种解释是不正确的。SPAAM2的一个隐含假设是只有眼睛中心位置改变,三个参数E0t可以通过两个2D-3D数据对应来估计。
模型总结
眼睛模型
Plopski等人提出了另一种自动化方法:角膜成像校准(CIC)。与INDICA不同,CIC使用基于虹膜的方法进行眼睛跟踪,CIC通过利用图像在用户眼睛角膜上的反射来估计眼睛位置,这种效果称为角膜反射。
在CIC中,一个基准模式显示在HMD屏幕上,眼睛摄像头捕捉到它的角膜反射,CIC然后计算反射在眼角膜上的光线并通过相应的显示像素,给定显示器在HMD坐标系下的三维姿态、双环眼模型下角膜球的直径和最少两条光线,该方法计算眼球角膜球的位置,然后,给定眼球旋转时的三个角膜球位置,CIC估计眼球的3D中心。这种基于反射特征和眼睛结构简化模型的眼睛位置估计,比直接虹膜检测产生更精确的三维定位估计。
然而,INDICA和CIC使用的3D眼睛模型可以改进。该模型假设眼球可以被示意性地建模为两个相交的三维球体,其中第一个球体建模眼球的球形部分(包括巩膜),第二个球体建模角膜曲率。在这个模型下,人眼相机的光学中心假设位于巩膜(眼球)球体的中心。然而,眼睛的节点——光线穿过瞳孔的交叉点——是光学眼睛中心更合适的位置。
显示器模型
到目前为止,提到的大多数方法都将OST-HMD的图像屏幕视为平面面板,然而,这个模型忽略了这样一个事实,即光学组合系统可以在入射光线到达眼睛之前对其进行扭曲,其方式类似于矫正眼镜。这种失真既可以影响显示器的虚拟图像(增强视图),也可以影响通过组合光学器件看到的真实世界的视图(直接视图)。为了校正增强视图,Lee和Hua提出了一种基于摄像机的校正方法,即在屏幕图像空间学习校正的2D畸变图,为了校正直视。
Itoh和Klinger提出将畸变建模为穿过光学元件的4D光线束(光场)的偏移,然后估计原始光场和畸变光场之间的4D到4D映射。因为它使用光场,这种方法可以处理视点相关的失真。
Itoh和Klinger接着扩展了这种方法来校正增强视图的扭曲。他们用OST-HMD进行的评估显示,去除直接视野和增强视野畸变可以提供与20/50视力相当的整体配准精度。除了Itoh和Klinger提出的失真估计之外,进一步提出了OST头盔的视相关色差(点扩散函数)建模。该方法将图像模糊建模为4D到4D畸变映射中的高斯函数,并通过测量不同视角下显示器的脉冲响应来估计图像模糊。
显然,自动校准方法是OST-hmd的未来。除了使操作人员不必手动执行校准程序外,自动方法还可以以闭环方式操作,不断调整校准,从而校正用户头上的头盔显示器的微小移动。此外,将眼睛跟踪器集成到OST-HMD中允许许多有用的交互技术,例如基于注视的交互,并且还允许优化的渲染方法,例如中心凹渲染。然而,正如所讨论的,自动校准方法仍然面临挑战,特别是涉及眼睛模型和显示模型。
资源
三维点云论文及相关应用分享
【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法
3D目标检测:MV3D-Net
三维点云分割综述(上)
3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)
win下使用QT添加VTK插件实现点云可视化GUI
JSNet:3D点云的联合实例和语义分割
大场景三维点云的语义分割综述
PCL中outofcore模块---基于核外八叉树的大规模点云的显示
基于局部凹凸性进行目标分割
基于三维卷积神经网络的点云标记
点云的超体素(SuperVoxel)
基于超点图的大规模点云分割
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享
【开源方案共享】ORB-SLAM3开源啦!
【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM
【点云论文速读】StructSLAM:结构化线特征SLAM
SLAM和AR综述
常用的3D深度相机
AR设备单目视觉惯导SLAM算法综述与评价
SLAM综述(4)激光与视觉融合SLAM
Kimera实时重建的语义SLAM系统
SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM
易扩展的SLAM框架-OpenVSLAM
高翔:非结构化道路激光SLAM中的挑战
SLAM综述之Lidar SLAM
基于鱼眼相机的SLAM方法介绍
往期线上分享录播汇总
第一期B站录播之三维模型检索技术
第二期B站录播之深度学习在3D场景中的应用
第三期B站录播之CMake进阶学习
第四期B站录播之点云物体及六自由度姿态估计
第五期B站录播之点云深度学习语义分割拓展
第六期B站录播之Pointnetlk解读
[线上分享录播]点云配准概述及其在激光SLAM中的应用
[线上分享录播]cloudcompare插件开发
[线上分享录播]基于点云数据的 Mesh重建与处理
[线上分享录播]机器人力反馈遥操作技术及机器人视觉分享
[线上分享录播]地面点云配准与机载点云航带平差
如果你对本文感兴趣,请后台发送“知识星球”获取二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!
以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除
扫描二维码
关注我们
让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。
分享及合作方式:微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。
点一下“在看”你会更好看耶
这篇关于头戴式AR/VR 光学标定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!