LoginSignup
10
8

More than 5 years have passed since last update.

AR何も分からん人がARKitを仕事で利用する時に調べた技術資料

Posted at

概要

ARKitアドベントカレンダー2018 17日目です。
ARの知識が0の状態で仕事でARKitを使う事になった際に調べた事をまとめます。

はじめに

ARKitでどんな技術が利用されているかを知りたかった。
取り敢えずApple公式の資料を探っていくと、AppleのWWDC2018のARKitの技術解説動画が参考になる感じでした。
https://developer.apple.com/videos/play/wwdc2018/610/

この資料を見たところARKitで重要になるキーワードは

  • 「画像の特徴点」
  • 「ポジショントラッキング」
  • 「3D空間の把握」

になるかなと感じました。

画像の特徴点とは

ARKitは、カメラの画像から計算される特徴点を利用する事で「ポジショントラッキング」を行ったり「平面検知」を行ったり、画像マーカーを検知しているようです。
特徴点について非常にわかりやすい記事が下記にあります
https://qiita.com/icoxfog417/items/adbbf445d357c924b8fc
要するに特徴点とは画像に対してどんな操作を行っても(回転、拡大)変化しない点で、例としてこれを利用するとある画像の中からとある画像に一致するものを探したりできます。

matcher_result1.jpg

ポジショントラッキング

ARkitはVIO(Visual Inertial Odometry)を用いてiPhoneのカメラの位置、角度を計算しています。

VIOはカメラ画像の特徴点の前後フレームの差分を用いた計算値(STEM)と、iPhoneの中にあるIMU(慣性計測装置)で得られる加速度、角速度の値を利用して特徴点に対するカメラの位置を計算しています。

STEMとIMUを組み合わせるとお互いにできない事を補完しあって堅牢なポジショントラッキングが可能になります。
1. 白い壁のような特徴点の少ない場所であってもIMUの計算結果を用いることが出来る
2. iPhoneが静止に近い状態(完全に静止じゃなくて若干の手ブレがある状態)でも画像の特徴点を利用することが出来る

3D空間の把握

iOS12に標準搭載されてるメジャーアプリが結構正確に距離を測れるのを見てわかるように、ARKitではカメラに対する特徴点の位置を結構正確に測定してくれます。

  • ARメジャー IMG_2409.jpg

特徴点の位置の計算のイメージとしてはステレオカメラによる三角測量が近くて、前後フレームを利用する事によってiPhoneのカメラをステレオに配置した事と同じ意味を持って、その前後フレームでのカメラの位置をIMUで計算してます。

この特徴点の位置が最低3点あればARKitの平面検知ができるという事になります。

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8