超解像度画像を生成する際には、しばしば、どういう線が正しいか決定できない場合が存在します。このときに、ピクセル単位の二乗誤差を最小化するよくある手法では、ある種"平均的な画像"が作られてしまいます。平均的な画像は、基本的にぼやけてしまいがちで、本当の高解像度画像とは簡単に見分けられてしまいます。Lossを利用するものです。Lossというのは、画像認識のためにトレーニングされた別のネットワークに、超解像と高解像の2つの画像を通した後の、中間層同士の二乗誤差を指します。それだけでは片手落ちで、やはりぼやけた画像になってしまいます。Lossを加えることで、ぼやけた画像を許容しないようなロスの設計にします。Lossによる"画像生成"の"超解像"への応用ちょうど1年前、アドベントカレンダーで盛り上がった論文を皮切りに、今年は画像生成ネタが多いに流行りました。このDCGANの亜種がいくつも提案されたり、学習を安定させる方法が検討されたり、単に生成するだけでなく文章などを入力に与えらたりなど、とにかくGANまわりでは話題を事欠かない年でした。qiita.comqiita.com筆者らが注目したのは、GANの"データセットと出力が見分けられないように学習する"というアイデアは、まさに、超解像の目的を、美しい画像を作り、"超解像と高解像を見分けられないように人間を騙す"というところにおけば、そのまま流用可能なところです。これが本当にすべての超解像の目的かは疑問の余地はあります。防犯カメラの超解像を犯罪捜査に使う、などの目的を考えると難しいところでしょう。Lossによる学習この図に示すように、見分けがつかない画像を生成するネットワークは、素直にGANの仕組みをつかって実装できます。実は、これだと、低解像度画像に全く関係のない超解像度画像を生成してしまいます。Lossと適切に混ぜ合わせて利用します(論文では1:0.00001と書いてある)。これによって、前の節で問題とした、平均っぽい画像を作るからぼやける問題が、解決する、というお話です。最後に、これも最近のトレンドなので紹介しておきます。前節で紹介したDCGANの論文などでは、低次元の抽象的な特徴から、画像を生成するために、Deconvolutionを用いているのですが、最近幾つかのタスク(物体認識など)で、あまりこの仕組みは、精度も速度も上手くないと考えられつつあります。Layerを利用しています。Layerでは入力のチャンネルをそれぞれ別Pixelとして展開するため、処理がメモリコピーだけで高速、かつ、オーバーラップもないので学習が上手くいっていればぼやけにくいと考えられます。実験結果さて、ここまで長々と説明してきたネットワークが、いかほどの能力か、というのを紹介します。トレーニングには100万枚ほどの画像を利用し、3エポックほど回しています。Lossで回してます。1と2のみの結果でかなりいい絵が出来てるようにみえます。Lossの改良は、たしかにぼやけるのを消そうと頑張ってるのはわかるんですが、今度は画面全体に幾何学的なノイズを載せる安易な出力に陥っているように見えます。これがAdversarialとContentの割合調整が悪いのか、まだまだ学習が足りないだけなのか、などはしょうじきわからなです。イラストではまだGANが高解像度に働かない問題のせいかもしれません(自然画像と違ってイラストはピクセルあたりの情報量が少ない)。こちらも、工夫1と2のみの結果でかなりいい絵が出来てるようにみえます。こちらではLossの改良が、イラストよりは差が出ているように見えます。大きな問題として、論文と同じデータセットで試してみたのに、大分論文より結果が悪く(というか論文の結果がとんでもない。すごい)、実験環境なりパラメタなり実装なりをもう少し見直さなきゃなぁというところです。自分で低解像度画像を作ったものの方が、結果がいいようにちょっと感じるので、もしかしたら縮小時のアルゴリズムに強く依存するものを学習してる可能性もあり、検討が必要かもしれません。まとめTwitter社から発表された超解像の論文を実装しました。この論文は今年のトレンドであるネットワーク構造を上手く取り入れており、超解像自体を利用しない人も参考にするところがあると思います。Lossを直接的な画像生成以外の問題に使うのは、他の問題でも検討する価値があると思います。ネットワークとの比較が必要になるかと思います。僕も、機会を見つけてpix2pixでの超解像とも比べてみたいと思います。~chainerでニューラルネットを学んでみるよ(chainerでニューラルネット2)はてなブログをはじめよう!Hi_kingさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。