検出フィルター
モデル予測を条件付きで除外します。
カスタマイズ可能な条件に基づいて検出予測をフィルタリングし、指定した基準(例: クラス名、信頼度スコア、バウンディングボックスの属性)を満たさない検出を選択的に除外しながら、フィルタリングロジックに一致する検出のみを保持します。
このブロックの仕組み
このブロックは、柔軟なクエリ言語システムを使用して検出予測に条件付きフィルタリングを適用します。このブロックは:
検出予測(物体検出、インスタンスセグメンテーション、またはキーポイント検出)とフィルタリング操作の定義を入力として受け取ります
で指定されたフィルタリング条件に対して各検出を評価します
operationsパラメータプロパティ抽出操作を使用して検出プロパティ(例: class_name、confidence、バウンディングボックス座標)を抽出します
二項文(例: class_name がリストに含まれる、confidence > 閾値)を使用して、抽出したプロパティを基準と比較します
条件に一致しない検出を除外し、フィルター基準を満たす検出のみを保持します
フィルター条件を通過した検出のみを含む、フィルタリング済み予測を返します
このブロックは、さまざまな検出プロパティ(クラス名、信頼度スコア、バウンディングボックス座標など)の抽出と、条件ロジックを適用して検出をフィルタリングすることをサポートするクエリ言語システムを使用します。フィルタリング操作では、プロパティがリストに含まれているかを確認したり、数値を比較したり、文字列の等価性を確認したり、その他の比較演算子を使用したりできます。 operations_parameters dictionary は、フィルタリング操作で参照される実行時の値(クラス名リストやしきい値など)を提供し、ワークフローの入力や計算済みの値に応じて変更できる動的なフィルタリング基準を可能にします。複数のフィルタリング操作を連結して、複雑なフィルタリングロジックを作成できます。
一般的な使用例
クラスベースのフィルタリング: 特定のオブジェクトクラスのみを保持するように検出をフィルタリングします(例: 「person」と「car」の検出のみを保持し、他はすべて削除する)。これにより、不要な検出を除外しつつ関連するオブジェクトタイプに焦点を当てた処理が可能になります
信頼度しきい値フィルタリング: 信頼度の低い検出を除去して検出品質を向上させます(例: 信頼度 > 0.7 の検出を保持し、不確かな予測を除外する)。これにより、後続処理が信頼できる検出で動作することを保証します
複数条件フィルタリング: 複数のフィルタリング条件を同時に適用します(例: class_name が許可リストに含まれ、かつ confidence > しきい値である検出を保持する)。クラスと信頼度のフィルタリングを組み合わせて、より精密に制御できます
ワークフロー状態に基づく動的フィルタリング: ワークフローの入力や計算済みの値を使用してフィルタリング基準を決定します(例: ユーザー入力に基づいてクラスをフィルタリングする、照明条件に応じて信頼度しきい値を調整する)。これにより、変化する条件に応答する適応的なフィルタリングが可能になります
下流ブロックの前処理: 可視化、カウント、または保存ブロックに渡す前に検出をフィルタリングします(例: カウント前に誤検出を除去する、可視化前に背景クラスを除外する)。これによりノイズが減り、後続操作の精度が向上します
選択的処理ワークフロー: フィルタリングされた異なるサブセットを異なる下流ブロックに振り分けます(例: 高信頼度の検出を一方の経路に、低信頼度の検出を別の経路にフィルタリングする)。これにより、検出品質や種類に基づく条件付き処理が可能になります
他のブロックへの接続
このブロックからのフィルタリング済み予測は、次のものに接続できます:
検出モデルブロック (例: 物体検出モデル、インスタンスセグメンテーションモデル、キーポイント検出モデル)クラス、信頼度、その他のプロパティに基づいてフィルタリングされた予測を受け取ります
可視化ブロック (例: バウンディングボックス可視化、ポリゴン可視化、ラベル可視化)フィルタリングされた検出のみを表示し、視覚的な雑然さを減らして関連するオブジェクトに焦点を当てます
カウントおよび分析ブロック (例: ラインカウンター、ゾーン滞在時間、速度)特定のフィルタリングされたクラスや信頼度レベルのみをカウントまたは分析し、対象オブジェクトに対して正確な指標を確保します
データ保存ブロック (例: ローカルファイルシンク、CSVフォーマッタ、Roboflowデータセットアップロード、Webhookシンク)フィルタリングされた検出結果のみを保存または送信し、不要な検出を除外することでストレージと帯域幅の使用量を削減します
その他の変換ブロック (例: Detections Merge、Detections Transform、Detection Offset)フィルタリングされたサブセットに追加の変換を適用し、フィルタリングされた検出に対して複雑な処理パイプラインを実現します
フロー制御ブロック (例: Continue If、Rate Limiter)フィルタリングされた検出が特定の条件を満たすかどうかに基づいて下流処理を条件付きでトリガーし、フィルタリング結果に基づく条件付きワークフローを実現します
種別識別子
ステップで次の識別子を使用します "type" フィールド: roboflow_core/detections_filter@v1 ワークフローにステップとしてブロックを追加するには。
プロパティ
名前
型
説明
参照
name
str
このステップの一意の識別子を入力してください。
❌
operations
List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]
クエリ言語システムを使用したフィルタリングロジックの定義。StatementGroup 構文を使用して条件ロジックを定義する 1 つ以上のフィルタリング操作(例: DetectionsFilter)を指定します。各操作は検出プロパティ(class_name、confidence、座標など)を抽出し、二項文(例: class_name がリストに含まれる、confidence > しきい値)を使用してそれらを比較できます。複数の操作を連結して複雑なフィルタリングロジックを作成できます。操作は operations_parameters からパラメータ名を参照して実行時の値にアクセスします。.
❌
この 参照 列は、で利用可能な動的値を使用してプロパティをパラメータ化できる可能性を示します ワークフロー 実行時。参照 バインディング 詳細情報
入出力バインディング
利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が 検出フィルター のバージョン v1 持つか確認してください。
入出力バインディング
入力
predictions(Union[instance_segmentation_prediction,keypoint_detection_prediction,object_detection_prediction]):フィルタリングする検出予測(物体検出、インスタンスセグメンテーション、またはキーポイント検出)。各検出は operations パラメータで指定されたフィルタリング条件に対して評価されます。フィルター基準に一致する検出のみが出力に含まれます。バッチ処理をサポートしており、複数の検出セットを同時にフィルタリングできます。.operations_parameters(*):operations で参照されるパラメータ名を、ワークフローの実際の値にマッピングする辞書。これらのパラメータは、フィルタリング操作で使用される実行時の値(例: クラス名リスト、信頼度しきい値)を提供します。キーは operations 定義で使用されるパラメータ名と一致し、値はワークフローの入力、ステップ出力、または計算済みの値を参照するセレクタです。例: {'classes': '$inputs.allowed_classes', 'threshold': 0.7} ここで 'classes' と 'threshold' は operations で参照されます。.
出力
predictions(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction]): 検出されたバウンディングボックスを含む予測。sv.Detections(...) オブジェクトの形式で、もしobject_detection_prediction): 検出されたバウンディングボックスとセグメンテーションマスクを含む予測。sv.Detections(...) オブジェクトの形式で、もしinstance_segmentation_predictionまたは、検出されたバウンディングボックスと検出されたキーポイントを sv.Detections(...) オブジェクトの形式で持つ予測。keypoint_detection_prediction.
最終更新
役に立ちましたか?