takemikami’s note	– http://takemikami.com/
みかみんP (フリーランスITエンジニア)		twitter:	@takemikamas
担当アイドルに反応してLチカさせる予測モデル開発
IoTLT vol.18	その後
1
TensorFlow Keras OpenCV Arduino
2017.5.17	アイマスエンジニア MeetUp In	Tokyo
Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
takemikami’s note	– http://takemikami.com/
はじめに
この発表は、
「2016.8.12	IoT縛りの勉強会!	IoTLT vol.18」で発表した
TensorFlowで遊びながら学んだ、はじめてのLED点滅
〜データ屋がはじめてArduinoさわってみた
のその後のアイドル識別精度改善のお話です。
2Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
takemikami’s note	– http://takemikami.com/
はじめに
• IoTということで
3Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18でのお話
IDOL	M@STER					OpenCV TensorFlow
これらを使って遊びながら、LED点滅(IoTの第一歩)をやってみます!
takemikami’s note	– http://takemikami.com/
やってみたこと
4Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18でのお話
やってみたことの概要を説明します。
アイドルを識別して、特定のアイドルの場合にLEDを点滅させる
アイドル
マスター
OpenCV TensorFlow
Arduino
LED
・画像を抽出 ・顔認識 ・クラス分類
(アイドルの識別)
・LED点滅
(該当アイドルの時)
takemikami’s note	– http://takemikami.com/
TensorFlowとは
• DistBeliefというGoogleのサービスに使われている社内ツールを
OpenSourceにしたもの
• ディープラーニング/多層ニューラルネットワークが実装できる
• データフローグラフによって、
自由度の高いネットワークを記載できる
• 画像処理の関数も用意されている
5Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18でのお話
TensorFlowの紹介をします。
オープンソースの機械学習ライブラリ
→画像のクラス分類などに利用できる(チュートリアルがそれ)
今回は、Tensorflowをbackendとした
Kerasで実装
→パラメータなど変更しやすくなった
takemikami’s note	– http://takemikami.com/
OpenCVとは
• 画像処理: 画像変換、補間など
• 構造解析: 輪郭処理や平面再分割など
• モーション解析・物体追跡
• パターン認識
• カメラキャリブレーション・三次元再構成
• 機械学習: クラス分類やクラスタリングなど
• ユーザインターフェイス: ビデオ入出力など
6Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18でのお話
OpenCVの紹介をします。
OpenCV =	Open	Source	Computer	Vision	Library
→画像や動画の便利な処理がいろいろ出来るライブラリ
takemikami’s note	– http://takemikami.com/
アイドルマスターとは
7Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18でのお話
アイドルマスターの紹介をします。
アイドル
育成・プロデュースゲーム
以上。
takemikami’s note	– http://takemikami.com/
実装方法について
• 実装言語:Python
– 開発環境: Jupyter notebookから実行
– Arduinoとの通信:pyserial
• アイドルの識別方法
– アルゴリズム:
畳み込みニューラルネットワーク(Convolutional	Neural	Network)
– 教師データの抽出方法:
アイドルマスタープラチナスターズの
アイドル毎のプロモーション動画の前半部分から画像を切り出し
– 学習の流れ:
雪歩・美希・やよいのデータを教師データとして、
各アイドルに分類する予測モデルを作成
8Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18から更新
実装方法について紹介します。
雪歩orNotの2値分類
していたものから変更
takemikami’s note	– http://takemikami.com/
OpenCVによる顔認識
9Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18でのお話
※ゲームソフトから取得した画像を含むため公開は省略します。
takemikami’s note	– http://takemikami.com/
教師データ
10Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18でのお話
雪歩
美希
やよい
美希の髪の色が特徴的で、
2値分類だと、
やよい・雪歩が
区別できないことが
多かった
学習データの解像度を
32x32→64x64
※ゲームソフトから取得した画像を含むため公開は省略します。
takemikami’s note	– http://takemikami.com/
アイドル識別
11Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18から更新
※ゲームソフトから取得した画像を含むため公開は省略します。
takemikami’s note	– http://takemikami.com/
アイドル識別
12Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18から更新
※ゲームソフトから取得した画像を含むため公開は省略します。
takemikami’s note	– http://takemikami.com/
pyserialによるArduinoへの通信
13Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
IoTLT vol.18でのお話
takemikami’s note	– http://takemikami.com/
まとめ
• 前回、アイドル識別の精度が出せなかったのは。
• ①TensorFlowを生で使うと、パラメータ変更が大変だった
– データセットの解像度を上げる変更
– 2値分類から3値分類に変更
• ②やはり機械学習にはマシンスペックが必要だった
– macbook(12inch):	Core	m5	2.7GHz→ macbook pro:	Core	i7	3.6GHz
14Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.

担当アイドルに反応してLチカさせる予測モデル開発