フレンズ画像を生成させてみたい-画像収集編(2) wiki, twitter

[前回の記事](https://qiita.com/knok/items/3f3c1d3eef4b435ed37e)ではゲームの攻略WikiとJRAコラボサイトを対象にしましたが、それ以外に試したこと、試していることを追記します。

# Wikiクローラーの更新

以前掲載したスクリプトには色々と足りない部分があったため、もう少し整理してgithubに置きました。

* https://github.com/knok/kemono-friends-images

## 属性とレアリティ別に分類

修正したスクリプトは、属性とレアリティの情報をページ本文を参照して取得し、ディレクトリ別に分けるようにしました。

## 先頭の1枚めの画像のみを取得

以前のスクリプトで収集した画像を確認したところ、1ページ内に保存されている画像数に随分幅があることに気づきました。そこで、もう少しWikiの個々のページを精査しました。その結果、次のような構造をしていることを確認しました。

* 最初の1枚めは必ず存在する
* キャラによっては以下の画像がある。すべてのキャラがそれぞれの情報を網羅できているわけではない
  * プロフィール (通常の立ち絵ではなく実際のゲームプレイ時の等身画像)
  * ステータス (実際には「スタータス」と書かれている場合もある)
  * 最大LV
* 末尾に掲示板的なものがあり、そこに個々人がとったスクリーンショットが貼られていることがある。当然枚数は不定 

あまりにも情報が不揃いなので、デフォルトで先頭の一枚のみを保存するように修正しました。

## Wiki画像の課題

集めた結果を精査してみて、改めて画像サイズの不揃いっぷりに軽く絶望しました。最瀕値は1104x621(117枚)です。最大サイズは2208x1242、最小は750x451です。思った以上に幅があります。
これをどうにかして正規化する必要があるわけですが、どうしたものか…

# ロッテリアコラボ

2017/11/15より、30日までツイッターにて[ロッテリアがコラボを実施](https://www.lotteria.jp/campaign/1711_kemono/?_beluga_date=20171101222132)しています。アカウントをフォローした上で、以下のツイートをRTもしくは引用ツイートすることで、13種類のクーポンURLが送られてきます。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/%E3%81%91%E3%82%82%E3%83%95%E3%83%AC%E3%83%AD%E3%83%83%E3%83%86%E3%83%AA%E3%82%A2?src=hash&amp;ref_src=twsrc%5Etfw">#けもフレロッテリア</a>　Twitterキャンペーン！<br>フォロー＆この投稿をRTで限定クーポン＆フレンズたちからのメッセージがDMで届くよ！※引用RTもOK！<br>さらに抽選でサインが当たる！ <a href="https://t.co/5VZudpWqie">https://t.co/5VZudpWqie</a>　<a href="https://twitter.com/hashtag/%E3%83%AD%E3%83%83%E3%83%86%E3%83%AA%E3%82%A2?src=hash&amp;ref_src=twsrc%5Etfw">#ロッテリア</a>　<a href="https://twitter.com/hashtag/%E3%81%91%E3%82%82%E3%81%AE%E3%83%95%E3%83%AC%E3%83%B3%E3%82%BA?src=hash&amp;ref_src=twsrc%5Etfw">#けものフレンズ</a>　<a href="https://twitter.com/hashtag/%E3%81%91%E3%82%82%E3%83%95%E3%83%AC?src=hash&amp;ref_src=twsrc%5Etfw">#けもフレ</a> <a href="https://t.co/zC4l1azFdh">pic.twitter.com/zC4l1azFdh</a></p>&mdash; ロッテリア (@lotteria_pr) <a href="https://twitter.com/lotteria_pr/status/930454935925227521?ref_src=twsrc%5Etfw">2017年11月14日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ランダムであるため、当然ながら13回ですべてが揃うことはまずないでしょう。すべて収集した人のスクリーンショットによるとキャラクター自体は新規絵3種類(サーバル、アライグマ、フェネック)とヒツジ(既存絵)のみのようです。無理して13種類すべてを集める必要はなさそうです(クーポン自体が目的でない限り)。

検証のためとはいえフォロワーに何度もツイートするのははばかられたので、一応一回だけRTした上で、検証用アカウントを作成して試行しました。新規アカウントで短時間にRTを繰り返した結果、アカウントの凍結をくらいました…
凍結解除手続きを行いつつ、その後はあまり集中的にRTしないように注意をしながら集めました。
Twitter凍結ははじめてだったので、自分が復帰までに行った手順を示しておきます。

* Webから凍結解除手続きを開始する
* reCAPTCHAに答える
  * 5x5ぐらいのサイズに区切られたストリート画像から道路標識が含まれている領域を選択する、という作業を10回ぐらい繰り返す
* 電話番号を登録し、SMSで送られてくる認証コードを入力する

収集したURLをキャンペーン期間内に公開するのはいくらなんでもまずいので公開はしません。そもそも3体分の画像しか得られないのでここで頑張る意味もあまりないでしょう。URL自体は連番+ランダム文字列という構成で、JRAコラボと異なり推測困難なURLにはなっていました。

# その他のソース

実際にクローリングしてみたり検討してみたりしたものの、あまり芳しくなかったサイト等についても述べておきます。

## gamebiz.jp

旧作スマホアプリ(ネクソン版)、新作アプリ(ブシロード版)の情報があります。合わせて画像も若干ながらありましたが、数は多くありません。アルファチャンネルを持ったデータもあましたが、全体的にサイズが若干小さめです。

* http://gamebiz.jp/article/tag/%E3%81%91%E3%82%82%E3%81%AE%E3%83%95%E3%83%AC%E3%83%B3%E3%82%BA

## 公式ツイッター

アニメ公式アカウントがツイートした画像の中には結構ゲームの画像も含まれていました。
ツイッターの画像収集にはberryjackを使いました。

* https://github.com/dyama/berryjack

# 今後

Wikiから収集した画像のtop3画像サイズ全体を合わせると284枚になるので、まずはこれらに絞って処理をしてみるのが良いかも知れません。

JRAから集めた82枚のみをchainer-gan-libのWGAN-pgで潜在空間2次元で訓練させた途中経過についても掲載しておきます。これまで少数の画像でGANを訓練させた結果と今の経過を見る限り、丸覚えを避けることはできそうにありません。「特徴の傾向がつかめる程度に多様性のある画像群」が集まらないとダメなのではないか、と思いつつあります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/31714/8cd00f9c-1960-faad-20af-ca98f12940c6.png)