AIによるトレイルカメラの野生動物識別【第5回】識別能力の検証
投稿日:2024年5月10日
運営会社:株式会社 地域環境計画
投稿日 : 2024年05月10日
こんにちは、(株)地域環境計画の印部です。
前回は、labelImgを用いたアノテーション作業について説明しました。今回は物体検知の「学習済モデル(.Ptファイル)」を作るための「データセット」を準備し、実際にPython環境で学習したいと思います。
前回まではアライグマの分布拡大状況のモニタリングを前提に、話を進めてきましたが、「学習済モデル(.Ptファイル)」自体は、アライグマ1種に限らず、哺乳類の複数種を同時に識別する学習済モデルを作成していきたいと思います。
全国各地から収集した哺乳類13種の画像データをもとに、【第3回】で説明したアノテーション作業を行い、これらのデータを学習データ(Train)、検証データ(Val)、評価データ(test)に分けます。割合はいくつかパターンがあるようですが、今回は一般的に使われる7:2:1とします。
データの分割は専用のライブラリを使っても良いですが、あまり神経質にならず、エクセルで乱数を使って分けても良いでしょう。
哺乳類13種のデータセット
種名 | クラス名 | Train | Val | Test |
アライグマ | procyon | 3662 | 1046 | 566 |
ニホンジカ | cervus | 3085 | 822 | 421 |
イノシシ | sus | 1759 | 495 | 266 |
タヌキ | nyctereutes | 2664 | 719 | 376 |
ハクビシン | paguma | 916 | 288 | 151 |
キツネ | vulpes | 1194 | 343 | 180 |
テン | martes | 1453 | 419 | 210 |
ウサギ | lepus | 2388 | 693 | 351 |
カモシカ | capricornis | 3431 | 965 | 460 |
アナグマ | meles | 1688 | 493 | 230 |
ネコ | feris | 1797 | 466 | 263 |
ニホンザル | macaca | 1041 | 289 | 136 |
ツキノワグマ | ursus | 2689 | 816 | 371 |
データセットの特徴をあげると、13種の野生動物は全てトレイルカメラで撮影されたもので、動物園で撮影した画像などは使っていません。また、データの水増し作業(元の画像に対して様々な変換を加えて学習データを増やすこと)も行っていません。純粋に自然の野外で撮影した動画(画像)がもとになっています。
背景画像の学習に関しては、Ultralytics社によると、FP(False Positives:誤検出)を減らすために0~10%程度含めることが推奨されていますが、今回の学習モデルには含めておりません(画像分類モデル(Classification)を作る場合は背景画像が必須なのでご注意を)。
データ量的には少し物足りない感じですが、今回はこれで試してみたいと思います。
YOLOv8の学習の仕方はUltalytics社のページ(https://docs.ultralytics.com/)に詳しいので省略します。
学習のエポック数は300エポックから初めたところ、過学習が発生している様子だったので、徐々にエポック数を減らし、最終的に100エポックとしました。
学習にかかる時間はローカルPCのGPUで処理して7~8時間でしたが、Google Colaboratoryを利用するとTPUやハイスペックのGPUが使えるので、もう少しパフォーマンスが良くなるかも知れません。
さて、学習を終えると、作成した物体検出モデルの有効性を評価するために、評価指標のセットが出力されます。なかでも、以下に示す混合行列と呼ばれるマトリックスはデータセット内の各クラスの実測値と予測値の比較を容易にし、真陽性、真陰性、偽陽性、偽陰性、精度、再現率、F1スコアなどの主要な指標の計算のもとになります。
今回作成したモデルの混合行列を眺めると、かなり高い精度で実測値と予測値が合致していることがわかります。準備したデータセットに偏りがあるせいかも知れませんが、とりあえずは実用に使えそうです。
少し気になる点は「イノシシ(sus)」と「ネコ(feris)」の間に誤検出があることです。この結果をみて、イノシシとネコの誤検知が何故起きたのか、データセットの内容を詳しく見るなど、今後の修正方針を検討するヒントが得られます。
次回は、いよいよ、作成した「学習済モデル(.Ptファイル)」を使って、オリジナルの調査地点の動画をもとに、野生動物の物体検知を試してみたいと思います。
この記事を書いた人
AIによるトレイルカメラの野生動物識別【第5回】識別能力の検証
投稿日:2024年5月10日
AIによるトレイルカメラの野生動物識別【第1回】事前準備と環境設定
投稿日:2024年5月9日
入門:自動撮影カメラ(トレイルカメラ)って、どんなカメラ?~フラッシュ・電源・画像保存・防水機能について~
投稿日:2017年7月28日
キツネによる農作物被害と対策~電気柵やトレイルカメラの活用について
投稿日:2017年6月15日
先頭へ