图像处理之_增强现实工具ARToolKit

1. 增强现实

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

2. 相关概念

(1) ARToolkit

 ARToolkit,是一个开源的AR(增强现实)SDK。它是用C/C++ 语言编写的库,通过它可以很容易地编写增强现实应用程序。 增强现实中最困难的部分在于实时的将虚拟图像覆盖到用户视口,并且和真实世界中的对象精确对齐。ARToolKit使用电脑图像技术计算摄像机和标记卡之间的相对位置,从而使程序员能够将他们的虚拟对象覆盖到标记卡上面。ARToolKit 提供的快速和准确的标记跟踪,能够让你快速的开发出许多更新更有趣的AR程序。

(2) OpenGL

 OpenGL是 Open Graphics Library,用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API),可绘制从简单的图形到复杂的三维景象。

(3) OpenCV

 OpenCV是 Open Source Computer Vision Library。它提供图像处理和视频处理的基础算法库,还涉及一些机器学习的算法。比如实现视频的降噪、运动物体的跟踪、目标(比如人脸)的识别等。

(4) 关系

 OpenCV专注于从采集到的视觉图像中获取信息,是用机器来理解图像;OpenGL是用机器绘制合适的视觉图像给人看,ARToolkit依赖OpenCV和OpenGL,虽然大多功能用OpenCV也能实现,但使用ARToolkit更加方便和高效。

3. 安装软件

(1) OpenGL

$ sudo apt-get install build-essential libgl1-mesa-dev
$ sudo apt-get install freeglut3-dev
$ sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev 上面提到的

 mesa是一个软件实现的OpenGL功能,虽然慢,但在你的显卡或者系统不支持硬件加速时,它使程序还能运行。

(2) OpenCV

$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/3.1.0/opencv-3.1.0.zip
$ unzip opencv-3.1.0.zip
$ cd opencv-3.1.0/
$ cmake
$ make
$ sudo make install

 OpenCV也可使用apt安装,不过建议下载编译源码,源码中有很多示例可以参考,也能追进函数,查看其功能具体如何实现。

(3) 安装ARToolKit

$ sudo apt install clang libc++-dev libc++1 libdc1394-22 libraw1394-dev libv4l-dev
$ git clone [https://github.com/artoolkit/artoolkit5](https://github.com/artoolkit/artoolkit5)
$ cd artoolkit5/
$ ./Configure # 这步最重要,根据自己的环境设置,否则编不过 
$ make 

 对于数据源,它支持gstreamer和V4L(Video For Linux),这里我主要使用了V4L。另外还有一个小问题,编译时可能提示找不到opencv的头文件,我把它修改成了#include <opencv/cv.h>。

4. 运行示例

 还是在ARToolKit目录下,编译后运行

(1) 校正摄像头

 calib_camera是校正摄像头的程序,代码在util/calib_camera目录下,编译后程序生成在bin目录下,运行此程序时,需要一个5x7的棋盘图,位置在./doc/patterns/Calibration chessboard**.pdf,我用手机拍了一张相片,即可和摄像头配合使用,可以看到视频上出现了对棋盘位置的标注。

$ ./bin/calib_camera

(2) 图片追踪示例

 nftSimple是图像追踪的示例,代码在examples/nftSimple目录下,只要在摄像头前移动该图片,三维的小方块就能跟着它移动,且能随之变换三维角度,也就是简单的增强现实效果。它所需要的Marker在./examples/ARAppNFTOSG/Markers/pinball.jpg,当然你也可以用工具制作 自己marker,用程序把jpg文件转换成set标注。

$ ./bin/nftSimple

(3) 调试说明

 太多东西累加到一起,遇到问题时,难以定位是opengl, opencv还是artoolkit的问题。上面两个例程在调试的时候,屏幕上的标注和立体效果一开始出不来,看到一些ioctl的报错,怀疑是不是摄像头不支持某些功能引起的,后来又在opencv的源码里找相似的校正例程,怀疑是摄像头捕捉的图片和opencv支持的格式不一致(校正程序只支持1通道8位灰图),之后又在代码中把捕捉到的每帧图像存成jpg找线索。后来发现:需要在拍摄的第一帧中就出现maker——左手运行程序,右手举着图片,这也同样很奇怪,只能识别第一帧。

 最终看代码,AR2VideoBufferT帧数据有两种buff,一种是存储的是各通道颜色数据buff,另一种为亮度数据buffLuma,我们使用的主要是这个亮度数据,我在两台ubuntu笔记本上都遇到同一问题:默认情况下,buffLuma只在第一帧时更新,之后里面的内容就不变了,修改方法是改其源码lib/SRC/Video/video2.c,在ar2VideoGetImage函数中, 将"if (!ret->buffLuma)“判断去掉,在任何情况下都重新计算buffLuma。

5. 参考

(1) 制作marker和NFT
https://www.cnblogs.com/polobymulberry/p/5905912.html

(2) ARToolKit例程及对应效果
http://www.cnblogs.com/polobymulberry/p/5905680.html

(3) ARToolKit流程图
http://www.mamicode.com/info-detail-2331367.html

(4) 标准相机
http://blog.sina.com.cn/s/blog_6e7e94bc0100m9jw.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351