マジンラーニング
タイトルオチ。
前回使った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件) を見る
画像にクラウドを載せる
ドッグイヤーを超える速さで驀進するAI界隈では何百周遅れなのかわからないが、機械学習で遊び始めた。まずは学習結果の単なる利用者になる。
すやり霞という大和絵の表現技法がある。こんな感じで横にびよーっと伸びている雲のような何か。
画像に写っている物体を検出した結果に対して、その物体に重ならないようにすやり霞のようなものを描く。
機械学習のライブラリはTensorFlow+Keras、物体の検出はSSDの学習結果として公開されているサンプルを利用した。
Jupyter Notebookでいろいろ試してみた。ipynbファイルはこちら。下の元画像はすべてPixabayからCC0のものをダウンロードして使った。
ラスト二枚のイラストも人だと検出している。一番下は人または馬かもみたいなことになっているが。
SSDの論文を見ると公開サンプルの学習用データセットには以下を使っていると記載がある。
- Microsoft COCO trainval35k
- VOC 2007 trainval, test
- VOC 2012 trainval
これらの中にはイラストはないようだが、手元でいくつか試すとタッチが比較的リアルに近い場合は割と検出してくれた。特徴量としても似ているのか(よくわかってない)。
付点音符の点を増やす
付点音符の点の数についてLilypondのメモ。
七個くらいなら問題なく重ねられた。MIDI出力もできた。
\version "2.16.2" \paper { #(set-paper-size "a7" 'landscape) } \header { title = "複付点" subtitle = " " tagline = ##f } \score { \relative c' { \tempo "Marcato" 4 = 120 \time 4/4 c1.......( f'128) | c,16 d16. e16.. f16... g16.... a16..... b16...... c16....... d | c1 \bar "|." } \layout { } \midi { } }
実用上は三個までで充分。
EyeProofで視線を可視化する
The Eye Tribe Trackerは今の時点では開発者向けパッケージしかなく、視線のデータを使って何かをするアプリケーションは自分で作る必要があった。しかし、つい最近、The Eye Tribe Trackerと連携して視線のデータを解析・可視化するウェブアプリEyeProofがスタートした。今はまだクローズドβだけれど、一般公開されれば、デバイスさえ買えばプログラムを一行も書かずにヒートマップやスキャンパスを作ることができる。
参加者に応募していたら当選して招待メールが届いたので、使ってみた*1。
操作はとても簡単。
- まず、対象とする画像*2をEyeProofにアップロードして、呈示と切り替えのタイミングを設定する。
- 次に、PCにThe Eye Tribe Trackerを繋いで、専用のクライアントソフトを起動して、呈示される画像を眺める。
- 最後に、いくつか用意されている解析方法のどれを適用するかを選ぶ。これだけで視線を可視化できる。専門知識はいらない。
複数の被験者でデータを採って、その統計情報を取得することもできるようだ。
下の画像は、解析方法にスキャンパスを選んで可視化したところ。
結果
スキャンパス:視線の軌跡
昔、ITU Gaze Trackerというソフトと自作プログラムでスキャンパスのようなものを作ったことがあるが、それよりずっと簡単に綺麗な結果が得られるようになった。
視線追跡が身近になってきた。いろいろなデータが見たい。
百人一首の形態素解析
Ubuntu 14.04 LTSがリリースされた。
少し前には中古和文UniDicも更新されていた。
何の関係性もないけど、新しい仮想環境を作って遊んだ。
前にやったときの記事:MeCabで古文の形態素解析。
さて、小倉百人一首 第85番を解析にかけたところ、いきなり、夜もすがら、とそのまま出てきた。
解析に失敗しているのではと疑って意味を検索した(無教養)。
echo "夜もすがら 物思ふころは 明けやらで 閨のひまさへ つれなかりけり" | mecab -d ./unidic-mecab/ 夜もすがら 副詞,*,*,*,*,*,ヨモスガラ,夜もすがら,夜もすがら,ヨモスガラ,ヨモスガラ,和,夜もすがら,ヨモスガラ,ヨモスガラ,ヨモスガラ,*,*,*,*,*,*,"0,3",*,* 物 名詞,普通名詞,サ変可能,*,*,*,モノ,物,物,モノ,モノ,和,物,モノ,モノ,モノ,*,*,*,*,*,*,"2,0",C4,* 思ふ 動詞,一般,*,*,文語四段-ハ行,連体形-一般,オモウ,思う,思ふ,オモウ,オモフ,和,思ふ,オモウ,オモフ,オモウ,*,*,*,*,*,*,2,C1,* ころ 名詞,普通名詞,副詞可能,*,*,*,コロ,頃,ころ,コロ,コロ,和,ころ,コロ,コロ,コロ,コ濁,基本形,*,*,*,*,1,C3,* は 助詞,係助詞,*,*,*,*,ハ,は,は,ワ,ハ,和,は,ワ,ハ,ハ,*,*,*,*,*,*,*,"動詞%F2@0,名詞%F1,形容詞%F2@-1",* 明け 動詞,一般,*,*,文語下二段-カ行,連用形-一般,アケル,明ける,明け,アケ,アケ,和,明く,アク,アク,アク,*,*,*,*,*,*,0,C2,* やら 動詞,非自立可能,*,*,文語四段-ラ行,未然形-一般,ヤル,遣る,やら,ヤラ,ヤラ,和,やる,ヤル,ヤル,ヤル,*,*,*,*,*,*,0,C4,* で 助詞,接続助詞,*,*,*,*,デ,で,で,デ,デ,和,で,デ,デ,デ,*,*,*,*,*,*,*,動詞%F2@0,* 閨 名詞,普通名詞,一般,*,*,*,ネヤ,閨,閨,ネヤ,ネヤ,和,閨,ネヤ,ネヤ,ネヤ,*,*,*,*,*,*,"1,2",C3,* の 助詞,格助詞,*,*,*,*,ノ,の,の,ノ,ノ,和,の,ノ,ノ,ノ,*,*,*,*,*,*,*,名詞%F1,* ひま 名詞,普通名詞,形状詞可能,*,*,*,ヒマ,暇,ひま,ヒマ,ヒマ,和,ひま,ヒマ,ヒマ,ヒマ,*,*,*,*,*,*,0,C3,* さへ 助詞,副助詞,*,*,*,*,サエ,さえ,さへ,サエ,サヘ,和,さへ,サエ,サヘ,サエ,*,*,*,*,*,*,*,"名詞%F2@1,動詞%F2@0,形容詞%F2@-1",* つれなかり 形容詞,一般,*,*,文語形容詞-ク,連用形-補助,ツレナイ,つれない,つれなかり,ツレナカリ,ツレナカリ,和,つれなし,ツレナシ,ツレナシ,ツレナシ,*,*,*,*,*,*,3,C1,* けり 助動詞,*,*,*,文語助動詞-ケリ,終止形-一般,ケリ,けり,けり,ケリ,ケリ,和,けり,ケリ,ケリ,ケリ,ケ濁,基本形,*,*,*,*,*,*,* EOS
百首すべて解析して、品詞と単語の出現頻度をmatplotlibで円グラフにした。
品詞の出現頻度。n=550。
単語の出現頻度。
上位11位以下を「その他」にすると助詞と助動詞しか上位に来ない。
自立語と付属語で分けた場合。
自立語はまだ「その他」が圧倒的に多い。
ところで、今回の結果では接続詞として唯一「さて」が出ているが、さすがに和歌に接続詞はないだろうと思って原文を検索してみたら、
思ひわび さてもいのちは あるものを 憂きにたへぬは 涙なりけり
の副詞「さても」を誤って解析していることが分かった。
この単語しか確認していないけど、他にも誤りはあると思った方がいい。高校生が古文の宿題を解くのに全面的に信頼して使ってはいけない。