説明
バッチからのランダム画像選択ノード(クラス RandomImageFromBatch)は、画像またはマスクのバッチから、選択されたインデックス範囲内でフレームのシーケンスを選択します。randomness = 0 の場合は範囲内で均等に間隔を空けて選択され、randomness = 1 の場合は均一なランダム(非復元抽出)で選択されます。中間の値は線形にブレンドされます。出力は常にバッチインデックスでソートされます。負のインデックスは末尾からカウントされます(-1 = 最後のフレーム)。
このノードは、より大きなバッチから制御可能で再現可能なフレームのサブセットを生成するのに便利です。例えば、間引いたフレームシーケンスを作成したり、選択したフレーム間の最小または最大ギャップを設定してランダムサンプルを選択したりする場合に使用します。
入力
| 名前 | 型 | デフォルト | 最小 | 最大 | ツールチップ/動作 |
|---|---|---|---|---|---|
input | MATCHTYPE | – | – | – | サンプリング元の画像またはマスクのバッチ。 |
start_index | INT | 0 | -4096 | 4096 | サンプリング範囲の開始(含む)。負の値は末尾からカウント(例:-1 は最後のフレーム)。 |
end_index | INT | -1 | -4096 | 4096 | サンプリング範囲の終了(含む)。-1 は最後のフレーム。 |
num_frames | INT | 1 | 1 | 4096 | 範囲から選択するフレーム数。範囲内のフレーム数以下である必要があります。 |
randomness | FLOAT | 1 | 0.0 | 1.0 | 均等間隔(0)と均一ランダム非復元(1)のブレンド。中間の値はジッター付きの均等間隔を生成します。 |
min_distance | INT | 0 | 0 | 4096 | 連続する選択間の最小ギャップ(フレーム数)。0 = 最小なし。選択はこの制約を満たすように前方に押し出されます。後の選択は範囲の末尾にクランプされる場合があります。 |
max_distance | INT | 0 | 0 | 4096 | 連続する選択間の最大ギャップ(フレーム数)。0 = 最大なし。選択はこれを満たすように内側に引き寄せられ、シーケンスが先頭方向に圧縮される場合があります。 |
seed | INT | 0 | 0 | 2^64-1 | 再現可能なサンプリングのためのランダムシード。randomness が 0 の場合は無視されます。 |
出力
| 型 | 説明 |
|---|---|
| MATCHTYPE | 選択されたフレーム(入力と同じ型)。バッチインデックスでソートされた順序で出力されます。 |
使用上の注意
- 範囲の定義:
start_indexとend_indexは包含範囲を定義します。start_index>end_indexの場合、範囲は空になり、フレームは選択されません(出力は空のバッチになります)。負のインデックスを使用すると、最後のフレームを簡単に参照できます(例:-1で最後のフレーム)。 - フレーム数:
num_framesは範囲内のフレーム数を超えてはなりません。超えた場合の動作は未定義です(ノードがクランプするかエラーになる可能性があります。実行時のメッセージを参照してください)。 - ランダム性の動作:
0.0→ フレームは範囲全体に等間隔(線形間隔)で選択されます。最初の選択は先頭、最後の選択は末尾になります。1.0→ 各選択は均一ランダムで非復元(シャッフル)です。結果は特定のseedで再現可能です。0.5→ フレームは等間隔の位置に配置され、その後それぞれが間隔に比例したランダムオフセットでジッターされます(ブレンド)。
- 距離制約(
min_distance、max_distance):- これらの制約は初期選択(ランダムまたは均等間隔)の後に適用されます。制約が
num_framesと範囲の長さと競合する場合、ノードは可能な限り近い選択に調整し、範囲の境界にクランプします。 min_distance> 0 は選択が広がることを保証します。ノードは後の選択を前方に押し出します。最後の選択は元のend_indexより後になる可能性がありますか?(実際には、説明では「選択は前方に押し出され、後の選択は範囲の末尾にクランプされる場合がある」とされています。つまり、選択は範囲を超えません。)max_distance> 0 は選択を近くに留めます。ノードは選択を先頭方向に引き寄せます。範囲が短すぎる場合は、間隔がさらに縮小される可能性があります。- 両方を
0(デフォルト)に設定すると、距離制約は完全に無効になります。
- これらの制約は初期選択(ランダムまたは均等間隔)の後に適用されます。制約が
- シード:
seedはrandomness > 0の場合のみ使用されます。実行間で決定論的な結果を得るには、同じシードとランダム性の値を維持してください。 - 出力のソート: 選択方法(ランダムまたは順次)に関係なく、返されるバッチは常にフレームインデックスでソートされるため、後続のノードはフレームを順序通りに受け取ります。
使用例
- 低FPSプレビューの作成:
randomness=0に設定し、範囲の長さに適したnum_framesを指定して、Nフレームごとに選択します。 - トレーニング用のランダムフレームサンプリング:
randomness=1、大きなnum_frames、オプションでmin_distanceを設定して、ほぼ同一のフレームを避けます。 - ジッター付き等間隔:
randomness=0.3に設定して、厳密な規則パターンを崩しながらも、おおまかに一貫したテンポを維持します。
コメント
GitHubでサインインしてディスカッションに参加しましょう。