アルバイト募集2017-02-3通信量75%削減に成功!画像を爆速で高精細化するAI「RAISR」の実力Tweet小さな低解像度の画像から大きくてキレイな高解像度の画像に復元することは、小さくして劣化された画像には復元するために必要な情報が足りないので、不可能なことです。コンピュータサイエンスでは、低解像度の画像から高解像度の画像に変換することを「超解像」と呼びます。本記事では、Googleが開発した機械学習を使って爆速でキレイな画像を生成する技術「RAISR」を紹介し、RAISRとは何かRAISRの応用とメリットRAISRの仕組みを解説します。RAISRとはFacebookやInstagramのようなSNSサービスでは、一般の人が趣味や生活の写真をアップロードして友達にシェアしています。Instagramの1日のアクティブユーザー数は、3億人を超えるというデータもあります。[1]美しい写真で、オシャレな印象を醸し出す写真をシェアすることが出来れば、素晴らしい思い出だったのだと余韻に浸ることが出来るのでしょう。一方で、データの通信が遅く、ローディング時間が長くなってしまうと、ユーザーの不満は限界に達します。Googleは自社が運営するSNSサービス「Google+」のローディング時間を小さくするために通信量を劇的に下げつつ、美しい写真を見ることが出来るように「RAISR」という超解像技術を開発しました。以下の画像のように、小さな画像から大きな画像に復元することで、本来100kbの元画像をたったの25kbのデータに圧縮しながら、同様の体験を提供することが出来ています。Learningこれまでも、画像を拡大する技術は、フォトショップ等のペイントソフトでも体験したことがあるかと思います。いったソフトでは、「Bilinear」といった周辺の2×2の画素値との距離を補完するようにピクセルを埋める手法や「Bicubic」という周辺の4×4のピクセルを使って空間的に補完する手法を使って画像を拡大します。従来手法の優れた超解像技術では「A+」といった手法が高速で有用な手法でした。以下の画像は、拡大技術のBicubicと超解像のA+を比較した画像です。ResolutionBicubicの手法では、少しぼやけて見えると思います。A+の方が自然に見えるのではないでしょうか。ここで、Googleが開発したRAISRとの比較をしてみましょう。先程の画像にRAISRも追加した画像が以下になります。ResolutionA+と同等のクオリティで拡大できているのが分かるかと思います。RAISRの凄さは、処理速度の速さです。モバイル端末のGPUを利用して、秒速2億画素以上のピクセルを処理することが出来ます。この速度であれば、モバイルデバイス上の拡大をするジェスチャーである「ピンチ」の際にリアルタイムで処理することが可能になります。以下のグラフが、処理性能と速度をグラフ可したものです。Resolution縦軸のPSNRは、画質の指標で値が大きければ大きいほどほど再現品質が高いと言えます。横軸が画像1枚あたりの平均処理時間で、左に行けば行くほど高速に処理していることになります。RAISRは超解像の品質を保ちながら、圧倒的に高速な処理速度で実行できるアルゴリズムと言えるでしょう。Network」等の技術はディープラーニングを応用しています。RAISRもディープラーニングでしょうか?RAISRは違います。RAISRでは、実行時の計算コストをギリギリまで小さくするために、ハッシュテーブルを応用します。以下が、RAISRの学習時のアルゴリズムです。ResolutionRAISRの超解像の手法は、高速なハッシュテーブルによって選択された画像パッチを適用することです。この数種類の画像パッチをデータセットから学習します。一方で、事前に学習されたパッチを適用するだけでは、画像をいびつな形に変形してしまうことが起こります。それを防ぐために、実行時では、以下の緑色の部分で、後処理として元の補完画像と重み付けした結果を足し合わせた結果を出力します。Resolutionこうして、計算された画像は非常に綺麗に拡大されます。Resolutionこれほどまで高精細に拡大することが出来れば、小さな画像のやり取りしても、ユーザーは大きく高精細な画像を見ているのだと感じることでしょう。まとめ結論としては、RAISRを導入することで、ユーザー体験を向上させることができる通信量を下げることで、サーバーの負担を軽くすることができるといったメリットがあります。安価な補完方法と、ハッシュテーブル・後処理の工夫をすることで、実行時の計算コストを下げることが出来るのです。実装例などGitHubに上がっているものもあるので、更に詳しく知りたい方は試してみると面白いかもしれませんね。LearningTweetDeepAgeではAIに関する厳選した内容を記事にしてお届けします。Networksとはリカレントニューラルネットワークは、時系列データを扱うことのできるニューラルネットワークの1つです。本記事では、RNNについて、応用事例や仕組み・実装方法まで徹底的に解説しました。2017-May-23TensorFlowのデータフォーマットTFRecordの書き込みと読み込み方法TensorFlowが推奨するデータフォーマットはTFRecordです。本記事では、TFRecordを使う理由、メリット、使い方を徹底的に解説しました。Network(ResNet)。層間で残差を足し合わせるというシンプルなアイデアでCNNは層を格段に深くして飛躍的に性能が向上した。