【超解像】画像拡大ソフト総合スレ2【waifu2x】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
画像を人工知能(Neural Network)を利用して拡大、あるいはノイズ除去するソフトウェアの話題を総合的に扱うスレです。
本来の用途は静止画が対象ですが動画のアプコン処理に関する話題もOKです。
ただし動画編集ソフトの使い方の部分の話は各ソフトのスレに行って下さい。
--主なソフト--
・waifu2x
本家Webサービス
http://waifu2x.udp.jp/
・waifu2x概要:二次元画像を拡大したいと思ったことはありませんか? (waifu2x作者氏のブログ)
http://ultraist.hatenablog.com/entry/2015/05/17/183436
・waifu2xとその派生ソフト一覧
※リンクがNGワードに!
・waifu2xのベンチマーク結果まとめ - Togetter
http://togetter.com/li/831437
・無料で二次元画像を人工知能が補完してハイクオリティで1.6倍/2倍に拡大できる「waifu2x」 (gigazinの記事)
http://gigazine.net/news/20150519-waifu2x/
・Otaku ワールドへようこそ![212]嫁を拡大する人工知能/GrowHair (日刊デジタルクリエイターズの記事)
※従来の拡大手法とwaifu2x、SRCNNの違いについての丁寧な解説記事
http://blog.dgcr.com/mt/dgcr/archives/20150605140100.html
・NeuronDoubler
人工知能超解像プログラム NeuronDoubler
http://loggialogic.blogspot.jp/2012/06/neurondoubler.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured >>625
dpiは入出力デバイスの設定なのでwaifu2xの処理はそこに関与しません。
画像のメタデータに特に気を使っていないので印刷サイズには既定値が入っているのだと思います。
印刷や入稿等で必要なら別の方法で再設定出来ると思います。 >>626
>>627
ありがとうございます。
実感としてきれいに見ることができているので少し疑問に思い質問させていただきました。
dpiについてwaifu2xはいじっていないのですね。
dpiやppiのデータ上の数字は気にしないことにします。
(印刷とかはしないので) waifuを2倍に拡大するからだろ
waifuはぐぐれ 2次特の時点で由来とか聞かなくてもわかるくらいには直接的 madVRにおけるNGU pixart特化版のテスト中みたい
NGU無印やwaifu2xと比較するとやや眠くなるものの、例のジャギー問題もこっちなら出なさそう
旧来のNNEDIを正統進化させたような画になってて、処理負荷は低い
Original ttp://madvr.com/mario/org.png
waifu2x ttp://madvr.com/mario/waifu2x.png
NGU VH ttp://madvr.com/mario/NGUveryHigh.png
NGUpixart VH ttp://madvr.com/mario/NGUpixartVeryHigh.png
NNEDI256 ttp://madvr.com/mario/nnedi256.png waifu2xはwebサービスじゃなくて
windows版はないのだろうか? pixel artの拡大はゲーム機のエミュレータで実装されているような処理のほうが納得できる拡大になると思う
2xSaIとか
http://johanneskopf.de/publications/pixelart/
とか >>637
ピクセルシェーダー機能ある動画再生ソフトについてるんじゃね。 http://blog.nest-online.jp/7557
ここの一番上のなんたらマジックで拡大しても劣化しないベクター画像化してみたんだけどいいですね
久々にワクワクした と書き込んだ後でバンディングが問題なことに気がついた失礼 9日に緊急のWindows UpdateとやらでGeforceのドライバが更新されて
Waifu2x-caffeを使うと「CUDAドライバーがインストールされていない〜」状態になった
一応、システムの復元で元に戻したけど....作者さん助けて(もう見てないかねぇ)
Windows10は勝手にアプデかかるから困った Geforceのドライバだけ古いのインストールしたら良いんじゃね 古いVerは置いとかないとね
俺も勝手にアップデートされた >>644
Windows Update経由のGeForceドライバ更新はいい話聞かないからどうにかして止めるなりNVIDIA公式から拾ってくるなりしたほうがいいかも
こちらはGTX680にドライバ378.49で何事もなく動いてます どうも、wiafu2x研究家の人です。
すごい時間かかりましたが最初の結果が出ました。
|PSNR|SSIM|butteraugli|
waifu2x|27.629|0.928|9.622|
GANなし|27.612|0.927|9.049|
GANあり|27.474|0.926|8.968| butteraugliの値は低い方がいいはず
なので俺の手法の方が良い
俺の手法は主に計算量をwaifu2x/UPモデルより計算量を1/4にしていますが8層です。
実質的に層の数が多いのが効いてる可能性もありますが不明です。
すみませんがこちらの都合でアルゴリズムは非公開です。
ここで話が出ていた俺手法のGANについては今再試験中です。 WUでVGAのドライバ更新する人なんておるんか・・・ 勝手にされるから困ってるっていう話じゃないのかな? どうも、wiafu2x研究家の人です。
評価結果以下に置いてあります。
2000エポック学習させた最終100エポックの画像も付けているのでデータでかいです。
評価できる人がいたらみてやってください。
https://remoteplace-my.sharepoint.com/personal/t-matsu_office_remoteplace_net/_layouts/15/guestaccess.aspx?docid=0eb33501796144cb0abeadc2dd87b74d3&authkey=AbBvhLq0ewcbScMYwVYIx4c&expiration=2017-03-14T02:04:18.000Z web版のwaifu2x、ICCプロファイル対応したっぽい? >>648
その値は画像数百枚の平均ですか、1枚だけですか。
waifu2xと書いてあるものはネットワークの定義だけ持ってきて独自に学習したものですか。(そうだと予測)
元画像を探してきてLanczosで1/2にしたあとにwaifu2x配布モデルで拡大すると明らかに結果が違います。
http://ccsaku.moe.hm/gyazo/data/18eac1728b714cfe64b7843ae5a91499.png
左が評価に使用されている超解像/waifu2xモデル/model_u01999.pkl.pngで、右がwaifu2xの配布モデルの拡大結果です。
左はかなりぼやけていて
PSNRも 超解像/waifu2xモデル: 27.717, waifu2x配布モデル: 31.771
と4dBも差があります。ちなみにLanczosが26.449です。
waifu2xと書く場合はこちらの配布モデルと比較して欲しいです。
学習データは、2012年に作ったものなのでそれよりも新しい画像は使われていません。
添付の結果については、見た目はほとんど違いが分かりませんが
GANありは顎のラインと鳥の下の髪あたりにcheckboard artifactが出ています。
各エポックで結果が揺れるならエポックごとにvalidationしてそれで一番よい値の時だけ
パラメータ保存しておけばいいと思います。 >>653
対応は入れましたが、最近サーバーの環境にちょっとトラブルがあるので
すぐにはウェブ版に反映されないかもしれません。 >654
確認ありがとうございます!!!
waifu2xと書くのは問題ありそうなのでいい呼び方があったら教えてください。
waifu2xと直接比較しないのは、不明な工夫(学習データ、アウギュメンテーションなど)
がたくさんあり、それを見切れないので比較しようがないというのがあります。
条件を合わせているのは層の数、チャンネル数だけです。
そちらの方としてはあまり変わったことはやってないかもしれませんが、
こちらはそれがわかりません。
とりあえずこれでいい結果が出る手法が発見されればwaifu2xにバックポートすれば
性能上がるのかなと思います。
PNSRなどは2000エポックのうち最後の1000エポックの平均です。
画像を複数枚評価するのは時間的に厳しいのでできていません。
アーティファクトについてはしらなかったのでそういう指摘は助かります。
GANは2000エポックで収束してないというか収束しそうにないので
俺手法のGANの効果については今のところ自分も懐疑的です。 >>656
waifu2xはごちゃごちゃやっていることが多いですがそこまで影響していないと思うので
4dBも違うのは教師データの位置がずれてるか学習の方法かハイパーパラメータが悪いのではないかと思います。
最初に近い精度までは持って行かないとなにか間違いやバグがある可能性があり信頼できなくなります。
waifu2xは写真データで既存手法と同じくらいの結果が出るところまでは調節しています。
waifu2xの学習の基本的なところは、
- 入力画像のランダムな位置から96x96の領域(patch)を切り取り(y)
- それを48x48に縮小(x), 縮小アルゴリズムはBox(平均画素法)とlanczosをランダムに使う
- CNNにxを入力して82x82の出力を取得(zero paddingがないため(96-14)^2になる)
- 出力とyのピクセル位置が合うようにyを82x82に切り取り
- (x-y)^2 誤差を計算してパラメータを更新
で、実際には、画像単位で縮小してその中から64領域を切り取って、xと対応するyもあらかじめ作りながら
画像数*64の(x, y)ペアを作った後にシャッフルしてbatch_size=16, optimizer=Adam(alpha=0.00025)で学習を回しています。
64領域のサンプリングは2エポック毎に行っています(ランダムな位置から再度作り直す)
patch_size, batch_size, Adamの設定は結果への影響が大きいです。
>画像を複数枚評価するのは時間的に厳しいのでできていません。
学習に使わない画像を100枚くらい外しておいて
学習済みのモデルでベンチマークするコードを書いておけば実行は5分もかからないと思います。
>>655
反映されているようです。ウェブ版にICCプロファイルの対応入れています。 4dB問題は知ってたんですけどいくら確認してもおかしいところが
見つからないのでwaifu2xが何かやってるんだろうととりあえず放置していました。
そちらからみておかしい、とのことですのでもっとしっかりデータ確認します。
ありうるのはサブピクセルレベルでのピクセルずれ(縮小時に奇数ピクセル数だとずれるとか)が
ありうるかと思いますが、そちらで情報開示してもらったのでそれに合わせてやってみます。
縮小フィルタの特性を学習してしまう問題も知ってるんですけど、そういう回避方法は
考えていませんでした。やってみます。 adamのalphaは小さめにしていますが
それでもでかいようなので全部そろえます
毎度すみません >>82x82
upconv_7の出力は68x68でした。(96-14*2)
>縮小時に奇数ピクセル数だとずれるとか
これは必須です。もし対策していなければこのせいじゃないかと思います。
waifu2xは学習画像読み込み時点で4の倍数になるようにしています。(4xもあるため)
またpatchを切り取る位置も元画像側の位置が奇数になると縮小側の位置がズレます。 超解像頑張り中の人です。
とりあえずwaifu2xのソースコード読んでコンボリューションの初期値あわせてみたり、
変な処理をしていたのを直したり色々やったところ1dB改善しました (PSNR=28.5dB)。
視覚的には大幅な画質向上があります。
AdamのAlphaは小さくしたほうが確かに学習安定します(当たり前)。
言われたところは全部直したつもりなんですが、誤差関数が何かやってる様子。
よくわかりません。HunberLossも使っているのか使ってないのかわかりませんし...。
とりあえず1バッチ=12画像、1エポック=100バッチで2000エポックで学習が
収束しきってないのでがんばればPSNR=29dBまでは行くと思うんですが
31dBかかなり厳しいです。30dB行ったら諦めます。
俺的には学習データ数が少ない、augumentationがまずいってところかなあと思います。
学習データはすごく重要なんですけど、俺にはそこに情熱がない...。
こっちの学習データは250枚、augumentationは上下、左右反転、45度ローテーション、
ノイズ付加、画像縮小です。
ほんまwaifu2xはエンジニアリングの塊なので一朝一夕には追いつけませぬ。
(諦めてるので追いつく気なし) >>661
HuberLossは使っていますが多分それほど関係ないです。(というかMSEのほうがPSNRは高くなると思います)
誤差はノイズ除去で色が劣化しているのを直すときに
下げれる誤差に限界があるので、YUVのYの重み(0.299 × R + 0.587 × G + 0.114 × B)にあわせて
チャンネルごとの誤差の重みを調節しているだけなので、拡大の場合はそれほど関係と思います。
学習データが少ないのはあるかもしれないですが、今はパッチを切り出さずに画像単位でforward/backwadしているでしょうか?
小さなパッチを切り出してからシャッフルして小さいminibatchで学習するのはとても重要です。
画像単位だと例えば1280x720だった、出力が86万個の変数になって
この平均誤差をbackwardすることになるので、画像内のある小さな領域内で誤差が大きかった場合でも平均されて消えてしまいます。
特にイラストの場合は何もない背景が多くて、そこは誤差がほぼゼロになるため平均されて誤差が消失しやすいです。
(waifu2xはパッチを切り出した後パッチ内が単色背景の場合は50%くらいの確率で捨てるような処理も入っています)
また学習データ少ない場合でも、たとえば96x96のパッチだと画像1枚から70万通りくらいの切り出し位置があるのでデータ増加にもなります。 >AdamのAlphaは小さくしたほうが確かに学習安定します(当たり前)。
あと書いていませんでしたが、0.00025から初めて最終的にその1/10くらいになるように減らしていっています。
Adamは学習率が自動調節されるようなことが書かれていることがありますが
パラメータの要素単位の正規化をやっているだけなのでalphaを減らすのは意味があります。
なので最終的なエポックで1/10くらいになるようにalphaをスケジュールしたほうがPSNRは高くなります。
調節が難しければ、80%くらい進んだ後で1/10にして残り20%を回すくらいでも十分意味があると思います。 画像は教えてもらったパッチサイズに分割しています
当然シャッフルしています
SGDなんかでは学習率を減衰する正則化は普通ですけど
Adamでも効果あるんですね。というかそんなに小さな学習率で
PSNR向上するのか...。 deeplearning研究の成果であるwaifu2xがAIでないとしたら何がAIだと言うのかね >>665
正解を大量に教えれば、その正解に近いものを導くのがAIだけど、あなたの求める正解って何? 超解像で遊んでいる人です。
waifu2xの方の話を聞いてて自分の中で結論が出たのはSRCNNの
画質はずばり精度で決まるということですね。
学習率が異様に小さいのが納得していなかったのですが、
多分SRCNNの重みの調整は超絶微細な学習です。
なので高めの学習率で荒い調整したら細かい調整がいるのかなと思います。
例えるなら7層のネットワークの調整は7枚のレンズの焦点を
あわせるようなもんかなあと思います。
なので処理の過程で精度を落とすような処理は厳禁ですし、
学習データも多い方が明らかに有利です。
なのでかなり気をつかった実装が必要かなと思います。
PSNRは改善してきましたが、やはりノウハウの塊であるwaifu2xを
越えるのは難しいかなと思います。自分はアルゴリズムの方に
興味があるのでそっちがんばります。
自分とwaifu2xの作者の方は目指しているところがまったく逆なので
競合しなかったのが救いです。 先日専門家の方からsaliency mapという手法を教えてもらったので
視覚ベースの高精度化の実験やってます。定量化が難しいですけど
なんとなくbutteraugliは向上しそうな気がします。
あとGANの識別器から重要な画素の情報を計算する方法も考えたので
それも実験中です。
手垢が付いてない分野なので色々新しい手法が見つかります。 SRCNNというか回帰問題なのでそうだと思います。
分類では識別境界に近いところ以外は大雑把でよいですが
回帰だと全ての点を正確に合わせないといけないです。 それを使った場合と使わないで普通に全部拡大した場合の結果の違いまだ未検証? >>674
動画とブログに書きましたが、速度はこのソフトを使ったほうが早くなります。
画質には普通に拡大した場合と比較して違いはありません。 拡大をCPUで処理してる場合はかなり早くなるんじゃね?
>>676
コマっつーかコマ内のさらに差分じゃね 面白いな。素材がとにかく低ノイズじゃないと差分がいい具合にならない気はする。
実写だとどうだろうなぁ。実写動画でいろいろ拡大絡みのことはやってみたいと思ってるんだけど。 >>679
閾値の値を調整すれば程度は対応できますが、
完成した時にブロックノイズが現れることがあるので調整が難しいですね。 この差分方式が進化すると裏に進出済み女優の表作品からモザイクを除去できるのでしょうか? 個人ごとに好みがあると思うので各人で学習させる事もできるといいんじゃないかなw 100万枚くらい正解と不正解の学習用画像もってる人限定か モザイクと検出された所が全てマンコに置換されて
マンコまみれの悪夢のような画像が生成されるんだな マジレスすると、モザイクの範囲や解像度は入力によって異なるので復元を学習するのはなかなか難しいと思う。
モザイクの顔が復元できるよみたいなデモは
入力が8x8のモザイクで出力も位置合わせされた顔しかありえないなど限定された条件の結果なのでまだ実用的ではない。 パネルアート画像がモザイク認識されてとんでも画像へと処理される奇劇のヨカン(´∀`ミ) AMDでwaifu2x
http://inatsuka.com/extra/koroshell/ でwaifu2x_koroshellをDL
http://d.hatena.ne.jp/w_o/touch/20150629/1435585193 で
waifu2x-converter_x64_0629_02.zipをDL
waifu2x_koroshellを入れて
waifu2x_koroshellの中のwaifu2x-converterにwaifu2x-converter_x64_0629_02の中身上書き
waifu2x_koroshellで動かすとGUIでOpenCL使える >>696
何でわざわざそんな古いバージョンを…
20160101が最新だよ
http://d.hatena.ne.jp/w_o/20150629/1451664048
あと最近、海外の人が作った派生もある
https://github.com/DeadSix27/waifu2x-converter-cpp/releases
同梱されているモデルのバージョンが新しい
ノイズ除去レベル3が追加されている(なぜかレベル0は追加されていないが)
今後も更新がありそう
などのメリットがある >693
tanakamura氏版から派生したようですね。RX460で正常動作。
ただ、透過画像との相性問題も引き継いじゃってるので、修正されたらいいなぁ。 >>693
それだとkoroshellに入れても使えないし
692のはkoroshellを使った操作が楽な方法よ >695
koroshellフォルダに「waifu2x-converter」サブフォルダ作って、
「waifu2x-converter_x64.exe」にリネームすれば、使えますよ。
ノイズ除去は、なし(Lv0)、弱(Lv1)、強(Lv2)までしか選べないので、
Lv3使えないけど。 全く見てないけどkoroshellの代わりになるようなもの
という認識で良い? >>698
基本的にはそういう感じですが使い勝手は異なるのでどちらが良いかは人によるかと思います。
具体的には画像をドラッグ&ドロップしただけでは変換が始まらないので何枚もポンポン放る使い方をする方はkoroshellのほうが良いかもしれません。
koroshellより優れていると思うところは
フォルダをサブフォルダごと処理出来る(多分)
同梱モデルが新しい
最初からtanakamura氏のwaifu2x-converter-cppを同梱をしてあるので差し替える必要がない
イラスト用モデルと写真用モデルの切り替えができる
ノイズ除去レベル 0〜3まで使用可能
ですかね。 waifu2xのすごさを実感したわ
幅720ピクセルの画像をFHDにして壁紙で耐えられる
まあイラストだから許せるのもあるけど 昔付き合ってた女のいろんな画像とか、waifu2xで拡大して遊んでるわw
流石に昔のスマホの素人撮りだから、2倍以上だと粗が目立つけども・・・
閑古休題、DenoiseNetも今後期待できそうね
https://pbs.twimg.com/media/C1tjW1qWIAAEpJw.jpg
https://arxiv.org/abs/1701.01698 >>703
ホクロが消えてシワが消えて
若返り画像生成ツールやね 縦横幅を指定って7680x4320みたいな指定でいいのね >>705
何の話かと思ったら更新来てたのね
waifu2x-caffe ver 1.1.8.1
https://github.com/lltcggie/waifu2x-caffe/releases/tag/1.1.8.1
GUIで変換後の縦横幅でサイズ指定を追加
CUIで変換後の縦横幅を同時に指定できるようにした
GUIの翻訳にフランス語追加 ところで↓の話ってどうなったんですかね?
CUDA on AMD GPUs, now possible? · Issue #71 · lltcggie/waifu2x-caffe
https://github.com/lltcggie/waifu2x-caffe/issues/71
MIOpenは2017年の第1四半期にリリース予定って聞いたんですが、まだリリースされてないのかな? ある程度大きい画像だと違いはあまり感じられないのね >>706
ver 1.1.8.1使おうとしたらCUDAドライバ無いッスってエラーが出た
前のverはNVIDIAのドライバ入れてGPU変換出来てたのに何でだろう
今新たにドライバ入れなおし中 ドライバ更新したらCUDA変換できた
>ある程度大きい画像だと違いはあまり感じられないのね
画像によるけどフォトショ等で一旦縮小してからやると綺麗になったりする時もあるよ ん、GUIで高さ指定の場合に入力値が横幅として処理されちゃってる?
横幅指定は正しく横幅になり、縦x横指定の場合もその通りになる
ファイル名の付き方は指定の通りになってる waifu2x-caffe ver 1.1.8.2
https://github.com/lltcggie/waifu2x-caffe/releases/tag/1.1.8.2
出力フォルダを選択するときにエラー落ちすることがあるバグを修正
GUIで縦幅サイズ指定にしても横幅の指定と認識されるバグを修正
出力深度ビット数を入力で変更できないようにした このソフト便利だなあ
写真で使うと解像感があがる
塗り絵になってしまうのは仕方ないけど縮小して見る分には問題ない これすげえ。
ディープネットワークによる
シーンの大域的かつ局所的な整合性を考慮した画像補完
http://hi.cs.waseda.ac.jp/~iizuka/projects/completion/ja/
様々なシーンの画像補完(Places2データセット)
http://hi.cs.waseda.ac.jp/~iizuka/projects/completion/images/results/results.png
顔画像の補完(CelebAデータセット) 学習用モデル=世界中で公開されているネット上の画像っていうパターンか。 ここに書いて良いのか分かりませんが waifu2x-caffe ver 1.1.8.2
GUIで 出力深度ビット数を16bitにして終了しても設定が保存されません。
(Setting.ini で常に LastOutputDepth=8 になる) >>719
水着とか消しても裸にはならずに水着が生成されるだけだとおもうぞw ■ このスレッドは過去ログ倉庫に格納されています