アフリカの野生動物データセットを使用して、野生の動物を検出するYOLO モデルを訓練し、未見の画像に対して推論を実行するためにモデルを使用する方法を学びます。
私たちの地球の野生生物は、ブンブン飛び回るミツバチからそびえ立つゾウまで、驚くほど多様であり、この生物多様性を維持することは、バランスのとれた生態系を維持するための重要な鍵となる。しかし、生息地の減少、密猟、気候変動などにより、保護活動はますます困難になっている。これらの要因はすべて、野生生物の個体数に悪影響を及ぼす。
カメラトラップの画像を手作業で分析したり、現地調査を行ったりするような従来の動物モニタリング方法は、時間がかかり、多くの資源を必要とする。こうした取り組みでは、広い地域や大きな個体群を効果的にカバーできないことが多い。
こうした制約を克服するために、人工知能(AI)を野生生物保護におけるインパクトのあるツールとして使用することができる。具体的には Ultralytics YOLO11のようなコンピュータ・ビジョン・モデルは、画像や動画などの視覚データを分析し、動物のリアルタイム識別と追跡を自動化することができる。
YOLO11サポートする物体検出やインスタンス分割のようなコンピュータ・ビジョン・タスクは、ここで非常に役に立つ。視覚データを分析することで、これらのタスクは重要なデータを収集し、生態学的パターンを特定し、環境脅威により効果的に対応するのに役立つ。
この記事では、YOLO11 動物を検知させるためのトレーニング方法を説明します。さっそく始めよう!
チュートリアルに入る前に、YOLO11トレーニングや使用に必要なさまざまな設定オプションやツールについて見てみましょう。
必要な主なツールはUltralytics Python パッケージで、トレーニング、オブジェクトの検出、推論の実行などのタスクでYOLO モデルを簡単に扱うことができます。Ultralytics パッケージを使用するには、コードを実行するための環境をセットアップする必要があります。
ここでは、開発環境を設定するための最も一般的なオプションをいくつか紹介する:
Ultralytics 公式ドキュメントで調べることができる環境設定のオプションは他にもありますが、上記の3つのオプションはほとんどセットアップが必要なく、使いやすいので、すぐに始めるのに理想的です。
このチュートリアルでは、Google Colab、Jupyter Notebooks、またはシンプルなPython ファイルを使ったYOLO11 セットアップとトレーニング方法を紹介する。
開発環境を選択した後、YOLO11 野生動物を検出できるように訓練するためには、ラベル付けされた画像の高品質なデータセットが必要だ。それぞれの画像には、どこにどのような種類の動物がいるのかが明確に示されている必要があり、教師あり学習によってモデルが動物の認識を学習できるようにする。
このチュートリアルでは、African Wildlife Dataset を使用します。これはUltralytics Python パッケージによってサポートされており、アフリカの生態系で一般的に見られる動物を検出するために特別に設計されています。バッファロー、ゾウ、サイ、シマウマの4つの主要種の注釈付き画像が含まれています。
African Wildlife Datasetの主な特徴は以下の通り:
さて、アフリカ野生動物データセットを探索したところで、画像中の動物を検出するYOLO11 モデルのトレーニングを始めましょう。このプロセスでは、開発環境のセットアップ、YOLO11 モデルのトレーニング、モデルの性能評価を行います。
始めに、モデルのトレーニングとテストのための環境を準備する。Google Colab、Jupyter Notebooks、またはシンプルなPython ファイルを、好みに応じて使用することができる。Google Colabノートブック、Jupyterノートブック、Python ファイルを適宜新規作成する。
Google Colabを使用している場合、デフォルトの環境はCPU (Central Processing Unit)で実行されるため、トレーニングが遅くなる可能性があります。プロセスをスピードアップするには、特に大きなモデルの場合、ランタイムをGPU切り替えることができます。Google Colabでは、メニューの "Runtime "タブに移動し、"Change runtime type "を選択し、ハードウェアアクセラレータをGPU (できればT4GPU)に設定することができます。これはトレーニング時間を短縮するために重要です。
次に、どの環境を使用しているかに関わらず、Ultralytics Python パッケージをインストールする必要がある。ノートブックベースの環境Google ColabやJupyter)を使っている場合は、感嘆符(!)を先頭につけて以下のコマンドを実行する。
pip install ultralytics
Ultralytics パッケージがインストールされたら、次はYOLO11 モデルをロードし、トレーニング用のデータセットを準備する。まず、YOLO11 モデルをロードする。YOLO11 モデルは、一般的な物体検出タスクについて事前にトレーニング済みである。この事前にトレーニングされたモデルは、様々な物体を検出する方法をすでに学習しているため、良い出発点となります。
次に、画像とラベルの情報を含むYAMLファイルを使ってデータセットを指定する。このファイルは、データセットがどこにあり、どのようなオブジェクトを認識するように学習すべきかをモデルに指示する。
アフリカ野生動物データセットはUltralytics パッケージでサポートされているため、トレーニングを開始すると自動的にダウンロードされ、手動で設定する手間が省けます。
データセットの準備が整うと、モデルは学習を開始する。モデルはデータセットを数回繰り返し、複数回のエポックにわたって学習し、画像内の動物を認識する能力を向上させる。この過程で、画像は処理のために一定のサイズにリサイズされ、モデルはバッチと呼ばれる一度に決まった数の画像を扱う。これはモデルがより効率的に学習するのに役立つ。
つまり、モデルがロードされ、データセットが自動的にダウンロードされ、以下のコードスニペットが実行されると、アフリカの野生動物データセットに基づいて動物を検出するためのトレーニングが開始される。
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)
上のコード・スニペットを実行すると、モデルは私たちが与えた設定に基づいてトレーニングを開始する。このコードでは、モデルにトレーニング画像を30回見るように指示しています。つまり、モデルはデータセットの全画像を30回見て、毎回少しずつ学習していくということだ。
動物の描き方を学ぼうとしているとしよう。初めて描いたときはうまく描けないかもしれないが、何度も練習しているうちに、だんだんうまく描けるようになってくる。再挑戦するたびに、何が間違っていたかを学び、修正する。各エポックはモデルにとってそうなのだ。モデルたちは画像を見て、間違いを犯し、そこから学び、回を重ねるごとに動物を認識するのがうまくなっていく。
トレーニングコードが正常に実行されている場合、トレーニングが進むにつれて次のような出力が表示されます:
トレーニングプロセスが完了したら、モデルのパフォーマンス指標を確認し、検証することができます。Google Colabでは、"runs "フォルダ、"detect "フォルダ、そして最後に "train "フォルダに移動し、主要なパフォーマンス指標を表示するログを見ることができます。
Python 環境のユーザーの場合、トレーニング結果はデフォルトで現在の作業ディレクトリ内の "runs/train/"ディレクトリに保存されます。トレーニングの実行ごとに新しいサブディレクトリが作成され(runs/train/exp、runs/train/exp2など)、そこにトレーニングに関連するログやその他の出力が保存されます。
CLI使用している場合、"yolo settings"コマンドを使用することで、これらの結果や設定に簡単にアクセスすることができます。"yolo settings"コマンドを使用することで、トレーニングログや実験の詳細に関連するパスやその他の設定を表示または変更することができます。
ログの中には、モデルのトレーニングがどの程度うまくいったかを示すグラフもあります。これらのグラフはトレーニング終了後に作成され、時間の経過とともにモデルのミスが減り、精度が向上したかどうかを示します。
モデルの進歩を追跡し、トレーニング中に損失(モデルの予測値と実際の値の差)がどのように減少し、精度がどのように向上したかを示します。これにより、モデルがどの程度動物を認識することを学習し、トレーニング終了までにどの程度改善されたかを理解することができます。
また、モデルのパフォーマンスを評価するために使用できるいくつかの指標を詳しく見てみましょう:
これらの評価指標は、実世界のアプリケーションで使用する前に、モデルを微調整して精度を向上させるのに役立つ。
YOLO11学習と評価が終わったので、いよいよYOLO11画像を解析し、推論を実行します。データセットのテスト画像や、別のソースからの新しい画像を使うことができます。
以下のコード・スニペットを使って、テスト・データセットの画像に対してモデルを実行します。Ultralytics ライブラリから必要なモジュールをインポートします。そして、resultsディレクトリに格納されている最適なモデルの重みファイル("best.pt")へのパスを定義します。カスタムトレーニングされたYOLO11 モデルは、これらの重みを使用してロードされます。
その後、African Wildlifeテストデータセットからの画像へのパスが設定される。この画像にモデルを適用してオブジェクトを検出し、結果を生成し、出力(検出されたオブジェクトや注釈など)を保存する。
from ultralytics import settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_path)
image_path = f"{settings['datasets_dir']}/african-wildlife/test/images/1 (168).jpg"
img_results = model(image_path, save=True)
下図の出力画像は、runs/detect ディレクトリ内の「predict」フォルダに保存される。以降のテストでは、"predict2"、"predict3 "などの新しいフォルダが作成され、画像が保存される。
異なるソースからの画像をテストするには、以下のコードを使用することができます。ここではPexelsの画像を使用しています。同じ画像や他の関連する画像を使用することができます。
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_path)
img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)
下図の出力画像が適切なフォルダに保存されます。
YOLO11 ようなモデルは、動物を自動的に検出して追跡することができるため、さまざまな実用的な応用が可能になる。ここでは、Vision AIが野生動物の保護活動を支援するために使用できる主な分野のいくつかを垣間見ることができる:
YOLO11 ようなコンピュータ・ビジョン・モデルは、動物の検出と追跡を自動化することで、野生動物の保護に重要な役割を果たすことができる。ビジョンAIを使えば、様々なソースからの大量の画像やビデオを処理することができ、正確な野生動物の評価を実行することが可能になる。
特にUltralytics YOLO1111は、リアルタイムの物体検出に最適で、密猟防止監視、行動分析、生態系モニタリングなどのタスクに最適です。AI主導のモデルを自然保護活動に取り入れることで、私たちは種をよりよく保護し、生物多様性の追跡を改善し、絶滅の危機に瀕した野生生物を保護するために、より多くの情報に基づいた決定を下すことができます。
コミュニティに参加してGitHub リポジトリを探索し、コンピュータ・ビジョンについてさらに学びましょう。ヘルスケアにおけるAIと 製造業におけるコンピュータビジョンに関連するアプリケーションをソリューションページでご覧ください。ビジョンAIを始めるには、Ultralytics ライセンスオプションをチェックしてください。