壹 前言
隨著行動裝置的日新月異,各種搭載於其上之定位應用與服務也是與日俱增。然而,目前的定位技術多仰賴衛星定位系統(GPS)的訊號,或是利用深度影像和光達(lidar)等系統估測深度,這些方式皆有其條件限制,如衛星訊號不良或積累的誤差進而影響整體定位效果。因此,在此背景下,如何透過純視覺影像來進行空間定位,並可滿足較大範圍的室內精確定位,且能支援多人同時使用,確是一值得深入探討的議題。
本文將對既有的影像定位技術進行介紹,並對最新研發的多人影像視覺定位系統- CollabLoc [1] -進行深入說明。CollabLoc為中華電信研究院與陽明交通大學合作研發之一套基於前後端架構之定位系統,其前端採用類似同時定位與地圖構建(simultaneous localization and mapping, SLAM)[2][3] 等能夠即時產生定位結果的演算法;後端透過深度神經網路的加入,來達到更佳準確的定位效果。CollabLoc前後端系統經由網路相互溝通,實現前端即時定位、後端執行校正的分工模式,以支援多人且快速的空間定位。
貳 科技發展現況
一、 單一影像定位(Single¬-Shot Localization, SSL)
單一影像定位,是將欲定位的影像作為輸入,再還原出拍攝相機在該場景中的精確姿態,即計算影像拍攝裝置相對於該空間之平移與旋轉關係。在 SSL 方法中,預先建立定位的空間模型有助於定位精確度 [4],常見的作法可使用運動推斷結構 (structure from motion , SfM) [5] 演算法來處理,其透過場景照片中提取特徵點並確定其相應的三維空間座標來建立模型。在定位階段,系統從目標影像中提取特徵點,並將其與預先建立的模型中的點進行匹配,從而建立用於計算目標影像姿態的二維與三維的對映關係,此過程通常伴隨使用隨機抽樣一致(random sample consensus,RANSAC)[6] 演算法與 Perspective-n-Point (PnP) [7] 演算法來求解。雖然傳統人為定義之手動設計特徵(hand-crafted feature)[8][9][10] 等均已運用在許多視覺定位系統中;但最近的一項研究 [11] 探討並說明了此類手動設計特徵的局限性。因此,基於機器學習之非手動設計特徵(non hand-crafted feature)為更有效的技術,常見的如 NetVLAD [12] 與 SuperPoint [13] 等,亦已被用於影像檢索和特徵匹配。
二、 相對姿態估計
視覺 SLAM是一種用於位置追蹤的定位和姿態估計方法,此類方法能夠執行即時定位,並同時建立未知環境的三維地圖,因此通常用於 AR 應用 [14]。在此類方法中,Y. Y. Jau等人 [15] 提出了一套端到端的學習方法,並描述了估計相鄰影像之間相對相機姿勢的重要性;然而,與傳統基於光學幾何估測的方法相比,其所提出的基於學習的姿態估計模組的準確性較低。J. Wang等人 [16] 提出使用光流來增強相鄰影像之間的特徵匹配,並應用常見的 5-point演算法 [17] 來計算相對相機姿態,以獲得較好的定位精確度。
三、 CollabLoc: Collaborative Information Sharing for Real-Time Multiuser Visual Localization System
如下圖一所示,CollabLoc 為一基於客戶(前)端-伺服器(後)端架構的多人視覺定位系統,該系統的前端和後端組件透過網路連接進行通訊。當後端接收到前端傳送的影像定位需求時,會對影像進行SSL,然後將姿態估計結果傳回給前端。前端結合Google推出的空間定位API-ARCore來協助定位,其採用類似SLAM 的技術來追蹤設備的相對姿態,稱為 ARCore 姿態。前端根據接收到的 SSL 定位姿態來優化 ARCore 姿態,並同時產生融合姿勢完成前端的即時定位。細部來說,CollabLoc系統包括前端姿態融合與快速後端定位機制,茲將分部敘述如下。
(1) 前端姿態融合(圖一綠色方框部分)
前端姿態的融合,作法是根據某一時間點來自後端SSL的定位姿態,再搭配前端裝置上的ARCore姿態,進行姿態的融合補償。一個後端可以為眾多前端提供SSL服務,而為了減輕後端的運算負擔與平衡前端的運算需求,系統導入了追蹤姿態信心值(Confidence value,以下簡稱c值)來作為後端SSL排程處理的參考。c值代表前端對其融合姿態的信心程度,可以用來表示前端對於空間環境追蹤和定位的品質,其更新根據前端裝置的相對移動與轉動姿態差異進行調整。每個前端裝置會定期向後端傳送其當下的c值,後端再從所收到的前端裝置中選擇一個c值最低的(代表該裝置當下的定位精確度最低,急需後端進行重新定位校正)來進行SSL。SSL的定位姿態一般來說雖然有相當高的準確度,但仍無法百分百確保每次定位結果的正確性,因此前端需要一判斷機制,來決定是否接受來自後端的定位姿態,或者繼續沿用自身裝置上既有的姿態。
為此,當前端接收到來自後端的SSL定位結果之後,會比較SSL姿態與裝置上對應的融合姿態。如果兩者差異過大,便會判定此次的SSL姿態無效,以減少SSL定位錯誤所帶來的劇烈變化影響,這一步驟稱之為SSL過濾(SSL filter)。然而在此機制下,若SSL過濾將一個錯誤的SSL姿態視為有效,便有可能在未來持續過濾掉正確的姿態,導致前端永久無法修正錯誤的姿態。因此,CollabLoc設計上讓SSL過濾在檢查姿態的同時,一併對c值產生影響。當c值低於一個預先定義好的閥值時,無論SSL過濾的結果為何,前端一律會採納SSL的結果並視為有效姿態,並且將c值重設為一系統預設的最高值。這項機制使得前端在採納錯誤的SSL姿態之後,可以倚賴接下來的正確姿態自行修正,確保融合姿態的正確性與穩定性。
(2) 快速後端定位機制(圖一藍色方框部分)
後端SSL處理首先會對目標影像進行特徵點匹配,傳統作法是將目標影像所提取出來的特徵點,與檢索出來的該空間資料庫內多張近似影像的特徵點進行比對,以得出2D-3D的點對映關係。這種典型的階層式定位(hierarchical localization)作法問題在於比對所花費的運算時間甚鉅,無法達到即時的運算。因此,為加速此一處理,在影像提取中,CollabLoc 透過取得視角差最小的照片,借助RAFT [18] 光流網路計算該照片與目標影像間的光流來取得稠密匹配。接著再透過SuperPoint網路提取目標影像上的區域特徵點,以點的位置作為遮罩套上光流去產生稀疏匹配後,最後再利用RANSAC與PnP演算法去對特徵匹配出來的2D-3D點對應關係進行求解並得出定位姿態。
此外,CollabLoc亦針對光流的特性進行更多優化,其空間資料庫內的影像均事先經過RAFT網路的特徵提取;因此在定位階段時只需要對目標影像進行單一光流網路的特徵提取即可,原先預處理過的資料則可以快速取用而無需頻繁地進行圖片載入和特徵提取,此做法稱作「快速光流特徵」,可為多個客戶連線下的伺服器提供更高的運算效率;實驗亦顯示,這個做法節省了近90%的影像檢索的時間。
參 結論
視覺影像定位為一歷史悠久且一直被研究討論的議題,肇於搭載於其上之應用可謂包羅萬象,並且定位效果的好壞直接影響應用的品質。本文從基本的SSL作法出發,深入淺出說明基本的視覺影像定位原理,進而介紹最新研發之多人即時視覺定位系統-CollabLoc。雖然基於前後端這樣的主從式設計的系統在目前的研究或應用上並非罕見,但如何妥善利用後端的運算資源來調控輔助前端的運算往往才是技術精髓所在。而隨著目前硬體裝置的不斷進步與神經網路的發展,預期未來將有更多可行與先進的作法能輔助或應用在空間定位系統,的確是值得我們持續關注的一個研究領域。
肆 參考文獻
[1] Teng-Te Yu, Yo-Chung Lau, Kai-Li Wang, and Kuan-Wen Chen, "CollabLoc: Collaborative Information Sharing for Real-Time Multiuser Visual Localization System", IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2024.
[2] J.-C. Piao and S.-D. Kim, "Real-time visual–inertial slam based on adaptive keyframe selection for mobile ar applications," IEEE Transactions on Multimedia, vol. 21, no. 11, pp. 2827–2836, 2019.
[3] R. Mur-Artal, J. M. M. Montiel, and J. D. Tardos, "Orb-slam: a versatile and accurate monocular slam system," IEEE transactions on robotics, vol. 31, no. 5, pp. 1147–1163, 2015.
[4] P. Ghosh, X. Liu, H. Qiu, M. A. M. Vieira, G. S. Sukhatme, and R. Govindan, "On localizing a camera from a single image," ArXiv, vol. abs/2003.10664, 2020.
[5] J. L. Schonberger and J.-M. Frahm, "Structure-from-motion revisited," in 2016 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
[6] Eric Brachmann, Alexander Krull, Sebastian Nowozin, Jamie Shotton, Frank Michel, Stefan Gumhold, Carsten Rother, "DSAC - Differentiable RANSAC for Camera Localization," in 2017 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2017.
[7] Lepetit, Vincent, Francesc Moreno-Noguer, and Pascal Fua. "EPnP: An accurate O (n) solution to the PnP problem." International journal of computer vision 81, 2009
[8] D. G. Lowe, "Distinctive image features from scale-invariant key- points," Int. J. Comput. Vision, vol. 60, pp. 91–110, Nov. 2004.
[9] Bay, Herbert, Tinne Tuytelaars, and Luc Van Gool. "Surf: Speeded up robust features." Computer Vision–ECCV 2006: 9th European Conference on Computer Vision, 2006.
[10] E. Rublee, V. Rabaud, K. Konolige, and G. Bradski, "Orb: An efficient alternative to sift or surf," in 2011 International conference on computer vision, pp. 2564–2571, IEEE, 2011.
[11] P. Sarlin, C. Cadena, R. Siegwart, and M. Dymczyk, "From coarse to fine: Robust hierarchical localization at large scale," in 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2019.
[12] R. Arandjelovic ́, P. Gronat, A. Torii, T. Pajdla, and J. Sivic, "Netvlad: Cnn architecture for weakly supervised place recognition," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 40, no. 6, pp. 1437–1451, 2018.
[13] D. DeTone, T. Malisiewicz, and A. Rabinovich, "Superpoint: Self- supervised interest point detection and description," in 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), pp. 337–33712, 2018.
[14] J. White, D. Schmidt, and M. Golparvar-Fard, "Applications of augmented reality," Proceedings of the IEEE, vol. 102, pp. 120–123, 02 2014.
[15] Y. Y. Jau, R. Zhu, H. Su, and M. Chandraker, "Deep keypoint-based camera pose estimation with geometric constraints," in 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 4950–4957, 2020.
[16] J. Wang, Y. Zhong, Y. Dai, S. Birchfield, K. Zhang, N. Smolyanskiy, and H. Li, "Deep two-view structure-from-motion revisited," in 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2021.
[17] H. Li and R. Hartley, "Five-point motion estimation made easy," in 18th International Conference on Pattern Recognition (ICPR), vol. 1, pp. 630–633, 2006.
[18] Z. Teed and J. Deng, "Raft: Recurrent all-pairs field transforms for optical flow," in Computer Vision - ECCV, A. Vedaldi, H. Bischof, T. Brox, and J.-M. Frahm, Eds. Cham: Springer International Publishing, 2020