Archive for January, 2018

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でできるようになった。ワクワクするアプリであるとともに、現実と虚構の世界の垣根がなくなり、少し危険な香りのするアプリでもある。