はじめに
はじめまして、きい と申します!
この度、Qiita初投稿をさせていただきます 。
私自身は情報系の大学に通っている学生です。
初学者のため、ご容赦ください。。。
(間違えてたら、コメントで指摘してくださると幸いです)
よろしくお願いします!
きっかけ
就活のために何かポートフォリオ的なものを作りたいなーていう軽い考えから始めました。
そこで注目したのがポケモン図鑑です。
(説明はいらないかもしれませんが)
ポケモン図鑑とはアニメ「ポケットモンスター」で主人公たちが使用する
発見したポケモンの名前とその他のステータス等を確認できるツールです。
↓Youtubeに動画ありました 14:17~
https://m.youtube.com/watch?v=soM4HD71b6k
小学生当時、
「カメラに写しただけでポケモン判別できるのすごいなー」
と子供ながらに思ってみていました笑
ちょうど大學の講義でyoloという物体認識のアルゴリズムを習ったので、
このアルゴリズムで作れそうだなと思い、計画したのが作成のきっかけです。
この記事で作成するもの
・YOLOを使って、ポケモンを分類できるモデル
今回はモデルを作るまでを行います。
yoloとは?
深層学習のアルゴリズムです。
YOLOは予め画像全体をグリッド分割しておき、各領域ごとに物体のクラスとbounding boxを求める、という方法を採用しています。
CNNのアーキテクチャがシンプルになったため、Faster R-CNNに識別精度は少し劣りますが45-155FPSの検出速度を達成しています。
検出速度が持ち味みたいですね。
今回はあんまり関係ないですが、実際にカメラを使って写したポケモンを検索するとなればかなり役に立ちそうな特徴ですね。
YOLOの欠点
分割されたグリッドサイズは固定かつ、グリッド内で識別できるクラスは1つ
検出できる物体の数は2つ
という制約があるため、 グリッド内に大量の物体がある場合に弱くなります。
参考文献:https://qiita.com/mshinoda88/items/9770ee671ea27f2c81a9
実行環境
・Windows11 home
・YOLOv5
・python 3.11.9
使用データ
自作したスクレイピングプログラムでGoogleから拾いました。
今回はフシギバナ系統の三体に限定して実験していきます。
(左からフシギダネ、フシギソウ、フシギバナ)
出典:ポケモンユナイトWiki
https://wikiwiki.jp/poke-unite/%E3%83%95%E3%82%B7%E3%82%AE%E3%83%90%E3%83%8A
ポケモン好きからすると、容易に判別できますが、
興味ない人から見るとフシギダネ、フシギソウは間違いそうな感じしますね。
それぞれ100枚をlabelimgでアノテーションしました。
訓練
batchは5
epochsは100
で行いました。(パラメータは適当です)
訓練結果
作成したモデルを使ってみよう
先ほどの説明の画像を使ってdetect.pyを実行し検出させてみる
他も何枚か試してみました。
面白いと思ったのが、この間違い。
いや、あってるけど笑
そっちじゃないのよ、
手前のでかいやつにフシギバナって出してほしいの!!
素人ながらの考えですが、背景が緑であることが検出できていない原因なのかなと思っています。
背景を抜けば分類できるのかな?
最後に
実際に記事を書いてみて改めて知ることも多いことに気がつきました。(yoloの説明など)
課題で忙しいですが、時間を見つけてまた続きを行いたいです。
ここまでお読みくださり、ありがとうございました!!