Mac業界の最新動向はもちろん、読者の皆様にいち早くお伝えしたい重要な情報、
日々の取材活動や編集作業を通して感じた雑感などを読みやすいスタイルで提供します。

Mac Fan メールマガジン

掲載日: 更新日:

「計測」アプリはどうやって長さを測っているの?

著者: 牧野武文

「計測」アプリはどうやって長さを測っているの?

iOS 12で登場したアップルの「計測」アプリ。物体をカメラで認識し、そのままポイントすることで長さを測ることができる。利用したユーザからはその便利さと正確性が好評だが、そもそもこのアプリはどのようにして長さを測っているのだろうか。これが今回の疑問だ。

平面を検出して距離を計算

iOS 12で登場した「計測」アプリは、家具などをカメラで認識し、そのままポイントすることで長さを測ることができる。このようなAR(拡張現実)技術を利用して長さを測定するアプリは以前からあったが、アップルオフィシャルの計測アプリが群を抜いて使いやすい。また、計測結果についても正確だという声が多い。

このアプリで用いられている技術の一部は、もともとは火星探査車のために開発されたもののようだ。火星はあまりにも遠いので、地球から送った電波信号が到着するまでに数分から数十分かかる。そのため、探査車を地球上のリモコンで操縦することは難しい。電波信号受信にラグがあるため、探査車が岩に激突したり、穴ぼこに落ちたりといった危険を瞬時に回避することができないのだ。

そこで、「SLAM」という技術が開発された。正式名称をSimultaneous Localization and Mappingといい、要するに「位置決めと地図作成を同時に行う」という意味だ。移動しながら外界の様子を解析し、地図を作り、同時に自分がその地図の中のどこにいるかを知る技術である。このSLAMを使うと、探査車が火星の緯度・経度で指定した地点まで、穴ぼこや岩を避けながら自律的に移動できるようになるという。

原理は意外とシンプルだ(もちろん、実用レベルの開発をするのはとても大変)。まず、カメラなどをとおして周囲の風景を認識する。そして、風景の中から特徴点を抽出し、そこまでの距離を計算。各特徴点の座標を定めて、3次元の地図を作っていく。探査車は移動と同時にこの一連の処理を行っていくのだ。

特徴点までの距離は、三角視差測量で求められる(このほか、レーザを発射して測定するなどさまざまな方法がある)。探査車が移動すると、移動前の地点・移動後の地点・特徴点の3点で三角形ができる。この三角形の一辺の長さ(移動距離)と両角の角度から、特徴点までの距離を計算する。この三角測量でもっともよく知られているのは、恒星までの距離を測る方法だ。地球は太陽を中心とした公転軌道を描いているので、夏と冬では公転軌道の直径分移動をしている。それぞれの季節に、特定の恒星までの角度を測っておけば、計算でその恒星までの距離が求められるというわけだ。

SLAMは、身近なところではロボット掃除機にも搭載されている。上位機種ではイメージセンサによる画像解析が行われ、自走しながら部屋の地図を作成する。それに基づき、部屋の隅々まで掃除をするように経路を決定しているのだ。

さらに、アップルのARフレームワークであるARKitにも、この技術の一部が用いられている。それは平面検出機能だ。ARでは、カメラで撮影した現実世界の中に、CGで作ったキャラクターなどを配置できる。このとき、キャラクターが宙に浮いているようでは違和感が出るので、平面を検出して、その平面の上にきちんと置くようにしているのである。

計測アプリもこの機能を使ってまず平面を検出し、その平面までの距離を把握。それから、平面上に置かれた2点の距離を計算して長さを算出していると推測される。

「計測」アプリの得手不得手

このような技術的背景を頭に入れておくと、計測アプリをよりうまく使いこなすことができる。まず、計測アプリにも苦手な環境があることを知っておこう。

?照明が不足した暗い環境。逆に照明過多の明るすぎる環境

?広く、特徴のない平面(白壁、コンクリート壁、ガラス壁など)

?本棚のように平面が複雑に組み合わさっている対象物

?距離がありすぎる平面(道路の向こうのビル壁など)

?斜めから壁を見た場合(検出はできても、計測結果の誤差が大きくなる)

一方で、うまく使いこなすコツは次のようなものだ。

?アプリ起動時、検出したい平面にできるだけ平行になるようにiPhoneを動かす

?平面を検出したら、位置をできるだけ移動しない

つまり、正確に計測できる条件は意外と厳しい。しかしそれでも、計測アプリは相当に役に立つものだ。素晴らしい点は、計測して長さを表示した状態を、ワンタッチで写真として保存できること。メモ帳などにいちいち寸法を転記する必要がない。

たとえば家具の買い替えを考えている場合、古い家具の大きさを計測アプリで測っておき、その写真を保存して家具店に行けば、新しい家具のサイズを簡単に比較できる。家具は店頭で見るときは小さく見えても、室内に置いてみると意外と大きいもの。サイズを間違えて邪魔になるといった失敗を防ぐことができる。

また、部屋の収納場所や空いたスペースを計測アプリで測っておき、その写真を保存しておくというのもおすすめだ。家具店やホームセンターで見かけた家具や収納グッズに一目惚れしてしまったときなどに、配置できるかどうかをすぐに見極めることができる。

ARを使って期待する未来

このようなAR技術は、屋内のナビゲーション機能への応用も期待されている。

ショッピングセンターや空港、ターミナル駅といった屋内や地下では、GPSが利用しにくい。徒歩ナビゲーションをするにはビーコンを設置する方法もあるが、設備投資に多大なお金と手間がかかる。そこで、あらかじめ屋内をくまなく撮影して3次元地図を作成しておき、そのデータを利用者のiPhoneに送る。利用者は風景をカメラで表示して、地図データと重ね合わせることで、自分がどこにいるかがわかるようになる。この方法を使えば、目的地までのナビゲーションがより簡単になるだろう。

AR技術は現在、医師の手術技能の教育や建設現場など、さまざまな業務面での応用が進んでいる。しかし、一般消費者向けのAR技術というと、風景の中にキャラクターを配置して楽しむゲームなどが中心で、実用的な応用はあまり見られない。今後は計測アプリやARナビゲーションのように、より消費者向けの実用・応用が少しずつ進んでいくだろう。

恒星までの距離は、地球が移動した地点と角度から計算する(上図)。Appleの「計測」アプリも基本的には同じ原理を用いて、検出した平面までの距離を測定していると推測される(下図)。

「計測」アプリを開くと、iPhoneを動かすように促される。このとき、できるだけ検出したい平面と平行に動かすのが正確に長さを計るコツだ。

「計測」アプリは自分でポイントを打たなくても、わかりやすい平面があれば自動的に補足して長さと面積を計算してくれる。A4用紙を検出してみると、ほぼ正確な数値が表示された。

一方、同じA4用紙を斜めから検出し、それからiPhoneの位置をわざと動かしてみると、かなり誤差が生まれてしまった。悪い使い方の例だ。

Apple公式サイトの「AR Quick Lookギャラリー」ではARを気軽に体験することができる。オブジェクトは平面の上にきちんと乗り、カメラを動かすとそこに本当にあるかのように見える角度が変わっていく。 (【URL】 https://developer.apple.com/jp/arkit/gallery/)

Apple公式サイトの「AR Quick Lookギャラリー」ではARを気軽に体験することができる。オブジェクトは平面の上にきちんと乗り、カメラを動かすとそこに本当にあるかのように見える角度が変わっていく。 (【URL】 https://developer.apple.com/jp/arkit/gallery/)

文●牧野武文

フリーライター。ARを使ったナビゲーションはカメラ越しに前を見るため、歩きスマホに伴う危険は少ない。もちろん歩きスマホはよくないが、地下街やショッピングモールなどで、今後使っている姿を目にする機会が増えるのではないだろうか。