AI
これができればとても強くなれそう。就活でもアピールできそう。
でも個人でやってもあんまり楽しくない。
楽しい題材が思いつかない。
でも思いついた。
六つ子を見分けるAI!(機械学習)
追記:
すでにされている方が居ました。
めっちゃスター付いてる。
私の経験
私の機械学習関係の経験としてはUdemyで機械学習の講座を受けたのと
授業でchainerを少し触ったぐらいです。
全部誰かがやっているのをコピペしただけなので自分一人では何もできないです。
流れとしてはムツゴの画像と正解をタグ付けしたデータを用意して、それの半分を学習させて、残りの半分でテストしていく感じかな
データ用意
「ムツゴの画像:名前」というデータを作る必要があります。
どれくらい集めればいいのでしょう?
こちらのスライドによると1クラス10~100だそうです。1クラスってなんだろう?
一人につき10枚かな??
画像についてはアニメ本編のスクショ画像を大量に撮っているので(趣味で)、なんとかなると思う。著作権的に使っていいのかは知らない。
もし足りなくても、左右反転したり切り取り方を変えたり、明るさを変えることでカサ増しできるらしい。
画像にラベルをつける作業を「アノテーション」と呼ぶ。
また事前学習済みモデルというのを使って、あとはデータを変更するだけ、というのが今の主流だそうだ。 GPUを使わずに済む?Kerasがおすすめ
そういえば画素数は揃えないといけないのか?
顔を取り出す
こちらでされているように私もアニメの顔をOpenCVで取り出してみようと思います。
OpenCVをインストールする段階でこんなエラーが出ました。
この通りにやったけど
source activate openCV の段階で
pyenv: -bash: command not found
[プロセスが完了しました]
ってでて先に進めない
ターミナル嫌い(5回目)
(openCV)$ conda install -c https://conda.anaconda.org/menpo opencv3
の(openCV)ってioencvが稼働している状況でってことかな???
こちらの記事も参考にやって見ました
pyenv shell anaconda3-2.1.0 のところで
pyenv: no such command `shell'
と出てきました。ググってもよくわからない
OpenCVがインストールできたと仮定したら、あとは.pyファイルを作って、そこに移動して実行したらいいのかな?
OpenCVがない状態で
python kao.py
ってしたら
cv2ってなんだよって言われた。
ちなみにターミナルでのpythonファイルの使い方を忘れてたけど過去の自分の記事に書いてた。
本当に世界で一番私が信頼できる。
流れ
こちらの記事が参考になりそうだと思った。コードも全部書いてある。
Kerasを使って自分で用意した画像で画像識別ができるそうだ!一度使ったことがあるjupytar notebookを使ってる。
Chainerをjupyter notebookで触った - トマシープが学ぶ
ただAWSのサーバーを使っている。GPUも時間もあるから自分のパソコンでやりたい。
こちらの方が使っているkaggleの犬猫のデータを見て、データの作り方を学ぼうと思ったけど、ダウンロードできなかった。
最後に見つけたこの記事が一番具体的でわかりやすかった気がします。
機械学習で芸能人の顔を分類してみよう! | mediba Creator × Engineer Blog
こちらはtensorflowでされています。芸能人の顔の収集はBingを使い顔の切り抜きはOpenCVを使っています。
またこちらの記事もオリジナルのデータセットでされています。
「アニメゆるゆりの制作会社を識別」とは、ゆるゆりというアニメがクールに寄って制作会社が違うので、アニメのキャラの顔からどの制作会社かを判別するということらしいです。すごい。
やっと具体的なデータの書き方があった。
ここでは自前で用意したJPG画像とラベルの組を読ませることにします。
のように画像名とラベルをスペース区切りで用意してtrain.txtなどのファイルに保存しておきます。
組み合わせはこんな感じにして
1:oso おそ松
2:kara カラ松
3:choro チョロ松
4:ichi 一松
5:zyushi 十四松
6:todo トド松
最後に
ターミナルに苦手意識がありすぎるのであんまり気が進まない。
そもそもこういう画像認識=機械学習ってのも安直らしい。