ARFoundation之路-3D物體識別之一

版權聲明:Davidwang原創文章,嚴禁用於任何商業途徑,授權後方可轉載。

  3D物體跟蹤技術,是指通過圖像處理技術對攝像頭中拍攝到的3D物體識別定位並對其姿態進行跟蹤的技術。3D物體跟蹤技術的基礎也是圖像識別,但比前述圖像識別跟蹤要複雜得多,原因在於現實世界中的物體是三維的,從不同角度看到的物體形狀、紋理都不一樣,在進行圖像對比時需要的數據比2D圖像識別要多得多。

  在ARFoundation中,3D物體跟蹤通過預先記錄3D物體的空間特徵信息,在真實環境中尋找對應的3D真實物體對象,並對其姿態進行跟蹤。與圖像跟蹤類似,要在ARFoundation中實現3D物體識別跟蹤也需要一個參考物體庫,這個參考物體庫中的每個對象都是一個3D物體的空間特徵信息。獲取參考物體空間特徵信息可以通過掃描真實3D物體採集其特徵信息,生成.arobject參考物體空間特徵信息文件,.arobject文件只包括參考物體空間特徵信息,不能用該文件復原參考物體結構。。參考物體空間特徵信息對快速、準確識別3D物體起着關鍵作用。

(一)獲取參考物體空間特徵信息

  Apple提供了一個獲取物體空間特徵信息的掃描工具,這是一個XCode工程源碼,需要自己編譯,源碼名爲 Apple’s Object Scanner app[https://developer.apple.com/documentation/arkit/scanning_and_detecting_3d_objects],讀者可自行下載使用XCode編譯。該工具的主要功能是掃描真實世界中的物體並導出.arobject文件,可作爲3D物體檢測識別的參考物體。

  參考物體空間特徵信息對後續3D物體檢測識別速度、準確性有直接關係,因此,正確的掃描生成.arobject文件非常重要,遵循下述步驟操作可以提高掃描成功率。掃描過程其實是對物體表面3D特徵點信息與空間位置信息的採集過程,這是一個計算密集型的工作,爲確保掃描過程流暢、高效,建議使用高性能的iOS設備,當然掃描工作可以在任何支持ARKit的設備上進行,但高性能iOS設備可以更好的完成這一工作。

在這裏插入圖片描述

  1、將需要掃描的物體放置在一個背景乾淨不反光的平整面上(如桌面、地面),運行工具應用,將被掃描物體放置在攝像頭正中間位置,如果工具檢測到物體會出現一個空心長方體(包圍盒),移動手機,將長方體大致放置在物體的正中間位置,如上圖左圖所示,屏幕上也會提示包圍盒的相關信息,但這時包圍盒可能與實際物體不匹配,點擊“Next”可調整包圍盒大小。

  2、在正式掃描之前需要調整包圍盒的大小,工具程序只採集包圍盒內的物體特徵點信息,因此,包圍盒大小對採集信息的完整性非常關鍵。圍繞着被掃描物體移動手機,工具程序會嘗試自動調整包圍盒的大小,如果自動調整結果不是非常理想,也可以手動進行調整,方法是長按長方體的一個面,當這個面出現延長線時拖動該面可以移動該面,長方體6個面都可以採用類似方法進行調整。包圍盒不要過大或過小,過小採集不到完整的物體特徵點信息,過大可能會採集到周圍環境中的物體信息,不利於快速檢測識別3D物體。調整好後點擊“Scan”開始對物體空間特徵信息進行採集,如上圖左2所示。

  3、在開始掃描物體後,工具程序會給出視覺化的信息採集提示,其會將成功採集過的區域用淡黃化標識出來,如上圖石2所示。

  4、緩慢移動手機(保持被掃描物體不動),從不同角度遂面掃描物體,確保包圍盒的所有面都成功掃描(通常底面不需要掃描,只需要掃描前後左右上5個面即可),如上圖右圖所示,工具程序會在所有面信息採集完後自動進入下一步,或者在採集完所有信息後可以手動點擊“Finish”進行到下一步,如果在未完整採集到所需信息時點擊“Finish”則會提示採集的信息不足,如下圖所示。
在這裏插入圖片描述

  5、在採集完物體特徵信息後會在物體上顯示一個X,Y,Z的三維彩色座標軸,如下圖左圖所示。這個座標軸的原點表示這個物體的原點(這個原點代表的就是模型的局部座標系的原點),可以通過拖動三個座標軸邊上的小圓球調整座標軸的原點位置。在圖中可以看到“Load Model”按鈕,點擊該按鈕可以加載.usdz格式文件,加載完後會在三維座標軸原點顯示該模型,就像是在真實環境中檢測到3D物體並加載數字模型一樣。

  6、在調整好座標軸後可以對採集的空間特徵信息進行測試驗證,點擊“Test”進行測試,如下圖中圖所示。將被掃描物體放置到不同的環境、不同的光照下,使用攝像頭從不同的角度查看該物體,看能否正確檢測出物體的位置及姿態,如果出現驗證時無法檢測識別的問題,說明信息採集不太完整,需要重新掃描採集一次,如果驗證無問題則可導出使用。導出可以直接點擊“Share”導出該單個物體採集的空間特徵信息文件,如下圖右圖所示,也可以點擊左上角的Merge Scans合併多個物體空間特徵信息文件,如下圖右2所示,合並可以是合併之前採集導出的.arobject文件,也可以開始新的物體掃描合併兩次掃描結果。

在這裏插入圖片描述
  7、在點擊“Share”後該工具程序會將採集的物體空間特徵信息導出爲.arobject文件,在打開的導出對話框中,如上圖右圖所示,可以選擇不同的導入方式,可以保存到雲盤,也可以通過郵件、微信等媒介發送給他人,也可以通過AirDrop(隔空投送)的方式直接投送到Mac計算機或其他iOS設備。在使用AirDrop投送到Mac計算機時,只需要打開Finder,只需點擊“隔空投送”,接受來自手機發送的文件即可(在已完成配對的情況下,還需要打開Mac計算機的藍牙),如下圖所示,接受的文件存儲在下載文件夾中,後輟爲.arobject。

在這裏插入圖片描述

  在得到參考物體的空間特徵信息文件,即.arobject文件後,就可以將其用於後續的3D物體檢測識別中了。

(二)掃描獲取物體空間特徵信息的注意事項

  如前所述,參考物體空間特徵信息對3D物體識別的速度、準確性有非常大的影響,因此,在掃描獲取參考物體空間特徵信息時,遵循以下原則可大大的提高參考物體空間特徵信息的可用性及保真度。

  掃描環境
  1、確保掃描時的照明條件良好,被掃描物體有足夠的光照,通常要在250-400流明。
  2、使用白光照明,避免暖色或冷色燈光照明。
  3、背景乾淨,最好是無反光、非粗糙的中灰色背景。

  被掃描物體
  1、將被掃描物體放置在攝像機鏡頭正中間,最好與周邊物體分開一段距離。
  2、被掃描物體最好有豐富紋理細節,無紋理或反光物體不利於特徵信息提取。
  3、被掃描物體大小適中,不過大或過小。掃描或檢測識別時對可放在桌面的中等尺寸物體有特殊優化。
  4、被掃描物體最好是剛體,不會在掃描與檢測識別時發生融合、摺疊、扭曲等影響特徵點空間信息的形變。
  5、掃描時的環境光照與檢測識別時的環境光照信息一致時效果最佳,應防止掃描與檢測識別時光照差異過大。
  6、在掃描物體時應遂面緩慢掃描,不要大幅度快速移動手機。

參考文獻

1、Scanning and Detecting 3D Objects Scanning and Detecting 3D Objects

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