---
title: "DistilPose: Tokenized Pose Regression with Heatmap Distillation"
title_ru: "DistilPose: Регрессия позы с токенизацией и дистилляцией тепловых карт"
authors: [Ye, Su, Li, Chen, Wang]
year: 2023
venue: "CVPR"
venue_tier: "A*"
doi: "2303.02455"
tags: [knowledge_distillation, pose_estimation, heatmap, token_distillation, edge, lightweight]
relevance_to_smartrep: 5
direction: "🅲"
---

# DistilPose: Дистилляция для лёгкой оценки позы

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

DistilPose дистиллирует тяжёлый heatmap-based pose estimator (ViTPose-L) в лёгкий regression-based student через Token-Distil модуль: вместо передачи пиксельных heatmap передаются keypoint-level token embeddings, что эффективнее и точнее. DistilPose-S достигает 71.6% AP на COCO при 5.1M параметрах — конкурирует с ViTPose-S (75.8M параметров). Прямо применим к SmartRep: lightweight pose estimator для edge через дистилляцию из ViTPose.

## Проблема

Тяжёлые pose estimators (ViTPose-L, HRNet-W48) точны, но непригодны для edge. Лёгкие (BlazePose, EfficientPose) значительно уступают в точности. Нужен lightweight pose estimator качества heavy модели через distillation.

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

- **Token-Distil модуль:** вместо imitation всего heatmap — дистиллировать keypoint-specific token embeddings из teacher transformer. Меньше размерность, выше семантичность.
- **Регрессионный student:** direct coordinate regression вместо heatmap — быстрее на edge.
- **Учитель предоставляет visibility**: teacher уверенность в каждом keypoint как soft weight для distillation loss.

## Метод

Teacher (ViTPose-L): heatmap-based → извлекаем keypoint token embeddings $\{t_k^T\}$ через Token-Distil.

Student: backbone (лёгкий) → token features → direct regression $\{(x_k, y_k, v_k)\}$.

Token distillation loss:

$$\mathcal{L}_{TD} = \sum_k v_k^T \cdot \|f_s(t_k^S) - t_k^T\|_2^2$$

где $v_k^T$ — teacher confidence как weight. Полный loss: $\mathcal{L} = \mathcal{L}_{reg} + \lambda \mathcal{L}_{TD}$.

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

```
Image → Teacher (ViTPose-L, frozen) → keypoint tokens {t_k^T}
      → Student backbone (light)    → keypoint tokens {t_k^S}
                                           ↓
        Token-Distil: L_TD = Σ v_k^T ||f(t_k^S) - t_k^T||²
                                           ↓
        Student regression head → (x_k, y_k, v_k) → L_reg
```

## Датасеты

| Модель | Params (M) | COCO AP | Latency (CPU) |
|---|---|---|---|
| DistilPose-S | 5.1 | 71.6% | ~15ms (est.) |
| DistilPose-L | 14.3 | 74.4% | ~30ms (est.) |
| ViTPose-S (teacher) | 25.6 | 75.8% | ~60ms (est.) |
| BlazePose (heavy) | 26.0 | ~55% (COCO) | <10ms |

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

DistilPose-S: 71.6% AP при 5.1M параметрах — 5× меньше ViTPose-S при ~4% потере точности. Значительно превосходит EfficientPose и BlazePose при сопоставимом размере.

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

- Требует тяжёлого teacher при обучении — нужен сервер.
- Реальная latency на мобильных устройствах не указана явно — нужно мерить.
- Дистиллирует только pose estimation, не temporal/motion information.
- Нет 3D версии (только 2D keypoints).

## Edge Feasibility для SmartRep

| Параметр | DistilPose-S | DistilPose-L |
|---|---|---|
| Параметры (M) | 5.1 | 14.3 |
| COCO AP | 71.6% | 74.4% |
| TFLite конвертация | Требует проверки | Требует проверки |
| INT8 совместимость | Ожидаемо хорошая | Ожидаемо хорошая |

**Вердикт: top deployment candidate для pose estimation компонента SmartRep.** Прямой конкурент BlazePose с лучшей точностью.

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

- **Pose estimator компонент 🅲:** DistilPose-S — лучший кандидат для первого шага SmartRep pipeline (видео → 2D keypoints) на мобильном устройстве. Превосходит BlazePose по точности при сравнимом размере.
- **Дистилляция парадигма:** Token-Distil модуль — шаблон для дистилляции SmartRep AQA head: teacher AQA features → student AQA tokens.
- **3D lifting:** DistilPose-S (2D) + 3D lifting (PoseFormerV2, VideoMamba) = полный 3D skeleton pipeline.
- **Evaluation gap:** DistilPose не оценён на fitness/exercise domain — SmartRep может стать первой такой оценкой.

## Gap для нас

DistilPose — только 2D, нет fitness-domain evaluation, нет temporal версии. **Ниша SmartRep:** DistilPose-3D — добавить 3D lifting head поверх DistilPose-S через дистилляцию из MotionBERT; оценить на fitness упражнениях (squat, deadlift depth, ROM). Это сквозной lightweight 3D pose pipeline для edge, которого нет ни в одной публикации.

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

- [[ViTPose]] — teacher model
- [[BlazePose]] — конкурент в edge deployment
- [[FitNets Hints for Thin Deep Nets]] — методологический предшественник

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

- Repo: github.com/yshMars/DistilPose
- Pretrained: S и L варианты

## Цитата (BibTeX)

```bibtex
@inproceedings{ye2023distilpose,
  title={DistilPose: Tokenized Pose Regression with Heatmap Distillation},
  author={Ye, Suhang and Su, Jiahao and Li, Yuming and Chen, Jianing and Wang, Jianguo},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  year={2023}
}
```
