SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
無標記擴增實境實驗平台建置與視覺追蹤技術分析

              王順吉 鍾德煥 李正豪 翁志嘉
              國防大學理工學院資訊工程學系
                   sjwang@ndu.edu.tw
                tehuan.chung@gmail.com
                  1001207@gmail.com
                  bbcweng@gmail.com

                        摘要
  影像視覺追蹤與定位技術可用於擴增實境之應用,依使用標記與否,可分為標記與
無標記兩類技術。標記識別技術較為簡單,且較為成熟,但受限於需使用特殊之標記。
無標記識別技術使用一般自然物件來取代特殊標記,應用較為彈性,但必須能正確擷取
出欲辨識物件有用之特徵點。現有擴增實境之開發函式庫或開發平台,主要目的為提供
擴增實境之應用開發,不提供無標記擴增實境技術研究方法之驗證。故本文深入研究探
討如何整合 ARToolKit、OpenCV 與 OpenGL 等函式庫,設計無標記擴增實境整合平台。
且此平台各項功能採用模組化設計,以更彈性提供適用於無標記擴增實境物件辨識與追
蹤相關方法之驗證。另外,本文並探討自然物件複雜度與移動速度對辨識與追蹤之影
響,分析適用於擴增實境自然物件之特徵值,做為後續提出克服因低複雜度自然物件以
及高速移動導致追蹤失敗之缺失,藉以同時驗證平台之適用性。本文之研究結果,可做
為實現開發無標記擴增實境實驗平台之重要參考依據。

關鍵字:擴增實境、無標記、虛擬實境、視覺追蹤

                        1. 前言
    「擴增實境」(Augmented Reality, AR)將真實世界之影像、素材和資料,與電腦產生
之三維虛擬物件互相結合,顯示出複合式之影像。在現今軟硬體技術提升與配合下,擴
增實境之技術才得以在現實生活中呈現。雖然目前此技術已經開始逐漸蓬勃發展,然而
要讓此技術變成日常生活的一部份,則需搭配更多的軟硬體相關技術。
    隨著智慧型手機(Smart Phone)的熱潮,行動數位化更替資訊研究領域創造出不同之
研究方向,而且攝影機更是智慧型手機之基本配備,所以可研究之領域更為寬廣;以往
只有電腦才能處理之資訊,現在的智慧型手機也可以輕鬆處理了。除了傳統的應用外,
這些智慧型手機有一個嶄新之應用領域,那就是擴增實境應用;智慧型手機夾帶其在行
動力上之優勢,是以往電腦所無法比擬的。例如 IKEA 就透過這項技術來介紹其一系列
的家俱,消費者可以在展示場透過智慧型手機之協助,運用擴增實境之技術來將家具與
空間進行結合,最後透過結合之複合影像來決定是否進行採購。另外信義房屋創新推出
的「iPhone 看屋 App」     ,不管消費者在哪裡,只要拿起手機對準所在地的街景,螢幕就
會列出附近相關物件資訊,這些都是智慧型手機發展之優勢。在頭戴式顯示器
(Head-Mounted Display, HDM)不夠便利,而三維立體影像投影技術依然處在研發階段之
情況下;智慧型手機之顯示器,就順理成章的成為擴增實境用來顯示虛擬物件之平台。
也因為如此,整個擴增實境之應用發展,在這一兩年間得以迅速擴大及成長。以往購買
玩具在尚未拆開包裝之前,很難得知玩具之特性與全貌;現在樂高(LEGO)採用擴增實
境之技術,只需要在特殊展示螢幕前,讓展示器辨識到該包裝盒上之商品圖標資訊,就
可以在該顯示器看到該款玩具的三維立體動畫展示,讓消費者迅速瞭解並感受此款玩具
的特性。另外,被人津津樂道的魔法書(MagicBook)應用,讓閱讀不再是那樣枯燥與呆
板,配合三維立體即時互動之呈現方式,會使得書本變的更加生動有趣。這些都是擴增
實境在標記(Marker)應用上之例子。
     然而綜觀全盤擴增實境之應用,大多數依然需要配合標記來運作,對於現實環境來
說,要將標記帶在身邊有點不切實際,而且目前之開發套件並非採用相同之標記圖庫,
所以往往只能在固定領域採用特定之標記,可想而知其應用範圍將受到很大之限制。因
此,若可以採用現實生活中之物件來取代標記,相信可提升擴增實境之應用領域。目前
坊間已經有許多開發環境可供使用者選擇,然而大部分採用標記方式運作,當然現有開
發環境也陸續提供無標記(Markerless)之應用,不過依然侷限在開發平台採取之無標記辨
識方法上。因為不同物體之辨識特徵不相同,所以無法使用一種方法來辨識所有物件之
特徵,這也是發展無標記應用所要面臨之問題。不管標記或無標記均需對物件進行追蹤
與辨識,唯一的差異在於是否使用日常生活中之自然物件。簡而言之,標記方式需要特
別準備標記圖卡來當作操作物件,而無標記則不需要。就應用層面來看,無標記的應用
將會是擴增實境未來研究之主軸。
     既然無標記擴增實境技術將是未來研究重點,而且既有開發環境也只提供有限制的
無標記之應用方法,要如何在既有的開發環境上開發無標記擴增實境之追蹤與辨識技
術,將是所要面臨之重大挑戰。因為擴增實境所涵蓋之技術非常廣泛,除了基礎的數位
影像處理(Digital Image Processing)技術外 還包括了計算機視覺(Computer Vision)和計算
                                 ,
機圖形學(Computer Graphics, CG),所以若沒有一個整合之開發環境,將無法有效快速
驗證無標記擴增實境技術之各種方法。目前開放原始碼的 ARToolKit 擴增實境開發工
具,並不支援 OpenCV 影像處理函式庫,而所需影像處理函式均需自行撰寫;若要使用
OpenCV 函式庫來處理影像資料,則必需將彼此影像格式互相轉換。而 ARToolKit 對於
三維立體物件位置及姿態之呈現,均需使用 OpenGL 函式庫,視訊追蹤後要如何將追蹤
物件使用三維立體虛擬物件來取代,都需要透過 OpenGL 函式庫。如果相關研究需要取
得使用者介面之控制權,便無法採用 ARToolKit 搭配 GLUT(The OpenGL Utility Toolkit)
之 現 有 架 構 來 處 理 使 用 者 介 面 , 而 必 需 配 合 複 雜 之 應 用 程 式 介 面 (Application
Programming Interface, API)來重新改寫部分 ARToolKit 函式才能達成。
     本文之目的在深入探討如何設計無標記擴增實境實驗平台,利用 ARToolKit 當作基
礎架構,結合 OpenCV(Open Source Computer Vision Library)與 OpenGL(Open Graphic
Library)等函式庫,並以模組化方式來設計視覺追蹤模組,能彈性提供各種偵測與追蹤
方法之驗證。

                              2. 文獻回顧
2.1. 無標記擴增實境簡介
     擴增實境可將真實場景與虛擬物件結合,其基礎技術為影像追蹤及辨識,故可區分
為「有標記」及「無標記」等二類,其中無標記系統代表擴增實境系統不須特定標記、
圖樣來辨識及定位,可依使用者喜好自行設計圖樣或使用真實自然物件來進行辨識及定
位,如圖 1所示。故無標記技術為使用没有固定標記的圖像來當作觸發的媒介,在使用
前需先擷取辨識物件圖像或其特徵點(如:紋理、顏色、輪廓等等),當攝影機畫面比對
出符合物件圖像或特徵點時,便即時在圖樣上置放預先設定好的虛擬物件,並同時在螢
幕上顯示擴增實境的畫面。然因無標記使用為非物件圖像,故在應用上較方便及美觀,
但在影像追蹤、辨識及定位效果較差,必須搭配更好的辨識及追蹤方法。
圖 1. 無標記擴增實境示意圖。
                     圖片摘錄自: Unifeye SDK[27]

2.2. 現有技術分析
     擴增實境發展至今,已經有許多相關的開發平台,例如 ARToolKit、ARTag 等,這
些開發套件也多採用標記方式來達成擴增實境的應用。ARToolKit 為美國華盛頓州立大
學 Human Interface Technology Laboratory 的 Kato 等人(1999)使用 C 語言所開發出來的
一套擴增實境之電腦視覺追蹤函式庫,其利用視訊追蹤能力來追蹤已定義之標記,並在
標記處繪製指定的三維物件,雖然解決了物件追蹤與虛擬物件互動之問題,但僅能追蹤
特定之標記物件。在 ARtoolKit 套件推出後,有許多的開發套件架構在其上面發展出新
的開發平台,目的不外乎提供更多的創作與運行環境,例如 NyARToolKit 與 jARToolKit
就是可以運作在 Java 上的 ARToolKit,除此之外 NyARToolKit 也支援 C#以及 Android
作業系統;FLARToolkit 則是 Flash 版本的 ARToolKit;而 ARmagic 則是在 Windows 上
運作的創作開發平台。當然這些新的開發平台依然侷限在 ARToolKit 所提供的能力範圍
下。
     ARToolKit Professional Edition[20]是 ARToolKit 商業化的版本,其結合了許多新的
影像處理技術,並支援目前最新的影像串流技術(Video Streaming)協定,對於影像處理
研究人員來說,其採用 OpenCV 來當作基礎架構,更是引人注目。對於研究人員來說,
適合採用 Development license 的授權方式,因為此種方式可以讓研究人員長期在上面進
行研究與發展;但是對於並非要進行商業行為的研究人員來說,此種方式可能需要較高
的研究成本 但是它的 NFT(Natural Features Tracking)擴展套件提供對自然紋理表面特徵
          ,
的追蹤技術,可讓研究人員開發出無標記之擴增實境應用。
     雖然 ARToolKit NFT 套件可以發展無標記之應用,不過對於辨識之影像依然需要傳
統標記當作辨識參考,此標記之設計必須是黑色邊框搭配白色或淺色背景,如果背景顏
色並非白色或淺色,則在黑色邊框外必須額外添加白色邊框,圖 2(a)所示。至於辨識之
影像周圍,至少提供一個標記來當作辨識參考,如圖 2 (b)所示,值得注意的是這些標
記沒有受到任何特定大小之限制。從以上分析可以知道,雖然 ARToolKit NFT 號稱可以
使用 JPEG 當作辨識影像,不過依然需要搭配標記使用,顯然與真正無標記還有一段落
差。
(a)                          (b)
                   圖 2. ARToolKit NFT 無標記應用範例。

    ARTag[17]為 Mark Fiala 修改 ARToolKit 之標記偵測模組而衍生之開發套件,所以
基本運作原理與 ARToolKit 相同;不過因為其著重在標記的辨識率及處理上,並且採用
既定的標記函式庫,所以不必與 ARToolKit 一樣,需要載入標記文件檔,其聲稱相較於
ARToolKit,有較高的辨識率及較短的處理時間。雖然在標記辨識上優於 ARToolKit,然
而與 ARToolKit 同樣都屬於需要特定標記的函式庫,依然不適用於非標記的應用領域;
但其建構在 OpenCV 函式庫基礎上,所以對於只需要標記影像處理的研究人員,可以採
用 此 開 發 平 台 搭 配 OpenCV 函 式 庫 來 實 現 擴 增 實 境 的 應 用 。 除 此 之 外 , 其 支
援.wrl(VRML)、.obj(Wavefront, Maya)與.ase (3D-Studio export)這幾種三維模型的處理,
相形之下只支援.wrl 的 ARToolKit 就顯得略遜一籌。
    ARToolKit Plus[21]為 ARToolKit 之延伸,除了功能性加強外,還可用在開發行動裝
置之平台上,其辨識標記原理來自於 ARTag 之靈感。Goblin XNA 為架構在 ARTag 之上
的開發平台,其結合了 ARTag 的辨識技術與 XNA 的電腦圖學技術。採用 C#當作開發
平台的語言,有別於 ARToolKit 與 ARTag 等函式庫。DART(Designer's Augmented Reality
Toolkit) [23]是由 Georgia Institute of Technology 的 GVU center 所開發之擴增實境應用發
展工具,這套工具結合了 Macromedia 之 Director MX 與 GVU center 開發之 ARToolKit
外掛程式 Xtra,額外提供對視訊畫面的抓取、圖形標籤辨識、擴增三維物件與硬體周邊
設備的支援度,也提供更多硬體設備支援,例如抓取 GPS、6DOF 追蹤器等。DART 可
以視為 Macromedia Director 多媒體系統之擴充套件,因為 DART 是建立在 Macromedia
Director 上面的擴增實境開發環境,對於熟悉 Director 操作的研究者、設計師和藝術家,
可以藉由 DART 來踏入擴增實境的領域,並迅速發展擴增實境在媒體創作設計之相關應
用。
    Unifeye[26]是 Metaio 公司的商業產品,目前最新的開發界面,有支援標記與無標記
技術,如同 Goblin XNA 採用 C#當作開發平台的語言,必須採用 Visual Studio 的開發介
面來進行開發,整體設計架構採用 DirectX 的概念來進行設計,所以整個架構可以說是
建構在 Windows 環境下的開發平台。當然除了電腦的開發平台外,最近當紅的手機平
台,Metaio 一樣提供相關的開發套件,讓擴增實境開發人員使用。Unifeye 應用於無標
記的使用,其所能應用的領域依然是有所限制的,並非所有的物件都可以直接當作擴增
實境之道具來使用,在 Unifeye SDK[27]中之說明範例採用圖片來當作它的辨識物件,
當使用者翻到不同頁面時,系統會偵測到這些事先定義的圖形物件,然後透過擴增實境
技術來呈現三維虛擬物件。對於擴增實境於標記上的應用來說,這種採用圖片當作追蹤
物件的方法或許已經跨出了擴增實境應用的一大步,然而對於真正無標記的應用來說,
顯然還是不夠的,因為有許多應用並不一定都能提供圖片來當作識別之物件。
    皮托科技[30]代理所代理的 Vizard[31],其使用 Python 語言來當作開發語言,雖然
採用開放的 Python 語言,然而所能開發的功能,卻侷限在的 Vizard 所提供的能力上,
儘管底層採用 ARToolKit Professional 函式庫,但很難全面發揮該函式庫的功能,對於開
發影像處理技術的研究人員來說,倒不如直接採用 ARToolKit Professional 會比較容易達
成目的。如同 ARToolKit 的能力,其依然需要透過標記來實現在擴增實境上的應用。
D’Fusion[22]為愛迪斯科技代理 TOTAL IMMERSION 公司的擴增實境軟體[24],其
標榜使用無標記技術,不過必須先對辨識的物件進行辨識動作,辨識設定完成之後,才
可以進行相關的擴增實境應用。其優點為無須使用標記來進行應用,但是依然會根據不
同實體物件的特性,而有不同的辨識率。先不探討辨識效果為何,單從其採用特殊的內
部腳本語言(Scripting Language)來討論,其並不適合影像處理研究人員進行研究使用,
除了架構被侷限住之外,還必須額外學習一種程式語言。
    今將各種平台做整理,如表一所示,可以很清楚的看出目前的開發環境依然採取標
記方式居多,儘管無標記的應用需求是可想易見的,不過卻鮮少有平台可用。對於目前
這些既有的開發環境來說,它們比較適合給應用開發的技術人員使用,像是 Vizard、
D’Fusion 或 Unifeye 這種整合過的開發介面,可以縮短開發時程。

                          表一: 現有擴增實技術平台功能分析。
                                      無標記
            名稱               標記                            語言
                                   圖片   實體物件
 ARToolkit                                          C
 ARToolKit Professional                            C
 ARTag                                              C
 ARToolKit Plus                                     C
 Goblin XNA                                         C#
 DART                                               Director
 Unifeye                                           C#
 Vizard                                             Python
 D’Fusion                                          Script

2.3. 採用套件分析
     本文所要探討之無標記擴增實境技術,在既有之平台中雖然有支援無標記應用之平
台,但並非為支援無標記追蹤之研究而開發,故不管選用哪一套開發環境,依然需要著
手處理無標記開發設計部分,故本文預計採用 ARToolKit 之函式庫當作開發基礎平台,
再搭配影像相關函式庫來驗證本文之理論,以下簡單介紹 ARtoolKit、OpenCV、以及
OpenGL 套件函式庫。

2.3.1. ARtoolKit
     ARToolKit 是計算機視覺追蹤函式庫,允許建立擴增實境應用程序將虛擬影像疊加
在真實世界中。要做到這一點,利用視訊追蹤能力,並即時計算標記相對於攝像機之位
置和方向 找到相關位置後 利用 OpenGL 繪製三維虛擬物件並準確地疊加在標記之上。
         。                 ,
所以針對擴增實境之標記應用,ARToolKit 解決了「標記追蹤」與「虛擬物件互動」這
兩個關鍵技術。ARToolKit 最初是由奈良科學技術研究所(Nara Institute of Science and
Technology)的 Kato 等人於 1999 年所開發,並且被公佈在華盛頓大學的 HIT 實驗室
(University of Washington HIT Lab)。目前可以從 SourceForge[19]取得這個套件開放原始
碼 , 至 於 更 完 善 之 商 業 版 本 則 可 從 ARToolWorks[20] 官 方 網 站 中 取 得 相 關 資 訊 。
ARToolKit 是一套跨平台的函式庫,在不同平台之硬體處理部分可能略有不同,而本文
將在 Windows 環境上實作,故只針對 ARToolKit 在 Windows 上之架構做討論。
     以程式撰寫角度來剖析 ARToolKit,其將標記辨識、視訊追蹤、物件定位和其它擴
增實境所需之功能全部撰寫成一個函式庫,對於撰寫函式庫來說,並無不可,而且使用
外部變數來當作各個模組間交換訊息的方法,這也是 C 語言撰寫人員常採用的方法。不
過若想將某一功能之程式進行移植,將會遇到許多問題。例如在 ARToolKit 透過 DSVL
取得攝影機解析度,並利用外部變數來儲存解析度資訊,當追蹤標記物件時同樣需要參
考影像解析度之資訊來進行辨識,然而影像擷取與追蹤辨識函式之間並無主從關係,所
以透過外部變數將是最佳方式。不過以模組化來設計時,各模組之間並沒有共同參考之
外部變數,勢必改變各個函式的撰寫方式。當使用愈多外部變數,將導致程式間之耦合
性變強,若要改寫成模組化之設計,將會碰到如何解決程式間之耦合性問題,所以全部
建構在其上面之應用程式乃是最簡單之擴增實境實現方式。

2.3.2. OpenCV
     OpenCV 是跨平台的影像處理與計算機視覺函式庫[29]。是由英特爾(Intel®)公司發
起並參與開發,以 BSD 認證方式授權發行,可以在商業和研究領域中免費使用;另外
如果系統有英特爾的 IPP(Intel® Integrated Performance Primitives)函式庫,系統將自動載
入並搭配硬體資源達到最佳化之運作模式。OpenCV 可用於開發即時的圖像處理、計算
機視覺以及模式識別程式。OpenCV 提供許多影像處理所需之函式,而且支援不同平台
之作業系統,因此必須額外架構出一個高階使用者介面提供開發 OpenCV 應用程式相關
人員使用。對於高階使用者介面產生之視窗,程式開發者無法完全掌控。

2.3.3. OpenGL
     OpenGL 是用來建立三維圖形的程式介面,為三維繪圖與模型之開放函式庫,是由
Silicon GraPhics 公司所推出的 IRIS GL 圖形函式庫基礎上發展的三維繪圖與模型程式
庫,自 1992 年發表至今已成為工業界最為廣泛使用的二維及三維繪圖應用程式介面之
一。OpenGL 提供許多功能函數,類似 C 程式的運行時期函式庫(Runtime Library),提
供許多包裝好的功能函數庫。OpenGL 本身的設計需要與三維繪圖硬體搭配使用,其規
格是由 ARB (OpenGL Architecture Review Board)所製訂,ARB 是一個由 SGI, 3Dlabs,
Apple Computer, Digital Equipment Corporation, IBM, Intel 及 Microsoft(已於 2003 年 3
月退出)等廠商所共同成立的協會。此標準可以廣泛使用於 PC、工作站和超級計算機
上的開放式三維圖形應用。因 OpenGL 具有強大的跨平台之相容特性,適用於專業
CAD/CAM 設計領域,及應用於 Windows、MacOS、OS/2、Unix 等平台。
     對於開發視窗介面有基礎概念之人員一定非常清楚,不管作業系統為何,都有其原
生之繪圖機制與介面,而 OpenGL 為了能有效的處理三維影像,必需擁有與底層繪圖硬
體溝通之能力。OpenGL 只是一個籠統之稱呼,真正核心之 OpenGL 被設計為只有輸出,
所以它只提供三維繪圖功能。核心 API 沒有視窗系統、聲音、列印、鍵盤、滑鼠或其他
輸入裝置之概念。或許看起來像是一種限制,但它允許進行三維繪圖之程式碼完全獨立
於所運行之作業系統,亦即允許跨平台開發。然而,有些整合於原生視窗系統之設備要
允許和主機系統互動。以 Windows 作業系統來說,就必須搭配 WGL 來與 Windows 作
業系統進行互動;另外,GLUT 函式庫能夠以可移植的方式提供基本之視窗功能,也是
許多開發人員採用之套件,其優勢為採用共同之使用者 API 來開發程式,搭配此套件之
應用程式也因此享有跨平台之能力;不過是優點也是其致命缺點。如同 OpenCV 一樣,
若想要與原生系統之視窗進行整合,控制能力上又是大打折扣,想要採用這個套件開發
出強而有力之視窗應用程式,這將不是一個可行之方案。
     OpenGL 使用者介面運作,對於只需簡易操作視窗之應用,可以採用 GLUT 搭配
OpenGL 函式庫來完成 OpenGL 之應用,然而若想要開發比較複雜之操作介面,只能採
用 Windows 原生使用者介面搭配 WGL,當然不同之作業系統需要搭配不同之套件函式
庫,例如 Apple 之 Mac 作業系統可採用 AGL 來進行撰寫。

2.3.4. 小結
     開發擴增實境應用所需要之相關技術比較廣泛,所幸目前有許多套件可供擴增實境
應用研究人員使用,然而卻沒有一個整合環境提供影像研究人員在計算機視覺領域運
用。此時,若想進行視覺追蹤之研究,就勢必自行修改底層函式庫之原始碼;然而商業
化之版本或許提供較完善之方案可供採用,但卻無法取得相關原始碼以供改寫。在擴增
實境中運用自行研究之視覺追蹤方法,最簡單之方案為在既有開發平台上加入研究方法
之模組,而不是全面自行發展自己之擴增實境技術。然而,不管使用商業化版本或者採
用開放原始碼套件,想要將自己的模組區塊加入運行架構中,就必須瞭解整個擴增實境
運作之底層運用技術,而各個函式庫之間的協調以及如何搭配系統運作都很重要。整體
來說,目前擴增實境開發套件為數眾多,可依據研究需求選擇比較適合之開發套件進行
應用類之學術研究;若想以自己的研究方法替換核心模組,這又是另一層面之研究,如
何以模組方式替換核心模組,更是本研究之重心。

2.4. 物件追蹤技術分析
     一般對影像之處理與分析,首先是利用物件追蹤技術來追蹤動態物件,一旦追蹤到
物件,就可以做進一步的物件動作分析。物件追蹤可透過比對連續影像間物體的相似度
來完成,物件特徵的擷取,相似程度的判別,目標物的搜尋,都涵蓋在此議題中。依據
Zang 等人(2003)與 Hu.等人(2004)介紹,物件追蹤方法可概分成四類:區域式追蹤
(Region-Based Tracking)、主動式輪廓追蹤(Active Contour-Based Tracking)、特徵追蹤
(Feature-Based Tracking)、以及模型追蹤(Model-Based Tracking)。

2.4.1. 區域式追蹤
     Hu.等人(2004)介紹區域追蹤,為假設影像變動的區域即為目標物之位置,藉由偵測
這些變動區域之位置來追蹤目標物。通常利用目前影像與背景相減或者利用相鄰兩張影
像間之差異來偵測出變化區域,然後再進一步的建立規則來做篩選、合併或分割。此方
法有其缺點,無法可靠地解決物件合併之問題,也無法取得物體之三維動作,對於雜亂
有變動之背景亦不適用。

2.4.2. 主動式輪廓追蹤
     介紹主動式輪廓追蹤方法是使用輪廓線來描述移動的物件,並利用輪廓線之改變來
進行追蹤。Paragios 等人(2000)就是利用此類方法來進行移動物件偵測。此方法的好處
在於更有效率,且降低了複雜度,由於輪廓線是封閉曲線,即使物體交錯,也較容易解
決。但其缺點仍然是缺乏三維的資訊,無法進行三度空間上的追蹤,且此演算法的追蹤
效果對於初步輪廓的偵測或選取非常敏感,故較難用於全自動的偵測追蹤系統。圖 3為
採用主動式輪廓追蹤技術偵測在高速公路行進之車輛,從圖中可看出輪廓逐次縮小,最
後達成追蹤之目的。




                 圖 3. 移動車輛輪廓偵測[Paragios, 2000]。
2.4.3. 特徵追蹤
     特徵追蹤是利用物體之特徵來進行追蹤,首先針對要追蹤的物體擷取特徵,Hu.等
人(2004)將這些特徵可分為三種:整體性特徵(Global Feature Based),例如重心、周長、
面積與顏色等;局部性特徵(Local Feature Based),如線段、曲線段與頂點等;相依圖形
特徵(Dependence Graph Based),如特徵間的結構變化等。當影像中目標物的低階特徵擷
取出後,即可匯集成更高階的特徵資訊,利用比對連續影像間之高階特徵來追蹤該物
體。除了相依圖形特徵方法除外,其餘兩種方法可以用來即時追蹤多個移動物體,利用
運動特徵、局部特徵或相依的結構特徵來解決物體交錯的問題,但是使用運動特徵的方
法穩定性不高,而使用局部特徵的方法則比較耗時費力。此演算法的另一缺點是,用二
維影像對物體的辨識度並不高,且通常無法還原出物體的三維資訊。

2.4.4. 模型追蹤
     Hu.等人(2004)介紹模型追蹤方法,係提供較精細與準確之判斷,因此需要良好的物
體結構模型,也可加入物體本身之運動特性。此類方法較不易受附近背景或其它物體干
擾之影響,也較能對抗物體間交錯問題,所以相對地運算量也比較大。通常其追蹤的方
式可分為「建立物體模型」「建立運動模型」與「預測和搜索策略」三個步驟。此類方
                   、
法有幾項優點:因為其取得之影像即為三維資訊,故不需要額外處理才能獲得三維資訊。
並且利用先前的三維資訊,便可整合做為判斷下一個動作之根據,故縱使物體間互相交
錯,也可以準確地進行判斷。除此之外,仍可應用於物體動作變化很大之應用。

2.4.5. 追蹤技術之發展趨勢
     如果只單靠一種追蹤技術可能會因為外在環境之影響,導致萃取之資訊與實際情況
有所不同,例如在追蹤過程中找不到相似之處,或者因為交錯之遮蔽影響,結果導致被
遮蔽物之部分資訊遺失,所以目前可結合多種追蹤技術,來確保其追蹤系統運作正常。
大部分的追蹤方法會搭配數學演算法,使系統能夠快速找到連續影像之間的相似處,
Bradski, G., Kaehler, A.(2008)所著 Learning OpenCV 書中舉例如卡爾曼濾波器(Kalman
Filter)追蹤、粒子慮除器(Particle Filter)追蹤和平均移動(Mean Shift)追蹤。其中 Mean Shift
是利用影像色彩的直方圖來追蹤目標,但其對於快速移動物體之追蹤效果並不好;而
Kalman Filter 演算法受限於線性系統與高斯分佈的預測問題,在較多雜訊的狀況下,其
追蹤失敗之情形將會提升。
     為了解決這個問題,Tanizaki(1987)提出了 Particle Filter 演算法以貝氏機率的觀念,
解決雜訊非高斯及非線性的問題,並且對快速移動之物體也有良好的效果。除此之外,
還有從 Mean Shift 改良成之 Cam Shift(Continuously Adaptive Mean-Shift)演算法,其主要
通過視訊圖像中運動物體的顏色訊息來達到追蹤之目的。其運作原理為將輸入影像由
RGB 色彩空間轉換為 HSV 或 HSI 色彩空間,接著設定搜尋視窗並計算出搜尋視窗內之
色彩分布直方圖,然後執行 MeanShift 演算法來計算结果,並將結果作為下ㄧ張影像執
行 MeanShift 演算法之初始值 在 OpenCV 中 除了提供 Kalman Filter 外 對於 Mean Shift
                            。            ,                   ,
與 Cam Shift 追蹤演算法也有提供完善之函式庫以供使用,對於物件追蹤之開發,有著
莫大之幫助。

                   3. 無標記擴增實境平台建置分析
  現有擴增實境開發平台架構無法做為無標記擴增實境相關技術研發驗證之平台 原
                                    ,
因在於除了要熟悉既有開發平台之架構,甚至得改寫既有架構之核心程式。若只是將自
行研究領域之程式碼加入既有架構中,無法提供實質之幫助,因為要能驗證研究理論
前,必須先熟悉既有架構後,才能理解甚至改進研究不足之處。故本研究預計提出模組
化方式來開發擴增實境之應用,並採用此架構實現無標記在擴增實境上之應用。
如圖 4所示,為本文所提之無標記擴增實境平台建構流程,共分為四步驟。第一步
驟為挑選既有平台,不管研究任何領域,對於既有之應用平台或架構,首要之務就是選
定使用之平台架構;接著第二步驟為擴增實境模組分析與規劃,依據擴增實境運作架構
將既有之平台分成數個模組;第三步驟為使用者操作視窗與基礎模組設計,完成各個模
組並搭配使用者操作介面來呈現原架構之基礎應用;第四步驟為無標記視覺追蹤模組設
計,針對無標記之視覺追蹤進行研究與設計。完成無標記視覺追蹤模組之後,將模組加
入基礎開發平台驗證後即完成無標記擴增實境開發平台。

                      擴增實境開發平台選定




                      擴增實境模組分析與規劃




                    使用者操作視窗與基礎模組設計




                      無標記視覺追蹤模組設計




                     完成無標記擴增實境開發平台

               圖 4. 無標記擴增實境平台建構流程。

3.1. 擴增實境開發平台選定
     在現有技術分析中以對目前之擴增實境平台做詳細之分析與介紹,對於學術研究領
域來說,採用開放程式碼之套件,較具有吸引力;尤其本文在視覺追蹤研究之需要,必
須在既有開發平台中加入無標記應用之支援,若採用商業化版本或者非開放式架構之套
件,將難以實現無標記於擴增實境中之應用。
     圖 5為開發平台選定流程,以無標記之應用來說, D’Fusion、Unifeye 與 ARToolKit
Professional 將為納入首選,然而這三套恰巧都是商業化版本,很難取得核心程式。姑且
不論是否可以取得原始程式碼,以 D’Fusion 來說,其採用特殊之內部腳本語言,所有開
發侷限在此腳本語言之內,很難有機會自行擴展本文之無標記研究。Unifeye 採用 C#語
言當作開發平台,其擁有良好之 Vizprep 視窗操作介面提供應用開發人員;不過其只提
供特定之無標記應用領域之運用,雖然將追蹤模組採用動態連結函式庫(Dynamic Link
Library, DLL)方式設計,不過目前只能搭配系統之追蹤技術,若要擴展無標記追蹤技術
則需看 Metaio 公司是否有此種授權方式。另外商業版本之 ARToolKit Professional 也發
展出許多套件 而 NFT 套件裡採用 Cutting Edge 的自然特徵追蹤方式來實現無標記之應
              ,
用;若想在 ARToolKit Professional 上擴展無標記應用,則必須對其與 NFT 套件間之溝
通架構有所瞭解。NFT 套件之訴求為提供 ARToolKit Professional 無標記之應用,而非提
供無標記追蹤與辨識模組之設計,在無相關文獻提供參考下,很難利用 NFT 架構來實
現無標記擴增實境之辨識與追蹤。既然支援無標記之商業化套件也無法提供本文所需之
無標記擴增實境之應用,故本文選擇採用開發原始碼架構之 ARToolKit 當作基礎架構,
在此架構基礎上疊加本文之無標記擴增實境模組。
圖 5. 開發平台選定流程。

3.2. 擴增實境模組分析與規劃

    篩選後選用 ARToolKit 當作本文開發平台之基礎架構,為了結合無標記之視覺追
蹤,採用 OpenCV 影像函式庫來簡化所需之影像處理。除此之外,開發擴增實境實驗平
台時,在既有 ARToolKit 應用程式介面上加入所需之應用程式介面提供擴增實境應用程
式運用。三維物件之繪製依然沿用 ARToolKit 採用之 OpenGL 來設計;不過針對視窗介
面設計部分,則依據實際需求採用原生之 Windows 視窗程式應用介面來設計。
    擴增實境視覺追蹤之運作流程可分成影像擷取、標記識別、位置及姿態之估算以及
三維物件之繪製四部分,而模組分析與規劃也將依據這些特性來分類,整體架構如圖 6
所示。整體開發平台模組規劃說明如后:
(1) 影像擷取模組(Capture Manager):影像來源可以是從單張影像、串流影像或者從檔
    案中取得,當然這部分取決於開發環境提供多少種影像擷取模組,本文採用 DSVL
    函式庫,若有額外需求,再行撰寫其它影像擷取模組。
(2) 影像轉換模組(Convert Manager):用來做為影像格式轉換,此目的在於結合 OpenCV
    函式庫與 ARToolKit 平台。雖然可以將這一部份整合到 DSVL 這一個影像擷取模組
    中,然而這樣將會改變整個開放的 DSVL 函式庫,為了避免此種情況,所以將其獨
    立出一個區塊。
(3) 視覺追蹤模組(Tracking Manager):這部分為無標記視覺追蹤模組,提供影像研究人
    員快速替換成自己的影像追蹤模組部分,因為目前的 ARToolKit 不提供無標記的辨
    識與追蹤,所以要應用在無標記的領域,這部分就必須自行撰寫。
(4) 繪製模組(Render Manager):可視覺化系統,除了呈現真實環境影像,並在影像的
    定位座標上疊加三維虛擬物件。
    為了能快速替換自己開發的視覺追蹤演算法,模組化的架構是必須的;然而在既有
的 ARToolKit 中,其設計並非採用模組的設計觀念,要怎麼拆解既有的架構,並讓其能
正常運作,這是必須克服的重大問題。
圖 6. 整合開發環境模組運行架構

    模組設計可以採用傳統動態連結函式庫型式,或者使用 DirectShow 的 Filter 方式來
設計。使用 Filter 的設計架構有助於整個架構的流暢,不過其必須對於 COM(Component
Object Model)有所認知,相對的設計門檻比較高;而動態連結函式庫方式則比較容易設
計,本文傾向以動態連結函式庫這一個方案為主要考量,減少模組開發時程。而要如何
區分各個模組之間之差異,甚至如何知道各個模組提供哪些功能,在模組規劃時都必須
考慮到,所以每一個模組必須提供必要之共同資訊,比如模組類別、模組名稱、模組暱
稱、模組描述以及模組的唯一識別碼來區分各個模組;除此之外,對於視覺追蹤模組還
必須提供所支援處理能力,比如基本顯示、灰階影像、視覺追蹤及擴增實境等。在影像
格式轉換模組中,要將 ARToolKit 函式庫擷取之影像透過 OpenCV 函式庫來進行運作,
必須有一個影像轉換功能,將不同格式間之影像做轉換,本文採用圖 7程式片段中之原
理來實現此模組之設計。

static void mainLoop(void)
{
      ARUint8               *dataPtr;
      IplImage * pstImage = NULL;
…
      /* grab a video frame */
      if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL )
      {
            arUtilSleep(2);
            return;
      }
      pstImage=Convert(dataPtr, nWidth, nHeight);
…
}
IplImage * Convert(ARUint8 *pbyImage, int nWidth, int nHeight)
{
      IplImage * pstImage;
      pstImage = cvCreateImageHeader(cvSize(nWidth, nHeight), IPL_DEPTH_8U, 4);
      pstImage->imageData =(char *) pbyImage;
      return pstImage;
}
                             圖 7. DSVL 轉 OpenCV 程式碼片段。
其中之 mainLoop 副程式為主要擷取影像資料的主回圈副程式,副程式中透過
arVideoGetImage 函式向 DSVL 函式庫取得目前攝影機所擷取到之影像資料,如果攝影
機已經將影像資料存放在影像緩衝區內,則 arVideoGetImage 函式將取回緩衝區的指標
位址,不然將會傳回 NULL。如果順利取得影像,透過本文撰寫的 Convert 副程式進行
影像轉換,將原本 RGBA/AGBR 與 RGB/BGR 等影像格式轉換為 OpenCV 所能處理的
IplImage 結構資料,在轉換前必需知道目前攝影機之影像解析度,OpenCV 在建立
IplImage 結構的表頭將需要用到。在完成 IplImage 結構表頭設定後,最後將影像緩衝區
之指標帶入 IplImage 結構即可。進行格式轉換除了輸入格式、攝影機解析度度要正確輸
入外,IplImage 結構的建立與釋放均需特別注意,否則有可能因為釋放到 DSVL 函式庫
所配置之記憶體,或者因為沒有將 IplImage 表格正確釋放而導致 Memory Leak,最後導
致記憶體被消耗殆盡。

3.3. 使用者操作視窗與基礎模組設計
     一張影像往往比千言萬語還有用,所以應用軟體如果能夠適時的使用影像來呈現必
要之結果,往往比文字描述來的有效。以往過去許多研究都使用一個觀察視窗呈現最終
之結果,對於非研究人員很難得知處理前後之差異,故本文希望採用多個分割視窗來呈
現不同效果之影像,如圖 8為四分割分別顯示未處理(左上)  、灰階處理(右上)
                                      、Canny
處理(左下)以及 OpenGL 繪圖(右下)之情況,可以同時觀看各種狀況有其方便性;
不過如何將一個視訊分流給多個視窗,這也是本文影像擷取模組所必須額外扮演之角
色。




                  圖 8. 平台操作介面。

  對於一系列模組,本文將其置於相同目錄之內,利用模組之唯一識別碼來區分各個
模組,使用者介面在一開始將會自動將所有模組一功能特性進行排序與載入,並採用樹
狀結構方式呈現,如圖 9所示。
圖 9. 平台操作介面模組列舉。

  第一階層依據視訊來源特性做類別區分;第二階層為影像擷取裝置或檔案名稱,名
稱由裝置或檔案提供;第三階層為影像擷取模組之模組名稱,名稱由模組提供;第四階
層為視訊追蹤模組之名稱,名稱由模組提供;第五階層為視訊追蹤模組所提供之能力,
每一個視訊追蹤模組最少必須提供一種能力,透過動態方式取得各個視訊追蹤模組之能
力,並將其在樹狀結構中描述。整個階層呈現如下:
 Category(Local/Video File/Image File)
   Device/File
       Source Module
            Processer Module
                Capability 0
                Capability 1
                Capability 2
 Local
   Logitech Camera
       OpenCV Live
            Marker Detected
                Normal
                Detected

  在完成使用者介面以及各個模組之後,本文第一階段將驗證採用本文之開發平台架
構設計之標記擴增實境應用,此階段將運行在 ARToolKit 之程式碼移植到本文之架構
中,並採用相同之標記來驗證平台運作可行性,唯有完成此階段,才可以繼續進行無標
記之視覺追蹤。
3.4. 無標記視覺追蹤模組設計
     本文無標記擴增實境實驗平台建置將分為兩個階段進行,第一階段為擴增實境實驗
平台建置,此部分主要將擴增實境實驗平台依據模組方式建立;第二階段是追蹤技術驗
證,此部分將無標記視覺追蹤依據模組化設計規範來設計,並以無標記擴增實境實驗平
台進行驗證。
     首先是模組的撰寫部分,視覺追蹤模組至少必須提供一種方法,如圖 10之程式提
供 Normal 與 Markerless 兩個方法,其中 Normal 為原始輸入影像,而 Markerless 則用來
實現追蹤方法,在視覺追蹤模組完成後,可透過影像分流技術,分別在分割視窗中顯示
原始及追蹤處理過之影像,有利於即時檢視處理效果。至於追蹤辨識的方法則在下面兩
子節中探討。

STREAM_TRANSFORM_MODULE_SERVICE_FUNCS                                      g_ServiceEntryObjects;

const STREAM_IMAGE_CAPABILITY g_aryCapabilitySupported []=
{
// nIndex Name                                Description
// ---------------------------------------------------------------------------------
     {0,        _T("Normal"),           _T("Normal")},                                 
     {1,        _T("Markerless"), _T("Markerless Detected")},
};

const int g_nNumCapabilitySupported = sizeof (g_aryCapabilitySupported) / sizeof
(g_aryCapabilitySupported[0]);
                           圖 10. 視覺追蹤模組功能定義。

3.4.1. 追蹤辨識效能分析
 物件複雜度
     物件的複雜度係指追蹤辨識物件上是否具有可供追蹤辨識的  「特徵點」、
                                      「顏色」、「紋
理」及「輪廓」等特徵點。高複雜度物件代表該物件具備「多特徵點」「與環境顏色成
                                    、
強烈對比」或「明顯紋理與輪廓」等。反之,低複雜度物件則表示具備「較少特徵點」      、
「與環境顏色相似」或「無明顯紋理與輪廓」     ,具備高複雜度之物件容易從影像中辨識
與追蹤,低複雜度之物件,則不易追蹤與辨識。故這些原因將都影響到追蹤辨識的效能,
如圖 11所示。圖中(a)設定特徵點;(b)在無背景狀況下的物件特徵點分佈情形;(c)正常
速度移動時特徵點情形。




                                  圖 11.物件複雜度對追蹤物件之影響
   物件移動速度
    追蹤物的移動速度,係指追蹤辨識物件在影像中的移動速度,通常在追蹤辨識物件
時,運用目標物移動所造成的與背景差異,再取得前景區域後進行辨識,然由於在即時
追蹤辨識中,系統運算時間通常會較短,故移動物件速度太快,可能造成在系統運算完
畢後,而物件已不在該位置,形成誤判,如圖 12所示。圖中(a)為設定追蹤物件;(b)及
(c)則以正常速度移動;(d)、(e)及(f)則是快速移動。




           圖 12.物件移動速度對追蹤物件之影響

3.4.2. 採用方法與步驟
     經由上述之追蹤辨識效能分析,本文提出能追蹤各式物件技術及降低物件移動速度
對物件追蹤之影響之可行性分析,主要內容分為三步驟:物件偵測、物件追蹤、及定位
顯像,流程圖如圖 13所示。




           圖 13. 無標記擴增實境追蹤系統流程圖

  首先物件偵測方法,擷取出移動物件,接著運用物件追蹤技術,持續追蹤移動物件,
最後利用定位顯像技術,座標轉換及疊加 3D 物件於追蹤物件上。此部分將著重在物件
偵測與物件追蹤之研究。物件偵測主要在於分析並擷取適用於無標記擴增實境技術可用
之物件特徵點,可從「整體性特徵」
               、「局部性特徵」 、
                        「相依圖形特徵」等三類深入分析,
對低複雜度之物件亦能擷取出重要之特徵值。故後續研究將結合各種特徵值,以逹即時
且穩定快速追蹤的目的。物件追縱技術可採用或改良 CamShift 之追蹤技術,但必須能
克服因移動速度過快導致無法持續追蹤物件之問題。

                 4. 結果與討論
  本文探討了目前擴增實境的開發平台及其應用領域,也剖析了底層應有的設計架
構,更提出了一個可行的實施方案。對於想要從事視覺追蹤技術的研究人員,可以參考
視覺追蹤模組之設計概念來進行設計。當然要實現這樣的開發環境,依然有其困難度,
不過在開發環境完成之後,對於擴增實境視覺追蹤技術的研究人員來說,只需要著重在
視覺追蹤方法,而不需要自行改寫既有擴增實境開發平台,便可驗證所提出之視覺追蹤
方法。換句話說,研究人員只需要撰寫自己研究方法部分,即可透過無標記擴增實境實
驗平台驗證視覺追蹤技術。相信這樣的擴增實境開發環境,對於學術研究單位,會有很
大的幫助。此平台亦可應用於不同之影像研究領域,若希望採用網路攝影機,可以自行
撰寫擷取模組,而整體擴增實境實驗平台之應用範圍也因此而向上提升。如圖 14為一
般影像處理之應用,其透過 OpenCV 實現了彩色影像轉換成灰階影像及 Canny 的影像處
理,用以驗證實驗平台之基本運作。




                           圖 14.應用於基本影像處理的情況。
                                          5. 結論
  本文深入研究分析如何設計無標記擴增實境整合平台,後續研究可利用本文之研究
結果,設計出一個能驗證各種追蹤技術效能之無標記擴增實境平台,並能廣泛的為各學
術研究單位所使用。可大幅縮短無標記擴增實境相關技術研發之期程,節省購買昂貴之
擴增實境平台,以及更彈性的驗證各項相關技術。未來更可結合顯示器、智慧型手機、
以及遊戲電玩等相關產業,提升國家整體競爭力。此外,依循本文研究發展之平台與技
術,未來亦可用於軍事用途,例如兵棋沙盤推演、重要裝備教育訓練、以及各項戰技戰
術訓練等應用。更可用於數位學習,製作更吸引人之數位教材或建置數位學習環境。

                                         參考文獻

1.   Bradski, G., Kaehler, A.(2008), Learning OpenCV, O'Reilly Media.
2.   Francis S Hill Jr., Stephen M Kelley (2006), Computer Graphics Using OpenGL (3rd
     Edition), Prentice Hall, USA, Chap.7.
3.   Goblin XNA, http://graphics.cs.columbia.edu/projects/goblin/
4.   Guan, T. and Wang, C.(2009), Registration based on scene recognition and natural
     features tracking techniques for wide-area augmented reality system. , IEEE Trans. Multi.
     vol. 11, no. 8, pp.1393-1406.
5.   Guan, T. and Duan, L.(2010), Recovering pose and occlusion consistencies in augmented
     reality systems using affine properties, Sensor Review, Vol. 30 Iss: 2, pp. 148-158.
6.   Hu, W., Tan, T., Wang, L. and Maybank, S.(2004), A survey on visual surveillance of
     object motion and behaviors, IEEE Transactions on Systems, Man and Cybernetics, Part
     C: Applications and Reviews, Vol. 34, pp. 334-352.
7.   jARToolKit, http://sourceforge.net/projects/jartoolkit/
8.   Kato, H. and Billinghurst, M.(1999), Marker Tracking and HMD Calibration for a
     video-based Augmented Reality Conferencing System, in IWAR ’99: Proceedings of the
     2nd, IEEE and ACM International Workshop on Augmented Reality, pp. 85-94.
9.   Lee T. and Hollerer, T.(2009), “Multithreaded hybrid feature tracking for markerless
augmented reality”, IEEE Trans. Vis. Comput. Graph., vol. 15, no. 3, pp.355-368,
      May-Jun.
10.   Lowe, D. G.(2004), “Distinctive image features from scale-invariant key points”, Int. J.
      Comput. Vis., vol 60, no 2, pp.91-110.
11.   Molla, E. and Lepetit, V.(2010), “Augmented Reality for Board Games,” In Proceedings
      of the International Symposium on Mixed and Augmented Reality.
12.   Paragios N.and Deriche, R.(2000), “Geodesic active contours and level sets for the
      detection and tracking of moving objects,” IEEE Trans. Pattern Anal. Machine Intell, Vol.
      22, pp. 266-280.
13.   Saenz, A.(2010), “Augmented Reality To Help Military Mechanics Fix Vehicles
      (Video),” Singularity Hub.
14.   Shreiner, D. and The Khronos OpenGL ARB Working Group(2009), OpenGL
      Programming Guide, Addison-Wesley Professional.
15.   Tanizaki, H.(1987), “Non-gaussian state-space modeling of nonstationary time series,” J.
      Amer. Statist. Assoc.82, pp. 1032-1063.
16.   Zang, Q. and Klette, R.(2003), Object Classification and Tracking in Video Surveillance,
      Computer analysis of images and patterns, Vol. 2756, pp. 198-205.
17.   ARTag, http://www.artag.net/
18.   ARToolKit, http://www.hitl.washington.edu/artoolkit/
19.   ARToolKit SourceForge page, http://sourceforge.net/projects/artoolkit
20.   ARToolKit Professional, http://www.artoolworks.com/
21.   ARToolKit Plus, http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php
22.   AXIS3D Technology.Inc, http://www.axis3d.com.tw/
23.   DART, http://www.cc.gatech.edu/projects/dart/
24.   D'Fusion, http://www.t-immersion.com/
25.   FLARToolkit, http://www.libspark.org/wiki/saqoosha/FLARToolKit/en
26.   Metaio, http://www.metaio.com/
27.   Metaio Unifeye SDK, http://www.metaio.com/products/sdk/
28.   NyARToolKit, http://nyatla.jp/nyartoolkit/
29.   OpenCV, http://opencv.willowgarage.com/wiki/
30.   PITOECH CO.,LTD., http://www.pitotech.com.tw
31.   Vizard, http://www.worldviz.com

Más contenido relacionado

Similar a 无标记扩增实境实验平台建置与视觉追踪技术分析

099 rs-01
099 rs-01099 rs-01
099 rs-01
axiuluo
 
讓你的人工智慧更智慧 - Developer Student Clubs.pptx
讓你的人工智慧更智慧 - Developer Student Clubs.pptx讓你的人工智慧更智慧 - Developer Student Clubs.pptx
讓你的人工智慧更智慧 - Developer Student Clubs.pptx
NCUDSC
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
zhoujg
 

Similar a 无标记扩增实境实验平台建置与视觉追踪技术分析 (20)

無標記擴增實境實驗平台建置與追蹤技術驗證
無標記擴增實境實驗平台建置與追蹤技術驗證無標記擴增實境實驗平台建置與追蹤技術驗證
無標記擴增實境實驗平台建置與追蹤技術驗證
 
099 rs-01
099 rs-01099 rs-01
099 rs-01
 
使用Qt+和open gl®+创建跨平台可视化ui
使用Qt+和open gl®+创建跨平台可视化ui使用Qt+和open gl®+创建跨平台可视化ui
使用Qt+和open gl®+创建跨平台可视化ui
 
讓你的人工智慧更智慧 - Developer Student Clubs.pptx
讓你的人工智慧更智慧 - Developer Student Clubs.pptx讓你的人工智慧更智慧 - Developer Student Clubs.pptx
讓你的人工智慧更智慧 - Developer Student Clubs.pptx
 
初窺 Flutter 開發.pdf
初窺 Flutter 開發.pdf初窺 Flutter 開發.pdf
初窺 Flutter 開發.pdf
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
 
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceHow to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
 
iThome Modern Web 2018: 如何打造高效的機器學習平台
iThome Modern Web 2018: 如何打造高效的機器學習平台iThome Modern Web 2018: 如何打造高效的機器學習平台
iThome Modern Web 2018: 如何打造高效的機器學習平台
 
LinkIt 7697 開發平台簡介 (Traditional Chinese)
LinkIt 7697 開發平台簡介 (Traditional Chinese)LinkIt 7697 開發平台簡介 (Traditional Chinese)
LinkIt 7697 開發平台簡介 (Traditional Chinese)
 
程式人雜誌 -- 2013年6月號
程式人雜誌 -- 2013年6月號程式人雜誌 -- 2013年6月號
程式人雜誌 -- 2013年6月號
 
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
 
Kubernetes device plugins
Kubernetes device pluginsKubernetes device plugins
Kubernetes device plugins
 
Python Scripting for ArcGIS
Python Scripting for ArcGISPython Scripting for ArcGIS
Python Scripting for ArcGIS
 
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍
 
GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做
GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做
GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做
 
Q Rcode1 2009 09 23
Q Rcode1 2009 09 23Q Rcode1 2009 09 23
Q Rcode1 2009 09 23
 
Python&GUI
Python&GUIPython&GUI
Python&GUI
 

Más de axiuluo

Más de axiuluo (7)

Ar smartphones
Ar smartphonesAr smartphones
Ar smartphones
 
Ft 002
Ft 002Ft 002
Ft 002
 
201012 687
201012 687201012 687
201012 687
 
200911037
200911037200911037
200911037
 
Eli7007
Eli7007Eli7007
Eli7007
 
1000 1832(2007)03-0032-05
1000 1832(2007)03-0032-051000 1832(2007)03-0032-05
1000 1832(2007)03-0032-05
 
ARTag
ARTagARTag
ARTag
 

无标记扩增实境实验平台建置与视觉追踪技术分析

  • 1. 無標記擴增實境實驗平台建置與視覺追蹤技術分析 王順吉 鍾德煥 李正豪 翁志嘉 國防大學理工學院資訊工程學系 sjwang@ndu.edu.tw tehuan.chung@gmail.com 1001207@gmail.com bbcweng@gmail.com 摘要 影像視覺追蹤與定位技術可用於擴增實境之應用,依使用標記與否,可分為標記與 無標記兩類技術。標記識別技術較為簡單,且較為成熟,但受限於需使用特殊之標記。 無標記識別技術使用一般自然物件來取代特殊標記,應用較為彈性,但必須能正確擷取 出欲辨識物件有用之特徵點。現有擴增實境之開發函式庫或開發平台,主要目的為提供 擴增實境之應用開發,不提供無標記擴增實境技術研究方法之驗證。故本文深入研究探 討如何整合 ARToolKit、OpenCV 與 OpenGL 等函式庫,設計無標記擴增實境整合平台。 且此平台各項功能採用模組化設計,以更彈性提供適用於無標記擴增實境物件辨識與追 蹤相關方法之驗證。另外,本文並探討自然物件複雜度與移動速度對辨識與追蹤之影 響,分析適用於擴增實境自然物件之特徵值,做為後續提出克服因低複雜度自然物件以 及高速移動導致追蹤失敗之缺失,藉以同時驗證平台之適用性。本文之研究結果,可做 為實現開發無標記擴增實境實驗平台之重要參考依據。 關鍵字:擴增實境、無標記、虛擬實境、視覺追蹤 1. 前言 「擴增實境」(Augmented Reality, AR)將真實世界之影像、素材和資料,與電腦產生 之三維虛擬物件互相結合,顯示出複合式之影像。在現今軟硬體技術提升與配合下,擴 增實境之技術才得以在現實生活中呈現。雖然目前此技術已經開始逐漸蓬勃發展,然而 要讓此技術變成日常生活的一部份,則需搭配更多的軟硬體相關技術。 隨著智慧型手機(Smart Phone)的熱潮,行動數位化更替資訊研究領域創造出不同之 研究方向,而且攝影機更是智慧型手機之基本配備,所以可研究之領域更為寬廣;以往 只有電腦才能處理之資訊,現在的智慧型手機也可以輕鬆處理了。除了傳統的應用外, 這些智慧型手機有一個嶄新之應用領域,那就是擴增實境應用;智慧型手機夾帶其在行 動力上之優勢,是以往電腦所無法比擬的。例如 IKEA 就透過這項技術來介紹其一系列 的家俱,消費者可以在展示場透過智慧型手機之協助,運用擴增實境之技術來將家具與 空間進行結合,最後透過結合之複合影像來決定是否進行採購。另外信義房屋創新推出 的「iPhone 看屋 App」 ,不管消費者在哪裡,只要拿起手機對準所在地的街景,螢幕就 會列出附近相關物件資訊,這些都是智慧型手機發展之優勢。在頭戴式顯示器 (Head-Mounted Display, HDM)不夠便利,而三維立體影像投影技術依然處在研發階段之 情況下;智慧型手機之顯示器,就順理成章的成為擴增實境用來顯示虛擬物件之平台。 也因為如此,整個擴增實境之應用發展,在這一兩年間得以迅速擴大及成長。以往購買 玩具在尚未拆開包裝之前,很難得知玩具之特性與全貌;現在樂高(LEGO)採用擴增實 境之技術,只需要在特殊展示螢幕前,讓展示器辨識到該包裝盒上之商品圖標資訊,就 可以在該顯示器看到該款玩具的三維立體動畫展示,讓消費者迅速瞭解並感受此款玩具 的特性。另外,被人津津樂道的魔法書(MagicBook)應用,讓閱讀不再是那樣枯燥與呆
  • 2. 板,配合三維立體即時互動之呈現方式,會使得書本變的更加生動有趣。這些都是擴增 實境在標記(Marker)應用上之例子。 然而綜觀全盤擴增實境之應用,大多數依然需要配合標記來運作,對於現實環境來 說,要將標記帶在身邊有點不切實際,而且目前之開發套件並非採用相同之標記圖庫, 所以往往只能在固定領域採用特定之標記,可想而知其應用範圍將受到很大之限制。因 此,若可以採用現實生活中之物件來取代標記,相信可提升擴增實境之應用領域。目前 坊間已經有許多開發環境可供使用者選擇,然而大部分採用標記方式運作,當然現有開 發環境也陸續提供無標記(Markerless)之應用,不過依然侷限在開發平台採取之無標記辨 識方法上。因為不同物體之辨識特徵不相同,所以無法使用一種方法來辨識所有物件之 特徵,這也是發展無標記應用所要面臨之問題。不管標記或無標記均需對物件進行追蹤 與辨識,唯一的差異在於是否使用日常生活中之自然物件。簡而言之,標記方式需要特 別準備標記圖卡來當作操作物件,而無標記則不需要。就應用層面來看,無標記的應用 將會是擴增實境未來研究之主軸。 既然無標記擴增實境技術將是未來研究重點,而且既有開發環境也只提供有限制的 無標記之應用方法,要如何在既有的開發環境上開發無標記擴增實境之追蹤與辨識技 術,將是所要面臨之重大挑戰。因為擴增實境所涵蓋之技術非常廣泛,除了基礎的數位 影像處理(Digital Image Processing)技術外 還包括了計算機視覺(Computer Vision)和計算 , 機圖形學(Computer Graphics, CG),所以若沒有一個整合之開發環境,將無法有效快速 驗證無標記擴增實境技術之各種方法。目前開放原始碼的 ARToolKit 擴增實境開發工 具,並不支援 OpenCV 影像處理函式庫,而所需影像處理函式均需自行撰寫;若要使用 OpenCV 函式庫來處理影像資料,則必需將彼此影像格式互相轉換。而 ARToolKit 對於 三維立體物件位置及姿態之呈現,均需使用 OpenGL 函式庫,視訊追蹤後要如何將追蹤 物件使用三維立體虛擬物件來取代,都需要透過 OpenGL 函式庫。如果相關研究需要取 得使用者介面之控制權,便無法採用 ARToolKit 搭配 GLUT(The OpenGL Utility Toolkit) 之 現 有 架 構 來 處 理 使 用 者 介 面 , 而 必 需 配 合 複 雜 之 應 用 程 式 介 面 (Application Programming Interface, API)來重新改寫部分 ARToolKit 函式才能達成。 本文之目的在深入探討如何設計無標記擴增實境實驗平台,利用 ARToolKit 當作基 礎架構,結合 OpenCV(Open Source Computer Vision Library)與 OpenGL(Open Graphic Library)等函式庫,並以模組化方式來設計視覺追蹤模組,能彈性提供各種偵測與追蹤 方法之驗證。 2. 文獻回顧 2.1. 無標記擴增實境簡介 擴增實境可將真實場景與虛擬物件結合,其基礎技術為影像追蹤及辨識,故可區分 為「有標記」及「無標記」等二類,其中無標記系統代表擴增實境系統不須特定標記、 圖樣來辨識及定位,可依使用者喜好自行設計圖樣或使用真實自然物件來進行辨識及定 位,如圖 1所示。故無標記技術為使用没有固定標記的圖像來當作觸發的媒介,在使用 前需先擷取辨識物件圖像或其特徵點(如:紋理、顏色、輪廓等等),當攝影機畫面比對 出符合物件圖像或特徵點時,便即時在圖樣上置放預先設定好的虛擬物件,並同時在螢 幕上顯示擴增實境的畫面。然因無標記使用為非物件圖像,故在應用上較方便及美觀, 但在影像追蹤、辨識及定位效果較差,必須搭配更好的辨識及追蹤方法。
  • 3. 圖 1. 無標記擴增實境示意圖。 圖片摘錄自: Unifeye SDK[27] 2.2. 現有技術分析 擴增實境發展至今,已經有許多相關的開發平台,例如 ARToolKit、ARTag 等,這 些開發套件也多採用標記方式來達成擴增實境的應用。ARToolKit 為美國華盛頓州立大 學 Human Interface Technology Laboratory 的 Kato 等人(1999)使用 C 語言所開發出來的 一套擴增實境之電腦視覺追蹤函式庫,其利用視訊追蹤能力來追蹤已定義之標記,並在 標記處繪製指定的三維物件,雖然解決了物件追蹤與虛擬物件互動之問題,但僅能追蹤 特定之標記物件。在 ARtoolKit 套件推出後,有許多的開發套件架構在其上面發展出新 的開發平台,目的不外乎提供更多的創作與運行環境,例如 NyARToolKit 與 jARToolKit 就是可以運作在 Java 上的 ARToolKit,除此之外 NyARToolKit 也支援 C#以及 Android 作業系統;FLARToolkit 則是 Flash 版本的 ARToolKit;而 ARmagic 則是在 Windows 上 運作的創作開發平台。當然這些新的開發平台依然侷限在 ARToolKit 所提供的能力範圍 下。 ARToolKit Professional Edition[20]是 ARToolKit 商業化的版本,其結合了許多新的 影像處理技術,並支援目前最新的影像串流技術(Video Streaming)協定,對於影像處理 研究人員來說,其採用 OpenCV 來當作基礎架構,更是引人注目。對於研究人員來說, 適合採用 Development license 的授權方式,因為此種方式可以讓研究人員長期在上面進 行研究與發展;但是對於並非要進行商業行為的研究人員來說,此種方式可能需要較高 的研究成本 但是它的 NFT(Natural Features Tracking)擴展套件提供對自然紋理表面特徵 , 的追蹤技術,可讓研究人員開發出無標記之擴增實境應用。 雖然 ARToolKit NFT 套件可以發展無標記之應用,不過對於辨識之影像依然需要傳 統標記當作辨識參考,此標記之設計必須是黑色邊框搭配白色或淺色背景,如果背景顏 色並非白色或淺色,則在黑色邊框外必須額外添加白色邊框,圖 2(a)所示。至於辨識之 影像周圍,至少提供一個標記來當作辨識參考,如圖 2 (b)所示,值得注意的是這些標 記沒有受到任何特定大小之限制。從以上分析可以知道,雖然 ARToolKit NFT 號稱可以 使用 JPEG 當作辨識影像,不過依然需要搭配標記使用,顯然與真正無標記還有一段落 差。
  • 4. (a) (b) 圖 2. ARToolKit NFT 無標記應用範例。 ARTag[17]為 Mark Fiala 修改 ARToolKit 之標記偵測模組而衍生之開發套件,所以 基本運作原理與 ARToolKit 相同;不過因為其著重在標記的辨識率及處理上,並且採用 既定的標記函式庫,所以不必與 ARToolKit 一樣,需要載入標記文件檔,其聲稱相較於 ARToolKit,有較高的辨識率及較短的處理時間。雖然在標記辨識上優於 ARToolKit,然 而與 ARToolKit 同樣都屬於需要特定標記的函式庫,依然不適用於非標記的應用領域; 但其建構在 OpenCV 函式庫基礎上,所以對於只需要標記影像處理的研究人員,可以採 用 此 開 發 平 台 搭 配 OpenCV 函 式 庫 來 實 現 擴 增 實 境 的 應 用 。 除 此 之 外 , 其 支 援.wrl(VRML)、.obj(Wavefront, Maya)與.ase (3D-Studio export)這幾種三維模型的處理, 相形之下只支援.wrl 的 ARToolKit 就顯得略遜一籌。 ARToolKit Plus[21]為 ARToolKit 之延伸,除了功能性加強外,還可用在開發行動裝 置之平台上,其辨識標記原理來自於 ARTag 之靈感。Goblin XNA 為架構在 ARTag 之上 的開發平台,其結合了 ARTag 的辨識技術與 XNA 的電腦圖學技術。採用 C#當作開發 平台的語言,有別於 ARToolKit 與 ARTag 等函式庫。DART(Designer's Augmented Reality Toolkit) [23]是由 Georgia Institute of Technology 的 GVU center 所開發之擴增實境應用發 展工具,這套工具結合了 Macromedia 之 Director MX 與 GVU center 開發之 ARToolKit 外掛程式 Xtra,額外提供對視訊畫面的抓取、圖形標籤辨識、擴增三維物件與硬體周邊 設備的支援度,也提供更多硬體設備支援,例如抓取 GPS、6DOF 追蹤器等。DART 可 以視為 Macromedia Director 多媒體系統之擴充套件,因為 DART 是建立在 Macromedia Director 上面的擴增實境開發環境,對於熟悉 Director 操作的研究者、設計師和藝術家, 可以藉由 DART 來踏入擴增實境的領域,並迅速發展擴增實境在媒體創作設計之相關應 用。 Unifeye[26]是 Metaio 公司的商業產品,目前最新的開發界面,有支援標記與無標記 技術,如同 Goblin XNA 採用 C#當作開發平台的語言,必須採用 Visual Studio 的開發介 面來進行開發,整體設計架構採用 DirectX 的概念來進行設計,所以整個架構可以說是 建構在 Windows 環境下的開發平台。當然除了電腦的開發平台外,最近當紅的手機平 台,Metaio 一樣提供相關的開發套件,讓擴增實境開發人員使用。Unifeye 應用於無標 記的使用,其所能應用的領域依然是有所限制的,並非所有的物件都可以直接當作擴增 實境之道具來使用,在 Unifeye SDK[27]中之說明範例採用圖片來當作它的辨識物件, 當使用者翻到不同頁面時,系統會偵測到這些事先定義的圖形物件,然後透過擴增實境 技術來呈現三維虛擬物件。對於擴增實境於標記上的應用來說,這種採用圖片當作追蹤 物件的方法或許已經跨出了擴增實境應用的一大步,然而對於真正無標記的應用來說, 顯然還是不夠的,因為有許多應用並不一定都能提供圖片來當作識別之物件。 皮托科技[30]代理所代理的 Vizard[31],其使用 Python 語言來當作開發語言,雖然 採用開放的 Python 語言,然而所能開發的功能,卻侷限在的 Vizard 所提供的能力上, 儘管底層採用 ARToolKit Professional 函式庫,但很難全面發揮該函式庫的功能,對於開 發影像處理技術的研究人員來說,倒不如直接採用 ARToolKit Professional 會比較容易達 成目的。如同 ARToolKit 的能力,其依然需要透過標記來實現在擴增實境上的應用。
  • 5. D’Fusion[22]為愛迪斯科技代理 TOTAL IMMERSION 公司的擴增實境軟體[24],其 標榜使用無標記技術,不過必須先對辨識的物件進行辨識動作,辨識設定完成之後,才 可以進行相關的擴增實境應用。其優點為無須使用標記來進行應用,但是依然會根據不 同實體物件的特性,而有不同的辨識率。先不探討辨識效果為何,單從其採用特殊的內 部腳本語言(Scripting Language)來討論,其並不適合影像處理研究人員進行研究使用, 除了架構被侷限住之外,還必須額外學習一種程式語言。 今將各種平台做整理,如表一所示,可以很清楚的看出目前的開發環境依然採取標 記方式居多,儘管無標記的應用需求是可想易見的,不過卻鮮少有平台可用。對於目前 這些既有的開發環境來說,它們比較適合給應用開發的技術人員使用,像是 Vizard、 D’Fusion 或 Unifeye 這種整合過的開發介面,可以縮短開發時程。 表一: 現有擴增實技術平台功能分析。 無標記 名稱 標記 語言 圖片 實體物件 ARToolkit  C ARToolKit Professional   C ARTag  C ARToolKit Plus  C Goblin XNA  C# DART  Director Unifeye   C# Vizard  Python D’Fusion   Script 2.3. 採用套件分析 本文所要探討之無標記擴增實境技術,在既有之平台中雖然有支援無標記應用之平 台,但並非為支援無標記追蹤之研究而開發,故不管選用哪一套開發環境,依然需要著 手處理無標記開發設計部分,故本文預計採用 ARToolKit 之函式庫當作開發基礎平台, 再搭配影像相關函式庫來驗證本文之理論,以下簡單介紹 ARtoolKit、OpenCV、以及 OpenGL 套件函式庫。 2.3.1. ARtoolKit ARToolKit 是計算機視覺追蹤函式庫,允許建立擴增實境應用程序將虛擬影像疊加 在真實世界中。要做到這一點,利用視訊追蹤能力,並即時計算標記相對於攝像機之位 置和方向 找到相關位置後 利用 OpenGL 繪製三維虛擬物件並準確地疊加在標記之上。 。 , 所以針對擴增實境之標記應用,ARToolKit 解決了「標記追蹤」與「虛擬物件互動」這 兩個關鍵技術。ARToolKit 最初是由奈良科學技術研究所(Nara Institute of Science and Technology)的 Kato 等人於 1999 年所開發,並且被公佈在華盛頓大學的 HIT 實驗室 (University of Washington HIT Lab)。目前可以從 SourceForge[19]取得這個套件開放原始 碼 , 至 於 更 完 善 之 商 業 版 本 則 可 從 ARToolWorks[20] 官 方 網 站 中 取 得 相 關 資 訊 。 ARToolKit 是一套跨平台的函式庫,在不同平台之硬體處理部分可能略有不同,而本文 將在 Windows 環境上實作,故只針對 ARToolKit 在 Windows 上之架構做討論。 以程式撰寫角度來剖析 ARToolKit,其將標記辨識、視訊追蹤、物件定位和其它擴 增實境所需之功能全部撰寫成一個函式庫,對於撰寫函式庫來說,並無不可,而且使用 外部變數來當作各個模組間交換訊息的方法,這也是 C 語言撰寫人員常採用的方法。不 過若想將某一功能之程式進行移植,將會遇到許多問題。例如在 ARToolKit 透過 DSVL 取得攝影機解析度,並利用外部變數來儲存解析度資訊,當追蹤標記物件時同樣需要參
  • 6. 考影像解析度之資訊來進行辨識,然而影像擷取與追蹤辨識函式之間並無主從關係,所 以透過外部變數將是最佳方式。不過以模組化來設計時,各模組之間並沒有共同參考之 外部變數,勢必改變各個函式的撰寫方式。當使用愈多外部變數,將導致程式間之耦合 性變強,若要改寫成模組化之設計,將會碰到如何解決程式間之耦合性問題,所以全部 建構在其上面之應用程式乃是最簡單之擴增實境實現方式。 2.3.2. OpenCV OpenCV 是跨平台的影像處理與計算機視覺函式庫[29]。是由英特爾(Intel®)公司發 起並參與開發,以 BSD 認證方式授權發行,可以在商業和研究領域中免費使用;另外 如果系統有英特爾的 IPP(Intel® Integrated Performance Primitives)函式庫,系統將自動載 入並搭配硬體資源達到最佳化之運作模式。OpenCV 可用於開發即時的圖像處理、計算 機視覺以及模式識別程式。OpenCV 提供許多影像處理所需之函式,而且支援不同平台 之作業系統,因此必須額外架構出一個高階使用者介面提供開發 OpenCV 應用程式相關 人員使用。對於高階使用者介面產生之視窗,程式開發者無法完全掌控。 2.3.3. OpenGL OpenGL 是用來建立三維圖形的程式介面,為三維繪圖與模型之開放函式庫,是由 Silicon GraPhics 公司所推出的 IRIS GL 圖形函式庫基礎上發展的三維繪圖與模型程式 庫,自 1992 年發表至今已成為工業界最為廣泛使用的二維及三維繪圖應用程式介面之 一。OpenGL 提供許多功能函數,類似 C 程式的運行時期函式庫(Runtime Library),提 供許多包裝好的功能函數庫。OpenGL 本身的設計需要與三維繪圖硬體搭配使用,其規 格是由 ARB (OpenGL Architecture Review Board)所製訂,ARB 是一個由 SGI, 3Dlabs, Apple Computer, Digital Equipment Corporation, IBM, Intel 及 Microsoft(已於 2003 年 3 月退出)等廠商所共同成立的協會。此標準可以廣泛使用於 PC、工作站和超級計算機 上的開放式三維圖形應用。因 OpenGL 具有強大的跨平台之相容特性,適用於專業 CAD/CAM 設計領域,及應用於 Windows、MacOS、OS/2、Unix 等平台。 對於開發視窗介面有基礎概念之人員一定非常清楚,不管作業系統為何,都有其原 生之繪圖機制與介面,而 OpenGL 為了能有效的處理三維影像,必需擁有與底層繪圖硬 體溝通之能力。OpenGL 只是一個籠統之稱呼,真正核心之 OpenGL 被設計為只有輸出, 所以它只提供三維繪圖功能。核心 API 沒有視窗系統、聲音、列印、鍵盤、滑鼠或其他 輸入裝置之概念。或許看起來像是一種限制,但它允許進行三維繪圖之程式碼完全獨立 於所運行之作業系統,亦即允許跨平台開發。然而,有些整合於原生視窗系統之設備要 允許和主機系統互動。以 Windows 作業系統來說,就必須搭配 WGL 來與 Windows 作 業系統進行互動;另外,GLUT 函式庫能夠以可移植的方式提供基本之視窗功能,也是 許多開發人員採用之套件,其優勢為採用共同之使用者 API 來開發程式,搭配此套件之 應用程式也因此享有跨平台之能力;不過是優點也是其致命缺點。如同 OpenCV 一樣, 若想要與原生系統之視窗進行整合,控制能力上又是大打折扣,想要採用這個套件開發 出強而有力之視窗應用程式,這將不是一個可行之方案。 OpenGL 使用者介面運作,對於只需簡易操作視窗之應用,可以採用 GLUT 搭配 OpenGL 函式庫來完成 OpenGL 之應用,然而若想要開發比較複雜之操作介面,只能採 用 Windows 原生使用者介面搭配 WGL,當然不同之作業系統需要搭配不同之套件函式 庫,例如 Apple 之 Mac 作業系統可採用 AGL 來進行撰寫。 2.3.4. 小結 開發擴增實境應用所需要之相關技術比較廣泛,所幸目前有許多套件可供擴增實境 應用研究人員使用,然而卻沒有一個整合環境提供影像研究人員在計算機視覺領域運
  • 7. 用。此時,若想進行視覺追蹤之研究,就勢必自行修改底層函式庫之原始碼;然而商業 化之版本或許提供較完善之方案可供採用,但卻無法取得相關原始碼以供改寫。在擴增 實境中運用自行研究之視覺追蹤方法,最簡單之方案為在既有開發平台上加入研究方法 之模組,而不是全面自行發展自己之擴增實境技術。然而,不管使用商業化版本或者採 用開放原始碼套件,想要將自己的模組區塊加入運行架構中,就必須瞭解整個擴增實境 運作之底層運用技術,而各個函式庫之間的協調以及如何搭配系統運作都很重要。整體 來說,目前擴增實境開發套件為數眾多,可依據研究需求選擇比較適合之開發套件進行 應用類之學術研究;若想以自己的研究方法替換核心模組,這又是另一層面之研究,如 何以模組方式替換核心模組,更是本研究之重心。 2.4. 物件追蹤技術分析 一般對影像之處理與分析,首先是利用物件追蹤技術來追蹤動態物件,一旦追蹤到 物件,就可以做進一步的物件動作分析。物件追蹤可透過比對連續影像間物體的相似度 來完成,物件特徵的擷取,相似程度的判別,目標物的搜尋,都涵蓋在此議題中。依據 Zang 等人(2003)與 Hu.等人(2004)介紹,物件追蹤方法可概分成四類:區域式追蹤 (Region-Based Tracking)、主動式輪廓追蹤(Active Contour-Based Tracking)、特徵追蹤 (Feature-Based Tracking)、以及模型追蹤(Model-Based Tracking)。 2.4.1. 區域式追蹤 Hu.等人(2004)介紹區域追蹤,為假設影像變動的區域即為目標物之位置,藉由偵測 這些變動區域之位置來追蹤目標物。通常利用目前影像與背景相減或者利用相鄰兩張影 像間之差異來偵測出變化區域,然後再進一步的建立規則來做篩選、合併或分割。此方 法有其缺點,無法可靠地解決物件合併之問題,也無法取得物體之三維動作,對於雜亂 有變動之背景亦不適用。 2.4.2. 主動式輪廓追蹤 介紹主動式輪廓追蹤方法是使用輪廓線來描述移動的物件,並利用輪廓線之改變來 進行追蹤。Paragios 等人(2000)就是利用此類方法來進行移動物件偵測。此方法的好處 在於更有效率,且降低了複雜度,由於輪廓線是封閉曲線,即使物體交錯,也較容易解 決。但其缺點仍然是缺乏三維的資訊,無法進行三度空間上的追蹤,且此演算法的追蹤 效果對於初步輪廓的偵測或選取非常敏感,故較難用於全自動的偵測追蹤系統。圖 3為 採用主動式輪廓追蹤技術偵測在高速公路行進之車輛,從圖中可看出輪廓逐次縮小,最 後達成追蹤之目的。 圖 3. 移動車輛輪廓偵測[Paragios, 2000]。
  • 8. 2.4.3. 特徵追蹤 特徵追蹤是利用物體之特徵來進行追蹤,首先針對要追蹤的物體擷取特徵,Hu.等 人(2004)將這些特徵可分為三種:整體性特徵(Global Feature Based),例如重心、周長、 面積與顏色等;局部性特徵(Local Feature Based),如線段、曲線段與頂點等;相依圖形 特徵(Dependence Graph Based),如特徵間的結構變化等。當影像中目標物的低階特徵擷 取出後,即可匯集成更高階的特徵資訊,利用比對連續影像間之高階特徵來追蹤該物 體。除了相依圖形特徵方法除外,其餘兩種方法可以用來即時追蹤多個移動物體,利用 運動特徵、局部特徵或相依的結構特徵來解決物體交錯的問題,但是使用運動特徵的方 法穩定性不高,而使用局部特徵的方法則比較耗時費力。此演算法的另一缺點是,用二 維影像對物體的辨識度並不高,且通常無法還原出物體的三維資訊。 2.4.4. 模型追蹤 Hu.等人(2004)介紹模型追蹤方法,係提供較精細與準確之判斷,因此需要良好的物 體結構模型,也可加入物體本身之運動特性。此類方法較不易受附近背景或其它物體干 擾之影響,也較能對抗物體間交錯問題,所以相對地運算量也比較大。通常其追蹤的方 式可分為「建立物體模型」「建立運動模型」與「預測和搜索策略」三個步驟。此類方 、 法有幾項優點:因為其取得之影像即為三維資訊,故不需要額外處理才能獲得三維資訊。 並且利用先前的三維資訊,便可整合做為判斷下一個動作之根據,故縱使物體間互相交 錯,也可以準確地進行判斷。除此之外,仍可應用於物體動作變化很大之應用。 2.4.5. 追蹤技術之發展趨勢 如果只單靠一種追蹤技術可能會因為外在環境之影響,導致萃取之資訊與實際情況 有所不同,例如在追蹤過程中找不到相似之處,或者因為交錯之遮蔽影響,結果導致被 遮蔽物之部分資訊遺失,所以目前可結合多種追蹤技術,來確保其追蹤系統運作正常。 大部分的追蹤方法會搭配數學演算法,使系統能夠快速找到連續影像之間的相似處, Bradski, G., Kaehler, A.(2008)所著 Learning OpenCV 書中舉例如卡爾曼濾波器(Kalman Filter)追蹤、粒子慮除器(Particle Filter)追蹤和平均移動(Mean Shift)追蹤。其中 Mean Shift 是利用影像色彩的直方圖來追蹤目標,但其對於快速移動物體之追蹤效果並不好;而 Kalman Filter 演算法受限於線性系統與高斯分佈的預測問題,在較多雜訊的狀況下,其 追蹤失敗之情形將會提升。 為了解決這個問題,Tanizaki(1987)提出了 Particle Filter 演算法以貝氏機率的觀念, 解決雜訊非高斯及非線性的問題,並且對快速移動之物體也有良好的效果。除此之外, 還有從 Mean Shift 改良成之 Cam Shift(Continuously Adaptive Mean-Shift)演算法,其主要 通過視訊圖像中運動物體的顏色訊息來達到追蹤之目的。其運作原理為將輸入影像由 RGB 色彩空間轉換為 HSV 或 HSI 色彩空間,接著設定搜尋視窗並計算出搜尋視窗內之 色彩分布直方圖,然後執行 MeanShift 演算法來計算结果,並將結果作為下ㄧ張影像執 行 MeanShift 演算法之初始值 在 OpenCV 中 除了提供 Kalman Filter 外 對於 Mean Shift 。 , , 與 Cam Shift 追蹤演算法也有提供完善之函式庫以供使用,對於物件追蹤之開發,有著 莫大之幫助。 3. 無標記擴增實境平台建置分析 現有擴增實境開發平台架構無法做為無標記擴增實境相關技術研發驗證之平台 原 , 因在於除了要熟悉既有開發平台之架構,甚至得改寫既有架構之核心程式。若只是將自 行研究領域之程式碼加入既有架構中,無法提供實質之幫助,因為要能驗證研究理論 前,必須先熟悉既有架構後,才能理解甚至改進研究不足之處。故本研究預計提出模組 化方式來開發擴增實境之應用,並採用此架構實現無標記在擴增實境上之應用。
  • 9. 如圖 4所示,為本文所提之無標記擴增實境平台建構流程,共分為四步驟。第一步 驟為挑選既有平台,不管研究任何領域,對於既有之應用平台或架構,首要之務就是選 定使用之平台架構;接著第二步驟為擴增實境模組分析與規劃,依據擴增實境運作架構 將既有之平台分成數個模組;第三步驟為使用者操作視窗與基礎模組設計,完成各個模 組並搭配使用者操作介面來呈現原架構之基礎應用;第四步驟為無標記視覺追蹤模組設 計,針對無標記之視覺追蹤進行研究與設計。完成無標記視覺追蹤模組之後,將模組加 入基礎開發平台驗證後即完成無標記擴增實境開發平台。 擴增實境開發平台選定 擴增實境模組分析與規劃 使用者操作視窗與基礎模組設計 無標記視覺追蹤模組設計 完成無標記擴增實境開發平台 圖 4. 無標記擴增實境平台建構流程。 3.1. 擴增實境開發平台選定 在現有技術分析中以對目前之擴增實境平台做詳細之分析與介紹,對於學術研究領 域來說,採用開放程式碼之套件,較具有吸引力;尤其本文在視覺追蹤研究之需要,必 須在既有開發平台中加入無標記應用之支援,若採用商業化版本或者非開放式架構之套 件,將難以實現無標記於擴增實境中之應用。 圖 5為開發平台選定流程,以無標記之應用來說, D’Fusion、Unifeye 與 ARToolKit Professional 將為納入首選,然而這三套恰巧都是商業化版本,很難取得核心程式。姑且 不論是否可以取得原始程式碼,以 D’Fusion 來說,其採用特殊之內部腳本語言,所有開 發侷限在此腳本語言之內,很難有機會自行擴展本文之無標記研究。Unifeye 採用 C#語 言當作開發平台,其擁有良好之 Vizprep 視窗操作介面提供應用開發人員;不過其只提 供特定之無標記應用領域之運用,雖然將追蹤模組採用動態連結函式庫(Dynamic Link Library, DLL)方式設計,不過目前只能搭配系統之追蹤技術,若要擴展無標記追蹤技術 則需看 Metaio 公司是否有此種授權方式。另外商業版本之 ARToolKit Professional 也發 展出許多套件 而 NFT 套件裡採用 Cutting Edge 的自然特徵追蹤方式來實現無標記之應 , 用;若想在 ARToolKit Professional 上擴展無標記應用,則必須對其與 NFT 套件間之溝 通架構有所瞭解。NFT 套件之訴求為提供 ARToolKit Professional 無標記之應用,而非提 供無標記追蹤與辨識模組之設計,在無相關文獻提供參考下,很難利用 NFT 架構來實 現無標記擴增實境之辨識與追蹤。既然支援無標記之商業化套件也無法提供本文所需之 無標記擴增實境之應用,故本文選擇採用開發原始碼架構之 ARToolKit 當作基礎架構, 在此架構基礎上疊加本文之無標記擴增實境模組。
  • 10. 圖 5. 開發平台選定流程。 3.2. 擴增實境模組分析與規劃 篩選後選用 ARToolKit 當作本文開發平台之基礎架構,為了結合無標記之視覺追 蹤,採用 OpenCV 影像函式庫來簡化所需之影像處理。除此之外,開發擴增實境實驗平 台時,在既有 ARToolKit 應用程式介面上加入所需之應用程式介面提供擴增實境應用程 式運用。三維物件之繪製依然沿用 ARToolKit 採用之 OpenGL 來設計;不過針對視窗介 面設計部分,則依據實際需求採用原生之 Windows 視窗程式應用介面來設計。 擴增實境視覺追蹤之運作流程可分成影像擷取、標記識別、位置及姿態之估算以及 三維物件之繪製四部分,而模組分析與規劃也將依據這些特性來分類,整體架構如圖 6 所示。整體開發平台模組規劃說明如后: (1) 影像擷取模組(Capture Manager):影像來源可以是從單張影像、串流影像或者從檔 案中取得,當然這部分取決於開發環境提供多少種影像擷取模組,本文採用 DSVL 函式庫,若有額外需求,再行撰寫其它影像擷取模組。 (2) 影像轉換模組(Convert Manager):用來做為影像格式轉換,此目的在於結合 OpenCV 函式庫與 ARToolKit 平台。雖然可以將這一部份整合到 DSVL 這一個影像擷取模組 中,然而這樣將會改變整個開放的 DSVL 函式庫,為了避免此種情況,所以將其獨 立出一個區塊。 (3) 視覺追蹤模組(Tracking Manager):這部分為無標記視覺追蹤模組,提供影像研究人 員快速替換成自己的影像追蹤模組部分,因為目前的 ARToolKit 不提供無標記的辨 識與追蹤,所以要應用在無標記的領域,這部分就必須自行撰寫。 (4) 繪製模組(Render Manager):可視覺化系統,除了呈現真實環境影像,並在影像的 定位座標上疊加三維虛擬物件。 為了能快速替換自己開發的視覺追蹤演算法,模組化的架構是必須的;然而在既有 的 ARToolKit 中,其設計並非採用模組的設計觀念,要怎麼拆解既有的架構,並讓其能 正常運作,這是必須克服的重大問題。
  • 11. 圖 6. 整合開發環境模組運行架構 模組設計可以採用傳統動態連結函式庫型式,或者使用 DirectShow 的 Filter 方式來 設計。使用 Filter 的設計架構有助於整個架構的流暢,不過其必須對於 COM(Component Object Model)有所認知,相對的設計門檻比較高;而動態連結函式庫方式則比較容易設 計,本文傾向以動態連結函式庫這一個方案為主要考量,減少模組開發時程。而要如何 區分各個模組之間之差異,甚至如何知道各個模組提供哪些功能,在模組規劃時都必須 考慮到,所以每一個模組必須提供必要之共同資訊,比如模組類別、模組名稱、模組暱 稱、模組描述以及模組的唯一識別碼來區分各個模組;除此之外,對於視覺追蹤模組還 必須提供所支援處理能力,比如基本顯示、灰階影像、視覺追蹤及擴增實境等。在影像 格式轉換模組中,要將 ARToolKit 函式庫擷取之影像透過 OpenCV 函式庫來進行運作, 必須有一個影像轉換功能,將不同格式間之影像做轉換,本文採用圖 7程式片段中之原 理來實現此模組之設計。 static void mainLoop(void) { ARUint8 *dataPtr; IplImage * pstImage = NULL; … /* grab a video frame */ if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL ) { arUtilSleep(2); return; } pstImage=Convert(dataPtr, nWidth, nHeight); … } IplImage * Convert(ARUint8 *pbyImage, int nWidth, int nHeight) { IplImage * pstImage; pstImage = cvCreateImageHeader(cvSize(nWidth, nHeight), IPL_DEPTH_8U, 4); pstImage->imageData =(char *) pbyImage; return pstImage; } 圖 7. DSVL 轉 OpenCV 程式碼片段。
  • 12. 其中之 mainLoop 副程式為主要擷取影像資料的主回圈副程式,副程式中透過 arVideoGetImage 函式向 DSVL 函式庫取得目前攝影機所擷取到之影像資料,如果攝影 機已經將影像資料存放在影像緩衝區內,則 arVideoGetImage 函式將取回緩衝區的指標 位址,不然將會傳回 NULL。如果順利取得影像,透過本文撰寫的 Convert 副程式進行 影像轉換,將原本 RGBA/AGBR 與 RGB/BGR 等影像格式轉換為 OpenCV 所能處理的 IplImage 結構資料,在轉換前必需知道目前攝影機之影像解析度,OpenCV 在建立 IplImage 結構的表頭將需要用到。在完成 IplImage 結構表頭設定後,最後將影像緩衝區 之指標帶入 IplImage 結構即可。進行格式轉換除了輸入格式、攝影機解析度度要正確輸 入外,IplImage 結構的建立與釋放均需特別注意,否則有可能因為釋放到 DSVL 函式庫 所配置之記憶體,或者因為沒有將 IplImage 表格正確釋放而導致 Memory Leak,最後導 致記憶體被消耗殆盡。 3.3. 使用者操作視窗與基礎模組設計 一張影像往往比千言萬語還有用,所以應用軟體如果能夠適時的使用影像來呈現必 要之結果,往往比文字描述來的有效。以往過去許多研究都使用一個觀察視窗呈現最終 之結果,對於非研究人員很難得知處理前後之差異,故本文希望採用多個分割視窗來呈 現不同效果之影像,如圖 8為四分割分別顯示未處理(左上) 、灰階處理(右上) 、Canny 處理(左下)以及 OpenGL 繪圖(右下)之情況,可以同時觀看各種狀況有其方便性; 不過如何將一個視訊分流給多個視窗,這也是本文影像擷取模組所必須額外扮演之角 色。 圖 8. 平台操作介面。 對於一系列模組,本文將其置於相同目錄之內,利用模組之唯一識別碼來區分各個 模組,使用者介面在一開始將會自動將所有模組一功能特性進行排序與載入,並採用樹 狀結構方式呈現,如圖 9所示。
  • 13. 圖 9. 平台操作介面模組列舉。 第一階層依據視訊來源特性做類別區分;第二階層為影像擷取裝置或檔案名稱,名 稱由裝置或檔案提供;第三階層為影像擷取模組之模組名稱,名稱由模組提供;第四階 層為視訊追蹤模組之名稱,名稱由模組提供;第五階層為視訊追蹤模組所提供之能力, 每一個視訊追蹤模組最少必須提供一種能力,透過動態方式取得各個視訊追蹤模組之能 力,並將其在樹狀結構中描述。整個階層呈現如下:  Category(Local/Video File/Image File)  Device/File  Source Module  Processer Module  Capability 0  Capability 1  Capability 2  Local  Logitech Camera  OpenCV Live  Marker Detected  Normal  Detected 在完成使用者介面以及各個模組之後,本文第一階段將驗證採用本文之開發平台架 構設計之標記擴增實境應用,此階段將運行在 ARToolKit 之程式碼移植到本文之架構 中,並採用相同之標記來驗證平台運作可行性,唯有完成此階段,才可以繼續進行無標 記之視覺追蹤。
  • 14. 3.4. 無標記視覺追蹤模組設計 本文無標記擴增實境實驗平台建置將分為兩個階段進行,第一階段為擴增實境實驗 平台建置,此部分主要將擴增實境實驗平台依據模組方式建立;第二階段是追蹤技術驗 證,此部分將無標記視覺追蹤依據模組化設計規範來設計,並以無標記擴增實境實驗平 台進行驗證。 首先是模組的撰寫部分,視覺追蹤模組至少必須提供一種方法,如圖 10之程式提 供 Normal 與 Markerless 兩個方法,其中 Normal 為原始輸入影像,而 Markerless 則用來 實現追蹤方法,在視覺追蹤模組完成後,可透過影像分流技術,分別在分割視窗中顯示 原始及追蹤處理過之影像,有利於即時檢視處理效果。至於追蹤辨識的方法則在下面兩 子節中探討。 STREAM_TRANSFORM_MODULE_SERVICE_FUNCS g_ServiceEntryObjects; const STREAM_IMAGE_CAPABILITY g_aryCapabilitySupported []= { // nIndex Name Description // --------------------------------------------------------------------------------- {0, _T("Normal"), _T("Normal")}, {1, _T("Markerless"), _T("Markerless Detected")}, }; const int g_nNumCapabilitySupported = sizeof (g_aryCapabilitySupported) / sizeof (g_aryCapabilitySupported[0]); 圖 10. 視覺追蹤模組功能定義。 3.4.1. 追蹤辨識效能分析  物件複雜度 物件的複雜度係指追蹤辨識物件上是否具有可供追蹤辨識的 「特徵點」、 「顏色」、「紋 理」及「輪廓」等特徵點。高複雜度物件代表該物件具備「多特徵點」「與環境顏色成 、 強烈對比」或「明顯紋理與輪廓」等。反之,低複雜度物件則表示具備「較少特徵點」 、 「與環境顏色相似」或「無明顯紋理與輪廓」 ,具備高複雜度之物件容易從影像中辨識 與追蹤,低複雜度之物件,則不易追蹤與辨識。故這些原因將都影響到追蹤辨識的效能, 如圖 11所示。圖中(a)設定特徵點;(b)在無背景狀況下的物件特徵點分佈情形;(c)正常 速度移動時特徵點情形。 圖 11.物件複雜度對追蹤物件之影響
  • 15. 物件移動速度 追蹤物的移動速度,係指追蹤辨識物件在影像中的移動速度,通常在追蹤辨識物件 時,運用目標物移動所造成的與背景差異,再取得前景區域後進行辨識,然由於在即時 追蹤辨識中,系統運算時間通常會較短,故移動物件速度太快,可能造成在系統運算完 畢後,而物件已不在該位置,形成誤判,如圖 12所示。圖中(a)為設定追蹤物件;(b)及 (c)則以正常速度移動;(d)、(e)及(f)則是快速移動。 圖 12.物件移動速度對追蹤物件之影響 3.4.2. 採用方法與步驟 經由上述之追蹤辨識效能分析,本文提出能追蹤各式物件技術及降低物件移動速度 對物件追蹤之影響之可行性分析,主要內容分為三步驟:物件偵測、物件追蹤、及定位 顯像,流程圖如圖 13所示。 圖 13. 無標記擴增實境追蹤系統流程圖 首先物件偵測方法,擷取出移動物件,接著運用物件追蹤技術,持續追蹤移動物件, 最後利用定位顯像技術,座標轉換及疊加 3D 物件於追蹤物件上。此部分將著重在物件 偵測與物件追蹤之研究。物件偵測主要在於分析並擷取適用於無標記擴增實境技術可用 之物件特徵點,可從「整體性特徵」 、「局部性特徵」 、 「相依圖形特徵」等三類深入分析, 對低複雜度之物件亦能擷取出重要之特徵值。故後續研究將結合各種特徵值,以逹即時 且穩定快速追蹤的目的。物件追縱技術可採用或改良 CamShift 之追蹤技術,但必須能 克服因移動速度過快導致無法持續追蹤物件之問題。 4. 結果與討論 本文探討了目前擴增實境的開發平台及其應用領域,也剖析了底層應有的設計架 構,更提出了一個可行的實施方案。對於想要從事視覺追蹤技術的研究人員,可以參考 視覺追蹤模組之設計概念來進行設計。當然要實現這樣的開發環境,依然有其困難度,
  • 16. 不過在開發環境完成之後,對於擴增實境視覺追蹤技術的研究人員來說,只需要著重在 視覺追蹤方法,而不需要自行改寫既有擴增實境開發平台,便可驗證所提出之視覺追蹤 方法。換句話說,研究人員只需要撰寫自己研究方法部分,即可透過無標記擴增實境實 驗平台驗證視覺追蹤技術。相信這樣的擴增實境開發環境,對於學術研究單位,會有很 大的幫助。此平台亦可應用於不同之影像研究領域,若希望採用網路攝影機,可以自行 撰寫擷取模組,而整體擴增實境實驗平台之應用範圍也因此而向上提升。如圖 14為一 般影像處理之應用,其透過 OpenCV 實現了彩色影像轉換成灰階影像及 Canny 的影像處 理,用以驗證實驗平台之基本運作。 圖 14.應用於基本影像處理的情況。 5. 結論 本文深入研究分析如何設計無標記擴增實境整合平台,後續研究可利用本文之研究 結果,設計出一個能驗證各種追蹤技術效能之無標記擴增實境平台,並能廣泛的為各學 術研究單位所使用。可大幅縮短無標記擴增實境相關技術研發之期程,節省購買昂貴之 擴增實境平台,以及更彈性的驗證各項相關技術。未來更可結合顯示器、智慧型手機、 以及遊戲電玩等相關產業,提升國家整體競爭力。此外,依循本文研究發展之平台與技 術,未來亦可用於軍事用途,例如兵棋沙盤推演、重要裝備教育訓練、以及各項戰技戰 術訓練等應用。更可用於數位學習,製作更吸引人之數位教材或建置數位學習環境。 參考文獻 1. Bradski, G., Kaehler, A.(2008), Learning OpenCV, O'Reilly Media. 2. Francis S Hill Jr., Stephen M Kelley (2006), Computer Graphics Using OpenGL (3rd Edition), Prentice Hall, USA, Chap.7. 3. Goblin XNA, http://graphics.cs.columbia.edu/projects/goblin/ 4. Guan, T. and Wang, C.(2009), Registration based on scene recognition and natural features tracking techniques for wide-area augmented reality system. , IEEE Trans. Multi. vol. 11, no. 8, pp.1393-1406. 5. Guan, T. and Duan, L.(2010), Recovering pose and occlusion consistencies in augmented reality systems using affine properties, Sensor Review, Vol. 30 Iss: 2, pp. 148-158. 6. Hu, W., Tan, T., Wang, L. and Maybank, S.(2004), A survey on visual surveillance of object motion and behaviors, IEEE Transactions on Systems, Man and Cybernetics, Part C: Applications and Reviews, Vol. 34, pp. 334-352. 7. jARToolKit, http://sourceforge.net/projects/jartoolkit/ 8. Kato, H. and Billinghurst, M.(1999), Marker Tracking and HMD Calibration for a video-based Augmented Reality Conferencing System, in IWAR ’99: Proceedings of the 2nd, IEEE and ACM International Workshop on Augmented Reality, pp. 85-94. 9. Lee T. and Hollerer, T.(2009), “Multithreaded hybrid feature tracking for markerless
  • 17. augmented reality”, IEEE Trans. Vis. Comput. Graph., vol. 15, no. 3, pp.355-368, May-Jun. 10. Lowe, D. G.(2004), “Distinctive image features from scale-invariant key points”, Int. J. Comput. Vis., vol 60, no 2, pp.91-110. 11. Molla, E. and Lepetit, V.(2010), “Augmented Reality for Board Games,” In Proceedings of the International Symposium on Mixed and Augmented Reality. 12. Paragios N.and Deriche, R.(2000), “Geodesic active contours and level sets for the detection and tracking of moving objects,” IEEE Trans. Pattern Anal. Machine Intell, Vol. 22, pp. 266-280. 13. Saenz, A.(2010), “Augmented Reality To Help Military Mechanics Fix Vehicles (Video),” Singularity Hub. 14. Shreiner, D. and The Khronos OpenGL ARB Working Group(2009), OpenGL Programming Guide, Addison-Wesley Professional. 15. Tanizaki, H.(1987), “Non-gaussian state-space modeling of nonstationary time series,” J. Amer. Statist. Assoc.82, pp. 1032-1063. 16. Zang, Q. and Klette, R.(2003), Object Classification and Tracking in Video Surveillance, Computer analysis of images and patterns, Vol. 2756, pp. 198-205. 17. ARTag, http://www.artag.net/ 18. ARToolKit, http://www.hitl.washington.edu/artoolkit/ 19. ARToolKit SourceForge page, http://sourceforge.net/projects/artoolkit 20. ARToolKit Professional, http://www.artoolworks.com/ 21. ARToolKit Plus, http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php 22. AXIS3D Technology.Inc, http://www.axis3d.com.tw/ 23. DART, http://www.cc.gatech.edu/projects/dart/ 24. D'Fusion, http://www.t-immersion.com/ 25. FLARToolkit, http://www.libspark.org/wiki/saqoosha/FLARToolKit/en 26. Metaio, http://www.metaio.com/ 27. Metaio Unifeye SDK, http://www.metaio.com/products/sdk/ 28. NyARToolKit, http://nyatla.jp/nyartoolkit/ 29. OpenCV, http://opencv.willowgarage.com/wiki/ 30. PITOECH CO.,LTD., http://www.pitotech.com.tw 31. Vizard, http://www.worldviz.com