CSV整形
指定した列でCSVファイルを作成します。
カスタム列を定義し、データ変換を適用し、バッチデータをCSVドキュメントに集約し、ログ記録、レポート作成、データエクスポートのワークフロー向けに自動タイムスタンプ追跡を行うことで、ワークフローデータを構造化されたCSV形式に変換します。
このブロックの仕組み
このブロックは、複数のソースからのデータを構造化された列に整理することで、ワークフローデータをCSV(カンマ区切り値)形式に整形します。このブロックは、
次からデータ参照を受け取ります
columns_data列名をワークフローデータソース(セレクタ、静的値、またはワークフロー入力)にマッピングする辞書必要に応じて次を使用してデータ変換処理を適用します
columns_operations、これはクエリ言語(UQL)を使用して列データを変換します(例: 検出からプロパティを抽出する、計算を行う、値を整形する)自動的に次を追加します
タイムスタンプ現在のUTC時刻をISO形式で含む列を追加します(例:2024-10-18T14:09:57.622297+00:00) を各行に追加します - なお、「timestamp」は予約済みの列名ですバッチ入力を複数のデータポイントを行に集約して処理します:
単一入力の場合(
batch_size=1):ヘッダー行と1行のデータを持つCSVを作成しますバッチ入力の場合(
batch_size>1):ヘッダー行と入力ごとに1行を持つCSVを作成し、すべての行を1つのCSVドキュメントに集約します。このドキュメントは最後のバッチ要素でのみ出力され(それ以前の要素は空のCSVコンテンツを返します)
複数のバッチ入力がある場合にバッチパラメータを揃え、非バッチパラメータを最大バッチサイズに合わせてブロードキャストします
pandasのDataFrameシリアライズを使用して、構造化データ辞書をCSV形式に変換します
返します
csv_content完全なCSVドキュメント(ヘッダー行とデータ行)を含む文字列として
このブロックは柔軟な列定義をサポートしており、各列は異なるワークフローデータソース(検出予測、分類結果、ワークフロー入力、計算値など)を参照でき、必要に応じて変換を適用して特定のプロパティを抽出したりデータを整形したりできます。自動タイムスタンプ列により、各CSV行がいつ生成されたかを時系列で追跡でき、ログ記録や時系列データ収集に役立ちます。バッチ集約により、このブロックは複数のワークフロー実行からデータを収集し、それらを1つのCSVドキュメントにまとめることができます。これは、複数の検出結果、画像、または分析結果を1つのCSVファイルに記録したいバッチ処理ワークフローで特に便利です。
一般的な使用例
検出のログ記録とレポート作成:検出結果のCSVログを作成します(例: クラス名、信頼度スコア、物体検出モデルからのバウンディングボックス座標を記録する)、これにより推論結果の構造化ログを分析、デバッグ、または監査証跡のために有効にします
時系列データ収集:ワークフローメトリクス、件数、または分析結果を時系列でCSV形式に集約します(例: ラインカウンターのカウント、ゾーン占有率、検出頻度を記録する)、トレンド分析やレポート作成のためのタイムスタンプ付きデータセットを作成します
バッチデータのエクスポート:バッチ処理ワークフローからデータを収集・集約してCSVファイルに出力します(例: 画像バッチからすべての検出結果をエクスポートする、複数のワークフロー実行からメトリクスを収集する)、効率的な一括データエクスポートとレポート作成を可能にします
構造化データ変換:複雑なワークフロー出力から特定のプロパティを抽出して整形します(例: 検出結果からクラス名を抽出する、入れ子のデータ構造をフラットなCSV列に変換する)、下流の分析や外部システム向けのデータ変換を可能にします
外部システムとの連携:外部ツールとの互換性のためにワークフローデータを整形します(例: スプレッドシート分析、データベース取り込み、ビジネスインテリジェンスツール向けのCSVファイルを作成する)、シームレスなデータエクスポートと連携ワークフローを可能にします
データ集約と分析:複数のワークフローソースからのデータを構造化されたCSV形式にまとめます(例: 検出結果をメタデータと結合する、モデル出力を参照データと組み合わせる)、包括的なデータ収集と分析ワークフローを可能にします
他のブロックへの接続
このブロックのCSVコンテンツは次に接続できます:
検出または分析ブロック (例: Object Detection Model、Instance Segmentation Model、Classification Model、Keypoint Detection Model、Line Counter、Time in Zone)に接続して出力をCSV列に整形し、推論結果や分析データの構造化ログ記録とエクスポートを可能にします
データ保存ブロック (例: Local File Sink)に接続してCSVファイルをディスクに保存し、整形済みワークフローデータの永続保存を後の分析やレポート作成に役立てます
通知ブロック (例: Email Notification、Slack Notification)に接続して通知にCSVコンテンツを添付または含め、CSVレポートをメール添付ファイルとして送信したり、メッセージ本文に含めたりできるようにします
Webhookブロック (例: Webhook Sink)に接続してCSVコンテンツを外部APIやサービスに送信し、CSVデータを利用する外部システムとの連携を可能にします
その他のフォーマッターブロック (例: JSON Parser、Expression)に接続してCSVコンテンツをさらに処理したり、他の形式に変換したりし、多段階のデータ変換ワークフローを可能にします
バッチ処理ワークフロー 複数のデータポイントを1つのCSVドキュメントに集約する必要がある場合に使用でき、バッチ処理結果の包括的なログ記録とエクスポートを可能にします
型識別子
ステップで次の識別子を使用してください "type" フィールド: roboflow_core/csv_formatter@v1 ワークフローにこのブロックをステップとして追加するには。
プロパティ
名前
型
説明
参照
name
str
このステップの一意の識別子を入力してください。
❌
columns_data
Dict[str, Union[bool, float, int, str]]
列名をデータソースにマッピングしてCSV列を構築する辞書です。キーは列名です(注: 'timestamp' は予約済みで使用できません)。値には、ワークフローデータを参照するセレクタ(例: '$steps.model.predictions'、'$inputs.data')、静的値(文字列、数値、真偽値)、またはその両方の組み合わせを指定できます。各キーと値のペアが1つのCSV列を作成します。バッチ入力をサポートしており、値がバッチの場合、CSVはすべてのバッチ要素を行に集約します。例: {'predictions': '$steps.object_detection.predictions', 'count': '$steps.line_counter.count_in'} は 'predictions' と 'count' という名前のCSV列を作成します。
✅
columns_operations
Dict[str, 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]]]
CSV整形前に列データを変換するための、列名をクエリ言語(UQL)の操作定義にマッピングする任意の辞書です。キーは columns_data で定義された列名と一致している必要があります。値は、列の生データを変換するUQL操作(例: DetectionsPropertyExtract で検出からクラス名を抽出する、文字列操作、計算)のリストです。操作は各列のデータに順番に適用されます。列名がこの辞書にない場合、データは変換されずそのまま使用されます。例: {'predictions': [{'type': 'DetectionsPropertyExtract', 'property_name': 'class_name'}]} は検出予測からクラス名を抽出します。
❌
この 参照 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します ワークフロー 実行時。参照 バインディング 詳細は。
入力と出力のバインディング
利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が CSV Formatter のバージョン v1 あるか確認してください。
入力と出力のバインディング
入力
columns_data(*):CSV列を構築するために、列名をデータソースにマッピングする辞書です。キーは列名です(注: 'timestamp' は予約済みで使用できません)。値には、ワークフローデータを参照するセレクタ(例: '$steps.model.predictions'、'$inputs.data')、静的値(文字列、数値、真偽値)、またはその両方の組み合わせを指定できます。各キーと値のペアが1つのCSV列を作成します。バッチ入力をサポートしており、値がバッチの場合、CSVはすべてのバッチ要素を行に集約します。例: {'predictions': '$steps.object_detection.predictions', 'count': '$steps.line_counter.count_in'} は 'predictions' と 'count' という名前のCSV列を作成します。
出力
csv_content(string) : 文字列値。
最終更新
役に立ちましたか?