ニコニコ静画の学習済みchainerモデルを試してみた
ドワンゴではニコニコ静画(イラスト)のタグを学習したChainer用のモデルを配布してます。またそれを利用したタグ推定や類似画像検索などの技術デモのほか、応用事例として画像を元に閲覧数やお気に入り数を推定する研究を紹介しています。 https://t.co/5xIfiPD3L8
— Toshihiro Shimizu (@meso) 2015, 11月 2
を試してみました。
モデルファイルは上のnico-opendataより、必要なライブラリとコードはこちらから。github.com
モデルファイルは申請(規約に同意するだけ)してすぐダウンロードできます。約1GB。研究目的なら誰でもOKだそうです。
chainer1.3(1.4でも動きました)、pillow、numpy、argparseが必要。これが既に入っている人は別途
sudo pip install git+http://github.com/nico-opendata/niconico_chainer_models.git#egg=niconico_chainer_models
だけでOKです。
python2.7で動作確認済み、3系ではモデルファイルを読み込めませんでした。
学習済みモデルを使って予測するだけなのでCPUでも一瞬ですが、モデルファイルは解凍すると2.6GBになるのでそれ以上メモリが無いと試せないと思います。
AttributeError: addinfourl instance has no attribute 'seek'
とエラーが出る人はこれでpillowを新しいのに更新してみてください。
sudo pip install pillow -U
ダウンロードして解凍したファイル群にあるcharacter_series.txtのタグが推定されるようです。
どうも最近のアニメのキャラクターが中心のようで、アニメ=ドラゴンボール・幽遊白書なアラサーには名前がほとんどわかりません。
ワンピース、ドラえもん、アンパンマンなどの大御所はカバーされていました。ジャイアンはいない。ニコニコ静画に投稿された主にイラストデータが元なので、いわゆる同人的な創作活動によく使われるキャラがメインっぽいです。いまどき悟空なんて描く人いないんだろうな。
http://files.hangame.co.jp/blog/2009/43/27058597/01/03/18994571/27058597_1230980411008.jpg
こちらの画像で試してみるとこう出力されました。
tag: レミリア / score: 1.0
tag: レミリア・スカーレット / score: 1.0
tag: 東方 / score: 1.0
tag: 永江衣玖 / score: 1.0
正解は東方のレミリアスカーレットさん。
ただ永江衣玖というタグも出力しちゃっている。調べてみると永江衣玖とレミリアスカーレットの差がよくわからない。似てる。コウモリみたいな羽がスカーレットなのでしょうか。
永江衣玖で検索して出てきたこの画像だと、
http://blog-imgs-43-origin.fc2.com/r/a/k/rakueru/Tohou-Iku16.jpg
tag: 東方 / score: 1.0
tag: 永江衣玖 / score: 1.0
tag: 比那名居天子 / score: 8.98948082639e-10
と見事に正解。
初音ミク
http://internet.watch.impress.co.jp/img/iw/docs/611/175/miku06.png
tag: Lat式ミク / score: 1.0
tag: VOCALOID / score: 1.0
tag: 初音ミク / score: 1.0
タグにドラクエ関係もあったので試してみる。
http://www.jp.square-enix.com/dqsp/dq2/images/main_visual.jpg
tag: ドラゴンクエストX / score: 1.0
tag: 東方 / score: 0.999966025352
学習データが同人イラストなので元のオリジナル画像よりも同人画像の方がうまく分類できるのかもしれません。その辺りが好きな人にとっては楽しめるモデルになりそうです。
chainer初の大規模学習済みモデルの公開なのかな。
ありがとうドワンゴ。
おしまい。