---
title: "Few-Shot Video Classification via Temporal Alignment"
title_ru: "Классификация видео с малым числом примеров через темпоральное выравнивание (OTAM)"
authors: [Cao, Ji, Zhang, Cao, Yang]
year: 2020
venue: "CVPR"
venue_tier: "A*"
doi: "10.1109/CVPR42600.2020.00576"
tags: [few_shot, action_recognition, temporal_alignment, dtw, video]
relevance_to_smartrep: 4
direction: "🅱"
---

# OTAM: Классификация видео с малым числом примеров через темпоральное выравнивание

## TL;DR (≤3 предложения)

OTAM (Ordered Temporal Alignment Module) решает few-shot классификацию видео, выравнивая временну́ю последовательность query-видео с каждым support-видео через дифференцируемый вариант DTW. В отличие от методов, усредняющих кадры в один прототип, OTAM сохраняет порядок кадров — критически важный для динамики движений. Прямой прообраз для SmartRep: 5 эталонных повторов упражнения как support set → OTAM-выравнивание нового повтора → классификация "правильно/ошибка".

## Проблема

Few-shot action recognition сложнее few-shot image classification: видео — это последовательность, и простое усреднение кадровых embedding'ов (как в ProtoNet) теряет темпоральный порядок. Два выполнения приседания с разной скоростью имеют разную длину последовательности, но должны сопоставляться как "один класс".

## Гипотеза / вклад

- **Ordered Temporal Alignment:** применение DTW-подобного выравнивания в дифференцируемой форме — можно обучать end-to-end.
- **Кадровый уровень similarity:** расстояние между видео = сумма сопоставленных кадровых сходств после оптимального выравнивания.
- **Эпизодическое обучение на видео:** N-way K-shot, где каждый "shot" — полное видео-действие.

## Метод

Энкодер $\phi$ извлекает фрейм-уровневые embedding'и. Для query $Q = \{q_t\}$ и support $S = \{s_t\}$ строится матрица сходства $M_{ij} = \cos(q_i, s_j)$.

Кумулятивная стоимость DTW-выравнивания (дифференцируемая версия):

$$D(i, j) = M_{ij} + \min\bigl(D(i-1, j),\, D(i-1, j-1),\, D(i, j-1)\bigr)$$

Общее сходство пары видео $= D(T_Q, T_S)$ (значение в правом нижнем углу). Порядок сохраняется: выравнивание только "вперёд" по времени.

Loss — эпизодическая кросс-энтропия с softmax по сходствам с каждым support-классом.

### Архитектура (Mermaid)

```
Query video  → frame encoder φ → {q₁,...,qT}
Support video → frame encoder φ → {s₁,...,sT'}
                                    ↓
              Similarity matrix Mᵢⱼ = cos(qᵢ, sⱼ)
                                    ↓
              Ordered DTW alignment → alignment score
                                    ↓
              Softmax over support classes → Classification loss
```

## Датасеты

| Датасет | Задача | Метрика | Результат (5-way 5-shot) |
|---|---|---|---|
| Kinetics-100 | Action recognition | Accuracy | 85.8% |
| SSv2-100 | Action recognition | Accuracy | 52.3% |
| HMDB51 | Action recognition | Accuracy | 64.7% |
| UCF101 | Action recognition | Accuracy | 88.9% |

## Сравнение с SOTA

На момент публикации SOTA для few-shot video. На SSv2 (где важна темпоральная структура) отрыв от ProtoNet-based baseline особенно значителен (~+5%). На Kinetics (где spatial cues доминируют) отрыв скромнее.

## Ограничения / слабости

- DTW-alignment квадратичен по длине последовательности — при длинных видео (много повторов подряд) вычислительно дорог.
- Метод работает с RGB-видео через стандартный backbone (ResNet/CNN) — нет версии для скелетных последовательностей.
- Не учитывает качество движения — только принадлежность к классу действия.
- Backbone (ResNet-50) тяжёлый для edge.

## Релевантность SmartRep

- **Прямой кандидат для 🅱:** ключевая идея — сравнивать последовательности через темпоральное выравнивание, а не через усреднение — идеально для оценки "насколько этот повтор похож на эталонные 5 повторов?".
- **One-class AQA extension:** если в support set только правильные повторы, OTAM-расстояние от query до ближайшего support = аномалийный score (высокое расстояние = плохая техника).
- **Skeleton adaptation:** нужно заменить RGB backbone на скелетный encoder (ST-GCN / Mamba по суставным координатам) — сохраняя OTAM alignment head. Это конкретный архитектурный вклад SmartRep.

## Gap для нас

OTAM работает с RGB, не учитывает качество внутри класса (только "это присед или жим?"). **Ниша SmartRep:** Skeleton-OTAM — OTAM-выравнивание на скелетных координатах + head, выдающий не только метку класса, но и per-joint deviation score (насколько сустав отклонился от выровненного эталона в каждом кадре).

## Ссылки на связанные статьи

- [[TRX]] — следующий шаг: cross-transformer вместо DTW
- [[ProtoNet]] — baseline, который OTAM превосходит на темпоральных данных
- [[HumanMAC]] — похожая идея темпоральной согласованности, но для генерации

## Код / данные

- Repo: github.com/tobyperrett/few-shot-action-recognition
- Pretrained: нет

## Цитата (BibTeX)

```bibtex
@inproceedings{cao2020few,
  title={Few-Shot Video Classification via Temporal Alignment},
  author={Cao, Kaidi and Ji, Jingwei and Cao, Zhangjie and Chang, Chien-Yi and Niebles, Juan Carlos},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  year={2020}
}
```
