トマシープが学ぶ

Unity/VR好きのミーハー初心者 記事内容は自分用のメモ。何も求めないで

六つ子を見分ける機械学習をしたい【調べるだけ】

AI

これができればとても強くなれそう。就活でもアピールできそう。

でも個人でやってもあんまり楽しくない。

楽しい題材が思いつかない。

でも思いついた。

六つ子を見分けるAI!(機械学習

f:id:bibinbaleo:20180124183319p:plain

追記:

すでにされている方が居ました。

bohemia.hatenablog.com

めっちゃスター付いてる。

私の経験

私の機械学習関係の経験としてはUdemyで機械学習の講座を受けたのと 

bibinbaleo.hatenablog.com

bibinbaleo.hatenablog.com

bibinbaleo.hatenablog.com

 授業でchainerを少し触ったぐらいです。

bibinbaleo.hatenablog.com

全部誰かがやっているのをコピペしただけなので自分一人では何もできないです。

 

流れとしてはムツゴの画像と正解をタグ付けしたデータを用意して、それの半分を学習させて、残りの半分でテストしていく感じかな

データ用意

「ムツゴの画像:名前」というデータを作る必要があります。

どれくらい集めればいいのでしょう?

www.slideshare.net

こちらのスライドによると1クラス10~100だそうです。1クラスってなんだろう?

一人につき10枚かな??

画像についてはアニメ本編のスクショ画像を大量に撮っているので(趣味で)、なんとかなると思う。著作権的に使っていいのかは知らない。

f:id:bibinbaleo:20180123165923p:plain

もし足りなくても、左右反転したり切り取り方を変えたり、明るさを変えることでカサ増しできるらしい。

画像にラベルをつける作業を「アノテーション」と呼ぶ。

また事前学習済みモデルというのを使って、あとはデータを変更するだけ、というのが今の主流だそうだ。 GPUを使わずに済む?Kerasがおすすめ

 

そういえば画素数は揃えないといけないのか?

顔を取り出す

www.mathgram.xyz

こちらでされているように私もアニメの顔をOpenCVで取り出してみようと思います。

OpenCVをインストールする段階でこんなエラーが出ました。

qiita.com

この通りにやったけど

 

source activate openCV の段階で

pyenv: -bash: command not found

[プロセスが完了しました]

ってでて先に進めない

ターミナル嫌い(5回目)

(openCV)$ conda install -c https://conda.anaconda.org/menpo opencv3

の(openCV)ってioencvが稼働している状況でってことかな???

 

こちらの記事も参考にやって見ました

www.takunoko.com

pyenv shell anaconda3-2.1.0 のところで

pyenv: no such command `shell'

と出てきました。ググってもよくわからない

 

OpenCVがインストールできたと仮定したら、あとは.pyファイルを作って、そこに移動して実行したらいいのかな?

OpenCVがない状態で

python kao.py

ってしたら

f:id:bibinbaleo:20180124174301p:plain

cv2ってなんだよって言われた。

 

ちなみにターミナルでのpythonファイルの使い方を忘れてたけど過去の自分の記事に書いてた。

本当に世界で一番私が信頼できる。

bibinbaleo.hatenablog.com

流れ

こちらの記事が参考になりそうだと思った。コードも全部書いてある。

employment.en-japan.com

Kerasを使って自分で用意した画像で画像識別ができるそうだ!一度使ったことがあるjupytar notebookを使ってる。

Chainerをjupyter notebookで触った - トマシープが学ぶ

ただAWSのサーバーを使っている。GPUも時間もあるから自分のパソコンでやりたい。

 

こちらの方が使っているkaggleの犬猫のデータを見て、データの作り方を学ぼうと思ったけど、ダウンロードできなかった。

aidiary.hatenablog.com

 

最後に見つけたこの記事が一番具体的でわかりやすかった気がします。

機械学習で芸能人の顔を分類してみよう! | mediba Creator × Engineer Blog

こちらはtensorflowでされています。芸能人の顔の収集はBingを使い顔の切り抜きはOpenCVを使っています。

 

またこちらの記事もオリジナルのデータセットでされています。

kivantium.hateblo.jp

「アニメゆるゆりの制作会社を識別」とは、ゆるゆりというアニメがクールに寄って制作会社が違うので、アニメのキャラの顔からどの制作会社かを判別するということらしいです。すごい。

やっと具体的なデータの書き方があった。

ここでは自前で用意したJPG画像とラベルの組を読ませることにします。

akari.jpg 0
chinatsu.jpg 1
kyoko.jpg 2
yui.jpg 3

のように画像名とラベルをスペース区切りで用意してtrain.txtなどのファイルに保存しておきます。

組み合わせはこんな感じにして 

1:oso おそ松

2:kara カラ松

3:choro チョロ松

4:ichi 一松

5:zyushi 十四松

6:todo トド松

最後に

ターミナルに苦手意識がありすぎるのであんまり気が進まない。

 

そもそもこういう画像認識=機械学習ってのも安直らしい。

qiita.com