African Wildlife Datasetを使用して野生動物を検出するためにYOLOモデルをトレーニングし、そのモデルを使用して未知の画像に対して推論を実行する方法を学びます。

African Wildlife Datasetを使用して野生動物を検出するためにYOLOモデルをトレーニングし、そのモデルを使用して未知の画像に対して推論を実行する方法を学びます。
私たちの地球の野生生物は、ブンブンと音を立てるハチからそびえ立つゾウまで、信じられないほど多様であり、この生物多様性を維持することは、バランスの取れた生態系を維持するための鍵となります。しかし、生息地の喪失、密猟、気候変動により、保護活動はますます困難になっています。これらの要因はすべて、野生生物の個体数に悪影響を及ぼします。
カメラトラップ画像の分析やフィールド調査の実施など、従来の動物モニタリング手法は、時間がかかり、多くのリソースを必要とする場合があります。これらの取り組みは、広大な地域や大規模な個体群を効果的にカバーできないことがよくあります。
これらの制限を克服するために、人工知能(AI)を野生生物保護における影響力のあるツールとして使用できます。具体的には、Ultralytics YOLO11のようなコンピュータビジョンモデルは、画像やビデオなどの視覚データを分析して、動物のリアルタイムな識別と追跡を自動化できます。
YOLO11によってサポートされているオブジェクト検出やインスタンスセグメンテーションのようなコンピュータビジョンタスクは、ここで非常に役立ちます。視覚データを分析することにより、これらのタスクは、重要なデータを収集し、生態学的パターンを特定し、環境の脅威により効果的に対応するのに役立ちます。
この記事では、動物を検出するためにYOLO11をトレーニングするプロセスについて説明します。それでは始めましょう!
チュートリアルに入る前に、YOLO11のトレーニングと使用に必要なさまざまなセットアップオプションとツールを見てみましょう。
必要な主なツールはUltralytics Pythonパッケージです。これにより、トレーニング、オブジェクトの検出、推論の実行などのタスクでYOLOモデルを簡単に操作できます。Ultralyticsパッケージを使用するには、コードを実行するための環境をセットアップする必要があります。選択できるオプションは多数あります。
開発環境をセットアップするための最も一般的なオプションを次に示します。
Ultralyticsの公式ドキュメントで確認できる環境をセットアップするための他のオプションもありますが、上記の3つのオプションはセットアップが非常に簡単で使いやすく、迅速に開始するのに理想的です。
このチュートリアルでは、Google Colab、Jupyter Notebooks、または単純なPythonファイルを使用してYOLO11をセットアップおよびトレーニングする方法を紹介します。これらの環境全体で手順が非常に類似しているためです。
開発環境を選択した後、YOLO11をトレーニングして野生動物を特に検出するには、ラベル付けされた高品質の画像データセットが必要です。各画像には、動物がどこにいるか、どのような種類であるかが明確に示されている必要があります。これにより、モデルは教師あり学習を通じてそれらを認識することを学習できます。
このチュートリアルでは、アフリカの野生生物データセットを使用します。これは、Ultralytics Pythonパッケージでサポートされており、アフリカの生態系で一般的に見られる動物を検出するために特別に設計されています。バッファロー、ゾウ、サイ、シマウマの4つの主要な種の注釈付き画像が含まれています。
アフリカ野生動物データセットの主な特徴を以下に示します。
アフリカ野生動物データセットについて説明したところで、YOLO11モデルをトレーニングして、画像内の動物を検出してみましょう。このプロセスには、開発環境のセットアップ、YOLO11モデルのトレーニング、モデルのパフォーマンスの評価が含まれます。
まず、モデルのトレーニングとテストのための環境を準備します。Google Colab、Jupyter Notebook、または単純なPythonファイルを使用できます(好みに応じて)。新しいGoogle Colabノートブック、Jupyter Notebook、またはPythonファイルを適宜作成してください。
Google Colabを使用している場合、デフォルトではCPU(中央処理装置)で環境が実行されるため、トレーニングが遅くなる可能性があります。特に大規模なモデルの場合、プロセスを高速化するには、ランタイムを切り替えてGPUを使用するようにします。Google Colabでは、メニューの[ランタイム]タブに移動し、[ランタイムタイプを変更]を選択して、ハードウェアアクセラレータをGPU(できればT4 GPU)に設定します。これは、トレーニング時間を短縮するために重要です。
次に、どの環境を使用している場合でも、Ultralytics Pythonパッケージをインストールする必要があります。ノートブックベースの環境(Google ColabまたはJupyter)を使用している場合は、先頭に感嘆符(!)を付けて次のコマンドを実行します。
pip install ultralytics
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)
上記のコードスニペットを実行すると、モデルは指定された設定に基づいてトレーニングを開始します。コードを通じて、モデルにトレーニング画像を30回処理するように指示しました。つまり、モデルはデータセット内のすべての画像を30回確認し、毎回少しずつ学習します。
動物の描き方を学ぼうとしていると想像してください。最初に描いたときはうまくいかないかもしれませんが、何度も練習した後、上達し始めます。もう一度試すたびに、何がうまくいかなかったかを学び、修正します。それこそが、各エポックがモデルに対して行うことです。画像を見て、間違いを犯し、そこから学び、毎回動物を認識するのがうまくなります。
トレーニングコードが正常に実行されている場合、トレーニングの進行状況に応じて次の出力が表示されます。
学習プロセスが完了したら、モデルのパフォーマンス指標をレビューし、検証することができます。Google Colabでは、「runs」フォルダ、「detect」フォルダ、そして「train」フォルダへと進むと、主要なパフォーマンス指標を示すログを見つけることができます。
Python環境のユーザーの場合、トレーニング結果はデフォルトで、現在の作業ディレクトリ内の「runs/train/」ディレクトリに保存されます。各トレーニング実行は、新しいサブディレクトリ(例:runs/train/exp、runs/train/exp2など)を作成し、トレーニングに関連するログやその他の出力が保存されます。
CLIを使用している場合は、「yolo settings」コマンドを使用して、これらの結果と設定に簡単にアクセスできます。このコマンドを使用すると、トレーニングログや実験の詳細に関連するパスやその他の構成を表示または変更できます。
ログの中には、モデルのトレーニングプロセスがどれだけうまくいったかを確認できるグラフもあります。これらのグラフは、トレーニング完了後に作成され、モデルが時間の経過とともに間違いを減らし、より正確になることで改善されたかどうかを示します。
これらは、モデルの進捗状況を追跡し、損失(モデルの予測と実際の値の差)がどのように減少し、トレーニング中に精度がどのように向上したかを示します。これにより、モデルが動物を認識することをどれだけ学習し、トレーニングの終了までにどれだけ改善されたかを理解するのに役立ちます。
また、モデルのパフォーマンスを評価するために使用できる指標を詳しく見てみましょう。
これらの評価指標は、実際のアプリケーションで使用する前に、精度を向上させるためにモデルを微調整するのに役立ちます。
YOLO11のトレーニングと評価が完了したので、これを使用して画像を分析し、推論を実行します。データセットのテスト画像、またはさまざまなソースからの新しい画像を使用できます。
テストデータセットの画像でモデルを実行するために、次のコードスニペットを使用します。これは、Ultralyticsライブラリから必要なモジュールをインポートし、結果のディレクトリに保存されている最適なモデルの重みファイル("best.pt")へのパスを定義します。カスタムトレーニングされたYOLO11モデルは、これらの重みを使用してロードされます。
その後、アフリカの野生生物テストデータセットからの画像へのパスが設定されます。モデルは、オブジェクト検出のためにこの画像に適用され、結果が生成され、出力(検出されたオブジェクトやアノテーションなど)が保存されます。
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のようなコンピュータビジョンモデルは、動物の検出と追跡を自動化することにより、野生生物の保護において重要な役割を果たすことができます。Vision AIを使用すると、さまざまなソースからの大量の画像や動画を処理できるため、正確な野生生物の評価を実行できます。
特にUltralytics YOLO11は、リアルタイムの物体検出に最適であり、密猟監視、行動分析、生態系モニタリングなどのタスクに最適です。AI駆動型モデルを保護活動に組み込むことで、種をより適切に保護し、生物多様性の追跡を改善し、絶滅危惧種の野生生物を保護するための、より多くの情報に基づいた意思決定を行うことができます。
当社のコミュニティに参加し、GitHubリポジトリを調べて、コンピュータビジョンについて詳しく学んでください。ソリューションページで、ヘルスケアにおけるAIおよび製造業におけるコンピュータビジョンに関連するその他のアプリケーションをご覧ください。Vision AIの使用を開始するには、Ultralyticsのライセンスオプションをご確認ください。