4.6 独自のビジョンモデルを訓練・デプロイする

はじめに

YOLO26 は、リアルタイムかつエッジ対応のビジョン AI 向けに設計された YOLO ファミリーの最新世代です。物体検出、セグメンテーション、分類、姿勢推定などのタスクで高い精度を維持しつつ、より高速で軽量、かつデプロイしやすいように設計されています。これまでの YOLO モデルと比較して、YOLO26 は 効率的なデプロイとエンドツーエンド推論 に重点を置いており、エッジデバイスや実用的なアプリケーションに特に適しています。

YOLO26 パフォーマンス図

本章では、reComputer 上で独自の高度な検出モデルを素早く訓練・デプロイし、効率的でモダンなワークフローを通じて、データから実世界の AI アプリケーションへとつなげる方法を紹介します。

クイック体験

ステップ 1:タスクを明確に定義する

優れたプロジェクトは、明確な問いから始まります。

例:

  • ヘルメットと人を検出する
  • 占有されている駐車スペースを検出する
  • パレットとフォークリフトを検出する

デモのために、データ収集からモデルデプロイまでのプロセスを支援するスクリプトを用意しています。

前提条件: 必要な依存関係をインストールします:

bash
pip install ultralytics opencv-python pillow pyyaml

🚀 ぜひ自分で試してみましょう!

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_end_to_end.py

ステップ 2:データを収集する

デバイスにカメラを接続し、検出したい対象を選び、適切なデータセット画像を収集します。

capture_picture

ステップ 3:データをアノテーションする

検出タスクでは、アノテーションは通常、バウンディングボックスを描画してクラスラベルを割り当てることを意味します。

私たちのツールを使い、マウスをドラッグして検出したい対象をマークします。

mark_img

ステップ 4:モデルを訓練する

データセットを分割し、訓練に使用する事前学習済みモデルを選択します。

訓練セット はパラメータを調整してモデルに学習させるために使用されます。検証セット は開発中に、モデルの汎化具合の確認、異なる設定の比較、訓練を停止するタイミングの判断に使われます。要するに、データセットの分割は、信頼できる方法でモデルを訓練し、改善し、評価するのに役立ちます。

訓練

訓練は、モデルがデータセットから学習し、予測を徐々に改善していく段階です。通常、ゼロから始めるのではなく、事前学習済みモデルである 開始チェックポイント から始めます。これにより、モデルは速く学習でき、多くの場合、より良い結果が得られます。

ステップ 5:推論

これまでに訓練したモデルの重みを選択し、その性能を観察します。

infer

注意:モデルの性能を上げたい場合は、データセットを増やすか、データ拡張を行う必要があります。

よくある誤解

  • 「指標が高ければ、モデルは常に準備完了だ。」
    • 実環境でのテストは依然として必要です。
  • 「データが多ければ自動的に良いモデルになる。」
    • データは関連性が高く、適切にラベル付けされている場合にのみ役立ちます。
  • 「訓練が終われば、デプロイは簡単だ。」
    • デプロイには速度、メモリ、システムの制約が伴います。

演習 / 振り返り

  1. 初心者でも完了できる 2 クラスの物体検出プロジェクトを設計してください。
  2. データセットに含めたいシーンの 5 種類のバリエーションを挙げてください。
  3. 検証結果と実デプロイ時の性能の違いを説明してください。
  4. 訓練ジョブの実行後、3 つの失敗ケースを調べ、それを修正できそうなデータの種類を説明してください。

環境セットアップ

YOLO モデルの訓練の前に、uv パッケージマネージャを使って Python 環境をセットアップします:

uv をインストールする

bash
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
uv --version

uv のインストール

仮想環境を作成する

bash
uv venv .yolo --python 3.10.12
source .yolo/bin/activate
python --version

仮想環境 環境を有効化

PyTorch(GPU)をインストールする

bash
uv pip install torch --index-url https://pypi.jetson-ai-lab.io/jp6/cu126

PyTorch の確認

注意: Seeed の Jetson 開発キットには、あらかじめ設定済みの環境が付属しています。新しい環境を作成する前に、.yolo 環境がすでに存在するかどうかを確認してください。

YOLO26/Ultralytics をインストールする

bash
uv pip install ultralytics opencv-python pillow pyyaml

YOLO26 タスク例

YOLO26 は複数のコンピュータビジョンタスクに対応しています。以下にそれぞれの例を示します。

物体検出

画像や動画内の物体を検出・位置特定します:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_object_detection.py

物体検出の結果

インスタンスセグメンテーション

ピクセルレベルで物体を識別します:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_instance_segmentation.py

インスタンスセグメンテーション

姿勢推定

人体のキーポイントを検出します:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_pose_estimation.py

姿勢推定

画像分類

画像内の被写体を分類します:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_image_classification.py

画像分類

回転物体検出(OBB)

回転したバウンディングボックスで物体を検出します:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_obb_detection.py

OBB 検出

モデル訓練

カスタムデータセットで YOLO モデルを訓練します:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_train.py

訓練の出力 訓練の結果

Label Studio によるデータセットのアノテーション

Label Studio(Docker ベース)を使って訓練データをアノテーションします:

Label Studio の起動 Label Studio でのアノテーション データセットの構造

まとめ

カスタムビジョンモデルの訓練は、コマンドを実行するだけのことではありません。タスク定義、アノテーション、訓練、検証、エラー分析を含むデータ駆動のプロセスです。次のセクションでは、最初の成功モデルからエクスポートとエッジデプロイへと進みます。

推奨される次のステップ

4.7 モデルエクスポートとエッジデプロイ に進んでください。

参考資料