【超解像】画像拡大ソフト総合スレ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 >>557
数百枚に対するベンチマーク(PSNR)では数値的に上 cuDNN64.5.dll見っけた
探せばあるもんだなぁ
早速導入
おほっ滅茶早ww 分轄サイズを384にすると5GB以上使って4〜5分だったものが1分掛からずに終了
メモリ使用量は1GB程度に減ってた
cuDNN凄いな nvidiaに登録すればDLできるし、探すほどのものでもないべ この凄さは良い1060のおかげもメモリ量もあって半分くらいはあるのかな?
あってくれ、でないと¥27,000が泣く ウィルス付だったり変な改変受けてたりするのも有るし
そんなに難しくないから適当に登録した方が安心 Kaby Lake-S「Core i7-7700K」基礎検証レポート。注目すべきは絶対性能ではなく,電力対性能比だ - 4Gamer.net
http://www.4gamer.net/games/344/G034458/20170102001/
waifu2xでベンチマークしてて笑う >>566
ディープラーニングの推定工程ベンチマークとして便利かもしれないな というかしょっぱすぎる性能だな
Ryzen頑張ってくれよ本当に… waifu2xのことなら、中の人の定義によるけど
開発している人(俺)はpixivではないよ
サーバーはpixivの方が運営しているけど このスレを見ている人間にとっては大嫌いなレガシー不可逆画像コーデックJPEGに新たなエンコーダが
ttp://gigazine.net/news/20170113-google-guetzli/
人間の目に最適化した極低速高圧縮JPEGエンコーダGuetzli
SSIM: libjpeg比 14%悪化
PSNRHVS-M: libjpeg比 14%悪化
butteraugli: libjpeg比 30%良化
エンコード速度: libjpeg比 10000%+悪化
同等画質サイズ: libjpeg比 35%良化
同等画質転送レート: libjpeg比 35%良化
ttps://translate.google.co.jp/translate?sl=en&tl=ja&u=http%3A%2F%2Fencode.ru%2Fthreads%2F2628
ttp://encode.ru/threads/2628
長すぎるエンコード時間(消費エネルギー)という元手・投資を取り返すには何回その画像ダウンロードされないといけないんだろうな
性能はたしかに良いからお試しあれ よくわからんが、電算機関連の話では
性能って普通は速度(時間)のことを言うんじゃないのか GuetzliよりGuetzliの性能を評価したbutteraugliってやつのほうが気になる。
SSIMやPSNRより人間の主観に近い画質指標なのかな。 butteraugliでwaifu2xと他の拡大アルゴリズムの比較されたら、どんな結果が出るのだろうな リファレンスのpngをq89ぐらいにすると、
似たサイズになるんだけど、確かに通常より綺麗だな。
waifuで拡大したほうが超綺麗になったけど、そういう問題じゃないからね。 >>575
自分もそう思ったんだけどbutteraugliのビルド方法がよく分からなくて断念したよ。
Googleがバイナリを配布してくれればいいんだけどね。
というかほぼGoogleしか使ってない指標でGoogleのエンコーダを評価されても性能が良く分からないよなと思う。 waifu2xの後追いして遊んでるんだけど
作者氏、GAN使うの嫌がってるんだよね
とりあえずGAN、ResNet、PixelSuffle
実装してみたけど見た目SRCNN臭さは
だいぶとれるけどたくさん評価
してないので微妙
俺の本丸は計算量削減なんだけど
理論上計算量3割のはずなのに
3割しか早くならない
chainer、推論遅くないか 評価中なので待ってください
一回回すのに10時間かかるので
何日かかかります スクール水着の凹凸を判断してテカテカのラバーコーティングの水着にできる? >>579
GANはPSNRをあまり下げずに使えるならいいですが
(ロス関数の重みの調節で出来ると思いますがトレードオフがあるのでGAN使う意味がなくなってきそう)
PSNRがBicubic以下になると
変換結果に不安があるため現在BicubcやLanczosが使われる領域での置き換えには使えないと思って避けています。
もちろんいくつかモデル作って選択できるようにすればいいだけですが
面倒なのでやっていない状態です。ResNetはdevブランチには入ってます。 >584
GANについては混合比率下げると
全くなしと見分けがつかないので
PSNRは必ず犠牲になる印象です
3dB近く悪くなるので受容できないで
しょうね
GANは学習すごく遅くなるので
つらいです
GANは学習回数多くしないとだめ
なのでもしかしたら今足りてない
可能性があるので後でしつこく
やってみます
作者さんも自分で実験するのが
めんどいと思うので結果はアップして
共有します butteraugli というので本当に見た目の印象が定量評価できるならそれもあり思いますね。
僕が見た目の評価嫌う理由は、たいして見る目がない人がリンギングでまってくる画像を
くっきりしているからよいとか判定してしまうところにあるので。 butteraugjiはためしてみたけど
値が小さい方がいいっぽいね
画像ができたら数字比較してみるわ butteraugliでエポックごとの
評価みたけど学習打ち切った時点で
まだあがってた
評価がサチるまで回しますが、
たぶんすごい時間かかります
二乗誤差じゃわからん SRGANはやろうとした人を何人も見ましたが
みんなうまくいっていないので
写真のモデルでcheckboard artifactを出さずに
論文の結果と似たような画像を生成できればそれだけで価値があると思いますよ SRGANはチャレンジですね。がんばってみます。
うまくいったら挑戦します。
butteraugli初耳だったんですが、スレ観たらビルドの仕方が
わからない人がいる模様。Linuxの開発したことのある人少ないんですかね。
Windows10のコマンドプロンプト開いて以下のコマンドで実行、
$ bash
コンパイラとライブラリインストール(zlibはpngと一緒に入る)、
$ sudo apt-get install gcc g++ make libjpeg-dev libpng-de
ソースコードのMakefileのあるディレクトリで
$ make
で実行ファイル作られます。bash上か他のLinuxマシンのみで動きます。
プログラマじゃない人も色々遊んでみてください。 $ sudo apt-get install gcc g++ make libjpeg-dev libpng-dev
です。すんません。 >>590
ありがとうございます。
ビルドできました。 >>594
これyoutube動画でもやってくれないかな。
あと動画上の物体の形や位置を認識してサラウンド感を与えるとか。 やりたいことはYoutubeがすでやっている動画の再エンコと一緒じゃないかな
画質を改善するというより、苦情の少ない範囲で圧縮したいなので
運営としては通信量が減って嬉しいけどユーザーとしては以前よりも画質が悪くなるので
携帯事業者がやっていた「通信の最適化」と同じ考えだと思う でもそれで同じ容量で解像度が例えば1.5倍になれば話が変わる
色空間やインターレースしかり悪いばかりのトレードオフでは無いと思う waifu2x-cafeeをXeonとQuadro両方積んだPCで実行するときってどっちのほうが効率的なんだ?
ちなみにXeonは12コア3.30GHz、Quadroは2000。 >>598
Quadroの方が速いんじゃないですかねぇ?
↓の画像でXeon 16Core 3.6GHzで2分40秒ぐらい
CPU使用率は20%ほど XPx64環境で無理矢理実行したからちょっとアテにならないかもしれないけど
http://www.dotup.org/uploda/www.dotup.org1133523.jpg 変換元画像
http://www.dotup.org/uploda/www.dotup.org1133524.png 設定 >>599
ハイエンドなマシンで動かしてらっしゃるようなので
NeuronDoubler v5.00だとどれぐらいかかるか検証して頂いてもいいですか?
http://loggialogic.blogspot.jp/2015/09/neurondoubler-v500.html?m=1 >>600
sampleのlogo.pngを2倍で16s、4倍で66s
sampleのphoto.pngを2倍で44s、4倍で200s
といった感じです
32倍をlogo.pngでやってみたら1876sとかかかったので、photo.pngの方は試してないですw >>601
ありがとうございます
手持ちのMacbook Pro late 2012では
960×540のpng(写真)を変換したところ1600s
ぐらいでした
16コアもあると動画用にNeuronDoublerを使えそうで羨ましいです waifu2x研究家なんですけど
GANのPSNR問題解消しそうなので
週末画像出します
waifu2xと同じupモデルをこっちで
再現したものとの比較しますが
時間がかかるのでそれ以外との
比較は難しいです
何個かネタがあってそのマイルストーンです
3月に資料作るのでそのとき
リンク張ります 単純にはMSEとGANの出力を適当な割合で合成すればいいように思うけど
重くなるので学習の枠内でやれればいいですね
あとneural-enhanceの人も最近waifu2x的なやつをやろうとしているみたいです
https://twitter.com/madebyollin/status/823652970440986624
これは別の人の結果だけど、たしかに線はくっきりしているけど余計なことをしすぎているように見える >604
適当な割合で合成すればいいんですけどふたつ問題があって
1. 適切な混合比率がタスクによって違う
2. 結果が不安定でうまくいってるエポックとそうでないエポックのばらつきが大きい
なので、前者については二乗誤差に対して何%GANを反映するのかって
コントロールを入れています。
GANが余計なことをするのは誤差のGANの項が正解データとの比較を
しないからじゃないかってことで正解データと比較するGANをは
考えてみました。
GANなしに比べてSSIM、PSNRは同等、butteraugliはかなり良くなってます。
正解データと比較する時点でGANの解釈がかなり変わるんですが
(評価中なので正確な値は週末出します) わかる人がまわりにいないので、ここに書いてあれなんですけど、
従来のGAN)
Discriminatorで本物らしさを判定して誤差に反映
自分の手法)
本物らしさを学習したDiscriminatorの中間層の出力を
本物と生成データで比較、となります。
Discriminatorの中間層は通常の二乗誤差で比較するのと比べて
大幅に大きい情報量で比較するのと、Discriminator自体が
誤差関数になるので普通の二乗誤差と比べると複雑、高度な比較になります。
Twitterが出してる論文は物体認識を学習させたモデルで中間層の出力で
比較しろ、と書いてあって、これがコンテンツロスなんですが、
コンテンツロスの適用部分はGANに対してやった方がいいのでは
というのが自分の意見です。 イラストの超解像でperceptual lossにImageNetの学習済みモデルを使うのがよくないのは明らかなので
Discriminatorが使えるならそれは同じ解像度のイラストで学習しているわけだからよさそうですね
ただDiscriminatorは学習中に動くので不安定そうですが
GAN自体がそういうものなので動く感じでしょうか どうも、wiafu2x研究家の人です。
Twitter社の論文読んだとき、コンテンツロスがめちゃくちゃ
めんどくさいので俺はあきらめました(コンテンツロスのために
物体認識のタスクもやらないといけなくなるので大いに藪蛇)。
SRGANがみんなうまくいかない原因はsoftmax、softplusを
そのまま誤差にするから結果が不安定で調整が難しい、
のが大きなところかと思います。
そもそものDCGAN自体も論文の趣旨がうまく生成できる
パラメータが見つかりましたって部分ですからね。
ちなみに自分はSRCNNは勉強会の発表ネタなので、8月に
一か月実験したのと3月の発表があるのでそれで今だけ
やってるだけなので、先行技術のサーベイが非常に
あやしい(何も知らない)のでご教授いただけると幸いです。
今のところもう一個ネタがあって、画像ごとに重要度マップを
作って誤差に重み付けする方法を考えています。
多分来月前半には実験してると思います。 物体認識の学習済みモデルは配布されているので自前で学習する必要はないです(再現させる場合)。
generatorの出力とgroundtruthそれぞれをそのネットワークに入力して
適当な層(convの2,3層目)の出力が同じになるようにMSEを最小化するのがperceptual loss(コンテンツロス)で
それとdiscriminatorを使ったadversarial lossで
loss = perceptual_loss * perceptual_loss_weight + adversarial_loss * adversarial_loss_weight
を最小化するように拡大前の画像を入力とするgeneratorを学習するのがSRGANという認識です。
なので違いはコンテンツロスに使うモデルを変えているところだと思いました。
自分もGANはやったことがないので違ってるかもしれません。 説明ありがとうございます
認識合わせできました
自分の場合は再現に興味がなく、
それは単に遊んでいるだけなので
学術的なアプローチはどうでもいいから何ですが
なのでさっさと自分の手法に取り込みたかったんですが
イラストに関しては分類器新たに
学習しないといけなさそうなので
めんどくさいなあと思ったんです
それとは完全に独立してganが
課題があったのでそれを考えてたら
最終的に元論文のやり方を捻る
方法になりました ganのloss_weightがセンシティブで
小さいと効かないし、大きいと
学習が発散するし、ギリギリねらうと
エポックごとに結果違うし、
学習データ変えると定数変わるしってのが
現状のsrganだと思います
学習が重いのでいじっていると
疲れてくるので自分は安定した方法を
求めてます
自分の提案手法は安定してます
効果の評価ができてなくて
4倍拡大とかどうなるかわかりません
2倍だと良いんじゃないかなあと思います
後でスレの人に厳しいデータ教えてもらおうと思います 詳しいことはよくわからないけど、ガンガレ。超ガンガレ。
どうせならちょっと前のmadVRの新しい拡大の三つ巴でもいいんだぜ… waifu2xの研究してる人なんだけど
すまん、アルゴリズムは固まってて
学習させるだけなんだけど
画像出すの来週になる... >>614
楽しみにしてますがゆっくりやってくだちい >>615
着色は全くの範囲外だったが、ちと興味が出てきたw
モノクロ写真とかにも活用できそうだな >>615
着色の精度はまだまだだけど、とても面白かったです。
学習が進めばもっとよくなると思うとすごい期待できます。 あいかわらず
塗りつぶしになっちゃうよ
進歩がないなあ
AIダメっぽい 今更ながら>>615-616に気付いた
自演すんなよw >>615
やっぱり自動だと色が薄くなるね
あと漫画だとエラー吐かれて駄目だわ >>615
別にスレッド建てれば?
それとも有るの? waifu2xcaffeで600dpiの画像を2倍に変換したら
96dpiになったのですが、これは仕様ですか?
てっきり倍にしたのだから300dpiになるのかと思っていました。 >>625
1920x1080で600dpi(=3.2インチ*1.8インチ)の画像を2倍に変換したら、
3840x2160で1200dpi(=3.2インチ*1.8インチ)か、600dpi(=6.4インチ*3.6インチ)じゃないか? >>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プロファイルの対応入れています。 ■ このスレッドは過去ログ倉庫に格納されています