【Vuforia】高級模型目標數據庫(Advanced Model Target Databases)

一、引言

Advanced Model Target Databases

       高級模型目標(Advanced Model Targets)支持從各個方面識別和追蹤一個或多個對象,所有這些對象都包含在一個高級模型目標數據庫(Advanced Model Target Database)中。每個對象的識別範圍最高可以爲360°,用戶無需將模型的輪廓與物理對象對齊便可開始追蹤。

       只需要在模型目標生成器(Model Target Generator)中訓練一個或多個(Model Targets)模型目標便可實現識別追蹤。與未經訓練的Model Targets不同,MTG(Model Target Generator)可以將您的3D模型上傳到Vuforia雲(Vuforia Cloud)中,以進行深度學習訓練。

       Vuforia樣品包(sample package)展示了美國宇航局(NASA)的“Viking”着陸器,它可以被3D打印,並在360°範圍內進行測試。模型和打印說明可在Viking Mars Lander三維打印說明頁上找到。它是幫助您入門Advanced Model Targets Databases的示範資源。在Vuforia網站上的Samples”選項卡下的“Downloads”部分可以找到該示例包。

       此外,UnityVuforia Engine samples還包含了一個1:18的Polaris RZR XP 1000玩具模型所對應的Advanced Model Target,可以很容易地從亞馬遜(Amazon)等網站上獲取然後測試。

二、Model Target Generator (MTG)

       使用Vuforia開發的Model Target Generator創建Advanced Model Target Databases。其可用於WindowsmacOS。它以CAD模型作爲輸入,並輸出Vuforia Device Database。有關Model Targets和指引視圖(Guide Views)的安裝及基本資料,請參見【Vuforia】用戶指南:模型目標生成器(【原文】Model Target Generator User Guide)。

三、用於高級識別(Advanced Recognition)的多個對象和多個Guide Views

       當使用的Advanced Model Target Database包含多個Model Targets和/或多個檢測範圍達到360°Guide Views時,Vuforia引擎完全(purely)通過對象的視覺外觀來進行區分,這意味着,在選擇不同的對象和/或不同的Guide Views時,應考慮以下其他因素。

       從本質上講(Essentially),每個Guide View必須看起來不同——也就是說,Guide View必須通過外觀即可單獨(alone)區分。用戶正在查看的對象,以及與當前視角和距離相對應的Guide View,兩者不應存在任何歧義(ambiguity)。

對象必須看起來不同

       所有對象必須看起來都不一樣。如果有多個形體(shape)相似的對象(例如兩輛車),需要確保每個對象都能很好地與其他對象區分開來(在汽車例子中,轎車(sedan)和敞篷車(convertible)就有可能夠獨特)。

注意CAD模型與目標物體應比例相匹。使用不正確的比例和測量尺寸(scale and measurements)可能導致識別追蹤效果變差。有關此主題的詳細信息,請參見如何創建模型目標(【原文】How to Create a Model Target)。

Guide Views應該看起來不同,識別範圍不應重疊

       請確保使用Model Target Generator中的“創建高級視圖(Create Advanced View)”按鈕創建爲Advanced Model Targets設置的Guide View。這將允許自定義預覽圖(view)的識別範圍。

       選擇適合模型的範圍:對於玩具或汽車等對象,360°全方位識別可能是正確的選擇;如果物體只能從特定的一面靠近(例如一臺大型機器(machinery)),那麼創建兩個具有90°識別範圍的Guide Views則更爲合理。

       更多信息,請參閱Guide Views相關文章。

       若所建Guide View沒有識別範圍,則在訓練Advanced Model Target之前,始終可以返回添加。
Guide View
注意:如果創建Advanced Guide Views時包含至少一部分對象輪廓(silhouette),則效果最佳。
注意:您和物理對象越接近,目標物體的CAD模型與物理對象相似精度(accurate)就需要越高。

       舉個例子,如果您所創建的預覽圖聚焦於機器的電機滑塊(motor block),但CAD模型所包含的電機不同,則無法進行識別。

       若有多個Guide Views,則從每個Guide View所代表(representing)的視點進行觀察,對象都應該看起來不一樣。這包括每個Guide View的整個Recognition RangeGuide View與其相對應的特定視角和位置不應存在任何歧義。

  • 如果對象是非對稱的(asymmetric)(即任何方向觀察它結果都不一樣),只需確保Guide View角度和距離的範圍不重疊即可。
  • 如果對象是對稱的(symmetric)(即其具有看起來彼此相似的部分),則需確保覆蓋對稱部分的Guide View只有一個,並且創建的其它每個Guide View都需要和對稱部分看起來不同。

       此外,如果在一個Advanced Model Target Database中有多個對象,則每個對象的每個Guide View都應該在視覺上具有獨特性(visually distinct)。

  • 避免使用此類數據庫:其中一個對象是簡單的立方體(cube),而另一個對象是具有大型的、主要(dominant)爲立方體型(cube-shaped)部件的機器。這兩種對象可能會互相混淆(confused)。如果您不能避免此類情況,那麼請確保其中一個物體至少有一個獨特外觀(distinctive appearance)(標誌或圖案)完美地(ideally)覆蓋了它的大部分表面。進行此操作時,需要在訓練期間使用“真實(Realistic)”選項。或者您也可以設置機器的Guide Views,使其不包括立方體型部件(例如通過設置目標範圍(Target Extents)來排除(exclude)它)。

四、創建受訓(trained)的Model Target數據集(dataset)

  1. 啓動模型目標生成器(Model Target Generator):

       • 需要至少一個包含單個對象的數據庫,且該對象需包含一個或多個具有識別範圍的高級視圖Advanced Views,才能創建訓練項目(session)。這些Guide Views是訓練Model Target的必要條件;

       • 如果創建了不帶識別範圍的Guide Views,則在訓練Advanced Model Target之前,您始終可以返回進行添加。

  1. 導航到“數據庫(Databases)”選項卡。(如果您當前正在編輯某個Model Target,則可能需要首先單擊返回箭頭(return arrow)以返回主屏幕(Home Screen));
    train
  2. 單擊“創建數據庫(Create Database)”併爲訓練項目命名,自己選擇是否輸入描述,然後進行模型外觀(Model Appearance)模式選擇:

       • 如果CAD模型在紋理和顏色等方面看起來和真實物理對象很像,則首選"Realistic"模式。如果選擇此模式,則生成的數據庫將僅適用於具有與CAD模型相同顏色、圖案或貼標(decals)的目標對象。該模式通常用於玩具,或在對象之間形體差異不夠明顯的情況下使用。一般而言,使用紋理通常有助於進行識別(如果可以的話);

       • 如果CAD模型沒有逼真的顏色或紋理,則應使用"Non-realistic"模式。生成的數據庫不會考慮(look at)實體對象的真實顏色。此模式通常用於沒有外觀信息的工業(industrial)對象CAD模型。
select

  1. 若您想將目標對象添加到數據庫中,請從顯示的列表中選擇Model Target項目,或通過“瀏覽(Browse)”按鈕選中已有的.vup項目。(如果在列表中看不到您的Model Target,很可能是因爲其尚未生成。返回"Model Targets"選項卡,雙擊"Model Target",然後單擊“生成模型目標(Generate Model Target)”按鈕):

       • 若已創建Model TargetGuide Views沒有識別範圍,則無法選擇該Model進行訓練。在這種情況下,請返回模型界面併爲所有Guide Views配置識別範圍;

       • 將Model Target添加到數據庫時,會對其在當前狀態下進行復制。您對Model Target做出的任何更改,都不會自動更新到任何包含該Model Target的數據庫中;(筆者按:就是說比如你改了Guide View,你得重新上傳一遍纔行)

       • 我們建議在單個數據庫中不要添加超過10-20個對象,具體取決於爲每個對象定義Guide Views的數量。如果每個對象有大量的Guide Views,則應儘量減少每個數據庫的對象數,以獲得更好的效果;

       • 添加到單個數據庫中的每個目標對象(及其所有Guide View)都必須在視覺上可區分,以便在運行時能夠成功識別。如果您具有外觀相似的目標對象,或者如果您所設置的Guide Views使外觀不同的目標對象卻在某些Guide View中看起來相似,則可能導致識別不準確。
model targets

  1. 單擊右側所選數據庫上的“訓練(Train)”按鈕開始訓練所選模型。我們使用最新的深度學習(Deep Learning)技術從選定模型中訓練神經網絡(neural network)。這通常要花費大量時間(最多幾小時)。幾分鐘後,界面將顯示預計完成時間(ETA)。此訓練進程可隨時取消;

  2. 訓練完成後,界面將顯示“導出(Export)”按鈕。單擊按鈕將受訓數據庫導出爲Vuforia引擎本地包和Unity包。通過雙擊數據庫,可以在訓練過程中和受訓之後訪問訓練集。只有在成功導出訓練成果時,訓練配額(quota)纔會受到影響;(筆者按:經測試,Export失敗也有可能使配額-1!所以請儘量減少Train的次數)

五、訓練失敗怎麼辦?

       如果訓練失敗,數據庫狀態會變成"失敗(Failed)"。此外,數據庫詳情界面(在添加的Model Targets列表下)裏可能有一個或多個狀態消息,其中就包含失敗原因的附加信息。根據狀態消息,您可能需要重新訓練或發送支持請求(send a support request)。

       即使訓練沒有完全失敗,訓練進程也可能會針對訓練數據的質量發出警告,並建議可能的解決方法,例如:
       warning
       通常,訓練失敗的原因如下:

       如果您遇到其他問題,或是有任何其他疑問,可以在Model Target Generator中點擊“發送反饋(Send Feedback)”按鈕,通過電子郵件請求支持。

六、使用Advanced Model Target數據庫

       Model Target Generator會將受訓數據庫以.unitypackage文件和.dat/.xml文件對(file pairs)保存到您的硬盤(hard drive)中。

       請參見Unity模型目標簡介(Introduction to Model Targets in Unity)中的分步指南,以瞭解如何將Unity包導入Unity項目以及如何配置ModelTarget GameObject

       如果要構建原生應用程序(native app),請將.dat/.xml文件對加載到由ObjectTracker所創建的Dataset中。更多信息,請參閱模型目標API概述(Model Targets API Overview)和模型目標原生工作流(Model Targets Native Workflow)。

七、利用測試應用測試

       若想使用Android Model Target Test App測試高級數據庫,只需將兩個數據庫文件下載到Android設備上測試應用程序的安裝目錄中,然後對新生成的Advanced Model Targets進行測試。設備上的目錄通常位於以下位置:

/sdcard/Android/data/com.vuforia.engine.ModelTargetsTest/files/ModelTargetData/YourDatabaseName/

       將兩個數據庫文件複製到目錄後,就可以運行測試程序了。雙擊屏幕,找到測試用Advanced Model Target Database,然後會出現一個菜單,再從列表裏選擇數據庫。識別追蹤開始運行後,目標物體將被勾勒(outlined)出來。

八、瞭解更多

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章