野生動物を検出するUltralytics YOLOモデルのトレーニング方法
African Wildlife Datasetを使って野生動物を検出するYOLOモデルのトレーニング方法と、未学習画像で推論を実行する方法をご紹介します。
Abirami Vina12 分で読めます
私たちの地球の野生生物は、羽音を立てるミツバチから堂々とそびえるゾウまで、驚くほど多様です。この生物多様性を保全することは、生態系の均衡を保つうえで重要です。しかし、生息地の喪失、密猟、気候変動により、保全活動はますます困難になっています。これらすべての要因が野生生物の個体数に悪影響を与えています。
カメラトラップの画像を手作業で分析したり、現地調査を行ったりする従来の動物モニタリング方法は時間がかかり、多くのリソースを必要とします。こうした取り組みでは、広大な地域や大規模な個体群を効果的に網羅できないことがよくあります。
こうした制約を克服するために、人工知能(AI)を野生生物保全に効果的なツールとして活用できます。特に、Ultralytics YOLO11のようなコンピュータービジョンモデルは、画像や動画などの視覚データを分析し、動物のリアルタイムな識別と追跡を自動化できます。
Ultralytics YOLO11が対応する物体検出やインスタンスセグメンテーションなどのコンピュータービジョンタスクは、この分野で非常に役立ちます。視覚データを分析することで、重要なデータの収集、生態学的パターンの特定、環境上の脅威へのより効果的な対応を支援します。
この記事では、動物を検出するためにUltralytics YOLO11を学習させる手順を説明します。
Ultralytics YOLO11を使い始める#
チュートリアルに入る前に、Ultralytics YOLO11のトレーニングと使用に必要なセットアップ方法やツールを確認しましょう。
必要な主なツールはUltralytics Pythonパッケージです。トレーニング、オブジェクトの検出、推論の実行などのタスクで、YOLOモデルを簡単に扱えます。Ultralyticsパッケージを使用するには、コードを実行する環境を設定する必要があり、さまざまな選択肢があります。
開発環境を設定する代表的な方法をいくつか紹介します。
- コマンドラインインターフェース(CLI): CLIはターミナルとも呼ばれるテキストベースのツールで、コマンドを入力してコンピューターを操作できます。ボタンをクリックしたりマウスを使ったりするグラフィカルインターフェース(GUI)とは異なり、CLIではプログラムの実行やタスクの実行にテキストで指示を入力する必要があります。
- Jupyter Notebooks: ノートブックでは、セルと呼ばれる小さな単位に分けてコードを記述、実行できます。インタラクティブに操作でき、コードの出力をすぐに確認できるため、テストやデバッグが簡単になります。
- Google Colab: Google ColabはJupyter Notebooksのように利用できるクラウドベースのプラットフォームですが、高性能なGPUを無料で使用できます。セットアップが簡単で、コンピューターに何もインストールする必要はありません。
Ultralytics公式ドキュメントでほかの環境設定方法も確認できますが、上記の3つはセットアップがほとんど不要で使いやすいため、すぐに始めるのに最適です。
このチュートリアルでは、環境によって手順に大きな違いがないため、Google Colab、Jupyter Notebooks、またはシンプルなPythonファイルを使ってUltralytics YOLO11をセットアップし、トレーニングする方法を紹介します。
African Wildlife Datasetについて#
開発環境を選んだら、野生動物を検出するためにUltralytics YOLO11をトレーニングするには、高品質でラベル付きの画像データセットが必要です。各画像では動物の位置と種類が明確に示されている必要があり、これによりモデルは教師あり学習を通じて動物を認識できるようになります。
このチュートリアルでは、African Wildlife Datasetを使用します。このデータセットはUltralytics Pythonパッケージに対応しており、アフリカの生態系でよく見られる動物の検出に特化しています。バッファロー、ゾウ、サイ、シマウマの主要4種を注釈した画像が含まれています。

図1. African Wildlife Datasetの概要。
African Wildlife Datasetの主な特徴は次のとおりです。
- 規模: データセットは1504枚の画像で構成され、トレーニング用1052枚、検証用225枚、テスト用227枚の3つのサブセットに分かれています。この分割により、モデルの効果的な学習と十分な評価が可能になります。
- 簡単な統合:Ultralyticsは、データセットのパス、クラス、その他の詳細を定義するYAML設定ファイルを提供しており、YOLOモデルの学習に簡単に利用できます。
- ライセンス:Bianca FerreiraがKaggleで公開した元のデータセットにはライセンスが明記されていないため、商用利用の前に利用規約を確認してください。
動物検出に向けたUltralytics YOLO11のトレーニング#
African Wildlife Datasetについて確認したところで、画像内の動物を検出するUltralytics YOLO11モデルのトレーニングを始めましょう。このプロセスでは、開発環境のセットアップ、YOLO11モデルのトレーニング、モデルの性能評価を行います。
ステップ1: 環境の設定#
まず、モデルのトレーニングとテストに使用する環境を準備します。好みに応じて、Google Colab、Jupyter Notebooks、またはシンプルなPythonファイルを使用できます。それに合わせて、新しいGoogle Colabノートブック、Jupyter Notebook、またはPythonファイルを作成してください。
Google Colabを使用する場合、デフォルトの実行環境はCPU(中央処理装置)であるため、トレーニングが遅くなることがあります。特に大規模なモデルの処理を高速化するには、ランタイムをGPUに切り替えます。Google Colabでは、メニューの「Runtime」タブに移動して「Change runtime type」を選び、ハードウェアアクセラレータにGPU(できればT4 GPU)を設定します。これにより、トレーニング時間を短縮できます。
次に、使用する環境にかかわらず、Ultralytics Pythonパッケージをインストールする必要があります。ノートブック環境(Google ColabまたはJupyter)を使う場合は、以下のコマンドの先頭に感嘆符(!)を付けて実行してください。
pip install ultralyticsステップ2: Ultralytics YOLO11の読み込みとデータセットの準備#
Ultralyticsパッケージをインストールしたら、次はYOLO11モデルを読み込み、トレーニング用にデータセットを準備します。まず、一般的な物体検出タスクですでに事前トレーニングされているYOLO11nモデルを読み込みます。この事前トレーニング済みモデルは、さまざまな物体の検出方法をすでに学習しているため、よい出発点になります。
次に、画像やラベルに関する情報を含むYAMLファイルを使ってデータセットを指定します。このファイルにより、データセットの場所と、モデルが認識を学習するオブジェクトの種類を指定できます。
African Wildlife DatasetはUltralyticsパッケージでサポートされているため、トレーニングを開始すると自動的にダウンロードされ、手動でセットアップする手間が省けます。Ultralytics Platformで画像やラベルを確認することもできます。
データセットの準備が整うと、モデルのトレーニングが開始されます。モデルはデータセットを複数回処理します。これは複数のエポックにわたるトレーニングと呼ばれ、画像内の動物を認識する能力を向上させます。この処理では、画像のサイズが統一され、モデルはバッチと呼ばれる一定数の画像を一度に処理します。これにより、モデルはより効率的に学習できます。
つまり、以下のコードスニペットを実行すると、モデルが読み込まれ、データセットが自動的にダウンロードされ、African Wildlife Datasetに基づいて動物を検出するためのトレーニングが始まります。
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)同じコードは新しいUltralytics YOLO26モデルでも動作します。yolo11n.ptをyolo26n.ptに置き換えるだけです。
ステップ3: Ultralytics YOLO11のトレーニング手順#
上記のコードスニペットを実行すると、指定した設定に基づいてモデルのトレーニングが始まります。コードでは、トレーニング用画像を30回処理するように設定しています。つまり、モデルはデータセット内のすべての画像を30回確認し、そのたびに少しずつ学習します。
動物の描き方を学ぼうとしているところを想像してみてください。最初はうまく描けないかもしれませんが、何度も練習すると上達します。描き直すたびに、うまくいかなかった点から学び、修正していきます。モデルの各エポックでも同じことが起こります。モデルは画像を見て、間違いをし、そこから学び、繰り返すたびに動物を認識する能力を高めます。
トレーニングコードが正常に実行されると、トレーニングの進行に伴って次の出力が表示されます。
- トレーニングの設定: 最初の部分には、UltralyticsとPyTorchのバージョン、使用しているハードウェア(この例ではCPU)、モデル(yolo11n.pt)、バッチサイズ、エポック数、画像サイズなどのトレーニング設定が表示されます。
- モデルの概要: レイヤー数やパラメーター数など、モデルの複雑さに関する情報が表示され、モデルの規模を確認できます。
- オプティマイザーと学習率: トレーニング中にモデルのパラメーターをどのように調整するかを制御する、オプティマイザー(例: AdamW)と学習率が表示されます。
- データセットのスキャン: モデルがデータセットをスキャンし、有効でトレーニングに使用できる画像の数を表示します。データセットに問題がないことも確認できます。
- トレーニングの進捗: 各エポック(トレーニングサイクル)の後に出力が更新され、トレーニングの進捗と主要な損失値(box_loss、cls_loss、dfl_loss)が表示されます。これらの値から、モデルの学習状況を把握できます。
- パフォーマンス指標: 各エポックの後に、適合率、再現率、mAP(平均適合率)などのパフォーマンス指標が表示されます。これらの値から、モデルによる物体の検出と分類の精度を確認できます。
- GPUメモリ使用量: GPUを使用している場合、ハードウェアの使用状況を確認できるよう、出力にメモリ使用量が表示されます。

図2. モデルのトレーニング中に表示される出力。
ステップ4: カスタムトレーニング済みモデルのパフォーマンスを評価する#
トレーニングが完了したら、モデルのパフォーマンス指標を確認して検証できます。Google Colabでは、「runs」フォルダーから「detect」フォルダー、さらに「train」フォルダーへ移動すると、主要なパフォーマンス指標を示すログを確認できます。
Python環境を使用する場合、トレーニング結果はデフォルトで、現在の作業ディレクトリ内の「runs/detect/train」ディレクトリに保存されます。新しいトレーニングを実行するたびに新しいサブディレクトリ(例: runs/detect/train2、runs/detect/train3など)が作成され、トレーニングに関連するログやその他の出力を確認できます。
CLIを使用している場合は、「yolo settings」コマンドを使うと、トレーニングログや実験の詳細に関連するパスやその他の設定を簡単に確認、変更できます。
ログには、トレーニングの結果を確認するためのグラフも含まれています。トレーニング完了後に作成されるこれらのグラフから、モデルが時間の経過とともにミスを減らし、精度を高めたかどうかを確認できます。
グラフにはモデルの進捗が記録され、トレーニング中に損失(モデルの予測と実際の値との差)が減少し、精度が向上した様子が表示されます。これにより、モデルが動物をどの程度認識できるようになったか、またトレーニング終了時までにどれだけ改善したかを把握できます。

図3. モデルの評価に使用できるグラフの例。
主要なパフォーマンス評価指標#
ここでは、モデルのパフォーマンスを評価する際に使用できる指標をいくつか詳しく見ていきます。
- 平均適合率(mAP): この指標は、さまざまな再現率における適合率を平均し、すべてのクラスにわたる動物検出の総合的な精度を測定します。
- 適合率: 正しく検出された割合を示す指標で、真陽性の検出数を検出総数で割って算出します。
- 再現率: 画像内の実際の動物のうち、モデルが正しく識別した割合を示し、関連する対象を漏れなく検出する能力を表します。
これらの評価指標を活用すると、実環境のアプリケーションで使用する前にモデルを微調整し、精度を向上させることができます。
カスタムトレーニング済みUltralytics YOLO11モデルで推論を実行する#
Ultralytics YOLO11のトレーニングと評価が完了したので、画像を分析し、推論を実行してみましょう。データセットのテスト画像や、さまざまなソースから入手した新しい画像を使用できます。
次のコードスニペットを使って、テストデータセット内の画像に対してモデルを実行します。Ultralyticsライブラリから必要なモジュールをインポートし、結果ディレクトリに保存された最良のモデル重みファイル(「best.pt」)のパスを定義します。この重みを使用して、カスタムトレーニング済みYOLO11モデルを読み込みます。
次に、African Wildlifeテストデータセット内の画像のパスを設定します。この画像にモデルを適用して物体検出を行い、結果を生成して、検出された物体やアノテーションなどの出力を保存します。
from ultralytics import YOLO, settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_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」などの新しいフォルダーが作成されます。

図4. テスト画像に対してファインチューニング済みUltralytics YOLO11モデルで推論を実行。
さまざまなソースの画像をテストするには、以下のコードを使用できます。Pexelsの画像を使用しています。同じ画像でも、ほかの関連する画像でも使用できます。
from ultralytics import YOLO
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_path)
img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)以下に示す出力画像は、適切なフォルダーに保存されます。

図5. 未学習の画像に対してファインチューニング済みUltralytics YOLO11モデルで野生動物を検出。
野生生物保全のためのAI: 実世界での活用例#
Ultralytics YOLO11のようなモデルは、動物を自動的に検出、追跡できるため、さまざまな実用的な用途に活用できます。ビジョンAIが野生生物保全を支援できる主な分野をいくつかご紹介します。
- 種のモニタリング: ビジョンAIを使用すると、画像や動画などの視覚データを処理して、種を正確に識別し、個体数を数え、時間の経過に伴う移動を追跡できます。
- スマートカメラによるアラート: 遠隔地では、コンピュータービジョンを使って動物を継続的に分類し、リアルタイムでアラートを送信できます。これにより、動物の異常行動や人間と野生動物の衝突などの脅威に、野生生物保護当局が迅速に対応できます。
- 行動分析: 移動、採餌習性、社会的な相互作用を監視することで、ビジョンAIシステムは種間の関係について包括的な知見を提供できます。
- 密猟の防止: ビジョンAIを活用すると、許可されていない人間の立ち入りや密猟の兆候を検出できます。また、機械学習と過去のデータを活用して、リスクの高いエリアを特定できます。
重要なポイント#
Ultralytics YOLO11のようなコンピュータービジョンモデルは、動物の検出と追跡を自動化し、野生生物保全において重要な役割を果たすことができます。ビジョンAIを活用すれば、さまざまなソースから大量の画像や動画を処理できるため、野生生物の正確な評価が可能になります。
特にUltralytics YOLO11は、リアルタイム物体検出に適しており、密猟対策の監視、行動分析、生態系のモニタリングなどに最適です。AI駆動のモデルを保全活動に取り入れることで、種をより効果的に保護し、生物多様性の追跡を改善して、絶滅危惧種の保護に向けた意思決定をより適切に行えます。
コミュニティに参加し、GitHubリポジトリを確認して、コンピュータービジョンについて詳しく学びましょう。ソリューションページで、ヘルスケアにおけるAIや製造業におけるコンピュータービジョンの活用例をご覧ください。ビジョンAIを始めるには、Ultralyticsのライセンスオプションをご確認ください。
執筆者
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。










