野生動物を検出するようUltralytics YOLOモデルをトレーニングする方法
African Wildlife Datasetを使用して野生動物を検出するようYOLOモデルをトレーニングし、未見の画像でモデルの推論を実行する方法を学びます。

私たちの地球上の野生生物は、飛び交うミツバチからそびえ立つゾウまで非常に多様であり、この生物多様性を保全することは、バランスの取れた生態系を維持するために重要です。しかし、生息地の喪失、密猟、気候変動により、保全活動はますます困難になっています。これらの要因はいずれも野生生物の個体群に悪影響を及ぼします。
従来の動物モニタリング手法は、カメラトラップの画像を手作業で分析したり、現地調査を実施したりするため、時間がかかり、多くのリソースを必要とする場合があります。こうした取り組みでは、広い地域や大規模な個体群を効果的にカバーできないことがよくあります。
こうした制限を克服するために、人工知能(AI)を野生生物保全の有効なツールとして活用できます。具体的には、Ultralytics YOLO11のようなコンピュータビジョンモデルを使用すると、画像や動画などの視覚データを分析し、動物のリアルタイムでの識別と追跡を自動化できます。
Ultralytics YOLO11がサポートする物体検出やインスタンスセグメンテーションなどのコンピュータビジョンタスクは、ここで非常に役立ちます。視覚データを分析することで、これらのタスクは重要なデータの収集、生態学的パターンの特定、環境上の脅威へのより効果的な対応に役立ちます。
この記事では、動物を検出するためのUltralytics YOLO11のトレーニング手順を説明します。それでは始めましょう。
Ultralytics YOLO11を始める#
チュートリアルに入る前に、Ultralytics YOLO11のトレーニングと使用に必要なさまざまなセットアップオプションとツールを確認しましょう。
必要な主なツールはUltralytics Pythonパッケージです。これにより、トレーニング、物体検出、推論の実行など、YOLOモデルを簡単に扱えます。Ultralyticsパッケージを使用するには、コードを実行する環境をセットアップする必要があり、さまざまな選択肢から選べます。
開発環境をセットアップする代表的な方法をいくつか紹介します。
- コマンドラインインターフェース(CLI): CLIはターミナルとも呼ばれ、コマンドを入力してコンピューターを操作できるテキストベースのツールです。ボタンをクリックしたりマウスを使ったりするグラフィカルインターフェース(GUIs)とは異なり、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モデルのトレーニングで簡単に使用できます。
- オープンライセンス: このデータセットはAGPL-3.0ライセンスの下で配布されており、透明性と協力を促進します。
動物検出向け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モデルを読み込み、トレーニング用のデータセットを準備します。まず、一般的な物体検出タスクで事前トレーニング済みのYOLO11モデルを読み込みます。この事前トレーニング済みモデルは、さまざまな物体の検出方法をすでに学習しているため、良い出発点になります。
次に、画像とラベルに関する情報を含むYAMLファイルを使用してデータセットを指定します。このファイルにより、モデルはデータセットの場所と、認識すべき物体を把握できます。
African Wildlife DatasetはUltralyticsパッケージでサポートされているため、トレーニングを開始すると自動的にダウンロードされ、手動でセットアップする手間が省けます。
データセットの準備が整うと、モデルのトレーニングが開始されます。モデルは画像内の動物を認識する能力を向上させるため、エポックと呼ばれる複数回の学習プロセスを通じてデータセットを何度も処理します。この過程で、画像は処理用に一定のサイズへリサイズされ、モデルはバッチと呼ばれる一定数の画像を一度に処理します。これにより、モデルはより効率的に学習できます。
つまり、下のコードスニペットを実行すると、モデルが読み込まれ、データセットが自動的にダウンロードされ、African Wildlife Datasetに基づく動物検出のトレーニングが開始されます。
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)ステップ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/train/」ディレクトリに保存されます。各トレーニング実行では新しいサブディレクトリ(例: runs/train/exp、runs/train/exp2など)が作成され、トレーニングに関連するログやその他の出力を確認できます。
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のライセンスオプションをご確認ください。









