VR、AR、MR三兄弟


起源
AR:Augmented Reality,「擴增實境」。
MR:Mixed Reality,「混合實境」。
VR:virtual reality,「虛擬實境」。

網路上已可見許多評論,但我還是不免俗地來討論,
這三者究竟有何不同?
這三個名詞,要從1994年說起,
當時科學家就已議定出這三者的關係,
以下取自維基百科 :

他們將真實環境和虛擬環境分別作為連續系統的兩端,
位於它們中間的被稱為「混合實境」。
其中靠近真實環境的是擴增實境,
靠近虛擬環境的則是虛擬實境。

為甚麼是三者是互相線性的? 而不是三個獨立技術?
我們稍待便會提到。






AR
擴增實境,有三個必要條件將
1.虛擬現實結合  2.即時互動  3.三維
然而現實世界當然是三維的,所以AR要做到的是 : 
在現實中即時加上虛擬物件,
(在此常會被搞混,以為繪製出3D物件才算AR,
簡單圖片或文字訊息,也是虛擬的物件)
最常見的就是Pokemon Go,精靈從手機鏡頭被看見,
出現在現實世界內。


然而,寶可夢用的AR,位在上面提到線性系統的最左邊,
只虛擬與現實的結合,相對是很低的。
它僅是在現實畫面,補上精靈的模型,
使人感覺其好似真的出現在現實中,
但與真實環境的結合性,相對是較低的。
(有沒有遇過鯉魚王出現在平底鍋上...)

真正倚賴現實物品而實現的AR,
可分為Marker與Markerless兩種
Marker : 鎖定特定標記,而產生虛擬物件。
Markerless : 以自然物為標記,而產生特定物件。
(意思並不是不需要標記,而是不需要特定相同樣式的標記,
可以透過自然物來實現 : 如餅乾盒、水瓶...)

(特定黑框寶貝球標記,完成AR - Marler)

(一般自然照片,完成AR - Markerless)

若還是不解,可以進而去比較
ARToolkit(Marker)與Vuforia(Markerless),
兩者皆是當今使用最廣泛的AR套件,提供各種平台的SDK,
依照網路既有教學,20分鐘就可以實現AR。


MR
混合實境,很常被當作AR,或者說只是AR加強版
的確,在線性圖上,它們只是鄰居而已
Vuforia現在也可以做到,掃描方形或圓柱物體,
繪製上3D模型,這種AR在線性圖上的位置,
相對就很靠近MR了。

但,技術層面上,MR可說是三者最難的,
它必須讓真實世界與虛擬世界同步、混合、共存,
AR做的是"擴增",所以它只要把虛擬物件放進來,
或者放在特定物品上。
MR做的是"混合",所以它必須擁有對當下空間的感知能力,才能把適當的3D物件,
或是3D場景,正確地與真實世界結合。
(一個機器人、鏡頭,怎麼感受了解這個環境? 
它必須記住自己在甚麼位置,同時對周遭空間做建構,
存到資料庫內或記憶內運算。沒錯 ! 它需要的,就是SLAM)

有了AR,會在某張圖,某個物品,長出虛擬物件~
或是在客廳內,放一張沙發試試看感覺如何。
有了MR,會從"空無一物"的牆面,看見外星人破牆而入 !
你的房間會上演星際大戰,怪物可以繞過椅子,
從桌子下面鑽出。



簡單來說
AR僅是"增"
只能地對真實世界的特定物品、位置、標記,
給予虛擬的額外資訊,
實際來說,根本不知道地板跟牆在哪裡。

MR則是"合",
根據現實世界的情況,上演符合這個空間的虛擬事件,
讓你所見之物,
都處於虛實之間的狀態,而要完成虛實結合,
就額外需要有空間的感知功能。

AR已默默發展許久,然而MR直到2016年
微軟公司發表出Hololens,才立出一個指標,
我想當今也只有微軟能跑在最前頭,
微軟用著它在kinect體感器上的軟硬體開發經驗,
加上量身打造的處理器(C+G+HPU)與感測器,
完成此標竿性的產品。(當然售價也不便宜)



VR虛擬實境
一樣我們來看到線性圖,VR站在最右邊的位置,
可說是完全摒棄真實世界揚長而去...完全進入虛擬世界。
所以VR的產品,都是完全包覆住我們的視野
(因為你已不再需要真實世界的一切)
相較於AR、MR兩兄弟,VR的渲染力可說是最強的
因此在視覺上的技術比重較高
但也因為容易沉浸在其中,忽略現實世界而常被詬病
不過這也是VR的優點,可以將我們帶離這個世界...

最火紅的即是HTC VIVE、PlayStation所出的頭戴式VR裝置
(親身實測體驗過後,感覺...一分錢一分貨囉...)
VIVE使用上需要1~2坪的一個小空間
透過兩顆雷達定位,定位你的頭戴器跟手把位置
然後我們可以在其中動作、操作其他應用。



VIVE雖然自豪體驗最好,實際使用與網路評測也的確如此,
但空間限制與器材繁多總是被不看好,普通民眾難以入門,
不過這你知道、我知道、獨眼龍也知道、HTC當然也知道,
他們進一波在全球啟動VIVE X 計畫,
在徵才清單中,直接列出需要懂得Tracking跟SLAM技術人才(他們想幹嘛? 你應該猜到了...)



22世紀
AR/MR/VR 是永不停息技術
哆啦A夢裡,就可見許多眼鏡、產生別人或自己幻覺的道具,
我想就是這三者的延伸吧!!!

AR : 童話眼鏡,看到的動植物,都會擬人化
其他還有變形眼鏡、作弊的眼鏡...

MR : 試膽眼鏡,看到的世界都會變得很恐怖...

VR : 室內旅行機,內建許多風景,只要選定風景,
就能讓室內看起來像該風景的樣子。
但室內的大小不會因此而改變。



SLAM(三) 編年史

前情題要 :

SLAM乃用於機器自身"定位",並同時"建構"環境的地圖,
與古老的技術,刻木頭以防止在林中迷路,有異曲同工之妙。


















在此補上,SLAM相關開放領域的說明



歷史

(經查以下年分稍有偏誤,確切請依論文年分)


廢話不多說,接著我們進入正題
SLAM一詞始於1990年,本為了對空間不確定性做預估,
隨後此技術並無飛快成長,網路上可考資料,
多半以軍事、研究用途。
(個人認為,是受到感測硬體昂貴、
運算速度軟硬體上難突破、應用領域小影響)
但十幾年後,電腦、機器人普及,運算硬體的升級與降價,
最重要的是數位鏡頭的演變,在visual SLAM被提出後,
近十幾年內,默默火速成長 !


2004
Mono-SLAM(Monocular)首先被提出,基於單目來實現SLAM
但鏡頭精細還不如現今成熟,所以當時仍然受限硬體影響。



2007
PTAM(Parallel Tracking and Mapping)被提出
此技術是為AR而誕生的,用來估測深度資訊,
透過估算,慢慢長出並建構3D的平面,
然而此技術卻對SLAM產生長遠影響。

2010
PTAM-SLAM被提出,因為PTAM推算平面的演算方法,
適合用在SLAM建構地圖上。
倚賴硬體的發展,Mono-SLAM使用此方法被實現出來。

2013
EKF-SLAM被提出,搭載卡爾曼濾波器的演算方法,
Kalman Filter 的原理在於利用現在的狀態資訊,
加上下一秒的輸入,推斷出下一時刻的輸出,
為最受推崇的機器人定位估算數學模型。

2013
Co-SLAM(Collaborative Visual SLAM)
同時使用多顆鏡頭,來完成SLAM,
之所以會使用到多顆鏡頭,
是因為物件深度的估算,採用的為"三角定位法",
通常會使用兩顆鏡頭以上
單目之所以能實現深度,是利用時間差的兩張圖片
計算出來的。
(雙目以上的SLAM,硬體成本較高且複雜,
現今多致力於單目與RGBD-SLAM上)
















2014
RGBD-SLAM(color + depth)
使用色彩與深度資訊,轉換成3D資料,
並利用深度與相機參數,估算自身定位。
受到深度相機(kinect、real sense)的普及,
深度資訊取得更容易,不用自己算了!
(根據google的tango計畫,未來智慧手機2.0上,
也將都搭載深度相機。)
因為不用自己算,所以快速、誤差低,
乃是至今仍發展中的一個流派。

2014
LSD-SLAM (Large-Scale Direct Monocular)
顧名思義,在大範圍的場景使用單目,來完成SLAM
此方法提出一種新概念,"大範圍"與"不再使用特徵點",
直接連貫地拼接地圖
解決了過於單調的場地,找不到特徵拼接點的問題
2014
LSD+SVO-SLAM(Semi-dense Visual Odometry )
上一版本的改良,使用極少量特徵,來做修正。

2015
ORB-SLAM(Oriented FAST and Rotated BRIEF SLAM )
PTAM使用特徵點流派的復興,基於單顆鏡頭,
使用兩種比對特徵的演算法,建構環境。
(FAST + BRIEF,快速並解決旋轉不變性問題,
適用於連續影像的追蹤比對)

2016.01
ORB-SLAM2,加入支持雙目的功能。

2016.07
LSD+DOS-SLAM(Direct & Sparse Visual Odometry)
LSD使用直接法(Direct Method),所以容易受外界光影響
於此加入光度校正,加強準確度。
(此法數學與物理複雜,在下也沒讀很懂,
有興趣的人可以再去看原文網站)

2016.11
ORB-SLAM2,加入支持RGBD的功能。


分水嶺

至此進入分水嶺,硬體上多半以單目(至多雙目)、
彩色 + 深度相機為主,
然而以是否取用特徵點分為兩個流派。

但硬體簡單,計算相對複雜
RGBD雖然資料直觀減少運算,但範圍卻受到深度相機限制
單目直接法(Direct Method),可以被用於大場景

取用特徵點與否,也受到使用空間範疇的影響
直接法(Direct Method)雖然受到光源影響
但卻可以解決沒有特徵的地方
使用特徵,在校準與追蹤上相對容易實現。

現在才剛進入2017,直至2016年底,各家SLAM都還在奮戰,
這是一個尚無盡頭,不會停止的戰爭,
沒有人的方法可以一統天下,
並且占盡優勢解決所有範疇。
















(其他還有不少SLAM淹沒在洪流中,演算法更是百百種,若有遺漏未介紹到,還請見諒。)

參考資料 :
PTAM-SLAM :
http://www.doc.ic.ac.uk/~gj414/monocular_slam/ptam.html

SLAM的演算法 :
http://www.iceira.ntu.edu.tw/project-plans/200-iii

LSD-SLAM :
http://vision.in.tum.de/research/vslam/lsdslam

ORB-SLAM :
http://webdiis.unizar.es/~raulmur/orbslam/

SLAM(二) 為何物


誕生

探討SLAM 之前,我們需要先對"導航"技術,有所了解。
因為SLAM是在導航訴求的機緣下,才被誕生出來的。
導航共分為兩種:

1. 全球定位系統(Global Positioning System)
















以電子羅盤為感測元件,用衛星訊號與地圖資訊,
做本身的定位,
簡稱就是我們常聽到的GPS !
優點 : 可得到空間座標中絕對資料。
缺點 : 資料更新率低,精確度受到天候、地形、信號、
高樓、隧道等,建物之遮蔽與多路徑效應導,
易致訊號中斷。

寶可夢、Google導航、車用導航就是用此技術。





















2.慣性導航系統(Inertial Navigation System)


















又稱航跡推測法(Dead Reckoning)。
感測元件通常為載具里程計(Odometer),
或慣性量測單元(Inertial Measurement Unit) 。
沒有輻射電磁波、資料更新率高,但是錯誤容易累積。
(白話 : 自己記自己走了多少路,轉了幾個彎,就不會迷路)

此方法常用在機器人、探勘車、自動駕駛車等無人載具上,
而SLAM 即為其導航的關鍵技術!











介紹SLAM(Simultaneous Localization and Mapping)

翻譯做同步進行"定位"與"地圖建構",
最初發明目的是用於無GPS環境下,對於機器自身的定位,
20年前使用的工具,是雷達做為感測器,
近年因硬體成本降低與,CPU、GPU運算速度提升,
加上影像處理理論成熟,使影像系統更符合應用。
因此,基於"影像"做同步定位及建圖,被稱為Visual SLAM。

雖然元件與演算法不斷革新,
但其循環的運作流程依然為 : 
Step1. 利用感測器取得環境資訊
Step2. 建構儲存成地圖做為參考
Step3. 更新所建地圖內地標資訊
Step4. 定位出處於空間中的位置
















特性
由上可知,以SLAM為導航的機器,
對於環境的感知能力遠勝於GPS,
但如同第一段所敘,此方法容易產生誤差,導致錯誤累積。
所以儘管過了20幾年,SLAM仍為開放性問題,
不管是在辨識追蹤、降噪容錯、軟硬體加速、
提升精準...都是目前致力發展方向。

但此方法仍是有必要的,所以自動駕駛載具,
通常會搭載GPS引路,再使用vSLAM避物。

















應用
vSLAM因為具有環境感知的能力,
所以應用不僅只在定位上,
甚至到擴增實境(Augmented Reality)、
混合實境(Mixed Reality)都可以見其蹤影,
(至於AR、MR、VR三者關鍵技術差異,
將會在其它篇幅再做討論)
最貼近我們生活的,就是掃地機器人,它"不是"vSLAM,
為了避免重複地方一直掃,或是某個房間走不出去,
就會搭載簡單的SLAM在上面。


















最後SLAM可不是以上見到這麼簡單,
除了應用的發展,它本身牽涉理論涵蓋如下(大陸博客擷取)



















從硬體上就可以分為單、雙目(鏡頭)、深度鏡頭的不同派系,
擷取資訊上,可以分為直接法、特徵法,
特徵抽取方法的不同,又可以細分下去...
而後的路徑優化的數學模型,也不斷發展出不同套件,

總之,它是開放性問題,
不同應用範疇,使用不同硬體,套用不同方法,
還沒人能果斷地說他的方法最好,可以一統所有情境與問題。

之後我們會再跟各位介紹SLAM的發展史與各種主流方法~