

Привет! Отличный выбор для нашего литобзора. Если **PARE** блестяще решал проблему окклюзий, то **CLIFF (ECCV 2022)** элегантно расправляется с другой фундаментальной проблемой top-down подходов — **искажением перспективы и потерей масштаба**.

Когда человек снимает свою тренировку на телефон (особенно приседания или становую тягу), камера часто стоит на полу, близко к спортсмену или под углом. При обрезке (crop) такого кадра стандартные сети теряют информацию о том, _где именно_ находился человек в исходном кадре, что приводит к искажению 3D-позы (сеть путает перспективное искажение с реальным наклоном тела). CLIFF решает это гениально простым способом.

Давай проведем глубокий анализ статьи через призму ограничений **SmartRep**.

---

### 1. МЕТАДАННЫЕ

- **Полное название:** CLIFF: Carrying Location Information in Full Frames into Human Pose and Shape Estimation (CLIFF: Перенос информации о местоположении в полных кадрах в оценку позы и формы человека)
    
- **Авторы:** Zhihao Li, Jianzhuang Liu, Zhensong Zhang, Songcen Xu, Youliang Yan
    
- **Аффилиации:** Huawei Noah's Ark Lab
    
- **Год, venue:** 2022, ECCV
    
- **Рейтинг venue:** A* (одна из трех главных CV-конференций)
    
- **DOI / arXiv ID:** arXiv:2208.00571
    
- **Ссылка на код:** [https://github.com/huawei-noah/noah-research/tree/master/CLIFF](https://github.com/huawei-noah/noah-research/tree/master/CLIFF)
    
- **Цитирований:** >150
    

---

### 2. КЛЮЧЕВАЯ ИДЕЯ (Core Contribution)

- **Какую проблему решает статья?** Top-down модели (вырезающие bounding box человека и меняющие его размер до $224 \times 224$) полностью уничтожают глобальный контекст. Человек на краю кадра с широким углом обзора (FOV) выглядит искаженно. Сеть, не зная, что это край кадра, пытается "исправить" искажение, неестественно выкручивая 3D-суставы. Кроме того, теряется масштаб (scale ambiguity).
    
- **Что предлагается?** Дополнить признаки вырезанного изображения (image features) информацией о геометрии исходного bounding box по отношению к полному кадру.
    
- **Принципиальная новизна vs предшественников?** Вместо того чтобы пытаться обрабатывать весь кадр высокого разрешения (что медленно) или использовать объемные метрические карты (как _MeTRAbs_, что ресурсоемко), CLIFF просто передает координаты кропа и фокусное расстояние в виде маленького вектора напрямую в регрессор.
    
- **Главная гипотеза?** Предоставление информации о местоположении (location information) позволит сети "понять" перспективу камеры и сделать 3D-предсказания инвариантными к положению человека в кадре.
    

---

### 3. АРХИТЕКТУРА И МЕТОД

#### 3.1. Тип подхода

- **Размерность:** SMPL (3D mesh + 6DoF camera/body)
    
- **Стратегия:** Top-down (требует детектора)
    
- **Регрессия:** Direct regression
    
- **Темпоральность:** Per-frame (без учета видео-контекста)
    
- **Backbone:** ResNet-50 / HRNet-W48
    

#### 3.2. Описание архитектуры

- **Вход:** Вырезанный кроп человека $224 \times 224$ + Вектор информации о геометрии $c$ (размерность 6).
    
- **Backbone:** Кроп проходит через CNN, на выходе применяется Global Average Pooling (GAP). Получаем вектор визуальных признаков $x$ размерности 2048.
    
- **Конкатенация (Information Fusion):** Вектор визуальных признаков $x$ конкатенируется с вектором местоположения $c$.
    
- **SMPL Regressor:** Полученный вектор $(2048 + 6)$ подается в стандартный итеративный MLP-регрессор (как в SPIN/HMR), который выдает параметры формы $\beta$, параметры позы $\theta$ и параметры виртуальной камеры.
    
- **Размер модели:** ~45M (ResNet-50).
    

#### 3.3. Визуальные материалы из статьи

- **Figure 1 (Мотивация):** Отличная иллюстрация проблемы. Показывает, как один и тот же человек выглядит по-разному в центре и на краю кадра (перспективное искажение), и как SPIN ошибается в оценке его позы, а CLIFF — нет.
    
- **Figure 2 (Архитектура):** Наглядная схема объединения CNN-фичей с вектором параметров bounding box.
    

#### 3.4. Математическая формализация

- **Вектор информации о местоположении ($c$):**
    
    $$c = \left[ \frac{b_x}{W}, \frac{b_y}{H}, \frac{b_w}{W}, \frac{b_h}{H}, \frac{f}{W}, \frac{f}{H} \right]$$
    
    Где $(b_x, b_y)$ — центр bounding box, $b_w, b_h$ — ширина и высота кропа, $W, H$ — ширина и высота оригинального (полного) кадра, $f$ — фокусное расстояние камеры (если неизвестно, аппроксимируется как $\sqrt{W^2 + H^2}$).
    
    **[МОЙ КОММЕНТАРИЙ]:** Это невероятно дешевая и гениальная операция. Всего 6 чисел полностью описывают перспективу.
    

#### 3.5. Ключевые технические решения

- Чтобы предсказывать глобальную ротацию тела (Global Orientation) более точно, авторы вычисляют вращение тела относительно виртуальной камеры, смотрящей прямо на кроп, а затем математически поворачивают его обратно в систему координат оригинальной камеры.
    
- Использование псевдоразметки (EFT - Exemplar Fine-Tuning) для обучения на 2D-датасетах (COCO).
    

---

### 4. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ

#### 4.1. Датасеты

|**Датасет**|**Размер**|**Тип**|**Разрешение**|**Домен**|**Public?**|
|---|---|---|---|---|---|
|AGORA|14K изображений|SMPL|High-Res|Синтетика (Толпа)|Да|
|3DPW|60 видео|SMPL|Разное|In-the-wild|Да|
|MPI-INF-3DHP|1.3M|3D|Видео|Studio|Да|

**[МОЙ КОММЕНТАРИЙ]:** AGORA — ключевой датасет для этой статьи. В нем сгенерированы сверхреалистичные сцены с сильной перспективой (люди на краях широкого кадра).

#### 4.2. Метрики

- **Координатные:** MPJPE, PA-MPJPE, PVE (Per-Vertex Error для меша). На AGORA измеряют NMJE (Normalized Mean Joint Error).
    
- **Угловые:** **НЕ УКАЗАНО В СТАТЬЕ**.
    
- **Деплоймент:** Params. (FLOPs и Latency не указаны).
    

#### 4.3. Сравнительная таблица результатов (на 3DPW и AGORA)

|**Метод**|**Backbone**|**3DPW PA-MPJPE**|**AGORA NMJE**|**AGORA MVE (Vertex)**|
|---|---|---|---|---|
|SPIN|ResNet-50|59.2|153.4|148.9|
|PARE|ResNet-50|50.9|140.9|146.3|
|ROMP|ResNet-50|53.3|108.0|103.4|
|**CLIFF (Ours)**|**ResNet-50**|**47.1**|**81.0**|**81.2**|
|**CLIFF (Ours)**|**HRNet-W48**|**43.0**|**78.0**|**78.4**|

**[МОЙ КОММЕНТАРИЙ]:** CLIFF устанавливает сокрушительный рекорд на датасете AGORA (ошибка падает почти в два раза по сравнению с PARE). На 3DPW (где перспективные искажения меньше) улучшение тоже весьма солидное.

#### 4.4. Ablation Study

- Удаление параметров $(b_x, b_y)$ — информации о положении центра BBox'а — возвращает сеть к ошибкам, похожим на SPIN. Это доказывает, что знание "мы находимся на краю кадра" критически важно для коррекции 3D-ротации.
    

---

### 5. RESULTS & DISCUSSION

#### 5.1. Основные выводы

Простое добавление информации о геометрии кропа в регрессор полностью решает проблему потери масштаба и перспективных искажений, свойственных top-down подходам.

#### 5.2. Качественный анализ

На картинках с широким FOV (типичное видео с телефона) люди на краях кадра предсказываются идеально ровно (стоят прямо), тогда как старые методы наклоняли их 3D-модели в сторону края кадра, пытаясь "объяснить" вытянутые пиксели.

#### 5.3. Edge-готовность (специально для SmartRep)

|**Параметр**|**Значение в статье**|**Соответствие SmartRep (<10 мс, <30 МБ, ≥30 fps)**|
|---|---|---|
|Hardware|Типичный GPU|Не измеряли для edge.|
|Latency|Около 25-30 мс на GPU|**Провал.** Тяжелый backbone (ResNet-50) + MLP Head не уложатся в 10 мс на CPU.|
|FPS|~30 на GPU|Будет <10 FPS на телефоне.|
|Model size|~45M (ResNet) / ~80M (HRNet)|**Провал.** Очень большой размер весов.|
|FLOPs|>8G|**Провал.**|

---

### 6. ПРЕИМУЩЕСТВА ПОДХОДА

- **Изящность:** Решение проблемы перспективы стоит ровно 0 FLOPs (конкатенация 6 чисел).
    
- **Модульность:** Этот трюк можно встроить в _любую_ top-down архитектуру.
    

---

### 7. НЕДОСТАТКИ И ОГРАНИЧЕНИЯ

- Покадровая архитектура (single-frame) $\to$ дрожание на видео.
    
- Зависит от стабильности 2D-детектора BBox (если рамка "прыгает", прыгает и вектор $c$, что вызывает рывки 3D-позы).
    
- Не решает проблему окклюзий так целенаправленно, как PARE.
    

---

### 8. РЕЛЕВАНТНОСТЬ ДЛЯ SMARTREP

Оцени по шкале 1–5 каждый аспект:

|**Аспект**|**Оценка (1–5)**|**Комментарий**|
|---|---|---|
|Edge-готовность|1|Оригинальная архитектура слишком тяжелая.|
|Точность по угловым метрикам|4|Дает углы (SMPL), исправляет ошибки перспективы (супер-важно для съемки с пола).|
|Устойчивость к самоокклюзии|2|Нет специфичных модулей (кроме prior'ов в MLP).|
|Работа с нестандартными позами|4|Справляется за счет хороших датасетов (EFT).|
|Темпоральная стабильность|1|Отсутствует (single-frame).|
|Применимость к циклическим движениям|1|Не использует темпоральные фичи.|
|Валидация на фитнесе|1|Только общие датасеты.|
|Робастность к truncation|3|Если видна половина тела, BBox искажается, вектор $c$ становится ошибочным.|
|Возможность fine-tuning|4|Код позволяет обучать на своих 2D-данных.|
|Доступность кода и весов|5|Официальный код (PyTorch) отличный.|

**Конкретные элементы для заимствования (Привязка к направлению 🅲 и Архитектуре):**

- **CLIFF-трюк (Location Injection):** Это обязательный к внедрению элемент для SmartRep. Когда мы выберем легкую 2D/3D сеть (например, MobileNet-based), мы **добавим вектор $c$** (нормализованные координаты BBox) в полносвязный слой головы (Head). Это стоит 0 мс латентности, но заставит наш легкий регрессор понимать перспективу, что критично для правильной оценки глубины (сагиттальных углов в приседе), когда телефон стоит на полу под углом к штангисту.
    

---

### 9. СВЯЗЬ С ДРУГИМИ РАБОТАМИ

- Прямой наследник **SPIN** (полностью берет его базу и улучшает).
    
- Альтернатива **MeTRAbs**: MeTRAbs решает проблему масштаба через абсолютные 3D тепловые карты (очень дорого по памяти), CLIFF решает это через дешевый вектор (идеально для edge, если сменить backbone).
    
- Альтернатива bottom-up подходам (типа **OpenPose**), которые видят полный кадр, но слишком медленные.
    

---

### 10. КРИТИЧЕСКАЯ ОЦЕНКА (Peer-Review)

|**Критерий**|**1–10**|**Комментарий**|
|---|---|---|
|Новизна|7|Идея лежала на поверхности, но реализация безупречна.|
|Техническая глубина|8|Отличный математический аппарат перевода координат камер.|
|Экспериментальная строгость|10|Бенчмарк на AGORA доказывает суть статьи на 100%.|
|Ясность изложения|10|Статья читается легко, проблема ясна с первой картинки.|
|Воспроизводимость|10|Выдающийся репозиторий.|
|Значимость для community|9|Изменила парадигму top-down подходов в SMPL.|
|Релевантность edge-deployment|3|Сама сеть не подходит, но её _метод_ — идеален для edge.|

**Общая оценка:** Strong Accept (Концепция обязательна к применению в нашем пайплайне).

---

### 11. КЛЮЧЕВЫЕ ВЫВОДЫ

1. Главный вклад статьи: Устранение искажений перспективы в top-down моделях путем подачи параметров bounding box и фокусного расстояния напрямую в регрессор.
    
2. Самое сильное техническое решение: Вектор местоположения $c$ из 6 чисел. Это почти бесплатная (в плане вычислений) операция, которая дает сети знание о полном кадре.
    
3. Главный недостаток: Не решена проблема дрожания на видео, а зависимость от стабильности рамки детектора даже усилилась.
    
4. Самый полезный элемент для SmartRep: **Внедрение вектора $c$ в нашу легкую Edge-архитектуру**. Это позволит точно оценивать биомеханические углы, даже если пользователь поставил телефон сбоку-снизу, а сам оказался на краю кадра.
    
5. Что изучить дополнительно после этой статьи: BlazePose (там Google использует похожие трюки для выравнивания ROI на телефоне).
    
6. Приоритет для нашего исследования: **ВЫСОКИЙ** (архитектурный трюк пойдет в продакшен).
    
7. Связанные статьи: MeTRAbs, SPIN, PARE.
    

---

## ИТОГОВАЯ КАРТОЧКА

Markdown

````
---
title: "CLIFF: Carrying Location Information in Full Frames into Human Pose and Shape Estimation"
title_ru: "CLIFF: Перенос информации о местоположении в полных кадрах в оценку позы и формы человека"
authors: [Li, Liu, Zhang, Xu, Yan]
year: 2022
venue: "ECCV"
venue_tier: "A*"
doi: "arXiv:2208.00571"
tags: [pose_estimation, biomech, physics]
pose_dim: "smpl"
strategy: "single_stage"
backbone: "ResNet-50 / HRNet-W48"
params_M: ~45.0
flops_G: "High"
latency_ms: "High"
hw_tested: "GPU"
relevance_to_smartrep: 4
direction: "C"
priority: "HIGH"
---

# CLIFF: Перенос информации о местоположении в полных кадрах в оценку позы и формы человека

## TL;DR
Top-down модели вырезают человека из кадра, теряя информацию о его положении относительно камеры, что приводит к сильным искажениям перспективы (scale/location ambiguity). CLIFF решает эту проблему "за бесплатно", добавляя к фичам изображения 6 чисел — координаты и размеры bounding box'а, что позволяет сети предсказывать корректную 3D-позу независимо от того, где стоит человек.

## Проблема
Когда человек находится на краю кадра (особенно при широком угле обзора камеры телефона), его проекция искажается. Сеть, видя только вырезанный кроп $224 \times 224$, думает, что человек реально наклонен, и выдает неправильные углы суставов и ориентацию камеры.

## Гипотеза / вклад
- Глобальный контекст (перспективу) можно передать без обработки всего изображения высокого разрешения.
- Конкатенация параметров Bounding Box с признаками кропа (Global Average Pooling) дает MLP-регрессору достаточно информации для исправления перспективных искажений.

## Метод
Входное изображение обрезается по BBox. CNN извлекает из него вектор признаков (2048 размерности). Параллельно формируется вектор $c$ (6 чисел: нормализованные $x, y, w, h$ рамки и фокусное расстояние камеры). Векторы конкатенируются и подаются в MLP, который регрессирует SMPL-параметры. Также применяется математическая коррекция предсказанного глобального вращения (Global Orientation).

## Датасеты
| Датасет | Размер | Метрика | Результат |
|---|---|---|---|
| AGORA | 14K | NMJE | 81.0 (SOTA, сильный отрыв) |
| 3DPW | 60 видео | PA-MPJPE | 47.1 мм |

## Сравнение с SOTA
CLIFF наголову разбивает предыдущие методы (SPIN, PARE, ROMP) на датасете AGORA, который изобилует людьми на краях кадра и сложной перспективой. На 3DPW модель также устанавливает SOTA для покадровых сетей 2022 года.

## Edge-метрики
| Параметр | Значение | hw |
|---|---|---|
| Latency | НЕ УКАЗАНО | Слишком медленно для CPU |
| FPS | НЕ УКАЗАНО | - |
| Params | ~45M | - |
| FLOPs | НЕ УКАЗАНО | Высокие (ResNet-50) |

## Ограничения / слабости
Модель очень ресурсоемкая (использует тяжелые CNN). Полностью отсутствует темпоральное сглаживание, из-за чего на видео наблюдается дрожание. Метод сильно зависит от качества и стабильности 2D-детектора Bounding Box'ов (если рамка прыгает, 3D поза тоже будет дергаться).

## Релевантность SmartRep
Саму архитектуру деплоить нельзя из-за ограничений по ресурсам (Latency > 10 мс). Однако **идея (трюк) CLIFF критически важна для нас**. В фитнес-приложениях телефон часто стоит на полу и сбоку. Внедрение вектора из 6 чисел в нашу легкую Edge-модель (MobileNet/RTMPose) почти не требует FLOPs, но обеспечит нашему пайплайну "понимание перспективы", резко улучшив точность расчета сагиттальных углов.

## Gap для нас
Работа **не предлагает** легковесного решения для мобильных процессоров, не использует временной контекст (видео) для сглаживания и не оценивает метрики углов (MAE) на биомеханически сложных спортивных движениях.

## Ссылки на связанные статьи
[[PARE]], [[MeTRAbs]] (решает ту же проблему другим путем).

## Код / данные
- Repo: https://github.com/huawei-noah/noah-research/tree/master/CLIFF
- Pretrained: Да
- Датасет: 3DPW, AGORA

## BibTeX
```bibtex
@inproceedings{li2022cliff,
  title={CLIFF: Carrying Location Information in Full Frames into Human Pose and Shape Estimation},
  author={Li, Zhihao and Liu, Jianzhuang and Zhang, Zhensong and Xu, Songcen and Yan, Youliang},
  booktitle={Computer Vision--ECCV 2022: 17th European Conference, Tel Aviv, Israel, October 23--27, 2022, Proceedings, Part V},
  pages={590--606},
  year={2022},
  organization={Springer}
}
````

```

---

Отлично, мы закрыли блок тяжелых архитектур, 3D-лифтинга и SMPL-регрессоров. У нас есть понимание, как бороться с окклюзиями, с обрезкой кадра, с искажением перспективы и дрожанием видео.

**Остался последний, самый важный шаг для SmartRep.** Нам нужна SOTA 2D-модель, которая физически влезет в бюджет **<10 миллисекунд** на Snapdragon, чтобы питать всю эту красоту координатами.

Предлагаю разобрать **RTMPose** (текущий чемпион по edge-инференсу от OpenMMLab) или **MoveNet** (решение от Google, работающее прямо в браузере/на мобилках). Что скажешь?
```