XR技術者が知っておいた方がいい空間と位置に関連するあれこれ

9.1K Views

February 08, 24

スライド概要

センサーとかどのように位置をトラッキングしているかの原理をしっておくことで向き不向きが理解できたりしますので、基礎的な話をまとめました。
(途中で脈略がなくなって・・・)

profile-image

XR(VR/AR)のエバンジェリスト。XR技術で世界を変えていきましょう。 https://majimajiwaroze.connpass.com/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

XR技術者が知っておいた方がいい 2022.05.08 空間と位置に関連するあれこれ

2.

大久保 聡 Mail [email protected] Twitter @followapp

3.

目次  前提知識  空間を認識するためのセンサーの種類  センサーの応用  あのポジショントラッキングは?  3Dの表現

4.

前提知識

5.

特徴点とは? https://qiita.com/icoxfog417/items/adbbf445d357c924b8fc イメージ内に見られるパターンや際立つ構造の こと 1. コーナー 2. ブロブ edge blob corner flat

6.

イメージ(BGRA8)のデータ構造は? http://neareal.com/470/ BGRA8・・・色の並びと、サイズ(分解能) B :青 G :緑 R :赤 A :透明度 左上原点(OpenCV系) 1次元化

7.

空間を認識するためのセンサーの種類

8.

TOFカメラ  Time Of Flight 赤外線を照射、反射してかえって 来るまでのずれで距離を計測する。 反射を利用しているので透明や鏡 黒などは苦手。赤外線の外乱を受 ける。 https://www.tdk.com/ja/tech-mag/knowledge/159

9.

LIDAR https://xtech.nikkei.com/atcl/nxt/column/18/00587/00002/  Light Detection and Ranging 紫外線、赤外線、近赤外線のレーザー光を対象物体に照射し、反射光を捉え て、往復時間から距離を算出する。前後左右方向の距離分解能が高い。また、 計測精度の距離依存性が低く、距離によって精度の変化が少ないという特徴 がある。

10.

ステレオカメラ https://www.zmp.co.jp/knowledge/adas_dev/adas_sensor/adas_camera/adas_stereo  対象物までの距離を求めるには,三角 測量の原理を利用して算出しており。 同じ対象物を 2 つのカメラで撮像し た際の撮像位置の視差を求める必要が あります。視差を求めるには,2 つの カメラで同じ対象物を撮像した画素を 抽出する必要があり,これをステレオ マッチングと呼んでいます。

11.

IMU(慣性計測装置) https://www.marubun.co.jp/products/4590/  Inertial Measurement Unit 3次元の慣性運動(直行3軸方向の並進運動および回転運動)を検出する装置 です。加速度センサ[m/s2]により並進運動を、角速度(ジャイロ)センサ [deg/sec]により回転運動を検出します。

12.

QUIZ 使われているセンサーは? Intel Realsense D435 Microsoft Azure Kinect Hololens Intel Realsense T265 Ultra Leap Leap Motion Controller Apple iPhone13 Pro Magic Leap Controller Oculus Go Controller NrealLight

13.

QUIZ 使われているセンサーの答え Realsense D435 Leap Motion Controller →TOF →ステレオ Azure Kinect iPhone13 Pro →TOF →LiDAR Realsense T265 →ステレオ Magic Leap Controller Oculus Go Controller NrealLight →IMU

14.

センサーの応用

15.

フォトグラメトリー(SFM) https://3dplusone.jp/photogrammetry/about-2/  形状をデータ上で立体的にとらえた値(三次元測定値)をそれぞれの写真の 差分から抽出することができ、抽出された情報から、カメラ位置を割り出す こともできますし、写真の縮尺がわかっている場合には、画像上の距離を求 めることも可能です。

16.

VISUAL SLAMとは  カメラの画像をもとに現実世界の特徴を利用して空間認識と、自己位置推定 を行う。  RGBの単眼カメラ、ステレオカメラ、深度カメラなどで実現するため安価。

17.

VISUAL SLAMとは https://goo.gl/uFqQtk  フレーム間での特徴点を対応づけ、特徴を追跡し、環境Mapを作成

18.

特徴点による空間認識の特徴  どんな特徴があるか考えてみよう 得意なものは? 苦手なものは?

19.

特徴点による空間認識の特徴の答え  特徴点が変わるものは難しい ガラスやなどの映り込みのある素材 動くもの 暗所、照明の変化  特徴のない場所(もの) 白い部屋  大きなカメラ移動 前の画像の特徴とマッチングできないくらいカメラ映像が変わってしまうよ うな場合。  処理能力が必要 画像処理にはコンピューターリソースを消費する。

20.

SFM、SLAM、VO  位置推定や、3次元化する技術 SfM (Structure from Motion) 画像から3次元構造を推定するもの。 SLAM (Simultaneous Localization and Mapping) 画像から地図の作成とその地図上の位置推定するもの。 センサーの違いによりLiDARを入力として用いたLiDAR SLAM、カメラを用 いたVisual SLAM(特徴点ベース・深層学習ベースなどがある)、ToFセンサー などからの深度(距離)を用いたDepth SLAMなどがあります。 VO (Visual Odometry) リアルタイムの自己位置と向きの推定を重視し移動量のみを推定する。

21.

VPS(VISUAL POSITIONIG SYSTEM)  画像情報を活用して位置を特定するシステム、またはサービスを指す。AR Cloud的な機能が追加され てきている。 1. 地図の永続化 2. 地図にアンカーの設置 3. 地図から自己位置のローカライゼーション

22.

VPSの種類と特徴  GRAFFITYさんのまとめ資料 https://note.com/graffity/n/n1c7150324363

23.

あのポジショントラッキングは? HTC VIVEの位置トラッキングの仕組み

24.

VIVE TRACKER  ベースステーションで囲まれた領域 (最大10m×10m)内のTrackerの座標 と姿勢を知ることができる。 ベースステーション ベースステーション Tracker

26.

LIGHTHOUSE • 同期パルスからの時間経過で、縦の走査光と横の走査光が届いた 時間でべースステーションからの角度を求める。(IMUで補完され る。) t t 同期パルス 縦の走査光 横の走査光

27.

3Dの表現

28.

3Dの表現方法 Point Cloud Voxel Mesh

29.

POINT CLOUD  点の座標情報、それに付随する色情報などを含む。  表面なのか内部なのかわからない。

30.

POINT CLOUD DATA形式 PCDファイル形式 # .PCD v.7 - Point Cloud Data file format VERSION .7 FIELDS x y z rgb SIZE 4 4 4 4 TYPE F F F F COUNT 1 1 1 1 WIDTH 213 HEIGHT 1 VIEWPOINT 0 0 0 1 0 0 0 POINTS 213 DATA ascii 0.93773 0.33763 0 4.2108e+06 0.90805 0.35641 0 4.2108e+06 0.81915 0.32 0 4.2108e+06 0.97192 0.278 0 4.2108e+06 0.944 0.29474 0 4.2108e+06 0.98111 0.24247 0 4.2108e+06 0.93655 0.26143 0 4.2108e+06 0.91631 0.27442 0 4.2108e+06 0.97192 0.278 0 4.2108e+06 0.944 0.29474 0 4.2108e+06 0.98111 0.24247 0 4.2108e+06 0.81915 0.32 0 4.2108e+06 PLYファイル形式 ply format ascii 1.0 comment author: Greg Turk comment object: another cube element vertex 8 property float x property float y property float z property uchar red property uchar green property uchar blue element face 7 property list uchar int vertex_index element edge 5 property int vertex1 property int vertex2 property uchar red property uchar green property uchar blue end_header 0 0 0 255 0 0 0 0 1 255 0 0 0 1 1 255 0 0

31.

POINT CLOUD DATA形式  画像ファイルフォーマットを利用する場合 点の位置情報(Position Map)と色情報(Color Map)を2つの画像ファイル形 式に格納して扱う。 Position Map(RGBA16) 1Point分のデータ 16bit * 4 = 64bit(8Byte) Color Map(RGBA8) 1Point分のデータ 8bit * 4 = 32bit(4Byte)

32.

点群の表示 https://const.fukuicompu.co.jp/constmag/theme/2  点の座標位置に、カラー情報を付加して描画する。

33.

RSVFX  Pcx (Point Cloud Importer/Renderer) ポイントクラウドをUnityVFXで表示するためのライブラリ。 https://github.com/keijiro/Pcx

34.

VOXEL https://www.minecraft.net/ja-jp  Voxelの座標情報と、それに付随する色情報などを含む。

35.

MESH http://nakayasu.com/lecture/blender/3880  点の座標情報と、それに付随する色情報。Meshを構成する3つの点の組み合 わせの情報を持つ。  Meshには裏表がある。  表面に色情報以外にテクスチャーを張り付けることができる。

36.

ノーマル ライン(法線)  面に直角に出る線で向きがある。 表 裏

37.

UVマッピング  UV座標とメッシュの対応をとり、テクスチャーを張り付ける テクスチャー UV座標とメッシュの対応付け メッシュ ← V →U 大人の事情で見せれません

38.

UVマッピングの仕組み  3Dのオブジェクトにテクスチャーをはるために、座標の対応付けをしてい る。 V Z (0.5, 0.5) (0,0,1) Y (1, 0.5) U (0.5,0.5) <-> (0,0,1) (1.0,0.5) <-> (1,0,1) (0.5,0.0) <-> (0,0,0) (1.0,0.0) <-> (1,0,0) (1,0,1) (1,0,0) (0.5,0) (1,0) X (0,0,0)