AIで遊べるデモサイト「AI World2」

## はじめに
以前公開したAIのデモサイト「[AI World](https://qiita.com/jw-automation/items/5cbb1c1cad08010dd823)」に、4つのデモを追加しました。

<img width=400 src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/adc31a64-a205-1a33-7c82-203ccbf694bf.gif>

今回もスマホでも遊べるので、良かったら触ってみて下さい。

↓スマホでの表示
<img width=400 src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/96f9f44a-2692-3727-3b22-d355cc3282d3.png>

■デモサイト
[AI World](https://jw-automation.com/aiworld)

■環境
Python, AWS(Lightsail), Flask, Docker

## 追加デモ一覧
今回追加したデモは、以下の通りです。

|#|タイトル|内容|利用モデル
|:-|:-|:-|:-|
|1|Image Sampling|シングルショット画像からのサンプリング|<ul><li>SinGAN</li></ul>|
|2|Text to Image|テキストからの画像生成|<ul><li>GLIDE</li></ul>|
|3|Landscape Generation|風景画像生成|<ul><li>Lightweight GAN</li></ul>|
|4|Mask Tracking|動画でのインスタンスセグメンテーション|<ul><li>MaskTrack R-CNN</li></ul>|

以下、それぞれのデモについて簡単に紹介していきます。

## 1. Image Sampling
こちらはSinGANを使ったシングルショット画像からの画像サンプリングのデモです。
<img width=400 src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/adc31a64-a205-1a33-7c82-203ccbf694bf.gif>

SinGANのトレーニングに使用するのは、上部に表示されているオリジナル画像1枚のみで、「New Sampling」を押すと、オリジナル画像を元に、SinGANが生成した画像が返されます。

また、SinGANにはアスペクト比の制約がないため、「scaleup」を選択した際には、元画像の幅の8倍のスケールでSinGANに生成させた画像をスクロールで表示させています。

SinGANは応用範囲も広く、学習に利用する画像が1枚だけというはやはり面白いですね。

## 2. Text to Image
こちらはOpenAIによって発表された、DiffusionモデルベースのGLIDEを使用した、テキストからの画像生成のデモです。左側に表示されたテキストを入力として、GLIDEが生成した画像を10枚右側に表示させています。

<img width=400 src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/65a395ce-9bf1-fd8e-a748-7035bb4a60da.gif>

改めてですが、任意のテキストに対してゼロショットでこれはとんでもないですね。

一方で、適応可能領域が汎用的になればなるほど、AIの倫理問題は常に考えて行く必要があるなと改めて実感しました。

## 3. Landscape Generation
こちらはLightweight GANを使った、風景画像生成のデモです。

<img width=400 src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/a024c214-23d0-089f-31e6-79d1451fe7a3.gif>

GANは学習に大量のデータと計算リソースが必要となるのがボトルネックでしたが、Lightweight GANは数百~千枚程度の画像と1GPUでも、それなりに品質の高い画像が生成できます。

今回は1000枚程度の風景画像を用意し、Colaboratoryで20時間ほど回して学習させました。トレーニングしたモデルに生成させた画像の中で、出来が良かった物を100枚近く選んでいます。

ざっと一覧が見たい方は、以下のような形で、AI用のInstagramにも画像を貼っているので、こちらを参照して頂ければと思います。

<img width=400 src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/395990f6-b35b-61cf-bce5-3afa361020e3.jpeg>

[Landscape Generation samples(Instagram)](https://www.instagram.com/jw_automation/)

これに関してはスタイル変換や超解像、3D化など色々とアップデートして行きたいと思います。

## 4. Mask Tracking
こちらはMasktrack R-CNNを利用した、Video Instance Segmentationです。

<img width=400 src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431306/4d4603ad-0b26-8f12-364a-13a807608bc2.gif>

上がオリジナルの動画で、下にMasktrack R-CNNによってオブジェクトがセグメンテーションされた動画を表示させています。

上記のアニメーションは投稿サイズの関係上、画質をかなり落としているため、実際のイメージはデモサイトを見て頂ければと思います。少し小さいですが、同一オブジェクトのバウンディングボックスに同じIDのラベルが振られ、トラッキングされているのがわかると思います。

## まとめ
いかがだったでしょうか。

今回は4つでしたが、また定期的に面白いモデルやアプリケーションのデモを公開していければと思います。

■参考
Qiita記載記事
・[AIで遊べるデモサイト「AI World」](https://qiita.com/jw-automation/items/5cbb1c1cad08010dd823)
・[Deep Metric Learning](https://qiita.com/jw-automation/items/7bbe1c872fcec7fa6c1d)
・[Deep Learning for Image Denoising](https://qiita.com/jw-automation/items/f942ea0c6a02e8e50fa2)
・[画像処理で遊べるデモサイト「IP World」](https://qiita.com/jw-automation/items/db9994c8f15525db7f2d)
・[ホテル暮らしはクラウドである](https://qiita.com/jw-automation/items/2fcd6f6e15e470196646)
・[AIの実業務適用に必須なHITLという考え方と、HITLを加速させるAI×RPA](https://qiita.com/jw-automation/items/0fc9c1b9764233975ab9)
・[RPAの推進に必須なRPAOpsという考え方](https://qiita.com/jw-automation/items/53c45b7dfc7a5865c5ff)
・[VBAが組める人ならRPAは簡単に作れるという罠](https://qiita.com/jw-automation/items/38c28016bf5162e76c59)

個人ブログ
・[キャリア・フレームワークなど](https://jw-automation.com/blog)