Mate 10 Proはポルシェを自動運転できる性能をもつって本当!?
「自分がもう1人いれば……」は定番の空想小説や漫画のテーマですが、そこまでいかなくても「人工知能のアシスタントがいれば……」は、もはや「現実味の出てきた妄想」といえるかもしれません。そんなことを考えていたときに「人工知能」というテーマをいただきました。
「人工知能」(AI:Artificial Intelligence)というテーマは、この連載の2018年1回目の第47回「2018年のモバイルテックを勝手に予測!」で取り上げています。
この回でHUAWEIのスマートフォン「Mate 10 Pro」に採用されている新SoC(System on a Chip:広義としてはメインプロセッサの意)の「Kirin 970」を紹介しました。
Kirin 970には、Neural Processing Unit(NPU)と呼ばれる、AI処理支援ロジックが搭載されていることがアナウンスされています。
今回の原稿執筆にあたっては、編集部が、その「Mate 10 Pro」の評価機を借りてくれたので、しばらくの間、触れることができました。
実際に、実機に触れてみたのですが、現状は、「標準カメラアプリでのシーン自動認識」にNPUを活用しているのみのようです。
実際にさまざまなシーンを撮影してみたのですが、被写体をほぼ瞬時に識別し、的確な撮影設定をしたうえで撮影、さらに撮影後には自動で対象物に最適化した画像処理を行うようになっているようです。
筆者の実験では人物、料理、植物、テキスト……などを自動認識していました。
まあ、今はコンパクトタイプのデジカメにもシーン認識は搭載されているので「AIがすごい」という実感を得るには、このMate 10 Proのカメラ機能だけでは不十分という感じはします。
ただ、これからこのNPUの活用アプリがいろいろと出てきたりするのであれば面白くなりそうです。
個人的には、かなりデザインに凝った名刺までを自動的に認識してデータベース化できる名刺整理アプリみたいなのがあれば使ってみたいですね。
HUAWEI自身は、このKirin970のNPUに関してはいろいろと先進技術の開発実験を行っているようで、下の「世界初のスマートフォンを使った自動運転実験」という動画が面白いです。
https://www.youtube.com/watch?v=JBGRRx-aSpU
これは「Mate 10 Proを使った、ポルシェ・パナメーラの自動運転デモ」と紹介されていますが、実際には、「Mate 10 Proのカメラ機能とNPUを使って、障害物認識を行いステアリングを切る操作を行う」だけのものです。
「Mate 10 Proを搭載した自動車が一般公道を走り回る」ものではないので、NVIDIAやGoogleなどの自動運転技術開発と比べればごく基礎的な実験ですが、「身近な小さなガジェットで、物理的に大きなモノを動かす」というデモとしてはインパクトが大きいので、宣伝効果的には面白いと思います。
スマホに搭載されるAIチップってどんなもの?
さて、こうしたスマホのSoCにも搭載され始めたAI支援プロセッサとはどのようなものなのでしょうか。
機械学習(Machine Learning)とか深層学習(Deep Learning)と呼ばれるような技術が台頭してきていることは多くの人が知るところだと思います。
こうした技術を使ったインテリジェンスな処理は「機械学習型のAI」などと呼ばれたりします。
Mate 10 ProのSoCに統合されたNPUは、まさにそうしたAIの処理を支援するロジックなのですが、どういったプロセッサなのかを解説したいと思います。
これは、冒頭で紹介した第47回でも触れているのですが、機械学習でとにかく多用されるのが行列の計算です。
たとえば「人の笑った顔」(笑顔)を認識させる場合には、様々な人物の笑顔を入力して、その「笑顔の特徴」を抽出するにあたっては、この行列計算を大量に行います。
学習処理では、たとえば学習対象が「人間の顔」の「笑顔」であれば、入力された「人間の顔」の写真画像から輪郭を認識しますし、その輪郭パーツの組み合わせから目・鼻・口などの顔パーツを認識させます。
さらに、目・鼻・口などの位置関係を認識して、人間か、人間じゃないかの判断をしますし、顔が正面なのか、横向きなのか、天地逆転してないか、といった認識も行います。
笑顔の場合は目や口の形状に特徴がでるので、何万枚もの大量の顔写真画像から「笑顔」の特徴を抽出することになります。
上の図は、前出の記事でも使ったものですが、こうした一連の機械学習の処理系では、この行列計算を大量に実践するのです。
さて、ここまでは「学習のとき」の話です。
一度、「抽出した特徴」を学習データとして集積できれば、その学習データへの照合というのは、学習プロセスよりは演算負荷はだいぶ軽量なものになります。
機械学習型AIにおいて、集積された学習データへの問い合わせは「推論」(Inference)処理と呼ばれます。
この際にも、演算の大部分が、上で紹介したような行列計算が利用されます。ただ、その際の演算規模や演算精度については、学習時ほどの負荷は必要ありません。
たとえば、前出の「笑顔認識」の話でいうと、推論処理の場合は、学習処理時とは違って、何万枚の顔画像を認識して処理する必要はありませんし、むしろ処理対象は「笑顔か否か」を判断するために入力される1枚の画像だけです。
この1枚の画像に対して、輪郭パーツ抽出、目・鼻・口パーツ認識などの処理を行うだけですから、単純に考えただけでも演算量が少ないのは想像ができるでしょう。
入力画像が「笑顔か否か」の照合も、学習結果として「余分なものは整理された笑顔の特徴」という学習データに対する参照になるので、学習処理と比べれば演算負荷は軽量です。
なので、Mate 10 ProのSoCに統合されたNPUは、どの程度の規模かというと、現在のPCやゲーム機のGPUと比べれば、圧倒的に規模の小さい半導体となっています。
逆に言えば、そのくらいの半導体規模で機械学習型AIの推論処理を加速できるので、今後、様々なスマホ向けSoCには同様の「AIチップ」が組み込まれていくと思います。
AIチップは次世代エッジコンピューティングに不可欠なものになる?
さらにいえば、この推論処理のアクセラレーション用途のAIチップは、搭載範囲がスマホよりさらに小さな情報端末(いわゆるIoT機器)に広がっていくことが予想されます。具体例を挙げれば、活動量計、スマートウォッチ、小型アクションカメラ、小型ドローン(クワッドコプタ)などですかね。
こうした「ユーザーが使う様々な情報機器側に高度な演算能力を付帯させるITソリューション」は、「エッジコンピューティング」と言います。「エッジ(Edge)」とは「端っこ」の意味があります。
エッジコンピューティングとは、コンピュータネットワークの端っこ、すなわち、そのコンピュータネットワークを利用するユーザーの近くのことを指しています。
そこで演算処理を行うのがエッジコンピューティング……というわけです。
もともとこのキーワードは、演算処理を中央に集中させたサーバー/クライアントシステムにおいて、中央サーバーに演算が集中することを軽減させるために、ユーザー側(エッジサイド)にも支援サーバーを配置するような意味で産まれたものでした。
しかし最近ではIoTの台頭で、ネットワーク末端(事実上の端末側)に高度な演算処理を行う仕組みを設けることをもエッジコンピューティングというようになってきています。
たとえば、入力された「顔画像」から「人物特定」のAI処理において、巨大な顔面学習データと指名の対応データベース全体はサーバー側(クラウド側)にあるにしても、スマホやドローンに搭載されたカメラで人物を捉えた時に、情景映像から「人の顔」だけを抽出して、さらにそこからその目・鼻・口の形状的特徴データの抽出は、そうしたスマホやドローン側でやってしまう……というのが、最新のエッジコンピューティングモデルというわけです。
こうした処理系に、今回取り上げたAIチップのようなものがあれば、処理速度や処理効率は加速することになるわけです。
ちなみに、「Hey! Siri」「OK Google」に代表される、スマホやスマートスピーカーに搭載されている自然言語インターフェースベースのAIエージェントサービスですが、最新の実装スタイルでは「入力された音声波形から文章としての文字列変換まで」は基本的にスマートフォン側で処理を実践しています。
ネットワークを通じての問い合わせは、この変換された文字列だけとし、データ量として大きい音声波形をサーバー側に飛ばす事はしていません。これも最新エッジ・コンピューティングの一種ということができます。
スマホで撮影した動画をAIが自動編集できたら便利そう
冒頭で「Mate 10 ProのAIチップの活用は現状はカメラのシーン自動認識くらいのようだ」と述べましたが、実際問題、今後、どんな応用が考えられるのでしょうか。
現在、実用レベルの機械学習型AIの応用形態というのは、「学習によって抽出された特徴データ」を活用して「人間の手動処理では面倒なことを自動的に処理する」というものになろうかと思います。
3月にサンノゼで行われたGPU TECHNOLOGY CONFERENCEでは、「ああ、これはスマホのAIチップでも実現できそう」と思った展示があったので最後に紹介しておこうと思います。
それは、機械学習型AIを使った自動動画編集です。
アメリカのReelyは、社名と同じ「Reely」という、無数のスポーツ中継の映像からハイライトシーンを自動抽出する技術を発表していました。
毎日、無数のスポーツの試合が行われていて、これらの多くがカメラで撮影されて放送されているわけですが、その試合終了後、放送されるスポーツニュースではスコアが大きく動いたり、あるいは注目の有名選手が活躍したりしたハイライトシーンを抜粋して放送されます。
そうした映像の抜粋(切り出し)作業は、今はプロの編集者が担当して編集しているわけですが、これをAIに自動でやらせてしまおうというのが、このReelyなのです。
気になるのは「なにをもってハイライトと認識するか」なのですが、簡単に言うと、ザックリとした「編集ポイントになりうるシーン」のようなものを、機械学習させておき、その条件に当てはまるシーンを自動で抜粋する……というアルゴリズムになっているようです。
「スポーツにおけるハイライト」の定義として最も単純なのは、スポーツ映像の外周に描かれていることが多い「スコア表示」の数字の変動です。
この数字が更新されたときには、その試合でスコアが動いたわけですから、サッカーならばゴールシーンがあったわけで、AIはその前後のシーンを編集点の候補に選択するというわけです。
これ以外にもシンプルな手法としては、人気選手の顔です。
登録されたその選手がアップになった前後を編集点として切り出すわけです。人気選手のアップは、ライブ放送時、何らかの活躍をしたあとが多いですからね。
より高度で複雑な「いかにもAIっぽい判断が決め手」となる編集ポイントとしては「群集が大騒ぎしている映像の前後シーン」「何度もリプレイで流しているシーン」などが挙げられていました。
最新版では映像だけでなくサウンドについても配慮するようにしているそうで、サウンドがぶつ切りにならないポイントでカットしたり、あるいは「ワーっ」という歓声が上がった前後のシーンで切り出すといったことにも対応しているのだとか。
ちなみに、このReely、すでにアメリカの放送局で導入事例があるそうで、いずれ、AIが切り出した国際スポーツ中継を見ることがあるかもしれません。
最近は、スマホに256GBクラスのmicroSDカードを入れることもできますし、今回取り上げたMate 10 Proもそうでしたが、その撮影画質の品質もよくなっていますから、スマホで動画を撮ることは日常化しています。
しかし、撮影した動画の編集をスマホ上でやるのは難度が高いですから、こうした編集を自動で実践してもらいたいというニーズはけっこうあるように思えます。
スポーツ映像と違って、「各ユーザーが各自に撮影した多様な動画」において「なにをもってハイライトとするか」については定義が難しそうですが、たとえば、人物の顔が自撮り風になっていたりする場面とか、大勢の人が笑顔になっているとか、美しい情景の場面とかはハイライトといえそうです。
それこそ、有名なビデオブロガーとかYouTuberの動画から「ハイライトシーンとはこういうものだ」というものを学習させても面白そうですね。
ちなみに、実際にこのテーマに取り組み始めた企業や製品も存在します。
それが自動編集機能を備えた社名と同名のアクションカメラ「Graava」です。
Graavaの自動編集機能はそれほど高度なAIが使われているわけではなさそうですが、こうした技術に将来性を感じている企業はすでに出てきているということですね。
スマホに搭載されるAI支援チップの活用アイディアは、まだまだ未開拓な領域なので、今後の展開が楽しみですし、実際、今年以降、さまざまなアプリがでてくるような予感がしています。