マジンラーニング
タイトルオチ。
前回使ったSSDで今度は学習させた。漫画ドラゴンボールの魔人ブウの検出。
データ
ブウにはいくつかの形態がある。次の分類でやった。
- 無邪気:太ってるやつ
- 純粋悪:がりがりのやつ
- 悪、純粋:マッチョのやつ
悪と純粋は形態が違うのだが、画像のアノテーションデータを作っているうちに後半面倒くさくなった画像数も少ないし、頭身はともかく体格は似通っているので一緒にした。
学習データ、テストデータともにLabelImgでアノテーションデータを作成。LabelImgはPascalVOCかYOLOのフォーマットで出力できる。今回は前者を選択。
すべての画像についてアノテーションが終わったらssd_kerasリポジトリにあるget_data_from_XML.pyを参考にして、pklファイルを作る。これで準備完了。
学習
同じくssd_kearsにあるSSD_training.ipynbを参考にして実装。コードはこちら。
画像の数が絶対的に足りていないので、前回使ったネットワークの重みをベースにfine tuningした。実写画像の学習済みデータに対してイラストのfine tuningがどこまで有用なのか知らないが他に選択肢がない。細かいチューニングも未実施。どういうハイパーパラメータが何に効くのか知らない。職人芸の世界という印象。
ノートPCのCPU Corei7-4800MQだけで60epoch、全部で約280枚の画像ファイル(8割を学習データ、残りをテストデータに利用)の学習に八時間くらいかかった。
損失関数のグラフ。過学習ですね。
結果
訓練/テストデータにない画像で検出させてみる。コード。
ラベルはMujaki、JunsuiAku、Akuの三つ。
やはり無邪気以外は学習データの数が圧倒的に足りていないので検出精度が悪い。他の画像でも、特に純粋悪はほとんど検出できなかった。
何もわかっていない中で適当に動かしてみるのはやめて、以下の本で少しお勉強することにした。
- 作者: Francois Chollet,巣籠悠輔,株式会社クイープ
- 出版社/メーカー: マイナビ出版
- 発売日: 2018/05/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る