Roboflow#
Roboflowは、データラベリングや、YOLOを含むさまざまな形式でのデータセットのエクスポートに役立つツールを提供します。このガイドでは、Ultralytics YOLOモデル用データのラベリング、エクスポート、デプロイについて説明します。
Ultralyticsでは、さまざまなユースケースに対応するため、2種類のライセンスを提供しています。
- AGPL-3.0ライセンス: このOSI承認のオープンソースライセンスは、オープンな協業と知識共有を促進するもので、学生や愛好家に最適です。詳細については、LICENSEファイルをご覧ください。
- Enterprise License:開発および本番環境での利用向けのこのライセンスでは、社内ツール、自動化されたワークフロー、本番環境へのデプロイを含むビジネス製品やサービスに、UltralyticsのソフトウェアとAIモデルをシームレスに統合できます。AGPL-3.0のオープンソース要件は適用されません。ご利用を開始するには、Ultralytics Licensingからお問い合わせください。
詳細については、Ultralyticsライセンスのページをご覧ください。
このガイドでは、Roboflowを使用して、カスタムのUltralytics YOLO26モデルのトレーニングに使用するデータの検索、ラベリング、整理を行う方法を説明します。
カスタムYOLO26モデルのトレーニング用データを収集する#
Roboflowは、UltralyticsのYOLOモデルのデータ収集を支援する主なサービスとして、UniverseとCollectを提供しています。データ収集戦略全般については、データ収集とアノテーションのガイドをご覧ください。
Roboflow Universe#
Roboflow Universeは、ビジョン関連のデータセットを掲載するオンラインリポジトリです。データセットをYOLO形式でエクスポートして、Ultralyticsモデルで使用できます。
Roboflow Collect#
自分で画像を収集する場合は、Roboflow Collectを使用できます。これは、エッジデバイスのWebカメラを使って画像を自動収集できるオープンソースプロジェクトです。テキストまたは画像のプロンプトで収集するデータを指定できるため、ビジョンモデルに必要な画像だけを効率よく取得できます。
YOLO26形式のデータをアップロード、変換、ラベリングする#
Roboflow Annotateは、物体検出、分類、セグメンテーションなど、さまざまなコンピュータービジョンタスク向けに画像をラベリングするオンラインツールです。
UltralyticsのYOLOモデル用にデータをラベリングするには、Roboflowでプロジェクトを作成し、画像をアップロードして、アノテーションを開始します。
アノテーションツール#
- バウンディングボックスのアノテーション:
Bを押すか、ボックスのアイコンをクリックします。クリックしてドラッグすると、バウンディングボックスを作成できます。ポップアップが表示され、アノテーションのクラスを選択できます。 - ポリゴンのアノテーション: インスタンスセグメンテーションに使用します。
Pを押すか、ポリゴンのアイコンをクリックします。対象物の周囲をクリックして点を配置し、ポリゴンを描画します。
ラベルアシスタント(SAMとの統合)#
Roboflowは、アノテーションを効率化できるセグメント・エニシング・モデル(SAM)ベースのラベルアシスタントを統合しています。
ラベルアシスタントを使用するには、サイドバーのカーソルアイコンをクリックします。プロジェクトでSAMが有効になります。
対象物にカーソルを合わせると、SAMがアノテーション候補を提示する場合があります。クリックするとアノテーションを確定できます。提案された領域の内側または外側をクリックすると、アノテーションの範囲を調整できます。
タグ付け#
サイドバーの「Tags」パネルを使って、画像にタグを追加できます。タグには、場所やカメラの種類などの属性を指定できます。タグを使うと、特定の画像を検索したり、特定のタグが付いた画像を含むデータセットのバージョンを生成したりできます。
ラベルアシスト(モデルベース)#
RoboflowでホストされているモデルをLabel Assistで使用すると、アノテーション候補を提示できます。YOLOモデルの重みをRoboflowにアップロードし(手順は以下を参照)、サイドバーの魔法の杖アイコンからLabel Assistを有効にします。
YOLO26のデータセット管理#
Roboflowは、コンピュータービジョンのデータセットを理解し、管理するためのさまざまなツールを提供しています。
データセット検索#
データセット検索を使うと、テキストの説明や特定のラベル・タグに基づいて画像を検索できます。サイドバーの「Dataset」をクリックして、この機能にアクセスします。
ヘルスチェック#
トレーニングの前に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スクリプトを使って重みをRoboflowにアップロードすると、YOLO26モデルをデプロイできます。
新しい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の埋め込みに基づいて画像の類似度を可視化する散布図が表示されます。近くにある画像は意味的に類似しています。点は画像を表し、白(良好なパフォーマンス)から赤(不良なパフォーマンス)までの色で示されます。
ベクトル分析は、次の用途に役立ちます。
- 画像のクラスタを特定する
- モデルのパフォーマンスが低いクラスタを特定する
- パフォーマンス低下の原因となる画像に共通する特徴を把握する
学習リソース#
- カスタムデータセットでYOLOをトレーニングする(Colab): 自分のデータでトレーニングするためのインタラクティブなGoogle Colabノートブックです。
- Ultralytics YOLOのドキュメント: YOLOモデルのトレーニング、エクスポート、デプロイについて説明します。
- Ultralyticsブログ: コンピュータービジョンとモデルのトレーニングに関する記事です。
- Ultralytics YouTube: モデルのトレーニングとデプロイに関する動画ガイドです。
よくある質問#
Roboflow Annotateを使用します。プロジェクトを作成して画像をアップロードし、アノテーションツール(バウンディングボックスには
B、ポリゴンにはP)またはSAMベースのラベルアシスタントを使うと、ラベリングを効率化できます。詳しい手順は、データのアップロード、変換、ラベリングのセクションをご覧ください。Roboflowのデータセット検索、タグ付け、Health Check機能を活用してください。データセット検索ではテキストやタグから画像を検索でき、Health Checkではクラスバランスや画像サイズなどのデータセット品質を分析して、トレーニング前の改善に役立つ情報を提供します。詳細については、データセット管理のセクションをご覧ください。
Roboflowでデータセットバージョンを作成し、必要な前処理とデータ拡張を適用します。次に「Export Dataset」をクリックし、YOLO26形式を選択します。手順の概要はデータのエクスポートのセクションをご覧ください。これで、Ultralyticsのトレーニングパイプラインでデータを使用できるようになります。
提供されているPythonスクリプトを使って、トレーニング済みのYOLO26の重みをRoboflowにアップロードします。これにより、デプロイ可能なAPIエンドポイントが作成されます。スクリプトと手順については、カスタムの重みのアップロードのセクションをご覧ください。ドキュメントで、その他のデプロイ方法もご確認ください。