SRResNet : 画像を高品質に拡大する機械学習モデル
ailia SDKで使用できる機械学習モデルである「SRResNet」のご紹介です。エッジ向け推論フレームワークであるailia SDKとailia MODELSに公開されている機械学習モデルを使用することで、簡単にAIの機能をアプリケーションに実装することができます。
SRResNetの概要
SRResNetは高品質に画像を拡大する超解像モデルです。(1,3,64,64)のサイズの画像を入力として、4倍に拡大した(1,3,256,256)のサイズの画像を出力します。
従来のbilinearやbicubicによる拡大では、斜め線にジャギーが発生したり、ぼやっとした出力になるという問題があります。AI超解像を使用することで、解像感を保ったまま、シャープに画像を拡大することができます。
SRResNetはPixelShufflerを使用することで、従来のDeconvolutionを使用したAI超解像よりもノイズが少ない画像を生成します。
AI超解像の歴史
SRCNN
Image Super-Resolution Using Deep Convolutional Networksで提案されたのがSRCNNです。Waifu2xでも使用されているアーキテクチャです。最初に解像度を上げた後に、複数の畳み込みを行う高精度画像を出力します。
FSRCNN
SRCNNの高速化のために提案されたのがFSRCNNです。Deconvolutionを使用して最後に解像度をあげることで、高速処理を実現しています。
ESPCN
Deconvolutionはチェッカーボードノイズが発生するという問題があり、この問題を解決したのがESPCN(SRResNet)です。PixelShuffler(Sub Pixel Convolutino)を使用することで、チェッカーボードノイズを抑制します。
SRGAN
SRResNetのモデルアーキテクチャを使用した学習時の最適化の方法として、PSNRやSSIMを基準に学習を行なう方法と、GANを使って行う方法があります。PSNRやSSIMを基準にすると、数値的な性能は高いものの、解像感が出ないと言う問題があります。SRResNetのモデルを使用して、AIが生成した画像か、オリジナルの画像かをAIに判定させながら学習を行うことで、解像感を保ったまま超解像処理を行うモデルを構築することができます。この方式をSRGANと呼びます。
SRResNetの使用方法
ailia SDKでSRResNet(SRGAN)を使用するには、下記のコマンドを使用します。-pオプションを使用することで、入力画像を64x64画素単位でタイリングして4倍の解像度に拡大することができます。
python3 srresnet.py -i input.jpg -o output.jpg -p
関連製品(ailia AI refiner)
ax株式会社と株式会社ラディウス・ファイブは、Adobe社が提供するソフトウェアであるAfter Effectsで使用できるAI超解像プラグインを販売しています。株式会社ラディウス・ファイブが独自に開発した超解像モデルと、ax株式会社が独自に開発したailia SDKを組み合わせた製品となります。
ax株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。ax株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。