画像処理
機械学習
DeepLearning
AI
waifu2x

画像をきれいに拡大するAI「waifu2x」で、まとめて一括変換/動画対応版を作ってみた

・まとめて一括変換
・動画対応

こんにちは、2z(Twitter: @2zn01 )です。

少し前に「AIメーカー」という誰でも気軽にAIを使える&作れる!みんなのAIプラットフォーム「AIメーカー」をリリースし、開発を続けてます!

■AIメーカー
https://aimaker.io/

今回は「AIメーカー」ではなく、2016年2月くらいから開発・運営している、「waifu2x-multi」という別のサービスのお話しです。

作ったもの

waifu2xというサービス/OSS(オープンソースソフトウェア)はご存知でしょうか?
簡単にいえば、AI(人工知能)を使って小さな画像を綺麗に拡大するサービスです。

公式のwaifu2xは以下のURLでサービス提供されています。
http://waifu2x.udp.jp/

また、GitHubでプログラムもオープンソースで公開されています。
https://github.com/nagadomi/waifu2x

私が作ったものは、「waifu2x」のOSS(オープンソースソフトウェア)へ以下の機能を追加した、公式とは別の派生サービスになります。

  • 1. 複数ファイルのアップロード・拡大機能
  • 2. 動画の拡大機能
  • 3. 専有サーバによる高速な拡大処理
  • 4. サイズ制限の緩和

こちらは以下のURLで公開しています。

■waifu2x-multi (上記1のみ対応)
https://waifu2x.me/

■waifu2x-multi Pro (上記1~4のすべてに対応)
https://mng.waifu2x.me/

画面/利用イメージ

・まとめて一括変換
・動画対応

なぜ開発したか?

・waifu2xの凄さに驚いた

「waifu2x」は2015年5月17年に公開され、瞬く間に話題になりました。
作者の方が以下のブログ記事にまとめていらっしゃいます。

■二次元画像を拡大したいと思ったことはありませんか?
http://ultraist.hatenablog.com/entry/2015/05/17/183436

画像を綺麗に拡大する精度の凄さに驚きました。

ちょうどディープラーニングが話題になり出した時期でもあり、私も興味を持ち、早速触ってみたのが開発のきっかけです!

・複数画像へ対応すればもっと便利!

「waifu2x」を触っているうちに、一つ一つの画像ごとにアップロードするのが大変と感じてました。
そこで、複数画像の拡大に対応すれば、もっと便利に使えるのではと考えました!

・技術的な興味で動画対応させてみたかった

「waifu2x」を使って動画拡大する試みをやっている方がいて、自分も挑戦してみたいと考えました。
ただ、その試みもLinuxのコンソール上でスクリプトをたたいて実行するものしかなかったため、web上でできるようにすれば、利用者のハードルも下がると思い、作りました!

システム構成

・waifu2x-multi

https://waifu2x.me/

<特徴>

  • GPUインスタンスは全ユーザで共有

waifu2x-multi-システム構成図.png

  • ユーザがアップロードした画像はひとつのGPUインスタンスで変換処理してレスポンスを返すため、複数のユーザが同時に利用した場合は、その分、変換待ちが発生してしまう

・waifu2x-multi Pro

https://mng.waifu2x.me/

<特徴>

  • ユーザごとに専有のGPUインスタンスを生成
  • 複数インスタンスを同時に立てることもでき、その場合は画像/動画を並列に処理できる

waifu2x-multi-Pro-システム構成図.png

  • ユーザがアップロードした画像/動画はフロントサーバによってAmazon EFSへ格納してタスク化
  • 裏側で控えているバックエンドサーバによって、専有のGPUインスタンス(waifu2xサーバ)を立ち上げ、画像/動画の変換処理をwaifu2xサーバへ投げかける
  • waifu2xサーバはタスクがすべて終わるまで、Amazon EFSに格納された画像/動画を変換処理していく
  • 変換処理がすべて終わったら、バックエンドサーバによってwaifu2xサーバのインスタンスを停止

動画変換の仕組み

waifu2x-multi-Pro-動画変換の仕組み.png

  • ユーザからアップロードされた動画ファイルはwaifu2xサーバ上で、ffmpegを使って「各コマごとの画像」と「音声」へ分割
  • 各コマごとに分割された画像はすべてwaifu2xサーバで変換処理
  • すべてのコマ画像を変換後、ffmpegを使って「変換後の各コマ画像」と「音声」を結合して動画を生成

最後に

今開発している「AIメーカー」もそうですが、AIの可能性に興味を持ったのがきっかけで、2015年の5月頃から趣味でAIを使ったwebサービスの開発をするようになりました。

それを通してですが、こう考えるようになりました。
AIの可能性を機械学習に携わっている一部のエンジニアの人だけでなく、みんなにAIをさわってみてほしい!

AIはあくまでツールです。
現時点ではまだ万能でもありませんし、うまく活用するのは大変です。

ただ、「waifu2x」のように一部ジャンルではすごく成果を上げているものがあります。
AIが秘めている可能性を考えると、これを活用しない手はありません。

まずは触ってみるところからはじめましょう!
そのためのツールとして、僕は今「AIメーカー」を開発しています。

ぜひ「AIメーカー」を使って遊んでみてほしいです!

■AIメーカー
https://aimaker.io/

もっとみんながAIを気軽にさわれるようにすることで、こんなことに使えるんじゃないかと新たなアイディアが生まれることを期待しています。
あなたのちょっとしたアイディアが世界を変えるかもしれません!

現状、「AIメーカー」はまだ構想の一部しかできていないので、「みんなのAIプラットフォーム」となれることを目指し、僕も頑張ってこれからもっと機能を追加していきたいと思っています。

AIに少しでも興味をもって頂けましたら、ぜひ以下のアカウントをフォロー頂き、応援お願いします!

また、以下のツイートをいいね、リツイート頂けると嬉しいです!

・まとめて一括変換
・動画対応
・画像認識
・文字起こし