Как агрегировать frame embeddings в segment vector
Архив дорожных сцен состоит из последовательностей кадров. Как из кадров получить вектор сегмента для поиска по тексту?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Сначала выбирается window: например, 5-20 секунд. Кадры кодируются image encoder-ом, затем pooling, attention или temporal model собирает один или несколько segment embeddings.
Полный разбор
Система сначала выбирает единицу индексации. Для road-scene search удобнее сегмент, а не одиночный кадр: кадр может не показать весь маневр, а слишком длинный клип размывает смысл. Практичный старт - sliding windows по 5-20 секунд с overlap.
Дальше image encoder считает embeddings для выбранных кадров. Самый простой вариант агрегирует их mean/max pooling. Более точный вариант использует temporal attention, transformer или lightweight sequence model, которая понимает порядок кадров и выделяет важный момент внутри сегмента. Иногда сегмент хранит несколько vectors, чтобы не потерять разные события внутри одного окна.
Рядом с segment vector нужно хранить metadata: время, route id, camera, weather, perception tags, map context, версии моделей и quality flags. Эти признаки помогают фильтровать, объяснять выдачу и обучать reranker.
Теория
Temporal aggregation переводит video retrieval в индексируемую задачу. Главный компромисс - между контекстом, шумом, стоимостью и размером индекса.