【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選項,添加這個字段表示該模型有透明部分。

其實你也能夠經過修改程序,增長本身的配置選項,仍是很方便擴展的。

相關文章
相關標籤/搜索