설명
배치에서 무작위 이미지 노드(클래스 RandomImageFromBatch)는 선택한 인덱스 범위 내에서 이미지 또는 마스크 배치에서 프레임 시퀀스를 선택합니다. randomness = 0일 때는 범위 내에서 균일한 간격으로 선택되고, randomness = 1일 때는 비복원 균등 무작위 추출되며, 중간 값은 선형적으로 혼합됩니다. 출력은 항상 배치 인덱스별로 정렬됩니다. 네거티브 인덱스는 끝에서부터 셉니다(-1 = 마지막 프레임).
이 노드는 더 큰 배치에서 제어 가능하고 재현 가능한 프레임 부분 집합을 생성하는 데 유용합니다: 예를 들어, 드문 스킵 프레임 시퀀스를 만들거나 선택된 프레임 사이의 최소 또는 최대 간격으로 무작위 샘플을 선택하는 데 사용할 수 있습니다.
입력
| 이름 | 유형 | 기본값 | 최소 | 최대 | 도구 설명 / 동작 |
|---|---|---|---|---|---|
input | MATCHTYPE | – | – | – | 샘플링할 이미지 또는 마스크 배치입니다. |
start_index | 정수 | 0 | -4096 | 4096 | 샘플링 범위의 포함 시작점입니다. 네거티브 값은 끝에서부터 셉니다(예: -1은 마지막 프레임). |
end_index | 정수 | -1 | -4096 | 4096 | 샘플링 범위의 포함 끝입니다. -1은 마지막 프레임을 의미합니다. |
num_frames | 정수 | 1 | 1 | 4096 | 범위에서 선택할 프레임 수입니다. 범위의 프레임 수보다 작거나 같아야 합니다. |
randomness | 실수 | 1 | 0.0 | 1.0 | 균일한 간격(0)과 비복원 균등 무작위(1) 사이의 혼합입니다. 중간 값은 지터링된 균일 간격을 생성합니다. |
min_distance | 정수 | 0 | 0 | 4096 | 연속적인 선택 사이의 최소 간격(프레임 단위)입니다. 0 = 최소 없음. 선택은 이 제약 조건을 만족시키기 위해 앞으로 밀려납니다. 나중 선택은 범위 끝에 고정될 수 있습니다. |
max_distance | 정수 | 0 | 0 | 4096 | 연속적인 선택 사이의 최대 간격(프레임 단위)입니다. 0 = 최대 없음. 선택은 이를 만족시키기 위해 당겨지며, 시퀀스가 시작 쪽으로 압축될 수 있습니다. |
seed | 정수 | 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일 때만 사용됩니다. 실행 간에 결정론적 결과를 얻으려면 동일한 시드와 무작위성 값을 유지하세요. - 출력 정렬: 선택 방식(무작위 또는 순차)에 관계없이 반환된 배치는 항상 프레임 인덱스별로 정렬되므로 이후 노드가 프레임을 순서대로 수신합니다.
예제 사용 사례
- 저해상도 미리보기 생성:
randomness=0으로 설정하고 범위 길이에 적절한num_frames를 설정하여 N 프레임마다 선택합니다. - 학습용 프레임 무작위 샘플링:
randomness=1과 큰num_frames를 설정하고, 필요에 따라min_distance를 설정하여 거의 동일한 프레임을 피합니다. - 지터를 포함한 균일 간격:
randomness=0.3으로 설정하여 거칠고 규칙적인 패턴을 깨뜨리면서도 대략 일정한 템포를 유지합니다.
댓글
GitHub로 로그인하고 토론에 참여하세요.