iOS 11の新機能、AppleのARKitと視覚慣性オドメトリの仕組み

iOS 11の新機能、AppleのARKitと視覚慣性オドメトリの仕組み

10年前にiPhoneが発売された当時は、基本的な写真撮影は可能でしたが、動画撮影はできませんでした。しかし、iOS 11では、深度、AIビジョン、機械学習といった機能により、新たなレベルの画像撮影を実現しています。同時に、カメラで捉えた映像とデバイスが生成したグラフィックスを統合する拡張現実(AR)のための新しいプラットフォームも搭載されています。その仕組みをご紹介します。

今秋リリースされたiOS 11では、カメラと画像処理に関連する一連の新しいアプリケーションプログラミングインターフェース(API)が導入されました。APIを利用することで、サードパーティの開発者はApple独自のコード(フレームワーク、または「キット」と呼ばれる)を活用し、独自のアプリで高度な処理を実行できるようになります。

新しい Depth API により、開発者は、iPhone 7 Plus および 8 Plus のデュアル カメラの開発と調整における Apple の膨大な作業の肩の上に立つようなアプリを構築できます。これらのカメラは連携して動作し、カメラからの距離に基づいて画像の部分を選択的に調整するために使用される差分深度マップを作成できます。

Appleは、洗練されたVisionフレームワークとCoreMLにより、開発者がカメラで捉えた顔、物体、テキスト、ランドマーク、バーコードを検出するための、あらかじめ構築されたインテリジェンスのライブラリを利用できるようにしています。さらに、既存の機械学習モデルに基づいて、どの物体が認識されているかを識別することもできます。ARは、モーションセンサーデータとカメラからの視覚入力を組み合わせて、空間にレンダリングされた3Dグラフィックスをユーザーが自由に探索できるようにします。

iOS 11 のインテリジェント カメラ イメージング API における 3 つ目の主要な取り組みは、Apple が ARKit と呼ぶ新しいフレームワークを使用して、サードパーティ開発者向けのプラットフォームとして拡張現実 (AR) エクスペリエンスのレンダリングを作成することをサポートします。

ARKit アプリの最もわかりやすい例は、カメラで捉えた現実世界に重ね合わせたアニメーション グラフィックの合成 3D 世界を構築するゲームです。

AR では、ガイド付きナビゲーションからモデルの探索、カメラを角に向けるだけで家のフロアプランを作成するといった現実世界の測定やマッピングまで、さまざまなことができます。

AR は、実際の画像の上に 3D グラフィックを重ねるだけでなく、モーション センサー データとカメラからの視覚入力を組み合わせて、空間にレンダリングされた 3D グラフィックをユーザーが自由に探索し、複雑なアニメーション シーンをあらゆる角度から視覚化できるようにします。

スティーブ・ジョブズがiPhone 4でCore Motionを発表

ARアプリ開発のためのプラットフォームの提供は、見た目以上に困難です。ARKitは、Appleがモーションセンサーからのデータを最適化および追跡してきた10年にわたる経験に基づいています。その歴史は、2007年に初代iPhoneに搭載された3軸加速度センサーに始まり、傾きゲームや「シェイクして元に戻す」などのジェスチャー操作を可能にしました。

2010年、iPhone 4は3軸ジャイロスコープを搭載した初のスマートフォンとして登場しました。加速度センサー、傾斜センサー、デジタルコンパスと連携することで、6軸の動き検知と重力を中心とした回転が可能になり、ゲームやユーティリティアプリにおいて新たなレベルの空間認識が可能になりました。

スティーブ・ジョブズは、2010 年の WWDC のステージ上で、iPhone 4 の空間ジャイロポジショニング機能を使用して、2 分間のジェンガのゲームを披露しました。このゲームでは、仮想ブロックの山が、単に左右に傾くだけでなく、電話の動きに合わせて回転します。

スティーブ・ジョブズは2010年にiPhone 4のジャイロスコープとCore Motion APIを導入した。

当時、これは刺激的な新機能であり、正確な 6 軸モーション データにアクセスできるモバイル デバイスで何ができるかを理解していたエンジニアたち、つまり開発者たちから歓声と歓喜の声が上がりました。

モーショントラッキングは、加速度センサーを搭載した任天堂のWiiリモコンや、ソニーのPS3用ジャイロスコープコントローラー「SIXAXIS」など、ビデオゲーム機のコントローラーに以前から搭載されていました。しかし、Appleは主要なモバイルゲーム機に先駆けてiPhone 4にジャイロスコープを搭載しました。ソニーのPSP Goにはモーションセンサーが搭載されておらず、任天堂がモーションセンサーを搭載した3DSを発売したのはその翌年になってからでした。

ジョブズ氏は、iPhone 4の新しいジャイロスコープは単なるハードウェアの奇抜な仕掛けではなく、iOS Core Motion API(非常に正確な位置情報を提供する)とともに提供されることを強調しました。これにより、アプリ開発者はこれらのセンサーが記録したデータを活用する新たな方法を模索できるようになります。また、この新しいハードウェアはすべてのiPhone 4に搭載されるため、開発者がターゲットとする大規模で均一なインストールベースがすぐに構築されるだろうとも強調しました。

Core Motionの5年間の進化

Appleが当時新発売したA4カスタムチップは、ますます強力かつ高度化していきました。2013年に発売された64ビットA7搭載のiPhone 5sでは、Appleは低消費電力の新しいM7モーションコプロセッサを導入しました。このコプロセッサは、モーションセンサーとデジタルコンパスの出力を効率的に監視し、CPUを常時オンにすることなく、バックグラウンドのCore Motionデータを収集・報告できるようになりました。

モーションデータの最も明白かつ貴重な用途の一つは、フィットネストラッキングです。iPhone 6のM8コプロセッサコアは、階段を上ったり坂を走ったりする際の高度変化を追跡するための気圧計を追加することで、この機能を強化しました。

翌年、常時オンで電力効率の高いM9 Core Motionシリコンは、iPhone 6sの「Hey Siri」コマンドに応答するためのマイク監視機能も搭載されました。この技術はApple Watchにも採用され、Siriとフィットネストラッキングが主要機能となりました。

コアモーション + カメラビジョン = VIO

2015年、Appleはフォルクスワーゲン社内のプロジェクトからスピンオフし、拡張現実(AR)可視化ツールを開発するMetaioを買収しました。2013年のPrimeSense、その後のFaceshiftの買収、そして昨年のFlyby Mediaの買収など、これまでの買収と合わせて、Appleはモーションセンサーとカメラを基盤として新たな3D世界を構築し、ナビゲートするために必要なスキルを蓄積していました。

すでに3億8000万台のiPhoneとiPadモデルがAR体験を提供可能

最終的な目標は、iPhone Xに搭載された高度な前面TrueDepthセンサーでした。このセンサーは、ユーザーの顔の特徴を詳細に3D画像化することで認証に革命を起こすように設計されています。しかし、Face IDと動画での表情追跡のためのプラットフォームは、来月発売される新型iPhoneでのみ利用可能になります。VIOは、デバイスの6軸(上下、前後、内外、ピッチ、ヨー、ロール)に沿った複雑な動きを「6自由度」でリアルタイムに視覚化できるアニメーション3Dグラフィックスを作成します。

同様の技術の多くは、シングルカメラARの形で早くも登場しています。iOS 11の新機能として、少なくともA9チップ(M9 Core Motionコプロセッサを搭載。3億8000万台以上のiPhone 6s以降および新型iPadのベース)を搭載したデバイスは、VIO(Visual Inertial Odometry)と呼ばれる技術を用いて、カメラからの情報と連携し、位置追跡に使用するモーションセンサーデータを追跡できます。

VIOはカメラデータ(「視覚」)を分析し、ランドマークを特定します。このランドマークは、デバイスが観測したランドマークに対する空間内での移動を測定(「オドメトリ」)するために使用します。モーションセンサーデータ(「慣性」)は、デバイスが観測したデータと比較することで空間内での移動をより正確に把握するための補足情報として、空白を埋めるために使用されます。

本質的に、VIO により、システムは、デバイスの 6 つの軸 (上下、前後、内外、ピッチ、ヨー、ロール) に沿った複雑な動きに合わせて、「6 自由度」でライブで視覚化できるアニメーション 3D グラフィックスを作成できます。

ARKitは6自由度で仮想3D世界を探索します

シーン理解機能と組み合わせることで、カメラは現実世界の視覚的なランドマークを識別し、水平面として定義して、3Dレンダリングされたグラフィックシーンの基盤として利用できます。さらに、カメラは光推定にも使用され、適応的な照明と影をレンダリングします。その結果、カメラで撮影した現実世界の映像の上に空間的にレンダリングされた、フォトリアリスティックな3Dモデルが生成されます。デバイスを傾けたり回転させたりするだけで、あらゆる角度から自由に見ることができます。

VIO を使用すると、ARKit アプリは壁、床、テーブルなどの表面を識別し、仮想オブジェクトを空間に配置できるため、ユーザーは、これらの表面上に構築されたコンピューター グラフィックスで拡張されたカメラで見える世界を確認し、現実世界のオブジェクトや環境を調べるのと同じように、上、下、上、下を見たり、周囲を回ったりして自由に探索できます。

AndroidがARに追随するのは難しいだろう

ARのVIOは概念的にはシンプルに聞こえるかもしれませんが、実際にはCore Motionセンサーの正確なトラッキングと、ビデオストリームのフレーム全体にわたる数千の移動点の視覚分析が必要です。説得力のあるAR体験をレンダリングするには、膨大なデータを瞬時に計算し、その結果をシーンのリアルタイム再描画に適用する必要があります。ARKitには、Appleの最新の3世代A9、A10 Fusion、A11 Bionicチップと同等の非常に高速なシリコンロジックが必要です。

Appleは過去2年間で、シングルカメラVIOベースのARに対応したiOSデバイスを3億8000万台以上販売しました。しかし、2015年のAndroidの主力製品には、AppleのA9の約半分の速度しか持たないQualcommとSamsungのチップが搭載されていました。

2年前は、AppleのA9の優れた速度がなぜそれほど重要だったのか、それほど明白ではありませんでした。しかし今日では、AndroidのARKitに相当する機能を実行できる競合製品は一つもありません。Googleでさえ、当時Tegra K1とオーバークロックされたQualcomm Snapdragonチップの速さを誇示した後、「自社製」のNexus 6とNexus 9を放棄しました。

2年前、A9の速度がなぜそれほど重要なのかは明らかではなかった

昨年販売されたトップクラスのAndroidでさえ、シングルコア性能ではA9よりも大幅に遅い。VIO演算はマルチスレッド化によって複数のコアを活用できるようだが、ARに十分な速度のチップを搭載したプレミアムAndroidには、ベンダーが一般的に非常に高解像度のディスプレイを搭載しているため、同じシーンをレンダリングするだけでも多くの作業が必要になるという問題もある。

Apple は、非常に高速なシリコンと扱いやすい解像度のディスプレイを組み合わせることで、AR プラットフォームを実行できる既存の巨大なインストールベース全体に AR プラットフォームを迅速に展開することができました。

Android AR におけるより大きな問題は、カメラが捉えた映像とモーションセンサーが報告する映像の間に求められる高精度な精度です。Android は、超高解像度ディスプレイを搭載するために低速なチップを使わざるを得ないだけでなく、キャリブレーションやサポートがより困難な、より多様なモーションセンサーを使用するという、断片化の問題にも直面しています。

GoogleがARCore開発をAndroidに導入する取り組みを発表した際、サポート対象はHTCのPixelとSamsungのS8の2機種のみでした。これは過去1年間で販売された約2,500万台に過ぎず、ARKitアプリが動作可能な Appleの既存のiPhoneインストールベースの10分の1にも満たない規模です。

これらの数字は、現在ARアプリに興味を持つ可能性のあるユーザーの最大潜在数のみを表していることに注意してください。スマートフォンケースと同様に、誰もがARアプリを使いたいとは限りません。しかし、スマートフォンケースを購入する際には、iPhoneは普及率が均一であるため、特定のAndroidモデルに特化したケースよりもはるかに幅広い選択肢があります。Google PlayはApp Storeの2倍の追跡可能なダウンロード数を提供しているにもかかわらず、収益はApp Storeの約半分に過ぎません。

Windows Phoneユーザーなら誰でも理解できると思いますが、開発者がARCoreへの投資を正当化するには、一定の閾値に達する必要があります。もしそれがなければ、例えばGalaxyスマートフォン専用のアプリがもっと増えるでしょう。

サムスンは長年にわたり、Chordなどの独自APIの採用を開発者に促し、場合によっては報酬を支払う努力を重ねてきましたが、自社ブランドのAndroidスマートフォンでのみ動作するアプリの普及には全く成功していません。「サムスンはChordをアプリ開発者にとって最高の共有プロトコルにすることを全力で目指しています」と息巻いて宣言した後も、このAPIは2013年のプレスリリース以降、その人気を維持しているようです。

iOS App StoreのAR

さらに、ベーシックなAndroidは既に世界中で非常に大きなインストールベースを誇っているものの、iOS App Storeに匹敵する収益性の高いアプリプラットフォームとしての役割を果たせていません。追跡可能なダウンロード数はApp Storeの2倍にも達するにもかかわらず、Google Playの収益はApp Storeの約半分に過ぎません。これは、Androidユーザーがアプリに料金を支払うことを期待していないことが一因です。このことが、Androidアプリの性格を、広告付きでほぼ無料のモデルへと変化させています。

昨年、Ustwo Gamesは、iOSユーザーの40%が受賞歴のあるゲーム「Monument Valley」のインストールに料金を支払ったのに対し、Androidユーザーではわずか5%だったと報告した。残りは主に海賊版をダウンロードしていた。ARがAndroidに導入される際には、広告に重点が置かれる可能性が高い。

このゲームの売上240万本のうち、170万本はiOSで、Google Playでの売上はわずか0.3万本未満でした。開発者の収益の80%以上はiOSユーザーからのものでした。

これらの統計は、ゲーム、生産性アプリ、その他のモバイル ソフトウェア ツールが一般的に iOS 専用に構築されるか、最初に iOS でリリースされ、後から広告付きバージョンでのみ Android に提供されることが多い理由において重要な役割を果たします。

つまり、AR が Android に導入される際には、新しいテクノロジーの可能性の限界を押し広げる実用性や有料ゲーム、エンタープライズ アプリではなく、広告に重点が置かれる可能性が高くなります。

AppleのARは機能ではなくプラットフォームだ

注目すべきは、私たちが今年の夏に予測したように、Apple の AR 体験構築へのアプローチ (標準の iOS カメラの使用と深度の両方) は、単なる社内で行われるトリックではなく、アプリ開発プラットフォームの一部であるということです。

Googleレンズ

対照的に、今夏のGoogle IOでは、拡張現実(AR)、機械学習、光学文字認識(OCR)を基盤とした新しいGoogle Lens機能を披露しましたが、サードパーティ開発プラットフォームとして公開することはありませんでした。代わりに、これらの機能はクラウドベースのGoogle Servicesに組み込まれました。これは、AndroidをGoogle独自のサービス、有料広告、そして収益化に必要な監視追跡機能に接続する機能です。

Appleとは異なり、Googleはハードウェアの販売で収益を得ているわけではなく、自社のアプリプラットフォームによって支えられています。Googleは長年にわたりモバイルアプリを軽視し、実際には誰もアプリを使っていない、そしてGoogleにとってユーザー行動の追跡と収益化が容易なウェブに戻るべきだという主張を展開してきました。これは、Microsoftが以前Windows Phoneで「なぜアプリが必要なのか?」と問いかけた広告と似ています。

実のところ、人々が、Web ベースのコンテンツの一般的なストリームを表示できる PC、ネットブック、テレビのようなコモディティ デバイスとしてスマートフォンやタブレットを購入するのではなく、iOS に惹かれて使い続ける主な理由は、サードパーティ ソフトウェアです。

Appleは、高度なカメラ画像処理、深度センシング、マシンビジョン、ARといった技術開発に注力し、アプリがモバイルテクノロジーの利用の中心であり続けるよう尽力して​​います。これまでのところ、この戦略は功を奏しています。

しかし、ARにはもう一つのフロンティアが間もなく展開されます。それは厳重に秘密にされてきましたが、それはGoogleが模倣しにくい方法で大きな話題を呼ぶためであり、次の記事でその概要を説明します。