»主站点 你尚未 »登陆 »注册 »帮助 »English Version »中文GB-BIG5转换



 
»加入收藏夹 »订阅主题 »上一篇主题 »下一篇主题
   
Necroz Studio » 文献图书馆 » 增强现实技术ARToolKit 介绍  
thread topic: 增强现实技术ARToolKit 介绍
  


 
sj125
rank: Executor
essentials: 2  
posts: 242
gem: 2
sp: 612
oge: 0

onlined:25 hours
join date:2006-09-01
last login:2012-12-18
»资料 »短信息 »推荐 »引用 »编辑

增强现实技术ARToolKit 介绍

增强现实(Augmented Reality,简称AR)是近年来国外众多知名大学和研究机构的研究热点之一,AR技术不仅在与VR技术相类似的应用领域,诸如尖端武器、飞行器的研制与开发、数据模型的可视化、虚拟训练、娱乐与艺术等领域具有广泛的应用,而且由于其具有能够对真实环境进行增强显示输出的特性,在医疗研究与解剖训练、精密仪器制造和维修、军用飞机导航、工程设计和远程机器人控制等领域,具有比VR技术更加明显的优势。
  增强现实(AR),也被称之为混合现实。它通过电脑技术,将虚拟的信息应用到真实世界,真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在。增强现实提供了在一般情况下,不同于人类可以感知的信息。它不仅展现了真实世界的信息,而且将虚拟的信息同时显示出来,两种信息相互补充、叠加。在视觉化的增强现实中,用户利用头盔显示器,把真实世界与电脑图形多重合成在一起,便可以看到真实的世界围绕着它。
  增强现实借助计算机图形技术和可视化技术产生现实环境中不存在的虚拟对象,并通过传感技术将虚拟对象准确“放置”在真实环境中,借助显示设备将虚拟对象与真实环境融为一体,并呈现给使用者一个感官效果真实的新环境。因此增强现实系统具有虚实结合、实时交互、三维注册的新特点。
  增强现实技术的应用领域
  * 医疗领域:医生可以利用增强现实技术,轻易地进行手术部位的精确定位。
  * 军事领域:部队可以利用增强现实技术,进行方位的识别,获得目前所在地点的地理数据等重要军事数据。
  * 古迹复原和数字化文化遗产保护:文化古迹的信息以增强现实的方式提供给参观者,用户不仅可以通过HMD看到古迹的文字解说,还能看到遗址上残缺部分的虚拟重构。
  * 工业维修领域:通过头盔式显示器将多种辅助信息显示给用户,包括虚拟仪表的面板、被维修设备的内部结构、被维修设备零件图等。
  * 网络视频通讯领域:该系统使用增强现实和人脸跟踪技术,在通话的同时在通话者的面部实时叠加一些如帽子、眼镜等虚拟物体,在很大程度上提高了视频对话的趣味性。
  * 电视转播领域:通过增强现实技术可以在转播体育比赛的时候实时的将辅助信息叠加到画面中,使得观众可以得到更多的信息。
  * 娱乐、游戏领域:增强现实游戏可以让位于全球不同地点的玩家,共同进入一个真实的自然场景,以虚拟替身的形式,进行网络对战。
  * 旅游、展览领域:人们在浏览、参观的同时,通过增强现实技术将接收到途经建筑的相关资料,观看展品的相关数据资料。
  * 市政建设规划:采用增强现实技术将规划效果叠加真实场景中以直接获得规划的效果。
  国内比较权威的增强现实学者是北京理工大学 光电工程系的王涌天教授
 
 
ARToolKit 介绍
-------------------------------------------------------------------------------------------------------

ARToolKit 它是一个C/C++ 语言编写的库,通过它可以让我们很容易的编写 增强现实 应用程序。

增强现实(AR)是将电脑虚拟的图像覆盖到真实世界画面中,这个技术在工业和理论研究方面都存在着极大的潜能。

对于开发一个AR程序来说,最困难的部分在于实时的将虚拟图像覆盖到用户视口,并且和真实世界中的对象精确对齐。ARToolKit使用电脑图像技术计算 摄像机和标记卡之间的相对位置,从而使程序员能够将他们的虚拟对象覆盖到标记卡上面。ARToolKit 提供的快速和准确的标记跟踪,能够让你快速的开发出许多更新更有趣的AR程序。

这篇导读包含了 ARToolKit 库的完整介绍,包括如何安装它和如何在程序中使用它的各种功能。ARToolKit SDK中附带了一些简单例子程序,它们可以帮助开发者学习如何使用该库。ARToolKit 包含了跟踪库和这些库的完整源代码,开发者可以根据平台的不同调整接口,也可以使用自己的跟踪算法来代替它们。

ARToolKit 目前支持以下操作系统:
SGI IRIX
PC Linux
Mac OS X
PC Windows (95/98/NT/2000/XP)

ARToolKit 的最终版本将会是跨平台的..对于开发包来说,这些不同版本的函数集都是一样的,只是其实现利用了相关平台上的硬件特性。

目前版本的ARToolKit同时支持 Video(普通视频) 和 标准的see-through AR . Video see-through AR 是指将虚拟图像覆盖到实时视频。标准的see-through AR要求使用者具备头部现实设备(带在眼睛上的那种摄像设备),并且它有着更加复杂的视频标准和注册要求。

随时欢迎任何关于ARToolKit 的交流、问题和BUG提交。关于新版本的发布、活跃的用户群、正在使用ARToolKit的开发者这些信息都可以通过 ARToolKit 的邮件获得,并且有一个活跃的社区(BBS) (见 community webpage). Bug reports and fixes,(Bug 报告和修复) patches, (补丁)and feature requests (要求新增功能),这些常规项目自然也有。你可以通过上面的连接访问位于 SourceForge 的 ARToolKit项目。

-------------------------------------------------------------------------------------------------------
安装 Artoolkit

介绍

本质上讲, ARToolKit 是一个许多软件库的集合--一同连接到目标程序。所以 ARToolKit 是以源代码形式发布的,而你必须自己编译它--在指定的平台和操作系统环境下(这不就是偷懒嘛)。你需要一个对应操作系统下的开发环境,每个平台上都有免 费的开发环境可用。当然也可以在不免费的VS中编译(无语了)。

虽然 ARToolKit 为各个平台提供了同样的函数(接口),但是安装则不尽相同。在这篇文章里我们将指导你在不同的环境下进行安装。(挺温暖哈,不过我只摘了Windows平台)

你的机器、操作系统和平台都必须满足基本需求。你的硬件必须包括一个视频流输入设备和足够的(剩余的)CPU去执行视频的处理和显示任务。同时也依赖于许多其他的库,这对于编译和连接来说非常重要。

最主要的依赖库是OpenGL ,GLUT。另外就是视频处理库,如DirectShow,V4L,QuickTime等。我们会在下面列出各个平台上相关的依赖库清单。

生成

在Windows平台上生成

必备条件

必备条件介绍
开发环境支持 Microsoft Visual Studio 6 和 Microsoft Visual Studio .NET 2003 , 不过你也可以用其他免费的开发环境进行生成 (例如 Cygwin, http://www.cygwin.com/)
DSVideoLib-0.0.8b-win32

在Windows平台上, DSVideoLib 用于和摄相头驱动进行通信. ARToolKit 2.71 要求使用DSVideoLib-0.0.8b 或以上版本。以下地址提供了源代码和二进制库文件的下载 ARToolKit downloads page on sourceforge.

GLUT

检查是否安装过GLUT运行时库和SDK. 如果没有,你可以从这里下载到http://www.xmission.com/~nate/glut.html

检查你的系统里有没有GLUT运行时库,比如 c:\windows\system32

  • glut32.dll

检查你的VS是否有GLUT的SDK

  • Include\gl\glut.h
  • Lib\glut32.lib
DirectX Runtime

DX9.0b 以上

视频输入驱动

将摄相头接到电脑上,安装好必需的驱动. 运行amcap.exe 以检查你的摄相头是否安装了VFW 或WDM驱动(可以在DX SDK中找到,Samples\C++\DirectShow\Bin)。检查你的驱动列表 (见插图1).

amcap.exe screenshot
插图 1: amcap程序运行截图

(可选的, 使用VRML需要这个) OpenVRML-0.14.3-win32

你可以在这里下载到 OpenVRML 的源代码和二进制文件 ARToolKit downloads page on sourceforge.

生成 ARToolKit

现在你可以开始生成 ARToolKit 了. 生成步骤如下:

  1. 将ARToolKit随便解压缩到一个路径下,下面的步骤将以{ARToolKit}代指这个路径
  2. 将 DSVideoLib 解压缩到 {ARToolKit}. 确保文件夹名称为"DSVL".
  3. 将 DSVL.dll 和 DSVLd.dll 从 {ARToolKit}\DSVL\bin 拷贝到 {ARToolKit}\bin.
  4. 将 GLUT 的DLL 扔到 Windows 的System32 文件夹, 在VS中设置好 GLUT的头文件和库文件
  5. 运行脚本 {ARToolKit}\Configure.win32.bat ,它将创建 include/AR/config.h.
  6. 打开 ARToolKit.sln (VS.NET 2003) 或者 ARToolkit.dsw (VS6).
  7. 生成.

VRML渲染库和例子是可选的:

  1. 解压缩 OpenVRML 到 {ARToolKit}.
  2. 将 js32.dll 从{ARToolKit}\OpenVRML\bin 拷贝到 {ARToolKit}\bin.
  3. 在VS中加载 libARvrml 和 simpleVRML 项目,生成。

运行应用程序和例子

当前版本的 ARToolKit 不再需要特定的路径了;目前ARToolKit 工程中设置的路径能够适用于编译你的ARToolKit 应用程序(就好了,我们自己肯定要改的撒) 将ARToolKit编译为静态库,它就可以被连接到任意程序了。为了使用ARToolKit ,你需要一些有效的标记卡(识别卡):一些默认的标记卡在 patterns 文件夹中。你可以使用任何PDF阅读器打开它并打印出来。它们对你接下来的实验很有用。ARToolKit 需要比较硬的标记卡(刚体),一个简单的方法就是将纸片粘到卡片上(参见 hardware )。然后你需要检测ARToolKit 的图形部分是否工作正常。运行 bin 文件夹下的 graphicsTest.exe ,如果一切正常,将出现如下的窗口:

graphicsTest screenshot
图象显示检测截图
接下来的检测将测验你的摄象机是否支持ARToolKit 基于OpenGL的图象模块。推荐使用15fps,低于这个速度将对ARToolKit 的渲染产生影响(参见 FAQ )。当然首先你得检测摄象机是否工作正常。运行bin 文件夹中的 videoTest 程序,如果没有问题,将出现如下图所示的画面。
videoTest screenshot
视频检测截图
如果什么都没显示,多半和你的摄象机默认配置有关。(参见 FAQ

--------------------------------------------------------------------------------------------------

运行第一个例子程序
介绍

一旦ARToolKit 安装好,就可以运行一个简单的程序来检验一下。simpleTest 或者其他程序(取决于你的ARToolKit 版本)。
PS:2.7.2 运行 simpleLite 会好一些,弹出来的对话框如果点确定没什么效果,或出现无法连接到camera,试试点取消。

为了能完整的进行测试,你需要将patterns文件夹下的hiroPatt.pdf 打印出来(其实直接照屏幕都行,Camera又分辨不出什么是纸)。最好能将它制作成一张卡片。

所有的例子程序都输出到同一个目录,文章接下来将描述在各个平台上运行例子程序时的具体情形。

运行 ARToolKit

不管在哪种平台下,你都有2种选择:双击应用程序或者使用命令行:使用后者更好,因为ARToolKit 使用标准输出流。每种平台下,在执行ARToolKit 主循环代码前,都会弹出配置视频模式的对话框。

Windows 平台

双击 bin 文件夹中的 simple.exe 程序。出现一个DOS控制台窗口和一个对话框,当点击确定后,摄像机将启动。或者通过命令行启动。

Windows Camera Config
Windows平台摄像机配置
通过该对话框可以调整输出视频的尺寸和像素格式。你需要多试几下,以便使你的ARToolKit 程序更好的跟踪标记(因为视频压缩是一件非常消耗CPU的事)。一些驱动程序还可以使你调整摄像头的帧数。默认的设置可能并不适合你的摄像机(参见 FAQ

这个例子向你展示了一个基于 ARToolKit 的视频软件,在下一个章节我们将简单了解 ARToolKit 的工作原理。

---------------------------------------------------------------------------------------------------
Artoolkit 的工作原理

  • 基本原理
  • 局限性
基本原理
基于ARToolKit 的应用程序可以在实时视频中显示有景深的虚拟影像(透视投影)。 虽然看上去有点象魔法,但不是的。秘密在于用于跟踪的黑色形状标记。ARToolKit 的跟踪步骤如下:

  1. 摄像机捕获真实世界的视频,并将它传送给计算机。
  2. 软件监控视频流中的每一帧图像,并在其中搜索是否有匹配的图形标记。
  3. 如果找到了,ARToolKit 将通过数学运算计算出图形标记和摄像头的相对位置(投影变换矩阵)。
  4. 得到摄像头的位置之后,此来调整模型的位置和方向。
  5. 将模型渲染到标记卡所在(帧画面)的位置。
  6. 最终输出到显示设备的视频流是进过处理的,因此当人们通过显示设备看到视频(而不是直接拿眼睛看真实世界)时,模型便覆盖到拍摄到的真实世界画面上了。
下面这张图描述了ARToolKit如何实时跟踪标记,并将模型显示到正确的位置的过程。
Windows Camera Config
局限性
目前完全由电脑实现的AR系统存在着一些局限性。 基本上只有当标记完全出现在视频中,虚拟对象才会出现,这会限制虚拟对象的尺寸和移动速度。这也意味着如果用户用手或者其他物体遮挡了标记,虚拟形象也将消失。
有效范围也是问题。标记的实际尺寸越大,能跟踪的距离越远。表1列举了一些标记尺寸和最大有效范围的数据。测量的方法是移动标记和摄象机,直到虚拟对象消失为止。

Pattern Size (inches)Usable Range (inches)
2.7516
3.5025
4.2534
7.3750

表1:不同尺寸的标记和对应的跟踪最大范围

同时范围也会受到标记的复杂程度的影响。标记越简单,跟踪效果越好。一整块纯黑或纯白的标记效果是最好的(- -#)。如果将上表中4.25英寸的标记弄的非常复杂,跟踪距离将从34英寸减少到15英寸。

跟踪效果也会受到摄象机和标记的相对朝向的影响。标记最好的状态就是水平出现在摄象机画面中。相对角度越小,越难正确识别标记。

最后,跟踪效果还受到光照条件的影响。光可能产生反射和折射,这会令识别标记更加困难。为了减少这样的情况,可以使用一些不容易产生反射的材质来制作标记。比如使用三夹板(建筑材料)。在工艺品店买到的名为“fuzzy”的带绒毛的纸张(不知道是什么,听起来象劣质手纸...)效果也很好。




[ 此贴被Pucs在2009-02-11 18:17重新编辑 ]

  
 
Pucs
Lord of Meshal
rank: The High
essentials: 7  
posts: 2573
gem: 25
sp: 502
oge: 1
Necroz Member Game Master Architect Honor
onlined:519 hours
join date:2006-03-30
last login:2020-07-22
»资料 »短信息 »推荐 »引用 »编辑 »QQ



恩,刚刚看了它的英文部分介绍.

考虑下一个下来玩玩:>

  


 
sj125
rank: Executor
essentials: 2  
posts: 242
gem: 2
sp: 612
oge: 0

onlined:25 hours
join date:2006-09-01
last login:2012-12-18
»资料 »短信息 »推荐 »引用 »编辑



http://v.youku.com/v_show/id_XNTAxMDg2MTY=.html已经有利用这个技术做的游戏了。
  


 
sj125
rank: Executor
essentials: 2  
posts: 242
gem: 2
sp: 612
oge: 0

onlined:25 hours
join date:2006-09-01
last login:2012-12-18
»资料 »短信息 »推荐 »引用 »编辑



球体运动演算
http://v.youku.com/v_show/id_XNjgzMzUyNDQ=.html

ARToolKit与物理演算的结合
http://v.youku.com/v_show/id_XNjgzMzQ2NTY=.html


ARToolKit技术制作的坦克部队
http://v.youku.com/v_show/id_XMTYzMDkwNjQ=.html

ARToolKit让你看见声音
http://v.youku.com/v_show/id_XMjAyMzYyNDQ=.html

ARToolkit扩张现实感新最新技术展望
http://v.youku.com/v_show/id_XMTY5MzkzNDg=.html

ARToolkit里嵌入VRML97制作的热带鱼
http://v.youku.com/v_show/id_XMTgzMzMwMzY=.html

ARToolkit三维立体视觉模型范例之2调整投影
http://v.youku.com/v_show/id_XMTc1Nzc2NjQ=.html

ARToolkit三维立体视觉雕塑应用篇之5演唱会现场直播
http://v.youku.com/v_show/id_XMTY3MzQwNjg=.html

MMD应用【萌】河童黄瓜米饭团[HATUNE MMD]
http://v.youku.com/v_show/id_XNDM1MjQ0NTY=.html
开始以为是小鸡啄米,后来才发现她们是在表现制作河童黄瓜米饭团的过程。手指的运动太可爱了,萌死不偿命。

 
 
Necroz Studio » 文献图书馆
   





Copyright 2006-2011 Necroz Studio

Powered by PHPWind v4.3.2 Code © 2003-06 PHPWind
Time now is:04-28 03:14, Gzip enabled
You can contact us