ニューラルネットワークを使った画像補間をやってみました


画像の拡大・補間にニューラルネットワークを使ってみます。

普通画像を拡大すると1画素の情報が複数画素にまたがって置かれるので、全体で見るとぼやけます、これをAIで補正して元画像を推測して再現しようというわけです。

今までさほどの必要性を感じていませんでしたが、VR ViewにStreetviewの画像を使ってみるだんになって、俄然必要を感じました。

StreetviewはパノラマIDなどを使って画像を直接取得できますが、そのサイズは832x416というなんとも中途半端というか小さいというか。

注:より大きなサイズの画像も取得できます、が、以下の内容とは直接関係しないので訂正のみにしておきます。

参照:360°パノラマ画像を表示

 

これをVR Viewで使うとかなりぼやけた感じになります。

VR Viewの最適サイズは4096x2048と言われていますが、ここまででなくとももう少し大きいサイズにしたいところ。

そこでニューラルネットワークを使ってみます。

昨今、ぼやけたり欠損した画像から元の画像を推測したりするのにニューラルネットワークを使う手法が進化してきています(超解像と言うそうな)。

 

AIを画像の拡大・補間に使ってみましょう。

 

うっすらぼやけた画像を拡大・補間して鮮明にする過程はなにやら「ブレードランナー」の一場面を連想してしまいます。

 

今回は、waifu2xを使ってみます(MIT License)。


waifu2xはWebサービスとして公開されていますが、制限がかけられています。

 

幸いGithubでオープンソースコードとしても公開されていますので、GPUを積んだPCをお持ちなら、自前で構築できます。OSはubuntuを使います。

 

また、Windows版でCaffeモデルを使ったものもあります。これならCPUのみでも動くそうです。(やってみました

 


使ってみました。

サイズの拡大はx2が最大だったので、2段階で拡大し、VR Viewで使う場合サイズは2のべき乗にする必要があるので最後に2048に縮小しています。

832×416の画像をwaifu2xで拡大・補間したものー>2048×1024の画像

比較

エッジなどが割とシャープに出ています。

 


Windows Caffeモデルでやってみました。

環境

Windows 7 (64bit)  3.10GHz   4GB   CPU only

WisteriaHillのPCにはGPUは積んでないので、動作設定でCPUのみにしておきます。

 

480×360の画像を1/10に縮小

単純に元サイズに拡大するとジャギーな画像になります。

この48x36をwaifu2xで拡大・補間して元の画像を推測してみます。

この程度のサイズならCPUのみでも演算時間は10秒くらいです。

こんな感じ。


 

CGの場合

この画像はSketchUpで作成した屋内モデルをVray for SketchUpでエクイレクタンギュラー形式に変換したものです。

画像サイズは1000×500

以下はwaifuで4096×2048に拡大補間したものです。

単純拡大したものとの比較

 

 

 


Appendix

早稲田が2017のSIGGRAPHで発表した論文

深層畳み込みニューラルネットワークを用いた画像スケーリング

4出力の畳み込みニューラルネットワークを用いた超解像

waifu2xの元ネタ論文(arχivに投稿されています)

NeuronDoubler


Appendix 2

深層学習による360度コンテンツの高品質化


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*