Описание
Нода Random Image From Batch (класс 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не должно превышать количество кадров в диапазоне, иначе поведение не определено (нода может ограничить значение или выдать ошибку; смотрите сообщения во время выполнения). - Поведение randomness:
0.0→ Кадры выбираются с равными интервалами (линейное распределение) по всему диапазону. Первый выбор находится в начале, последний — в конце.1.0→ Каждый выбор полностью случайный без повторений (перемешивание). Результаты воспроизводимы при заданномseed.0.5→ Кадры размещаются на равномерно распределенных позициях, затем каждый сдвигается на случайное смещение, пропорциональное интервалу (смешивание).
- Ограничения расстояния (
min_distance,max_distance):- Эти ограничения применяются после первоначального выбора (случайного или равномерного). Если ограничения конфликтуют с
num_framesи длиной диапазона, нода будет корректировать выборки, чтобы они были как можно ближе, прижимая их к границам диапазона. min_distance> 0 гарантирует, что выборки разнесены. Нода сдвигает последующие выборки вперед; последняя выборка может оказаться позже исходногоend_index? (На самом деле, описание говорит "выборки сдвигаются вперед для выполнения этого; поздние выборки могут быть прижаты к концу диапазона" – это означает, что выборки не выйдут за пределы диапазона.)max_distance> 0 заставляет выборки оставаться близко друг к другу. Нода стягивает выборки к началу; если диапазон слишком короткий, интервал может быть уменьшен еще больше.- Установка обоих на
0(по умолчанию) отключает ограничения расстояния.
- Эти ограничения применяются после первоначального выбора (случайного или равномерного). Если ограничения конфликтуют с
- Зерно (seed):
seedиспользуется только когдаrandomness > 0. Для детерминированных результатов между запусками сохраняйте одинаковое значение seed и randomness. - Сортировка выхода: Независимо от того, как сделаны выборки (случайно или последовательно), возвращаемый пакет всегда отсортирован по индексу кадра, поэтому последующие ноды получают кадры по порядку.
Примеры использования
- Создать низкочастотный предпросмотр: Выберите каждый N-ый кадр, установив
randomness=0и подходящееnum_framesдля длины диапазона. - Случайная выборка кадров для обучения: Установите
randomness=1, большоеnum_framesи, опционально,min_distance, чтобы избежать почти идентичных кадров. - Равномерное распределение с дрожанием: Установите
randomness=0.3, чтобы разбить жесткие регулярные паттерны, сохраняя при этом примерно равномерный темп.
Комментарии
Войдите через GitHub, чтобы участвовать в обсуждении.