はじめに
私が所属する課でwaifu2xを用いた画像拡大サービスを自社サービスとして追加しようという話が出たため、まずは自社サーバーにwaifu2xを実装できるか試してみました。
実施環境
・OS:CentOS 7
waifu2xとは
画像処理の機械学習ライブラリを使用し、画像の高解像度化と画質向上を実現できます。
cl-waifu2xを使用した理由
waifu2xには派生したアプリがいくつかあり、waifu2xではCUDA対応のNVIDIAのグラフィックボードが必須になっており、実装しようとしているCentOSのサーバーにはCUDA対応のNVIDIAのグラフィックボードがないため派生アプリを使用しました。
waifu2xの派生にあたる、cl-waifu2xはOpenCLさえあれば動くためこちらを使用しました。
cl-waifu2xの使い方
・cl-waifu2xのリポジトリをクローンする
$ git clone https://github.com/marcan/cl-waifu2x.git
・以下のコマンドを実行し、cl-waifu2xを実行
$ python cl-waifu2x.py [変換前の画像のパス] [変換後の画像のパス] models/scale2.0x_model.json
躓いた点:解決方法
・pytoolsのライブラリがないというエラーが表示される。pip installでpytoolsをインストールするもエラーが変わりませんでした。
→ 解決方法:python2系でcl-waifu2xを実行しようとしていたが、pipでインストールしたライブラリはpython3系のライブラリとしてインストールされていたため、以下のコマンドでpython2系のモジュールとしてインストール
$ python -m pip install pytools==2020.2
・処理中に、IndexErrorが発生
→ 解決方法:返還前の画像のサイズが小さいと、エラーが発生してしまうため、大きい画像を使用すると正常に処理されることを確認しました。
実際にできたもの
ぱっと見の違いは分からないですが、変換後の画像は画像サイズが2倍になっておりまた拡大しても解像度は変わらないものになっています。
処理前
処理後
おわりに
サーバーにアプリをインストールをする作業などは何度か行ってきており、今回もそこまで時間がかからないだろうと考えていましたが、作業開始からインストールし正常に動くまでには4か月以上かかりました。
なかなか問題が解決せずに苦戦していましたが、問題を解決するたびに新たな知識を身に着けることが出来たため貴重な経験が出来たと思いました。
また、この後この機能を組み込んだWebサービスページ作成も試みましたが、時間が足りず今回の内容はここまでとさせていただきます。また機会があればこちらの続きを記載したいと思います。それでは