中田真秀(なかたまほ)のブログ

研究について、日常について、その他。

Raspberry Pi2 はIkaLogの夢を見る(4)

2016-04-06 09:41:37 | 日記
IkaLog解析してみた。実際にゲームをやってみて、raspberry pi2で録画して、ちゃんとraspberry pi2で解析できるかどうかを試してみた。
ここまでくれば計算能力の低さ以外はなんとかなるはずである。10分録画して解析してみた。
$ sudo chomod a+rw /dev/vchiq
$ raspivid -o video.h264 -t 600000
$ export DISPLAY=:1
$ Xvfb :1 -screen 0 1024x768x16 &
$ export PYTHONPATH=/usr/local/lib/python3.4/site-packages;$PYTHONPATH
$ workon ikalog
$ LANG=ja_JP.UTF-8 /usr/bin/time python3.4 IkaLog.py --input_file video.h264
...中略...
ゲーム開始。ステージ: モズク農園, ルール: ガチヤグラ
Go!
やられた!
votes={'bamboo14mk2': 1, 'splatroller_collabo': 1, 'pablo': 6, 'hokusai': 2, 'pablo_hue': 4, 'squiclean_b': 14, '52gal': 1, 'h3reelgun_d': 2, 'prime': 1, 'l3reelgun_d': 1, 'barrelspinner': 1}
Cause of death: squiclean_b
やられた!
votes={'bamboo14mk2': 4, 'sharp_neo': 1, 'pablo': 1, 'carbon': 1, 'hokusai': 1, 'dualsweeper': 1, 'sharp': 21, '96gal_deco': 5}
Cause of death: sharp
たおした!
たおした!
やられた!
votes={'bamboo14mk2': 1, 'hoko_shot': 2, 'pablo': 1, 'daioika': 30}
Cause of death: daioika
やられた!
votes={'sharp': 35, 'pablo': 1}
Cause of death: sharp
やられた!
votes={'splatroller_collabo': 1, 'pablo': 4, 'squiclean_b': 16, 'pablo_hue': 2, '52gal': 1, 'liter3k': 1, 'hokusai': 2}
Cause of death: squiclean_b
やられた!
votes={'sharp_neo': 1, 'pablo': 4, 'splashbomb': 18, 'splatcharger': 1, 'h3reelgun': 2, 'quickbomb': 1, 'h3reelgun_d': 1, 'prime': 2, 'nova': 1}
Cause of death: splashbomb
やられた!
votes={'bamboo14mk2': 1, 'splatroller_collabo': 1, 'pablo': 7, 'hokusai': 1, 'squiclean_b': 20, 'kyubanbomb': 1, '52gal': 2, 'barrelspinner': 2}
Cause of death: squiclean_b
やられた!
votes={'sharp_neo': 2, 'longblaster': 3, 'hotblaster_custom': 12, 'longblaster_custom': 15, 'splatcharger': 1, 'prime': 1, 'propeller': 1}
Cause of death: longblaster_custom
やられた!
votes={'pablo': 2, 'sharp': 4, '96gal_deco': 6, 'bamboo14mk2': 9, 'sharp_neo': 6, 'carbon': 3, 'hydra': 1, 'hokusai': 1, 'hissen': 1, 'daioika': 1, 'liter3k': 1, 'nova': 1}
Cause of death: bamboo14mk2
やられた!
votes={'splatroller_collabo': 1, 'pablo': 2, 'prime': 1, 'splatcharger': 3, 'hokusai': 1, 'daioika': 1, 'splashbomb': 25, 'nova': 1}
Cause of death: splashbomb
やられた!
votes={'dynamo': 1, 'pablo': 1, 'hydra': 1, 'quickbomb': 1, 'sshooter_collabo': 1, 'sharp': 31}
Cause of death: sharp
たおした!
やられた!
votes={'dynamo': 2, 'sharp_neo': 1, 'pablo': 2, 'sharp': 26, 'nova': 1, 'liter3k': 4}
Cause of death: sharp
We lost the lead!
We lost the lead!
たおした!
たおした!
やられた!
votes={'bamboo14mk2': 4, 'sharp_neo': 4, 'pablo': 1, 'carbon': 1, 'hissen': 2, 'dualsweeper': 1, 'sharp': 6, 'hoko_shot': 1, '96gal_deco': 5}
Cause of death: sharp
Game End.
trigger event
596.864s <ikalog.scenes.game.timer_icon.GameTimerIcon object at 0x76850890>
...中略...
5630.80user 703.61system 3:38:17elapsed 48%CPU (0avgtext+0avgdata 84332maxresident)k
419769616inputs+736outputs (1943222major+36994125minor)pagefaults 0swaps

3時間38分かかってる。

一つ誤検出があった。

votes={'pablo': 2, 'sharp': 4, '96gal_deco': 6, 'bamboo14mk2': 9, 'sharp_neo': 6, 'carbon': 3, 'hydra': 1, 'hokusai': 1, 'hissen': 1, 'daioika': 1, 'liter3k': 1, 'nova': 1}
Cause of death: bamboo14mk2
やられた!

は、一四式竹筒乙ではなく、シャープマーカーであった。


反省点

  • 6分程度の動画を解析するのに3時間38分はかかりすぎ!次はこの対策を考える。
  • もっとビットレートを下げて録画してもよい。ffmpeg -i の結果は、Stream #0:0: Video: h264 (High), yuv420p, 1920x1080, 25 fps, 25 tbr, 1200k tbn, 50 tbc
  • 上のおかげで処理時間がやたらかかっているし、microSDにも負担がかかっている。I/Oが足かせでなければ、もっとCPUが使われているはずである。
  • 動画だけをストリーム配信して、Macをホストにしてikalogを走らせる、というのもアリだと思われる。
  • 720p30じゃなくて1080p25になってた?? (raspividのパラメータがおかしかった、デフォルトで引き伸ばされるらしい) ご検出はこれが原因か?
  • サンプル動画は、1280x720 [SAR 1:1 DAR 16:9], 2509 kb/s, 30 fpsであった