技術系なぶろぐ
続・自家製アプコン
ずいぶん前に、Waifu2X を使った自家製アプコンの話を書いたんですが、そのアップデートです。
あの記事書いたのが2016年なんで、もう6年も前。そりゃぁ世の中で技術革新は進んでますよね。
Cupscaleというツールと、Real-ESRGANというツールです
なお、Real-ESRGANは、このページで説明されているツールを使うと楽に使えます。
さて、では早速結果を見てみましょう。
画像は、左上がオリジナル、左下が Waifu2X でアップスキャンしたもの、右が Real-ESRGAN でアップスキャンしたものです。
懐かしい新世紀エヴァンゲリオンのオープニングです。
え?懐かしくない?ついこの前、映画館でみた??ふっ、君はそれをLDで見たことあるかい?え?LDってなんですか?
いやまぁ、そう言われるわな・・・・
これは、1995年にテレビ放送された最初のエヴァンゲリオン、そのLDをキャプチャしたものです。LDが何かは・・・ググってくれ。CDに対するアナログレコード、DVDに対するLDみたいな位置づけですね。CDとかDVDがそろそろ通じなくなりつつある時代ではありますが。
というわけで、Real-ESRGAN を使えばいいんじゃないかな。を結論に終わってもいいんですが、それだけだとアレなので、もう少し比較してみましょう。
Cupscaleの比較
Cupscaleには3個のモデルが搭載されています。そのモデルの結果を比較します。
左上が BSRGAN、右上が RealESRGAN-4xplus、下が RealSR_DF4K
RealSR は論外として、BSRGAN と RealESRGAN はいい勝負をしてるように見えますが、相対的に RealESRGAN のほうが綺麗に見えます。
CupscaleとReal-ESRGANの比較
二つツールがあるので、そっちも比較しましょう。Cupscale の realesrgan-4xplus と Real-ESRGAN です。これって同じモデルってことで・・・いいんですよね?
左が Cupscale の realesrgan-4xplus、右が Real-ESRGAN です。
Real-ESRGAN のほうが綺麗に見えます。同じモデルだけど、学習のさせ方とか実装がなにか違うんでしょうか。
GPU処理とCPU処理の比較
Cupscale は CPU モードを持ってるので、GPU を使わない、CPU 処理も比較してみましょう。
左がGPU処理、右がCPU処理です。これはさすがに同じに見えます。
ツールは Cupscale の BSRGAN です。というか、CPU モードで走るのはこのモデルのみです。
なんでこんな比較をしてるかというと、私としてはCPU処理を使いたいのです。だって仮想環境だとGPUができないから。いや、できないわけではないんですが、仮想環境でGPU使おうと思ったら、くっそ高い専用GPUカードとくっそ高い専用ドライバー使うか、PCIパススルー使うから vMotion を諦めないといけなくなるので、やりたくないんですよね。なので、CPU モードで使いたいんですが、BSRGAN しか使えないので、これで妥協するか、GPU 使える物理マシンで Real-ESRGAN をやるかですね。
結論
画質で Real-ESRGAN の勝利です。
動画にした結果も置いておきましょう。2016年にやった、AIR の DVD に入ってる ED から一部を取り出したものです。元動画は2016年の記事を参照してください。
あと、このリンク、ブラウザでは再生できないかもしれません。その場合はダウンロードして再生してください。少なくともVLCでは再生できるはずです。
最後にもひとつ、アプコン処理にかかる時間の問題が。
Cupscale、Real-ESRGAN どちらもめっちゃ時間がかかります。Waifu2X も相当時間かかりましたが、それよりはるかにかかります。
サンプル用に置いた AIR の動画、動画としては23秒程度の長さなんですが、これを1本処理するのに、Waifu2X で3、4時間くらいかかるのに対して、Cupscale、Real-ESRGAN は 1 日以上かかります。25分のアニメを1本処理するのに、単純計算で2か月以上かかることに。Waifu2X で2週間弱かかってたものが、けた違いに時間がかかることになります。