NEWS

深層学習による360度コンテンツの高品質化を行いました。

2018年1月

ヘッドマウントディスプレイや360度映像などバーチャルリアリティ(VR)に対する民間需要が高まっている。VRで利用されることが多い360度映像ではカメラ性能に由来する低画質の問題や、特殊撮影(ウェアラブルやドローン)による映像酔いの問題がある。本研究では、深層学習(ディープラーニング)を用いて、低品質なVRコンテンツを改善するための手法構築を目指す。学習においては、360度映像でデファクトスタンダードになっているエクイレクタンギュラーの形式の静止画や動画を学習データとして使用し、動画の高解像度化、スタビライゼーションによる安定化を実現、映像酔いのないVRコンテンツ生成を目標とする。長期的には当社が運営するパノラマ動画共有サイトPanoPlaza Movieへの機能統合を検討し、VRプラットフォームとしての差別化要素にしていきたい。

課題・設計・仕様

システム全体像

本システムはターミナルからコマンド入力により、指定された動画像映像の高解像度化と安定化処理を行うものである。処理システムは動画像を読み込み、フレーム順に安定化処理および高解像度処理を施して、動画像ファイルとしてストレージに出力する。

1、高解像度化処理

問題と解決方針

深層学習による超解像技術は近年注目を集めており、従来の超解像手法よりも高い性能が出ることが実験などにより明らかになってきている。しかし、現状では通常の画像に対して適用されたのみであり、360度動画などに用いられるエクイレクタンギュラー形式への適用はなされていない。

深層学習を用いた超解像アルゴリズムはすでに複数提案されているが、そのうち特にVDSR[1]という手法を参考にし、畳み込みニューラルネットワークによるアルゴリズムを採用する。

ニューラルネットワークモデル

ニューラルネットワークモデルとして採用する図に畳み込みニューラルネットワークのモデル図を以下に示す。

入力と出力は共にRGBエクイレクタンギュラー形式の360度画像である。中間層は10個のユニットから構成され、中間層からの出力とモデルの入力とを加算したものを最終出力としている。各ユニットはサイズ3x3のフィルタ64チャンネル(最終層のみ3チャンネル)からなる畳み込み層と、非線形要素としてReLUを活性化関数に持つものである(最終層の活性化関数のみ線形)。入力から出力までの特徴量マップのサイズは入力画像と同じであり、あらゆるサイズの画像に対して適用できる構造となっている。

モデルの学習

学習用画像セットとして複数の360度画像を用意し、それらを教師画像とする。学習時の入力画像として、教師画像をそれぞれ1/2、1/3、1/4にリサイズしたのち、Bicubic法で元のサイズに拡大した低解像度の画像を用いる。これにより高解像度画像(教師画像)と低解像度画像のペアができる。これらのペア画像からそれぞれ41×41サイズのパッチ画像を切り出し、パッチを数万枚用意する。モデル内で扱う画像の輝度値は0〜1の浮動小数点数となるように入力画像および教師画像の値を調整する。

モデルの学習時には、64パッチ画像をひとつにまとめたミニバッチごとに、確率的勾配降下法を用いて各フィルタのパラメータを更新する。損失関数には平均自乗誤差を用いる。最適化アルゴリズムにはAdamを用い、80エポック程度の学習を行う。学習時間の短縮化のため、学習(最適化)はGPU(Nvidia Titan X)を用いて計算を高速化させて行う。学習フレームワークにはKerasを用い、バックエンドにはTheanoを利用する。

モデルの利用

モデルの学習が完了した後、学習後のパラメータを用いて超解像処理を行う。入力画像は一般的に0〜255の整数値で表現されるが、学習時と同様に0〜1の浮動小数点数に正規化する。出力画像についても同様に0〜1の範囲で出力されるため、0-255に戻す場合はスケールを正規化して整数に離散化を行う。学習時と同様にフレームワークにはKerasを用い、計算にGPUを用いて高速化を図る。動画像の超解像を行う場合は、1フレームごとに超解像を行うが、モデルのパラメータは最初にロードした状態のまま使いまわせるため、2フレーム以降は特に超解像を高速で行える。

2、スタビライゼーション

問題と解決方針

360度動画を撮影する際にドローンなどを用いると映像に激しいぶれが生じる。さらに、ぶれの方向や量が画面内でほぼ一様となる通常の動画とは違い、360度映像(エクイレクタンギュラー形式)では位置によってぶれる方向や量が異なるため、ぶれ補正は容易ではない。また従来の主なアルゴリズムでは、画像内の特徴点をフレーム間で対応付けることでぶれの向きや量を推定する方式が取られていたが、エクイレクタンギュラー形式のまま動画を処理しようとする場合は複雑な幾何計算やオプティカルフロー計算が必要になることが欠点であった。そこで本システムでは深層学習によりぶれ方向と量を画像情報から直接推定することにより、エクイレクタンギュラー形式でも煩雑な幾何的な計算をせずとも、ぶれ補正を行えるようにすることを目指す。

アルゴリズム

ぶれ補正はフレーム間の位置のずれを少なくさせる補正処理であるため、フレーム間でどの程度のずれが生じているか正確に計算することが重要となる。360度映像の場合のフレーム間のずれは3次元空間での回転として表現することができる。したがって、フレーム間のずれの計算は、フレーム間での回転方向(回転軸の3次元ベクトル)および回転量(回転軸まわりの回転角度)を求めることと等価である。回転軸と回転角度はクォータニオンで表されることから、2フレームの画像からフレーム間の回転を表すクォータニオンを出力するようなニューラルネットワークのモデルを構築する。
このモデルで推定されるクォータニオンの逆回転を対象フレームに掛けることにより、前フレームとのぶれを補正し、映像の安定化を行う。
(以下、ニューラルネットワークモデルの詳細は省略する)

3、システム全体の動作手順

以下のような流れで高品位化を行う。

  1. ユーザーがターミナルで高品位化したい動画像ファイルを指定し、システムを起動する
  2. 動画像はまずOpenFrameworksで作成したプログラムで読み込みを行う
  3. 読み込まれた動画像から1フレームずつ取り出し、2フレーム以降で以下の処理を行う
  4. ・前フレームと現フレームをリサイズし、クォータニオンを推定するモデルに入力する
    ・モデルの出力値からフレーム間の回転を示すクォータニオンの推定値を得る
    ・得られたクォータニオンを2フレーム目より掛け合わせ、現フレームまでに累積した回転を計算する
    ・累積された回転の逆回転を現フレームに掛けた画像を生成する
    ・この画像を超解像モデルの入力に流し、超解像した画像を出力する
  5. 全フレームにおいて安定化・高解像度化された一連の画像を、ffmpegを用いて動画像として連結・エンコードを行い、高品位な動画を出力する

評価

高解像度化処理結果

まず、画像サイズ3000x1500ピクセルの360度画像(元画像)を4分の1にリサイズしたのち、Bicubic法により3000x1500に拡大する(比較画像)。比較画像に対して超解像処理を行い超解像画像を得る。画像内から250x250ピクセルの画像をランダムに5箇所切り出し、それぞれ元画像に対する比較画像と超解像画像のPSNRを算出する。それらのPSNRの平均を算出し、比較画像(Bicubic法)に対して+2dB以上の向上が認められるかを確認する。

超解像画像とBicubicによる画像の平均PSNRを比較すると、2.39dB高い結果が得られた。また、360度画像全体でのPSNRにおいても超解像画像で31.81dB、Bicubicで29.73dBとなり2.08dB高い結果となった。

(高解像度化処理結果:左が元画像で、右が超解像画像)

スタビライゼーション処理結果

既存手法でのスタビライゼーションに比べて、本システムの性能がどの程度かを知るために定性的な比較を行う。ぶれ補正する360度動画として、360度画像に人工的にブレを生じさせた映像を用いた。本システムで対象の動画にスタビライゼーション処理を施すと、細かいブレは残るものの、大きなブレは除去されて、スタビライゼーションの効果が認められた。一方、比較対象の「Adobe After Effects CC 2018」に搭載されているスタビライゼーション機能に対象の動画を処理させようとすると、「分析の解決に失敗しました。」というエラー表示となり、スタビライゼーションを掛けることができなかった。その結果、本システムのスタビライゼーション機能は既存手法では対応できないぶれに対してもスタビライゼーションの効果が得られることが確認された。以下の動画で、上が処理前の入力動画、下がスタビライゼーション処理後の出力動画になる。完全ではないものの、大きな動画ブレに対して動画の安定化が施されている。

まとめと今後の展望

深層学習による360度コンテンツの高品質化のコンセプトの実証が確認された。一方で、本検証を実施している最中にもカメラのハードウェア側でのスタビライゼーションの強化や、Adobe以外のメーカーからのスタビライゼーションのソフト、またソニーコンピュータサイエンス研究所のリアルタイム360度映像のスタビライゼーション技術であるJackin Headなど、関連技術も進化してきている。今後は深層学習を使っている利点を考慮して、さらなる処理精度向上や新機能開発を検討している。

参考文献

[1] Kim, Jiwon, Jung Kwon Lee, and Kyoung Mu Lee. "Accurate image super-resolution using very deep convolutional networks." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016.
[2] Dosovitskiy, Alexey, et al. "Flownet: Learning optical flow with convolutional networks." Proceedings of the IEEE International Conference on Computer Vision. 2015.

This is some text inside of a div block.

RELATED PROJECT

No items found.