Roboflow#
Roboflowは、YOLOを含むさまざまな形式でのデータラベリングとデータセットのエクスポートのためのツールを提供しています。このガイドでは、Ultralytics YOLOモデルのデータのラベリング、エクスポート、デプロイについて説明します。
Ultralyticsでは、さまざまなユースケースに対応するため、2種類のライセンスオプションを提供しています。
- AGPL-3.0 License:このOSI承認オープンソースライセンスは、オープンなコラボレーションと知識共有を促進するため、学生や愛好家に適しています。詳細については、LICENSEファイルをご覧ください。
- エンタープライズライセンス: 開発および本番環境での利用向けのこのライセンスにより、社内ツール、自動化ワークフロー、本番デプロイメントなど、UltralyticsのソフトウェアとAIモデルをビジネス製品やサービスにシームレスに統合できます。AGPL-3.0のオープンソース要件は適用されません。利用を開始するには、Ultralyticsライセンスからお問い合わせください。
詳細については、Ultralyticsライセンスページをご覧ください。
このガイドでは、Roboflowを使用して、カスタムUltralytics YOLO26モデルのトレーニング用データを見つけ、ラベル付けし、整理する方法を説明します。
カスタムYOLO26モデルのトレーニング用データを収集#
Roboflowは、UltralyticsのYOLOモデルのデータ収集を支援する、主に2つのサービス、UniverseとCollectを提供しています。データ収集戦略に関する一般的な情報については、データ収集とアノテーションガイドをご覧ください。
Roboflow Universe#
Roboflow Universeは、ビジョンデータセットのオンラインリポジトリです。データセットをYOLO形式でエクスポートし、Ultralyticsモデルで使用できます。
Roboflow Collect#
自分で画像を収集したい場合は、Roboflow Collectを使用できます。これは、エッジデバイスのWebカメラを介した画像の自動収集を可能にするオープンソースプロジェクトです。テキストまたは画像のプロンプトで収集するデータを指定できるため、ビジョンモデルに必要な画像だけを取得できます。
YOLO26形式用のデータのアップロード、変換、ラベリング#
Roboflow Annotateは、物体検出、分類、セグメンテーションなど、さまざまなコンピュータービジョンタスク用の画像にラベルを付けるオンラインツールです。
UltralyticsのYOLOモデル用にデータへラベルを付けるには、Roboflowでプロジェクトを作成し、画像をアップロードしてアノテーションを開始します。
アノテーションツール#
- バウンディングボックスのアノテーション:
Bを押すか、ボックスアイコンをクリックします。クリックしてドラッグし、バウンディングボックスを作成します。ポップアップが表示され、アノテーションのクラスを選択できます。 - ポリゴンのアノテーション: インスタンスセグメンテーションに使用します。
Pを押すか、ポリゴンアイコンをクリックします。オブジェクトの周囲をクリックして点を配置し、ポリゴンを描画します。
Label Assistant(SAM統合)#
Roboflowは、アノテーションを高速化できる、あらゆるものをセグメントするモデル (SAM)ベースのラベルアシスタントを統合しています。
ラベルアシスタントを使用するには、サイドバーのカーソルアイコンをクリックします。プロジェクトでSAMが有効になります。
オブジェクトにカーソルを合わせると、SAMがアノテーションを提案する場合があります。クリックしてアノテーションを承認します。提案された領域の内側または外側をクリックすることで、アノテーションの範囲を調整できます。
タグ付け#
サイドバーのTagsパネルを使用して、画像にタグを追加できます。タグには、場所、カメラソースなどの属性を指定できます。これらのタグを使って特定の画像を検索し、特定のタグが付いた画像を含むデータセットバージョンを生成できます。
Label Assist(モデルベース)#
RoboflowでホストされているモデルをLabel Assistで使用すると、アノテーションを提案できます。YOLOモデルの重みをRoboflowにアップロードし(手順は以下を参照)、サイドバーの魔法の杖アイコンからLabel Assistを有効にします。
YOLO26のデータセット管理#
Roboflowは、コンピュータービジョンのデータセットを理解・管理するための複数のツールを提供しています。
データセット検索#
データセット検索を使用すると、テキストによる説明または特定のラベルやタグに基づいて画像を検索できます。サイドバーの「Dataset」をクリックすると、この機能にアクセスできます。
Health Check#
トレーニング前にRoboflow Health Checkを使用して、データセットに関する洞察を得て、改善の可能性を特定します。サイドバーの「Health Check」リンクからアクセスできます。画像サイズ、クラスバランス、アノテーションヒートマップなどの統計情報が表示されます。
Health Checkは、クラスバランス機能で特定されたクラスの不均衡への対処など、パフォーマンスを向上させるための変更を提案する場合があります。効果的なモデルのトレーニングには、データセットの健全性を理解することが重要です。
モデルの堅牢性向上のためのデータの前処理と拡張#
データをエクスポートするには、データセットバージョンを作成する必要があります。これは、特定の時点におけるデータセットのスナップショットです。サイドバーで「Versions」をクリックし、次に「Create New Version」をクリックします。ここで前処理手順とデータ拡張を適用して、モデルの堅牢性を高めることができます。
選択した各拡張について、ポップアップで明るさなどのパラメーターを微調整できます。適切な拡張により、モデルの汎化性能を大幅に向上させられます。これは、モデルのトレーニングのヒントガイドで説明している重要な概念です。
モデルのトレーニング用に40以上の形式でデータをエクスポート#
データセットバージョンが生成されると、モデルのトレーニングに適したさまざまな形式でエクスポートできます。バージョンページの「Export Dataset」ボタンをクリックします。
Ultralyticsのトレーニングパイプラインとの互換性を確保するため、「YOLO26」形式を選択します。これで、カスタムYOLO26モデルをトレーニングする準備が整いました。エクスポートしたデータセットを使用してトレーニングを開始する詳しい手順については、Ultralytics Trainモードのドキュメントをご覧ください。
テストとデプロイ用のカスタムYOLO26モデルの重みをアップロード#
Roboflowは、デプロイ済みモデル用のスケーラブルなAPIと、NVIDIA Jetson、Luxonis OAK、Raspberry Pi、GPUベースのシステムなどのデバイスと互換性のあるSDKを提供しています。ガイドでさまざまなモデルのデプロイオプションをご確認ください。
簡単なPythonスクリプトを使用して、YOLO26モデルをRoboflowに重みをアップロードしてデプロイできます。
新しいPythonファイルを作成し、次のコードを追加します。
import roboflow # install with 'pip install roboflow'
# Log in to Roboflow (requires API key)
roboflow.login()
# Initialize Roboflow client
rf = roboflow.Roboflow()
# Define your workspace and project details
WORKSPACE_ID = "your-workspace-id" # Replace with your actual Workspace ID
PROJECT_ID = "your-project-id" # Replace with your actual Project ID
VERSION = 1 # Replace with your desired dataset version number
MODEL_PATH = "path/to/your/runs/detect/train/" # Replace with the path to your YOLO26 training results directory
# Get project and version
project = rf.workspace(WORKSPACE_ID).project(PROJECT_ID)
dataset = project.version(VERSION)
# Upload model weights for deployment
# Ensure MODEL_PATH points to the directory containing 'best.pt'
dataset.deploy(
model_type="yolov8",
model_path=MODEL_PATH,
) # Note: Use "yolov8" as model_type for YOLO26 compatibility in Roboflow deployment
print(f"Model from {MODEL_PATH} uploaded to Roboflow project {PROJECT_ID}, version {VERSION}.")
print("Deployment may take up to 30 minutes.")このコードでは、your-workspace-id、your-project-id、VERSIONの番号、およびMODEL_PATHを、Roboflowアカウント、プロジェクト、ローカルのトレーニング結果ディレクトリに固有の値に置き換えます。MODEL_PATHが、トレーニング済みのbest.pt重みファイルを含むディレクトリを正しく指していることを確認してください。
上記のコードを実行すると、認証(通常はAPIキーの使用)を求められます。その後、モデルがアップロードされ、プロジェクト用のAPIエンドポイントが作成されます。この処理には最大30分かかる場合があります。
モデルをテストし、対応SDKのデプロイ手順を確認するには、Roboflowサイドバーの「Deploy」タブに移動します。このページの上部にウィジェットが表示され、Webカメラを使用するか画像や動画をアップロードしてモデルをテストできます。
アップロードしたモデルはラベリングアシスタントとしても使用でき、トレーニング内容に基づいて新しい画像へのアノテーションを提案します。
YOLO26モデルの評価方法#
Roboflowはモデルのパフォーマンスを評価する機能を提供しています。モデルの反復改善には、パフォーマンス指標を理解することが重要です。
モデルをアップロードした後、Roboflowダッシュボードのモデルページからモデル評価ツールにアクセスします。「View Detailed Evaluation」をクリックします。
このツールには、モデルのパフォーマンスを示す混同行列と、CLIP埋め込みを使用したインタラクティブなベクトル分析プロットが表示されます。これらの機能は、モデルの改善点の特定に役立ちます。
混同行列のポップアップ:
セルにカーソルを合わせると値が表示され、セルをクリックすると、モデルの予測と正解データを含む対応画像を表示できます。
「Vector Analysis」をクリックすると、CLIP埋め込みに基づいて画像の類似度を可視化する散布図が表示されます。互いに近い画像は意味的に類似しています。ドットは画像を表し、白(パフォーマンスが良い)から赤(パフォーマンスが悪い)までの色で示されます。
Vector Analysisでできること:
- 画像のクラスタを特定します。
- モデルのパフォーマンスが低いクラスタを特定します。
- パフォーマンス低下の原因となる画像に共通する特徴を理解します。
学習リソース#
- カスタムデータセットでYOLOをトレーニング(Colab):データを使ったトレーニング用のインタラクティブなGoogle Colabノートブックです。
- Ultralytics YOLOドキュメント:YOLOモデルのトレーニング、エクスポート、デプロイについて説明しています。
- Ultralyticsブログ:コンピュータービジョンとモデルのトレーニングに関する記事です。
- Ultralytics YouTube:モデルのトレーニングとデプロイに関する動画ガイドです。
FAQ#
Roboflow Annotateを使用します。プロジェクトを作成して画像をアップロードし、アノテーションツール(バウンディングボックスには
B、ポリゴンにはP)またはSAMベースのラベルアシスタントを使用して、より効率的にラベルを付けます。詳しい手順は、データのアップロード、変換、ラベリングのセクションで確認できます。Roboflowのデータセット検索、タグ付け、Health Check機能を使用します。検索ではテキストまたはタグで画像を見つけられ、Health Checkではデータセットの品質(クラスバランス、画像サイズなど)を分析して、トレーニング前の改善を支援します。詳細については、データセット管理のセクションをご覧ください。
Roboflowでデータセットバージョンを作成し、必要な前処理と拡張を適用してから、「Export Dataset」をクリックし、YOLO26形式を選択します。手順はデータのエクスポートのセクションで説明しています。これにより、Ultralyticsのトレーニングパイプラインでデータを使用できるようになります。
提供されているPythonスクリプトを使用して、トレーニング済みのYOLO26の重みをRoboflowにアップロードします。これにより、デプロイ可能なAPIエンドポイントが作成されます。スクリプトと手順については、カスタム重みのアップロードのセクションをご覧ください。ドキュメントでさらにデプロイオプションをご確認ください。