ニュース

Google、スマホカメラでリアルタイムに被写体と背景を分離できる技術

~YouTubeアプリに試験実装

 米Googleは3月1日(米国時間)、スマートフォンでリアルタイムの「ビデオセグメンテーション」処理を行なえる技術を発表した。

 「ビデオセグメンテーション」は、動画で被写体などの前景と背景を分離して、それらを2つのレイヤーとして扱えるようにする技術を指し、映画などビデオコンテンツで広く利用されている。

 従来は、フレーム毎に手作業でマスク処理を行なうロトスコープや、緑の背景スクリーンを使ったスタジオ環境での撮影(クロマキー)が要求されてきた。

 スマートフォンでも、複眼カメラを搭載している端末などで、深度情報からビデオセグメンテーションを実現しているものもあるが、今回のGoogleが開発した技術は、機械学習を用いて、単眼でもスマートフォンでリアルタイムなビデオセグメンテーションを実現するもの。

 同社では、一部ユーザーに提供されているベータ版YouTubeアプリで利用可能な「YouTube Stories」で機能としてすでに試験提供しており、より改善を進めて、同社の拡張現実(AR)サービスに統合する計画としている。

機械学習でリアルタイム処理を実現

 Googleでは、畳み込みニューラルネットワーク(CNN)を用いて、セマンティックセグメンテーションを実現している。とくに、3つの要件および制約に注力し、スマートフォンに適したネットワークアーキテクチャとトレーニング手順を設計したという。

 1つ目が軽さで、リアルタイムで推論処理を実行する場合、モデルは毎秒30フレームで結果を提供する必要があり、最新の写真セグメンテーションモデルよりも、少なくとも10~30倍高速に動作する必要があったという。

 2つ目が時間的冗長性を活用し、時間的整合性を示すこと(映像の場合、時系列に沿って並んだフレームは前後のフレームと類似しているため、セグメンテーションの結果も類似していることになる)、3つ目が高品質なセグメンテーションのためには、高品質なメタデータによる注釈が必要とされることとしている。

 トレーニングに使う高品質なデータセットを用意するため、Googleでは幅広いポーズと背景を撮影した数万枚の画像に、毛髪/眼鏡/首/肌/唇といった、前景要素のピクセル単位の位置からなるキャプション付けを行なったという。

データセットのサンプル画像

 合成処理におけるセグメンテーションタスクは、入力されたフレーム(RGBの3チャネル)ごとに、背景から前景を分離するバイナリマスクを計算することと言える。

 このとき、計算されたマスクの時間的整合性をフレーム間で保つことが重要となるが、そのためにLSTM(Long short-term memory)やGRU(Gated recurrent unit)といった手法を用いてしまうと、スマートフォンのリアルタイムアプリケーションとしては計算負荷が高すぎてしまう。

 同社ではそれらに代わって、前フレームで計算されたマスクを、次フレームに第4のチャネルとして連結し、モデルに渡すことで、一時的な整合性を実現しているという。

処理したいフレーム(左)は、RGBの3つチャンネルに分離されたあと、前フレームのマスク(中央)と連結されてからニューラルネットワークへ入力される。このとき、前フレームのマスク結果を参照しているために、マスク結果(右)は前フレームと時間的整合性をもつ

 しかし、ビデオセグメンテーションでは、フレーム間の時間的連続性を保つと同時に、画角外から突然飛び出してくる人など、時間的な不連続性も考慮する必要がある。

 同社によれば、そういった場合でも正しく処理するべく、フレームに入ってきた人物をエミュレートするため、最初のフレームとシーン内の新しいオブジェクトに対して正しく機能するようにトレーニングしたネットワーク、前のフレームマスクにあわせて調整と伝搬するようトレーニングされたマイナー変換、不十分なマスクの理解とその廃棄を行なうよう訓練されたメジャー変換を組み合わせた、アフィン変換によるグラウンドトゥルースなマスク生成の実現、素早いカメラの動きや回転をエミュレートするための、画像の薄板スプライン平滑化の実装を行ない、それらで各写真の注釈付きグラウンドトゥルースを確認し、前フレームのマスクとして使用しているという。

リアルタイムのセグメンテーション処理

 それらの入出力と、いくつかの改善点を追加することによって、標準的な砂時計セグメンテーションネットワークアーキテクチャを構築している。

 改善点の1つは、高速化のためのResNetボトルネックの最適化で、文献などではネットワークの中央チャネルを4倍で絞り込む場合が多い(例: 64個の異なる畳み込みカーネルを使用することによって256チャネルを64チャネルに絞る)が、同社によれば、16倍や32倍と強く絞った場合でも大きな品質低下が起きないという。

ResNetのボトルネック

 また、輪郭検出の精度を改善するため、ニューラルマッティング(論文PDF)と同様に、ネットワーク上にいくつかのDenseNetレイヤーがフル解像度で追加されている。全体のモデル品質には、人間の作業結果とくらべて0.5%のIoU (Intersection over Union、重なりの割合を表す)改善程度しか影響しないが、セグメンテーションの知覚品質は大幅に向上するという。

 同社では、そういった改善によって、実装されたネットワークは、iPhone 7で100FPS以上、Pixel 2で40FPS以上(高精度データセットでIoU 94.8%)の動作を実現したとしている。