0x00 - 前言


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

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

0x01 – 示例简介


example pattern result
ARApp
解锁技能:触摸该正方体,正方体将会旋转
ARApp2
总共4个marker

支持multi markers
ARAppOSG
总共2个marker
ARAppMovie
ARAppNFT
ARAppNFTOSG
ARAppCameraTest 主要是为了测试相机的若干功能,比如屏幕分辨率切换、截屏、前后摄像头切换。
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训练这一部分后面会专门开一章详解

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

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

考虑到hiro是黑白图,所以我将这些颜色值当做灰度值进行了图片输出,得到了下面这张图片。敢情hiro.patt的本质其实是这样的:

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

pinball.fset
&pinball.fset3

Tip

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

hiro pattern with border hiro pattern

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


0x03 - 其他配置文件


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

  • camera_para.dat

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

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

  • markers.dat

  • models.dat

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

其实你也可以通过修改程序,增加自己的配置选项,还是很方便扩展的。

【AR实验室】ARToolKit之Example篇的更多相关文章

  1. 【AR实验室】mulberryAR : ORBSLAM2+VVSION

    本文转载请注明出处 —— polobymulberry-博客园 0x00 - 前言 mulberryAR是我业余时间弄的一个AR引擎,目前主要支持单目视觉SLAM+3D渲染,并且支持iOS端,但是该引 ...

  2. 【AR实验室】mulberryAR:并行提取ORB特征

    本文转载请注明出处 —— polobymulberry-博客园 0x00 - 前言 在[AR实验室]mulberryAR : ORBSLAM2+VVSION末尾提及了iPhone5s真机测试结果,其中 ...

  3. 【AR实验室】ARToolKit之概述篇

    0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...

  4. 【AR实验室】ARToolKit之制作自己的Marker/NFT

    0x00 - 前言 看过example后,就会想自己动动手,这里改改那里修修.我们先试着添加自己喜欢的marker/nft进行识别. 比如我做了一个法拉利的marker: 还有网上找了一个法拉利log ...

  5. 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)

    0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...

  6. 【AR实验室】mulberryAR :添加连续图像作为输入

    本文转载请注明出处 —— polobymulberry-博客园 0x00 - 前言 之前mulberryAR只能利用手机相机实时捕捉图像作为系统的输入,这也比较符合用户的习惯.但是在开发的过程中,有时 ...

  7. AR增强现实开发介绍

    AR增强现实开发介绍 ---理论篇 ​ AR增强现实开发最近做一些AR增强现实的内容,一些普及性的内容,与大家分享. 一: 什么是AR增强现实技术: 是一种将真实世界信息和虚拟世界信息“无缝”集成的新 ...

  8. 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇)

    系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 前言 好久不见,很久没更新博客了,前段时间 ...

  9. OpenCV笔记大集锦(转载)

    整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址: ...

随机推荐

  1. 游戏编程系列[1]--游戏编程中RPC协议的使用[3]--体验

    运行环境,客户端一般编译为.Net 3.5 Unity兼容,服务端因为用了一些库,所以一般为4.0 或往上.同一份代码,建立拥有2个项目.客户端引用: WindNet.Client服务端引用: OpL ...

  2. HTML 事件(二) 事件的注册与注销

    本篇主要介绍HTML元素事件的注册.注销的方式. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流.事件委托 4. ...

  3. iOS开发之App间账号共享与SDK封装

    上篇博客<iOS逆向工程之KeyChain与Snoop-it>中已经提到了,App间的数据共享可以使用KeyChian来实现.本篇博客就实战一下呢.开门见山,本篇博客会封装一个登录用的SD ...

  4. UWP开发必备以及常用知识点总结

    一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...

  5. so 问题来了,你现在值多少钱?

    年底了一大帮人都写着年底总结,总结一年做过的事.错过的事和做错的事.增长了多少本事,找没找到女朋友……来年做好升职加薪,要么做跳槽的准备,程序猿又开始浮躁了……. so 问题来了,你现在值多少钱? 这 ...

  6. javascript中变量提升的理解

    网上找了两个经典的例子 var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); // 10 var ...

  7. C# 自定义控件VS用户控件

    1 自定义控件与用户控件区别 WinForm中, 用户控件(User Control):继承自 UserControl,主要用于开发 Container 控件,Container控件可以添加其他Con ...

  8. Dynamics CRM 之ADFS 使用 WID 的独立联合服务器

    ADFS 的使用 WID 的独立联合服务器适用于自己的测试环境,常用的就是在虚机中使用. 拓扑图如下: wID:联合身份验证服务配置为使用 Windows 内部数据库

  9. 元素绝对居中终极办法兼容IE8

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 微软将向Linux用户提供SQL Server程序

    微软公司(Microsoft Corp., MSFT)将向Linux操作系统的用户提供旗下一项最赚钱的产品,这是该公司几年前无法想像的举措.这家软件巨头周一表示,将向免费的Linux Server提供 ...