フレーム遅延
同じ動画ストリームの前のフレーム(N-k、過去)から値を参照します。
あるフレームで生成された値を参照します 以前の 同じビデオストリームのフレーム。ワークフローの任意の出力(検出結果、数値、文字列、画像、...)をこのブロックに接続し、負の オフセットを設定すると、このブロックはその値を当時のまま返します |オフセット| フレーム前です。
過去(非正)のオフセットのみがサポートされています。真の未来先読みを行うには、ワークフロー全体の出力を遅延させる必要がありますが、同期型ランタイム(WebRTC/webexec、単一画像HTTP)ではそれは不可能なため、ここでは意図的に提供していません。
このブロックの仕組み
読み取ります
video_metadata接続されたimageから取得しますvideo_identifier(ストリームごとの状態を分離して保持するために使用)と単調なフレーム番号(N).入力された
データ値を、フレーム番号をキーとする動画ごとのリングバッファに保存します。解決します
target_frame = N + offset(offset <= 0)data[target_frame]バッファにあれば返し、そうでなければdefault_value.報告します
利用可能かどうか(対象フレームがバッファされていたかどうか)と参照フレーム番号(常に現在のフレームN).
一般的な使用例
現在のフレームを過去のフレーム(
-1,-5)と比較して、変化/傾向を検出します。遅延した遅い信号を、それが属するフレームに合わせます。
Nフレーム前の値を記憶します(例:10フレーム前の支配色)。
要件と制限
オフセットは<= 0。正のオフセットは拒否されます。|オフセット|256を超えてはなりません。バッファされた各フレームはメモリに保持されるため、大きなオフセットで画像ストリームを遅延させるのは高コストです(1080pで1フレームあたり約6 MB、4Kで約25 MB)。可能であれば、フル画像ではなく小さな派生値を遅延させることを推奨します。過去方向のオフセットはすべての実行コンテキストで機能し、出力遅延は発生しません。
状態はプロセスメモリ内に
video_identifierをキーとして保持されます。ステートレス/マルチレプリカのリモートHTTPランタイムでは性能が低下します。同時に追跡されるストリームは最大16本で、それを超えると最も最近見られた時刻が古いストリームのバッファが破棄されます。
〜を持つストリームは
フレーム番号再起動すると(例:再接続時)、そのバッファはクリアされます。状態はワークフローの存続期間中保持され、再起動時にリセットされます。
値は利用できず(返り値は
default_value)要求された|オフセット|深さに達するまでです。次の場合、
オフセットがランタイムセレクタに接続されている場合、バッファサイズはこれまでストリーム上で見られた最大の|オフセット|ものに合わせられるため、浅いオフセットと深いオフセットを交互に使っても、深い履歴は利用可能なまま維持されます。ストリームの途中でオフセットを増やすと、さらに深いフレームが利用可能になるのは、十分な新しいフレームがバッファされてからです。
型識別子
ステップで次の識別子を使用してください "type" フィールド: roboflow_core/frame_delay@v1 ワークフローにこのブロックをステップとして追加するには。
プロパティ
名前
型
説明
参照
name
str
このステップの一意の識別子を入力してください。
❌
オフセット
整数
過去方向の相対フレームオフセット。0以下である必要があります。例:-1は1つ前のフレーム、-10は10フレーム前、0は現在のフレームです。バッファされた各フレームはメモリに保持されるため、-256までに制限されています。
✅
default_value
Optional[bool, float, int, str]
要求されたフレームがバッファで(まだ)利用できない場合に返される値。
❌
この 参照 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します ワークフロー 実行時。参照 バインディング 詳細は。
ランタイム互換性
soft - ランタイム hosted_serverless, dedicated_deployment;実行 リモート; 入力 動画 このブロックは、プロセスメモリ内に動画ごとの状態を保持します(video_metadata.video_identifier をキーとする)。ステートレスまたは複数レプリカのHTTPランタイムでリモートステップ実行を行うと、連続するリクエストが別々のワーカープロセスによって処理される可能性があるため、呼び出し間で状態がリセットされ、追跡/カウント/集計には意味のない出力になります。安定したフレーム間結果を得るには、永続的な WebRTC セッションでローカルステップ実行を使用してください。
soft - 入力 image このブロックは、動画または繰り返しフレームのワークフローからの時間的コンテキストに依存します。静止画像/写真では、追跡、比較、集計、可視化に使える意味のある履歴がないため、このブロックの利点はほとんど、またはまったくありません。
入力と出力のバインディング
利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が フレーム遅延 のバージョン v1 あるか確認してください。
入力と出力のバインディング
入力
image(image):バッファのインデックスに使用される動画メタデータ(フレーム番号とストリーム識別子)を提供する画像/動画フレーム。データ(Union[list_of_values,image,instance_segmentation_prediction,*,keypoint_detection_prediction,object_detection_prediction]):遅延させる値。検出結果、数値、文字列、画像、またはその他のワークフロー出力にできます。オフセット(整数過去方向の相対フレームオフセット。0以下である必要があります。例:-1は1つ前のフレーム、-10は10フレーム前、0は現在のフレームです。バッファされた各フレームはメモリに保持されるため、-256までに制限されています。
最終更新
役に立ちましたか?