アクティブラーニング
レビューと再学習を通じてモデルを継続的に改善するために、本番推論データを収集します。
概要
アクティブラーニングは、デプロイ済みモデルから本番データを収集し、レビューと再学習のために表示します。モデルが本番環境で推論を実行すると、アクティブラーニングは、設定したルール(たとえば低信頼度の予測や特定のクラスなど)に基づいて画像を自動的にサンプリングし、人によるレビュー用にキューへ追加します。
アクティブラーニングにはクラウドデプロイが必要です。Annotation Review 機能を含むプランで利用できます。
Webアプリ
アクティブラーニングを有効化
プロジェクトを開き、左側のサイドバーで「アクティブラーニング」を選択します。
アクティブラーニングのトグルをオンにします。
アクティブラーニングがデータを収集するには、プロジェクトに学習済みモデルとアクティブなクラウドデプロイが必要です。
収集ルールを設定
アクティブラーニングには、収集上限と条件という2種類の設定があります。
収集上限
アクティブラーニングがどれだけのデータを収集するかを制御します:
サンプリング率: サンプリングする推論の割合(例: 0.5%)
1分あたり、1時間あたり、1日あたりの画像上限
圧縮レベルと最大画像サイズ
バッチ再作成頻度(毎日、毎週、毎月、またはしない)
収集した画像と一緒にモデル予測を保持するかどうか
これらの設定を編集するには、「収集上限」セクションで「編集」をクリックし、設定モーダルで値を更新します。
条件
条件は、どの画像が収集されるかを絞り込みます。モデルの種類に基づいてルールを定義できます:
信頼度しきい値(例: 信頼度が60%未満の画像を収集)
対象となる特定のクラス
検出数の要件
条件を設定するには、「条件」セクションで「編集」をクリックします。
エージェントからアクティブラーニングを管理
また、以下からアクティブラーニングを管理することもできます Roboflow Agent。プロジェクトタブを開き、「設定」を選択し、このページと同じトグル、収集上限、条件を使用します。これには、ワークフローの管理、ワークフローの公開、データセットのアクティブラーニング権限が必要です。
収集された画像をレビュー
アクティブラーニングが画像を収集すると、それらはアクティブラーニングページの「画像」セクションに表示されます。ページには、レビュー準備完了の画像数と、現在レビュー中の画像数が表示されます。
レビューを開始するには:
「画像をレビュー」をクリックしてレビューキューを開きます。
ステータス(未開始、進行中)でバッチを閲覧し、作成日、画像数、進捗で並べ替えます。
レビューを開始するバッチを選択します。
レビュアーを割り当てる
レビュー作業をチーム全体に分配できます:
レビューキューを開き、バッチを選択します。
クリックしてレビュアーを割り当てます。
チームメンバーを選び、割り当てる画像数を設定し、必要に応じてレビュー手順を追加します。
「画像をシャッフル」トグルをオンにすると、各レビュアーに届く画像をランダム化できます。
画像が割り当てられると、レビュアーに通知が送られます。画像はいつでも別のレビュアーに再割り当てできます。
アクティブラーニングが学習ループにどう組み込まれるか
一般的なワークフロー:
モデルを学習してデプロイします。
用途に合わせて調整した条件でアクティブラーニングを有効にします。
条件に一致する本番データが収集され、キューに入ります。
レビュアーが収集された画像にラベルを付けます。
レビュー済み画像をデータセットに追加して再学習し、モデルを改善します。
これにより、モデルが最も苦手なケースで改善されるフィードバックループが生まれます。
HTTP API
HTTP API を使用して、アクティブラーニングの有効/無効の切り替え、収集ルールの更新、レビューキュー内の画像一覧の取得を行えます。エンドポイントは https://api.roboflow.com を使用し、 api_key クエリパラメータ、リクエストボディ、またはBearer認証ヘッダーでAPIキーを要求します。
アクティブラーニング設定を取得
GET /:workspace/:project/deploy/active-learning
必要なスコープ: project:read
レスポンスには、プロジェクト、デプロイ用ワークフロー、選択されたモデル、デプロイ可能性、およびアクティブラーニング設定が含まれます:
アクティブラーニングを有効化
POST /:workspace/:project/deploy/active-learning/enable
必要なスコープ: project:update
モデルが設定されていない場合、サービスは選択を試みます。 400 レスポンスは、そのワークフローがデプロイ可能でないことを意味します。レスポンスの形状は アクティブラーニング設定を取得と同じで、 activeLearning.enabled が true.
アクティブラーニングを無効化
POST /:workspace/:project/deploy/active-learning/disable
必要なスコープ: project:update
レスポンスの形状は アクティブラーニング設定を取得と同じで、 activeLearning.enabled が false.
アクティブラーニング設定を更新
POST /:workspace/:project/deploy/active-learning/configuration
必要なスコープ: project:update
新しいプロジェクトで設定する前に、アクティブラーニングを有効にしてください。リクエストには collectionLimitsを含める必要があります。 filters 配列は任意です。省略した場合、既存のフィルターは変更されません。
必須の収集上限フィールドは次のとおりです:
dataPercentage: 収集する推論の割合、0から100minutelyUsageLimit: 1分あたりに収集される最大画像数、または0で無制限hourlyUsageLimit: 1時間あたりに収集される最大画像数dailyUsageLimit: 1日あたりに収集される最大画像数labelingBatchesRecreationFrequency:"never","daily","weekly"、または"monthly"usageQuotaName: 空でないクォータ識別子
任意のフィールドは imageCompressionLevel, imageName, registrationTags、および persistPredictionsです。画像サイズを変更するには、 maxImageHeight と maxImageWidthの両方を指定してください。どちらか一方だけを指定すると、既存の画像サイズ制限が削除されます。
アクティブラーニングは2種類のフィルターをサポートしています:
classConfidence: 指定したクラスの予測を、信頼度範囲内で収集します。classFilterModeは"any","in"、または"out".detectionSize: バウンディングボックスがsizeLowerPercentageとsizeUpperPercentageの間にある予測を収集します。このフィルターは物体検出とインスタンスセグメンテーションのプロジェクトのみをサポートします。その他のプロジェクトタイプは400.
レスポンスの形状は アクティブラーニング設定を取得を返します。 400 レスポンスには、無効な収集上限またはフィルターに関する検証詳細が含まれます。
アクティブラーニング画像一覧
GET /:workspace/:project/deploy/active-learning/images
必要なスコープ: project:read
このエンドポイントは次の任意のクエリパラメータを受け付けます:
page: ページ番号、1pageSize: 1ページあたりの項目数、最大50search: キュー名、種類、ID、レビュアー、ラベラーに対して一致検索されるテキストreviewer: レビュアーのメールアドレスまたは"unassigned"status:"all","not_started"、または"in_progress"sortBy:"created","images"、または"progress"sortDirection:"asc"または"desc"
レスポンスには、レビューキューの件数、ページネーションされたキュー項目、バッチ、アノテーションジョブ、画像合計が含まれます:
Python SDK
Workspace.active_learning() ディレクトリ内のすべての画像に対して推論を実行し、条件に応じて画像(およびその予測)を送信先プロジェクトにアップロードします。これはSDKに組み込まれたアクティブラーニングループです。既存のモデルに、ラベル付けする価値のあるものを選別させることで、元の映像からラベリングキューを立ち上げます。
同じパターンは、 Workflow として本番利用向けに構築するのが最適ですが、 active_learning() は、「フレームのフォルダがある」状態から「ラベル付きデータがプロジェクトに入る」状態へ進む最速の方法です。
基本的な使い方
パラメータ
raw_data_location(str) - 入力画像のディレクトリ。raw_data_extension(str) - 一致させる画像拡張子(例:.jpg,.png).inference_endpoint(list,[project, version]) - 選別ステップとして実行するモデル。upload_destination(str) - 適格な画像と予測をアップロードする先のプロジェクトID。多くの場合、モデルと同じプロジェクトです。conditionals(dict) - 画像をアップロードするかどうかを決めるルール。主なキー:confidence_interval-[min, max]; この範囲に入る検出を持つ画像のみが転送されます。required_class_variance_count- 必要な異なるクラスの最小数。minimum_size_requirement/maximum_size_requirement- ピクセル単位の検出面積でフィルタします。required_class_count- 検出総数。
use_localhost(bool, defaultFalse) -Trueの場合、ホスト型推論ではなくセルフホストの Roboflow Inference サーバーに接続します。local_server(str) - ローカル推論サーバーのベースURL。デフォルトはhttp://localhost:9001/.
使う理由
一般的なループ:
小さなラベル付きデータセットで v1 モデルを学習する。
ポイント
active_learning()未ラベルの本番データのフォルダに対してモデルが不確かな画像(低信頼度)または稀なクラスを見つけた画像だけを転送する。
Roboflow のWebアプリでそれらにラベルを付ける。
新しい例を使って v2 を生成し、再学習する。
調整 conditionals が、これを「すべてアップロードする」から本当の選別ポリシーへ変える要素です。
より大きなパイプライン
入力が動画ストリームであったり、モデルが Workflow の背後にある場合や、バッチ処理と再試行を行いたい場合は、同等のものを Workflow. active_learning() として構築するのが、静的フォルダからの一回限りの初期化パスに最適です。
最終更新
役に立ちましたか?