# Face Recognotion on Videos
## Early works
In early works image sets from videos or not were treated as independent set of images.
### [Fitzgibbon & Zisserman, CVPR 2003](https://www.semanticscholar.org/paper/Face-recognition-based-on-image-sets-Cevikalp-Triggs/77dd85ed8749a4167776d1a9a41db09f83043dbe)

*Face Recognition Based on Image Sets by Hakan Cevikalp & Bill Triggs - CVPR 2010, San Francisco USA*
In this kind of approaches we need to perform optimization to find closest distance. SVM may me reformulated to solve this convex problem. Baselines ate very toy.
### Learning Discriminative Aggregation Network for Video-based Face Recognition
THe idea here is to use SET->IMAGE Gan to aggregate raw photos for better verification. Baselines are very toy.
## This talk
### Video Face Recognition: Component-wise Feature Aggregation Network (C-FAN)
Здесь аггрегация уже более привычная. Они упомянают старые работы про аггрегацию на уровне картинок (первый столбец), по оценке качества картинки (второй столбец) и их предложенный подход покомпонентно (третий столбец)

Вся идея в том, как обучить правило аггрегации. Тут достаточно просто:

С предпоследнего слоя перед фейсенами строится новая голова, которая предсказывает веса для аггрегации. Тут ничего сложного нет. Чтобы это обучать, авторы предлагают использовать триплет лосс.
**Важные замечания**
* веса каждой компоненты суммируются в единицу по количеству картинок. Если картинка одна, то вес аггрегации равен 1 для всех компонент.
* Это расширяет подход с аггрегацией по качеству, так как единый вес для всех компонент -- частный случай.
* Дообучение происходит на исходном тренировочном датасете
* Бекбон не дообучается
* Для дообучения происходит аугментация данных заблюриванием
#### Интерпретация
Визуально плохие картинки получают маленькие значения "качества". Причем как видно, этот эффект разнесен по компонентам.

#### Бейзлайны
**Подходы**
* Простое усреднение
* Усреднение с общими весами (оценка качества)
* Усреднение с покомпонентными весами (качество на компоненту)
**Датасеты**
* IJB-S (The dataset includes 350 surveillance videos spanning 30 hours in total, 5, 656 enrollment images, and 202 enrollment videos. This)
* YTF (YouTube Face datast)
* IJB-A
* UAV (is a small fixed-wing unmanned aerial vehicle that was flown to collect images and videos.
Судя по резульатам, простое усреднение никуда не годится. А обучать либо общий вес либо покомпонентный будет докидывать.

Для референса, так выглядят тестовые данные

### Attention-aware Deep Reinforcement Learning for Video Face Recognition
Здесь уже аггрегируются последовательности кадров рекуррентной моделью. Модель решает, какие кадры брать для аггрегации, какие не брать.
Что интересного заявляют авторы в этом подходе:
> Dropping a frame may lead to two states: st+1 and termination, where termination means that we already find a set of the most representative frames or there is only a pair of frames from each video. Evaluative
Тоесть можно заранее прекратить просматривать видео, набрав необходимое количество хороших кадров.
### Как это работает
Если опустить RL, который стоит за кадром, то они делают average pooling оставшихся после фильтрации кадров в один вектор и сравнивают видосы по cosine similarity этих векторов.

Но меня все равно смущает ряд вещей:
**Непонятная зависимость от количества используемых фреймов (Figure 4)**. Смотреть на правую картинку (по оси X трешхолд по количеству картинок), левая это сабсемплинг (пропущенные фреймы, чтобы сильно близкие не брать). Ось Y тоже странная

**Внимание на FAR**

Тем не менее, статья хороша. При всей ее "из пушки по воробьям", там есть некоторые идеи, которые кажутся полезными. А именно
* Не одним RL едины и использовать модели на последовательностях может быть действительно полезно. Например self attention модели, для формулировки в первой статье. Там используется просто предсказание без учета взаимоствязей.
* Бейзлайн при обучении (на подумать): не все кадры могут быть одинаково хороши, можно учитывать относительное улучшение.
