【AR实验室】ARToolKit之Example篇

0x00 - 前言


PS : 我忽然意识到ARToolKit本质可能就是一个能够实时求解相机内外参的解决方案。测试

拿到一个新的SDK,90%的人应该都会先跑一下Example。拿到ARToolKit的SDK,也不例外。不过本人以前是作iOS开发的,因此从官网下载的是ARToolKit5-bin-5.3.2-iOS.tar.gz。后面的博客内容基本上也都是围绕这个SDK进行的。固然,若是今年秋季出了ARToolKit6,我也会立马跟进的,据说ARToolKit加入了SLAM。spa

image

0x01 – 示例简介


example pattern result
ARApp image ARApp
解锁技能:触摸该正方体,正方体将会旋转
ARApp2 image
总共4个marker
ARApp2
支持multi markers
ARAppOSG image
总共2个marker
ARAppOSG
ARAppMovie image ARAppMovie
ARAppNFT pinball ARAppNFT
ARAppNFTOSG pinball ARAppNFTOSG
ARAppCameraTest 主要是为了测试相机的若干功能,好比屏幕分辨率切换、截屏、先后摄像头切换。
ARAppES1 image ARAppES1

0x02 - Pattern文件


pattern指的是你识别的图片模板,虽然上述表格使用图片来表示pattern,可是在ARToolKit中,咱们须要对图片进行训练,对于marker类型的图片是输出”.patt”文件以便ARToolKit进行识别。而NFT(Natural Feature Tracking)天然图片是输出FeatureList,好比上述使用的pinball.jpg输出的FeatureList就是“pinball.fset”、”pinball.fset3”(而pinball.iset表示的是pinball.jpg的image set,即原始的图片信息)。关于图片/marker训练这一部分后面会专门开一章详解3d

pattern的图片能够打印出来,example中的pattern图片都是放在doc/patterns文件夹下。好比hiro pattern的pattern文件就是hiro.patt。blog

打开hiro.patt文件,你能够看到里面全是数字,不过很明显,这些应该都是颜色值:图片

image

考虑到hiro是黑白图,因此我将这些颜色值当作灰度值进行了图片输出,获得了下面这张图片。敢情hiro.patt的本质实际上是这样的:ip

image

而pinball.jpg的pattern文件是这样的:ci

pinball.fset
&pinball.fset3
image

 


Tip开发

pattern的图片存放在doc/patterns文件夹下,hiro pattern有两张图片get

hiro pattern with border hiro pattern
image image

实际使用中,能够明显发现hiro pattern with border的识别率远远高于hiro pattern,这是由于有了border的对比(注意到border和pattern黑色边缘的对比明显),对于pattern的识别率有显著提升。博客


0x03 - 其余配置文件


除了pattern文件,每一个example都有三个一样的文件 – camera_para.dat、markers.dat、models.dat。

  • camera_para.dat

相机标定获取到的相机内参。

下图解释了内参与外参的含义(来源自知乎机器视觉的相机标定究竟是什么?)。

image

  • markers.dat

image

  • models.dat

image

另外还有TRANSPARENT选项,添加这个字段表示该模型有透明部分。

其实你也能够经过修改程序,增长本身的配置选项,仍是很方便扩展的。

相关文章
相关标签/搜索