增强现实引擎ARToolKit工作原理简介
ARToolkit是一个基于CV(计算机视觉)和Marker(标识)的开源增强现实引擎。
其具备如下功能特性:
A. 鲁棒跟踪,包括基于标记的跟踪与基于特征的跟踪;
B. 强用力的摄像头/相机标定支持(摄像头/相机标定需要确定中心点坐标(光心)、摄像机实际焦距(fx=α∗f,fy=β∗f)(fx=α∗f,fy=β∗f)与镜头畸变参数(取决于畸变模型);主要提供两种标定方法:两步标定法与一步标定法;当已知摄像头/相机内部参数时,ARToolkit程序就可以在运行时自动矫正摄像头畸变);
C. 多目标支持与单目相机支持;
D. 移动设备优化;
E. Unity3D、OpenSceneGraph支持;
F. 支持WebAR。(JSARToolkit或AR.js)
ARToolkit通过计算机视觉来判断是否找到标记及在标识识别成功后计算虚拟物体所处位置,其流程图如下:
A. 摄像机捕获真实世界的视频,并将其传送给计算机;
B. 软件监控视频流中的每一帧图像,并在其中搜索所有的正方形(方形标记);
C. 如果找到并且匹配和识别方形标记(方形和嵌入的图像)后,计算出相对摄像头的图形标记位置和图案方向(投影变换矩阵/位姿);
D. 利用摄像头位姿来调整模型的位置和方向;
E. 将模型渲染到标记卡所在(帧画面)的位置(叠加在视频图像帧上)。
基于ARToolkit的AR系统(或应用程序)工作流程如下:
A. 系统初始化:初始化视频捕捉、载入模板及其对应虚拟对象、相机内参(光心|焦距|畸变参数);
B. 标记检测(搜索整个图像,寻找含有正确标识模板的标记):计算分割阈值、图像分割、模板匹配、计算投影变换矩阵;
C. 3D场景渲染:匹配成功则利用ARToolkit传递的投影变换矩阵计算3D场景(一般是虚拟物体模型)叠加位置并最终渲染显示。


最新评论
- 相关文章
CentOS6 Apache2.2用域名配置多虚拟机
在CentOS下使用域名配置多虚拟机的步骤如下:
1. 使用如何使用BabylonJS加载OBJ或STL模型
BabylonJS(也就是babylon.js,这是一个和three.js类似的WebGL开发框架),更多的用在游戏领域。
本文说明和演示如何使用babylon.js来加载一个标准3d模型文...JavaScript事件模型图解
在JavaScript中用户交互的核心部分就是事件处理。本文为对事件模型和处理机制的总体性描述。Event是什么?
event是用户操作网页时发生的交互动作,比如clic...通过实例深入理解HTML5/CSS3/SVG/WebGL的技术本质
HTML5动画背后的数学2 - 仿生智能算法综述
HTML5动画背后的数学 - 粒子群仿生算法简介
本站收录了多个算法可视化动画,如模拟鸟群运动:http://wow.techbrood.com/fiddle/30529等等。这里面除...
深入理解Three.js(WebGL)贴图(纹理映射)和UV映射
本文将详细描述如何使用Three.js给3D对象添加贴图(Texture Map,也译作纹理映射,“贴图”的翻译要更直观,而“纹理映射”更准确。)。为了能够查看在线演示效...
三维向量的简单运算和实用意义
在WebGL的实际应用中我们广泛使用向量的几何运算来计算角度、距离,判断点线、点面之间的关系,比如物体之间的碰撞检测。本文简要介绍三维计算机图形学中常用的...
S3TC(S3 Texture Compression)纹理压缩格式详解
使用S3TC格式存储的压缩纹理是以4X4的纹理单元块(texel blocks)为基本单位存储的,每纹理单元块(texel blocks)有64bit或者128bit的纹理单元数据(texel data)。这...
如何基于Canvas来模拟真实雨景Part1:预备知识和创建基本对象
Three.js 3D打印数据模型文件(.STL)加载
3D打印是当下和未来10年产品技术主流方向之一,影响深远。对于电子商务类的3D打印网站,一个主要功能是把商品以3D的方式呈现出来,也就是3D数据可视化技术。HTML...
使用CSS3实现流星雨动画教程
很多营销页面中需要实现类似流星雨的动画背景,营造节日浪漫的气氛。要实现这样的效果,有两种方法,一个是使用Canvas,一个是使用纯CSS3,我们这里介绍第2种方...
更多...