先月ネインに入社したJと申します。3D-CADでハード系の開発を担当しています。
前々回、SがOPEN-VSLAMの動作テストについて紹介しました。その続きの話になります。
今回のテーマ
●なぜネインでSLAMを探っているのか
●各種SLAMの特徴
●アップルのARKITについて
なぜネインでSLAMを探っているのか
ネインではXR(AR/MR/VRの総称)で「空気を読む」世界を作ろうとしています。
https://www.pc-webzine.com/entry/2019/06/post-308.html
ARのテクノロジーは主に2つから成り立っています。
①カメラ画像の平面や物体を認識し、3次元空間を作成する。
②撮影している位置が、3次元空間内のどこにいるのかを把握する。
これを実現する方法の一つとして、SLAMに注目をしています。
各種SLAMの特徴
SLAMは画像で行う「vSLAM(Visual SLAM)」と、光センサで行う「LiDAR SLAM」があり、
vSLAMはスマホやドローンなど小さなハードウェアに利用されています。
(LiDAR SLAMは大きく高価なものが多いので、自動車等の大きなハードウェアに利用)
vSLAMはさらにいくつかの方式(PTAM、DTAM、LSD-SLAM、ORB-SLAMなど)があり、
ORB-SLAMの動画でリアルタイムに地図作成と自己位置推定を行っている様子を知ることができます。
https://www.youtube.com/watch?v=JyG1EeqCmHY
SLAMは主に①トラッキング(追跡) → ②デプス推定 → ③マップ生成を行います。
特に後期に開発されたSLAMでは同じ位置を検出したときに「ループ検出」を行い、
補正することで地図精度を高めています。
(動画では50秒付近で"LOOP CLOSED"と表示され、瞬時に地図を修正しています)
SLAMの歴史と特徴をまとめました。
APPLE ARkit、Google ARCoreの特徴、SLAMとの比較
AppleからARKit、GoogleからARCoreといったAR開発プラットフォームがリリースされ、
数多くのARアプリが開発されています。
ARKitやARCoreは図2のVO(Visual Odometry)の進化版、VIO(Visual Inertial Odometry)を使っていて、
カメラ画像+加速度センサ+ジャイロセンサで自己位置推定を行なっています。
VIOは局所的な狭い範囲でのARに焦点を置いているため、計算コストが低い利点があります。
SLAMは広範囲に焦点を置いているため、精度が高い利点があります。
今後open-VSLAM以外も動かして、それぞれのSLAMを比べたいと思っています。
特に参考にさせていただいたWEBサイト
https://qiita.com/k-boy/items/1de8e9ed1260834d02af
https://noshumi.blogspot.com/2017/05/visual-slam-1visual-slam.html