Archive for January, 2018

GoogleはAIがAIを生成するクラウドを公開、業務に最適なニューラルネットワークを数分で開発できる!

Friday, January 26th, 2018

GoogleはAIがAIを生成する技術の開発を急いでいる。この技法は「AutoML」と呼ばれ、AIがニューラルネットワークを自動で生成する。アルゴリズムが別のアルゴリズムを生成する技法で、AI基礎研究で重要なテーマと位置づけている。GoogleはAutoMLを使って高度な機械学習アルゴリズムを生成し、社内サービスで利用してきた。今般、Googleはこの技法をクラウドサービス「Cloud AutoML」として一般に公開した (下の写真)。

出典: Google

Cloud AutoMLとは

Cloud AutoMLは機械学習クラウドサービスで、利用者の研究や業務に最適化したニューラルネットワークを生成する。現在は、既存のニューラルネットワークを使ってAIシステムを構築している。これらは”汎用AI”で幅広い機能を持つが、高度な判定能力が要求される特定業務では使えない。このため”専用AI”を開発する必要があるが、これに応えることができるAI研究者の数は限られている。Cloud AutoMLはAI研究者に代わり”専用AI”を瞬時に開発する。

Googleの汎用AIクラウド

AmazonやMicrosoftやGoogleは汎用AIをクラウドで提供している。Googleはこれを「Cloud ML Engine」として提供している。多くの機能が揃っているが、画像認識処理を実行するには「Cloud Vision API」を利用する。これは教育済みの機械学習エンジンで、イメージを入力するとアルゴリズムがオブジェクトの名前を判定する。又は、エンジニアが公開されているニューラルネットワーク (Google Inceptionなど) を使って、機械学習アルゴリズムを開発することもできる。

Cloud Vision APIを使うと

Cloud Vision APIを使うと簡単に写真の分類ができる。イメージを入力するとシステムはその属性を出力する。例えば、空に浮かんだ雲の写真を入力すると、システムは解析結果として「Sky」や「Cloud」と回答する (下の写真)。その他に、写真に写っている顔を把握し、その表情を分類する機能もある。

出典: VentureClef

気象専門家は使えない

しかし、気象専門家がイメージを科学的に解析するには、Cloud Vision APIの判定機能は十分ではない。上述のケースでは、Cloud Vision APIはイメージを「Sky」や「Cloud」と判定するが、雲の種類を特定することができない。雲の種類である「Cumulus humilis (巻積雲)」と判別する機能はない。

雲の種類を判定できる機械学習アルゴリズム

このため雲の種類を判別できる機械学習アルゴリズムを開発することが求められる。この需要に応えてCloud AutoMLが登場した。Cloud AutoMLが雲の種類を判定できる機械学習アルゴリズムを自動で生成する。Cloud AutoMLは、雲の種類の他に、ファッション区分や動物種別の判定など、特殊な判定が求められる機械学習アルゴリズムを自動で生成する機能を持つ。

Cloud AutoML利用プロセス

Cloud AutoMLでアルゴリズムを生成するためには写真データセットを準備する必要がある。これはタグ付き (又はタグ無し) の写真アルバムで、上述のケースでは雲の写真とその種別を紐づけたセットを準備する。この写真データセットをクラウドにアップロードすると、Cloud AutoMLが雲の種類を判別できる機械学習アルゴリズムを自動で生成する。

データ入力と教育

具体的にはCloud AutoMLのインターフェイスに沿ってこれらの操作を実行する。まず、「Label」のページでタグ付きの写真データセットをアップロードする。ここでは種別ごとの雲の写真をアップロードする。(下の写真、「Cumulonimbus (積乱雲)」というタグがついている雲の写真をアップロード)。 AutoMLは自動で機械学習アルゴリズムを生成し、「Train」というページで、アップロードされた写真を使ってアルゴリズムを教育し最適化する。

出典: Google

アルゴリズム評価と運用

次に、「Evaluate」というページで、教育された機械学習アルゴリズムの認識精度を評価する。アルゴリズムの認識率や誤認率を確認する。最後に、「Predict」というページで、完成したアルゴリズムに写真を入力し、雲の種類を判定する処理を実施する。下のケースはその事例で、完成したアルゴリズムは入力された写真を解析し、「Cirrus (巻雲)」と正しく判定している。汎用AIは「Cloud」としか判定できないが、完成した専用AIは雲の種類まで判定できる。

出典: Google

イメージ認識機能

機械学習アルゴリズムは幅広いが、Cloud AutoMLはその中でイメージ認識 (Image Recognition) 機能を提供している。Googleによると、生成したアルゴリズムの認識率は汎用的なニューラルネットワークより精度が高く、誤認識率が低いとしている。また、ニューラルネットワーク開発期間を大幅に短縮できるのも強みである。パイロットモデルであれば数分で、プロダクションモデルであれば1日で開発できる。

応用事例:ファッションを分類する

Cloud AutoMLを業務に応用した事例が公開されている。ファッションブランドUrban Outfittersは商品にタグ付けするプロセスをCloud AutoMLで自動化した。Urban Outfitters は、商品に付加されたタグをキーに、消費者に関連商品を推奨する。また、商品検索や商品フィルタリングでもタグが使われる。Cloud AutoMLは商品イメージを解析し商品の特徴量を抽出する。例えば、洋服を分類する際に胸元に着目すると、Cloud AutoMLは商品を「V-Neck」、「Scoop」、「Crew」などと判定する。アルゴリズムはデザインパターンやネックラインなどをキーにタグを生成する。(下の写真、ウェブサイトを「V-Neck」で検索した結果。)

出典: Urban Outfitters

応用事例:動物の種別を特定

Zoological Society of Londonは国際的な環境保護団体で動物の生態を守る活動を展開している。Zoological Society of Londonは動物の生態を理解するために、生息地にカメラを設置し動物の行動を観察している。写真に写っているイメージから動物の種類をマニュアルで判定してきたが、このプロセスをAutoMLで自動化した。汎用アルゴリズムでは動物の種別を正確に判定できないが、Cloud AutoMLでこの判定ができるアルゴリズムを開発。これにより、運用コストが大きく低下し、この保護活動を大規模に展開する計画である。

ニューラルネットワーク生成は難しい

ニューラルネットワークで画像認識や音声認識の精度が大きく改善されているがネットワーク生成には特別の技量を要する。ニューラルネットワークの生成と教育では、これを支える数学の知識と、ネットワークを生成するためのプログラミング技法が必要になる。これができるAI研究者の数は全世界で数千人程度と言われている。このため、企業や組織が高度なニューラルネットワークを開発することは事実上できなかった。

ロードマップ

Cloud AutoMLの登場でこれが可能となり画期的なAIが開発される切っ掛けとなる。現在は機能が画像認識 (Convolutional Network) に限られているが、今後は音声認識 (Recurrent Neural Network) も登場すると期待される。 業務に特化したAIアルゴリズム開発が今年の重要な研究テーマとなっている。AI開発が容易になるだけでなく、この研究がAIのブラックボックスを解明する手掛かりになると期待されている。

———————————————————–

AutoMLの仕組み

GoogleはAutoMLの技法について論文で公開してきた。AutoMLはReinforcement Learning (強化学習) の手法とTransfer Learning (知識移植) の手法を使ってニューラルネットワークを生成する。前者については「Neural Architecture Search with Reinforcement Learning」で、後者については「Learning Transferable Architectures for Scalable Image Recognition」でその手法を明らかにしている。

Reinforcement Learningの手法

Recurrent Neural Network (時間依存の処理をするネット) が「Controller」となり「Child Network」を生成する。Child Networkが生成するニューラルネットワークで、ここではConvolutional Network (画像認識ネット) を対象とする。ControllerはあるPolicyに従ってChild Networkを生成し、これを教育してイメージ判定精度を得る。イメージ判定精度をRewardとしてPolicyのGradient (勾配) を計算。このプロセスを繰り返し、ControllerはRewardを最大にする方向に進み、精度の高いChild Networkの生成方法を学習する。

Transfer Learningの手法

しかし、Reinforcement Learningの手法は小さな写真 (CIFAR-10) では上手くいくが、大きな写真 (ImageNet) に適用すると、計算時間が極めて長くなる。このためTransfer Learningという手法が用いられた。これは学習したニューラルネットワークを流用する技法である。具体的には、上述のReinforcement Learningの手法で生成したConvolutional Networkの一部を流用し、それを重ね合わせて新しいConvolutional Networkを生成する。これにより、大きな写真も処理することができる。Cloud AutoMLにはこれらの技法が使われている。

AIがAIを開発する研究が急進!ニューラルネットワークを生成するアルゴリズムをスパコンで稼働させる

Sunday, January 21st, 2018

今年のAI研究の重要テーマは高度なニューラルネットワークの開発で、多くの研究者が理想のアーキテクチャーを模索している。米国国立研究所はこのプロセスをAIで実施し、大きな成果を上げた。AIが高精度なニューラルネットワークを生成し、これを物理学の研究に応用する。ニューラルネットワーク生成には大規模な演算が必要となり、スーパーコンピューターがなくては研究が進まない。GoogleもAIがAIを生成する研究を急いでいる。これはAutoMLと呼ばれ、AIが特定処理に最適化されたニューラルネットワークを生成する。今年は官民ともAIアーキテクチャー研究がホットなテーマになる。

出典: Oak Ridge National Laboratory

AIスパコンを運用

オークリッジ国立研究所 (Oak Ridge National Laboratory) は米国エネルギー省配下の機関で、世界最大クラスのスパコン「Titan」を運用している (上の写真)。TitanはCray社が開発したスパコンで、18,688のノードをから構成される並列マシンである。各ノードはCPU (AMD Opteron) とGPU (NVIDIA Kepler) を搭載し、世界最大規模のAIスパコンである。Titanで高度なニューラルネットワーク (Neural Network) が開発され、これを使って物質科学や素粒子物理学の研究が進められている。

商用のニューラルネットワークは使えない

ニューラルネットワークは画像認識や音声認識に最適なアルゴリズムで社会に幅広く浸透している。オークリッジ国立研究所の研究者もこのネットワークを使い科学の謎の解明を目指してきた。しかし、商用のニューラルネットワークを基礎研究に流用しても大きな成果は得られない。この理由は科学研究で扱うデータの特殊性による。また、教育に使えるデータの数が限られていることも大きな要因である。このため、科学研究向けの専用ニューラルネットワークを開発する必要に迫られた。

ハイパーパラメータを最適化する

このため研究者は科学分野向けに最適なニューラルネットワークの開発を進めてきた。特定のデータセットに対して、最適なニューラルネットワークが存在するという前提で、そのアーキテクチャを探求してきた。この研究は「Hyper-Parameter」を最適化するという問題に帰着する。Hyper-Parameterとはニューラルネットワークの基本モデルを指し、各層の種類、それらの順番、ネットワークの段数などで、これらを組み合わせネットワークを最適化する。

研究者が手作業ですすめる

Hyper-Parameterの最適化は、研究者が既存のDeep Learningソフトウェア (Caffe、Torch、Theanoなど) を使い、手作業で実施される。具体的には、標準ソフトウェアを改造し、各層の種類や順番、ネットワーク段数など、ネットワークのトポロジーを決める。次に、生成したニューラルネットワークを教育し、その性能を検証する。このプロセスを何回も繰り返し最適なニューラルネットワークの形を得る。ネットワークの形態を決める常套手段は無く、研究者が経験と勘を頼りに作業を進める。このため、新しいニューラルネットワークを生成するには数か月かかるとされる。

AIがAIを開発する

オークリッジ国立研究所はこのプロセスをAIで構築し、これをスパコンで実行することで大きな成果を上げた。研究者が手作業でネットワークを生成するのではなく、特定の研究に最適化されたニューラルネットワークをAIが生成する。AIが研究の目的に合ったAIを開発する。これにより、ニューラルネットワークを数時間で生成することに成功し、ニュートリノ (Neutrino) 研究に大きく貢献している。

出典: Oak Ridge National Laboratory

生物が進化する方式を模したアルゴリズム

ニューラルネットワークを生成するAIはMENNDL (Multinode Evolutionary Neural Networks for Deep Learning) と呼ばれている。MENNDLは、最初に、特定データセット (例えばニュートリノ実験データ) の処理に特化したニューラルネットワークを生成する。次に、MENNDLは生成したニューラルネットワークを教育し、その性能を評価する。これに基づき、MENNDLはネットワーク構造を進化させ (上の写真) 性能を向上させる。このプロセスを繰り返し実行し、高度なニューラルネットワークを生成する。この手法は生物のDNAが配合や変異を繰り返し進化する方式を模しており「Evolutionary Algorithm」と呼ばれる。

システム構成

MENDDLはTitanのノードを使って実行される。Master Nodeで進化のプロセスを実行し、生成されたネットワークはWorker Nodeで実行される (下の写真)。Worker Nodeは生成されたネットワークを教育し、その性能を査定する。ネットワークとしてはCaffeを使用し、Worker Nodeで大規模並列に実行する。Master NodeとWorker Node間の通信はMessage Passing Interfaceというプロトコールが使われる。

出典: Oak Ridge National Laboratory

ミトコンドリアを探す

MENDDLで生成されたニューラルネットワークは医療分野で使われている。St. Jude Children’s Research Hospitalは3D電子顕微鏡 (3D Electron Microscope) で撮影したイメージからミトコンドリア (Mitochondria) を特定するニューラルネットワークを生成した。ミトコンドリアは目立つものの、存在場所が様々で、形や大きさが異なり人間が特定するのは難しい。このためMENDDLを使いミトコンドリアを特定するための専用ニューラルネットワークを生成した。

ニュートリノの相互作用を特定

米国フェルミ研究所 (Fermi National Accelerator Laboratory) はMENDDLを使いニュートリノ検知のための専用ニューラルネットワークを生成した。ニュートリノは素粒子の中でフェルミ粒子 (Fermion) に属し、質量は極めて小さく、他の粒子との相互作用が殆どなく、透過性が高く、その検知は非常に難しい。ニュートリノ研究は初期宇宙の解明や物質の仕組みの解明につながるとされ、各国で研究が進んでいる。(日本のスーパーカミオカンデは宇宙から飛来するニュートリノを観測する施設として世界的に有名。)

出典: Fermi National Accelerator Laboratory

ニュートリノ観測専用ニューラルネットワーク

米国でフェルミ研究所が観測装置 (上の写真) を開発し、ニュートリノを大量に生成し、その相互作用を探求している。ニューラルネットワークはニュートリノ検知に特化した構造となっている。ネットワークは観測した写真を解析し、ニュートリノが装置の中のどこで相互作用を起こしたかを正確に特定する。写真には他の粒子によりる相互作用が数多く記録されるため、汎用的なニューラルネットワークではニュートリノを選び出すことが難しい。これにより稀にしか起こらないニュートリノの相互作用を高精度で特定できることとなった。

AIスパコンが研究を支える

MENDDLは50万種類のニューラルネットワークを生成し、それらを教育し性能を評価した。教育データとしてニュートリノ相互作用を記録したイメージ80万枚が使われた。この中から最も判定精度の高いニューラルネットワークが選ばれ実験で使われている。これら一連のプロセスがTitanの18,688個のノードで高並列に実行された。AIスパコンの導入によりこの研究が可能となった。

Googleでも研究が進む

GoogleもAIがAIを生成する技術の開発を急いでいる。これは「AutoML」と呼ばれ、ニューラルネットワークを自動生成する技法である。アルゴリズムが別のアルゴリズムを生成する技法で、AI基礎研究で重要なテーマと位置づけている。GoogleはAutoMLを使って高度なMachine Learningアルゴリズムを生成し社内のサービスで利用してきた。今般、Googleはこのアルゴリズムを公開し「Cloud AutoML」として一般に提供を始めた。Cloud AutoMLは利用者の研究や業務に最適化されたアルゴリズムを生成する。アプリケーションに最適なAIアルゴリズム開発が今年の重要な研究テーマとなる。ひいては、この研究がAIのブラックボックスを解明することにもつながると期待されている。

Googleは画像認識を誤作動させるステッカーを発表、AIを悪用した攻撃への備えが求められる

Friday, January 12th, 2018

社会の安全を担保するためにAIが活躍している。市街地や空港の監視カメラの映像をAIが解析しテロリストや犯罪者を特定する。一方、今年はAIを悪用した攻撃が広まると予想される。守る側だけでなく攻める側もAIを使い、社会生活が脅かされるリスクが高まると懸念される。

出典: Google

Googleの研究成果

Googleの研究グループはAIを誤作動させるステッカー(上の写真) を論文の中で公開した。このステッカーは「Adversarial Patch (攻撃ステッカー)」と呼ばれ、これを貼っておくと画像認識アルゴリズムが正しく機能しなくなる。ステッカーは円形で抽象画のようなデザインが施されている。これをバナナの隣に置くと、画像認識アプリはバナナをトースターと誤認識する。ステッカーを街中に貼っておくと、自動運転車が正しく走行できなくなる。

ステッカーを使ってみると

実際にステッカーを使ってみると画像認識アプリが誤作動を起こした。先頭のステッカーを印刷して、円形に切りぬき、バナナの隣に置いて画像認識アプリを起動した。そうすると画像認識アプリはバナナを「トースター」と誤認識した (下の写真、右側)。アプリにはこの他に「ライター」や「薬瓶」などの候補を示すが、バナナの名前はどこにも出てこない。バナナだけを撮影すると、画像認識アプリは「バナナ」と正しく認識する (下の写真、左側)。ステッカーは抽象画のようで、人間の眼では特定のオブジェクトが描かれているとは認識できない。

出典: VentureClef

画像認識アプリ

画像認識アプリとしてiPhone向けの「Demitasse – Image Recognition Cam」を利用した。これはDenso IT Laboratoryが開発したもので、画像認識アルゴリズムとして「VGG」を採用している。このケースではその中の「VGG-CNN」で試験した。VGGとはオックスフォード大学のVisual Geometry Groupが開発したソフトウェアで、写真に写っているオブジェクトを把握し、それが何かを判定する機能がある。VGG-CNNの他に、ネットワーク階層が深い「VGG-16」などがあり、画像認識標準アルゴリズムとして使われている。

ステッカーの危険性

画像認識機能を構成するニューラルネットワークは簡単に騙されることが問題となっている。多くの論文で画像認識アルゴリズムを騙す手法やネットワークの脆弱性が議論されている。Googleが公開した論文もその一つであるが、今までと大きく異なるのは、この手法を悪用すると社会生活に被害が及ぶ可能性があることだ。先頭のステッカーを印刷して貼るだけでAIが誤作動する。

自動運転車の運行に影響

その一つが自動運転車の運行を妨害する危険性である。自動運転車はカメラで捉えたイメージを画像認識アルゴリズムが解析し、車両周囲のオブジェクトを把握する。もし、道路標識にこのステッカーが貼られると、自動運転車はこれをトースターと誤認識する可能性がある。つまり、自動運転車は道路標識を認識できなくなる。Tesla Autopilotは道路標識を読み取り制限速度を把握する。このステッカーが貼られるとAutopilotの機能に支障が出る。当然であるが、道路標識にステッカーを貼ることは犯罪行為で処罰の対象となる。

Street Viewで番地が読めなくなる

自宅にこのステッカーを貼っておくとGoogle Street Viewによる道路地図作成で問題が発生する。Street Viewは位置情報をピンポイントに把握するため、建物に印字されている通りの番号をカメラで撮影し、画像解析を通し番地を把握する。番地プレートの隣にステッカーを貼っておくと、画像解析アルゴリズムはこれをトースターと誤認識する。ステッカーをお守り代わりに使い、自宅に貼っておくことでプライバシーを守ることができる。

ステッカーの作り方

Google研究チームは論文でステッカー「Adversarial Patch」の作り方を公開している。ステッカーは複数の画像認識アルゴリズムを誤作動させるようにデザインされる。ステッカーの効力は、デザインだけでなく、オブジェクトの中での位置、ステッカーの向き、ステッカーの大きさなどに依存する。(ステッカーの向きを変えると認識率が変わる。先頭の写真の方向が最大の効果を生む。ステッカーのサイズを大きくすると効果が増す。最小の大きさで最大の効果を生むポイントがカギとなる。オブジェクト全体の10%位の大きさで90%の効果を発揮する。)

ステッカーを生成するアルゴリズム

ステッカーは特別なアルゴリズム (Expectation Over Transformationと呼ばれる) で生成される。上述の条件を勘案して、ステッカーの効果が最大になるよう、ステッカー生成アルゴリズムを教育する。効果を検証するために代表的な画像認識アルゴリズム (Inceptionv3, Resnet50, Xception, VGG16, VGG19) が使われた。先頭のステッカーは「Whitebox – Ensemble」という方式で生成され、これら五つの画像認識アルゴリズムを誤作動させる構造となっている。この事例では「トースター」を対照としたが、任意のオブジェクトでステッカーを作成できる。

出典: Google

画像認識アルゴリズムの改良が求められる

社会でAIを悪用した攻撃が始まるが、これを防御するには画像認識アルゴリズムの精度を改良することに尽きる。既に、画像認識クラウドサービスは高度なアルゴリズムを取り入れ、先頭のステッカーで騙されることはない。事実、Googleの画像認識クラウド「Cloud Vision」でステッカーを貼った写真を入力しても誤認識することはない (上の写真)。犬の写真に先頭のステッカーを貼っているが、アルゴリズムは「犬」と正しく判定する。回答候補にトースターの名前は出てこない。

エッジ側での処理

自動運転車だけでなく、ドローンやロボットも生活の中に入り、ステッカーを使った攻撃の対象となる。更に、農場ではトラクターが自動走行し、工事現場ではブルドーザーが無人で作業をする。これらは、画像認識アルゴリズムはクラウドではなく、車両やデバイス側で稼働している。これらエッジ側には大規模な計算環境を搭載できないため、限られたコンピュータ資源で稼働する画像認識アルゴリズムが必要となる。リアルタイムで高精度な判定ができる画像認識アルゴリズムと、これを支える高度なAI専用プロセッサの開発が必要となる。

AIを使った攻撃と防御

GoogleがAdversarial Patchに関する論文を公開した理由はAIを使った攻撃の危険性を警告する意味もある。AIを悪用した攻撃が現実の問題となり、我々はその危険性を把握し、対策を講じることが求められる。具体的には、画像認識アルゴリズムの精度を改良していくことが喫緊の課題となる。ただ、Adversarial Patchの技術も向上するので、それに応じた改良が求められる。スパムとスパムフィルターの戦いで経験しているように、いたちごっこでレースが続くことになる。これからは守る側だけでなく攻める側もAIを使うので、セキュリティ対策に高度な技能が求められる。

グーグルスマホ「Pixel 2」でAIチップが稼働、ARでスターウォーズをリアルに生成でき現実と仮想の境界が消滅

Tuesday, January 2nd, 2018

映画「スターウォーズ」がGoogleスマホ「Pixel 2」にやってきた。極めて精巧なキャラクターをビデオの中に取り込むことができる (下の写真)。街の中を銀河帝国軍の機動歩兵が歩き、上空をXウイング戦闘機が飛び交うビデオを撮影できる。今までのARとは比べ物にならない精度で、リアルなキャラクターがスマホで生成される。これを可能にしたのがスマホ向けAIプロセッサで、大規模な計算を瞬時にこなす。このプロセッサはAIエンジンとしても使われ、スマホはAIマシンであることが鮮明になった。

出典: Google

拡張現実アプリ

Googleは2017年12月、拡張現実アプリ「AR Stickers」を投入した。このアプリを使うと、ビデオや写真にオブジェクトやテキストをAR (Augmented Reality、拡張現実) として組み込むことができる。多くのスマホでARアプリを使えるが、AR Stickersの特長は高精度でARを実装していることだ。もはや現実と仮想の区別ができない。

銀河帝国軍の機動歩兵が動き出す

AR Stickersは様々なセットを提供しているが、一番人気は映画スターウォーズ最新作「Star Wars: The Last Jedi」のキャラクターである。このセットを選ぶと、映画に登場するキャラクターをビデオの中に取り込める。例えば、銀河帝国軍の機動歩兵「Stormtrooper」を選ぶと、ビデオの中に配置できる。撮影を始めるとビデオの中でStormtrooperが動き喋り出す(下の写真)。一人だけでなく複数のStormtrooperを配置でき、それぞれが独自に動く。これらの機動歩兵は極めてリアルに描写され、動きは滑らかで、現実のキャラクターと見分けがつかない。

出典: VentureClef

反乱同盟軍の戦闘機

反乱同盟軍の戦闘機「X-wing Fighter」を選ぶと、可変翼をX状に広げ空中をホバリングする。戦闘機は背景の明るさに調和し、地上にはその影を落とす。戦闘機を前から撮影するだけでなく、周囲をぐるっと一周して360度のアングルから撮影できる。戦闘機は背景に溶け込み、仮想イメージであるとは思えない。

出典: VentureClef

可愛いロボットBB-8

異なるキャラクターを組み合わせて使うこともできる。雪だるまのようなかわいいロボット「BB-8」を選ぶと、画面の中をころころと動き回る。ここにStormtrooperを加えると、二つのキャラクターがそれぞれ独自の動きをする。時に、二つのキャラクターが鉢合わせして、コミュニケーションが始まる (下の写真)。StormtrooperがBB-8に「向こうに行け」と指示しているようにも見える。

出典: VentureClef

宇宙戦闘機は極めてリアル

「TIE Fighter」を選ぶと、二つのイオンエンジン (Twin Ion Engines) で飛行する宇宙戦闘機が登場する。宇宙戦闘機はイオンエンジン特有の音を出して飛行し、時々レーザーキャノンで攻撃する。TIE Fighterに近寄ってアップで撮影すると、細部まで克明に描写されていることが分かる。機体についた傷や角の摩耗などが極めてリアルに描かれている (下の写真)。モックアップで撮影したとしか思えず、これが仮想のオブジェクトであるとは驚きだ。

出典: VentureClef

開発環境「ARCore」

これらはARアプリ開発プラットフォーム「ARCore」で開発された。GoogleはARCoreを公開しており、パートナー企業もこの環境でARアプリを作ることができる。ARCoreがサポートしているデバイスはGoogle Pixel、Google Pixel 2、及びSamsung Galaxy S8である。AR基礎技術はGoogleの特別プロジェクト「Tango」で開発された。今般、ARCoreが公開されたことで、Tangoはここに集約されることになる。

ARの仕組み

ARとは仮想コンテンツ (スターウォーズのキャラクターなど) を現実社会 (ビデオや写真) に組み込む技術を指し、ARCoreは三つのモジュールから構成される。「Motion Tracking」はARコンテンツの現実社会における位置を把握し、スマホでコンテンツをトラックする技術 (キャラクターの位置決め技術)。「Environmental Understanding」は現実社会でフラットな箇所を検知し、その場所と大きさを把握する技術 (平らな場所を検知する技術)。「Light Estimate」は現実社会における光の状態を把握する技術 (明るさを把握する技術)。

Motion Tracking

カメラが動くにつれ、ARCoreはConcurrent Odometry and Mapping (COM) というプロセスを実行し、カメラの位置関係を把握する。イメージの中の特徴的なポイント (Feature Point、下の写真で○印の個所) を把握し、それらがどのように変化するかをトラックし、空間の中でカメラの位置を把握する。ARCoreはこの動きとスマホの加速度計のデータを組み合わせ、カメラの位置とカメラの向き 「Pose」を把握する。GPSなどの位置情報が無くてもARCoreはピンポイントで位置を把握できる。

出典: Google

Environmental Understanding

ARCoreは現実社会の中で平らな場所を検知する (下の写真でドットで示されたマトリックスの部分)。平らな場所とはFeature Pointが共通した水平面を持っているところで、これを「Planes」と呼ぶ。テーブルや床などの平らな部分がPlanesとなる。また、ARCoreはPlanesの境界を把握する。これらの情報がアプリに渡され、キャラクターが立つことのできる場所とその範囲を把握する。

出典: Google

Light Estimate

ARCoreは現実社会の光の状態を把握する。具体的には、カメラで捉えたオブジェクトの平均的な光の強さを把握する。この情報をアプリに渡し、生成するオブジェクトをこれと同じ明るさにする (下の写真、明るい場所の猫は明るく描かれる)。これにより、生成したオブジェクトがリアルさを増し、背景のイメージに溶け込めるようになる。

出典: Google

Anchors and Trackables

現実社会が理解できると、ARCoreはオブジェクトを生成しその中に置くこととなる。オブジェクトは現実社会に馴染み、自然な形で配置される。ARCoreは周囲の状況を把握しており、利用者はPosesを変えることができる。つまり、カメラを動かしオブジェクトの周囲を周回し、異なる方向から撮影できる。X-wingを周回し背後からも撮影できる (下の写真)。オブジェクトの周りを移動してもX-wingはホバリングを続け、アンカーで固定されているようにその場所に留まる。

出典: VentureClef

AI専用プロセッサ

高度なAR処理をPixel 2で実行できるのはAI専用プロセッサによる。Pixel 2は画像処理と機械学習のための専用プロセッサ「Pixel Visual Core」を搭載している。ARCoreはPixel Visual Coreで処理され、毎秒60フレームを生成し高精度な画像を創り出す。その結果、細部まで詳細に描かれたキャラクターが、画像処理の遅延時間はなくビデオの中を滑らかに動き、本物と見分けがつかなくなる。

ARアプリに先立ち、Pixel Visual Coreは写真撮影やAIで使われている。Pixel 2のカメラアプリは「HDR+」という機能を持ち、ダイナミックレンジの広い写真を撮影する。画像処理では大量の演算が発生するが、これらをPixel Visual Coreで高速実行する。

(下の写真、教会の中で薄暗い祭壇をHDR+で撮影すると、照明が当たっているように鮮明に描き出される。今まではHDR+処理に時間がかかり多くの電力を消費したが、Pixel Visual Coreでこの処理を瞬時に実行する。)

出典: VentureClef

画像処理と機械学習実行

Pixel Visual CoreはGoogleが設計したプロセッサでPixel 2のアクセラレータとして位置づけられる。Pixel 2のメインプロセッサはSnapdragon 835で、画像処理と機械学習実行がPixel Visual Coreにオフロードされる。開発環境としては、画像処理で「Halide」が、機械学習では「TensorFlow Lite」をサポートする。Pixel Visual CoreはAndroid 8.1 Oreoから使うことができる。つまり、Pixel 2にはPixel Visual Coreが搭載されているが、Android 8.1が公開された今月からこのプロセッサを使えるようになった。これに併せて、AR Stickersでスターウォーズのセットが提供された。

Neural Networks API

GoogleはAndroid 8.1で機械学習向けAPI「Neural Networks API」を公開した。エンジニアはこのAPIを使い機械学習機能をアプリに組み込むことができる (下のダイアグラム、Androidスマホやデバイス向けAI開発環境)。Neural Networks APIはPixel Visual Coreの他にGPUなどのプロセッサにも対応している。TensorFlow Liteは軽量のAI開発環境で、教育済みのAIアプリをスマホで実行 (Inference処理) するために使われる。パートナー企業もAndroid向けにAIアプリ開発ができ、スマホ上でリアルタイムに稼働するAIの登場が期待される。

出典: Google

少し危険な香りのするアプリ

GoogleはスターウォーズをモチーフにしたAR Stickersをテレビ放送でPRしており、全米で話題となっている。AR Stickersのインパクトは大きく、これ程リアルな仮想オブジェクトをスマホで生成できるとは驚きである。今まではプロの世界に限られていた特撮をPixel 2でできるようになった。ワクワクするアプリであるとともに、現実と虚構の世界の垣根がなくなり、少し危険な香りのするアプリでもある。