Разметка ключевых точек (keypoints)

Keypoints — разметка отдельных значимых точек на объекте: суставов тела, черт лица, пальцев руки. Разбираем, какие задачи computer vision решают с помощью keypoints, как устроена такая разметка на практике, в каком формате её хранят и по какой метрике оценивают точность готовой модели.

Автор: Редакция DataMarkupОпубликовано: 2026-07-14

Что такое разметка ключевых точек (keypoints)?

Keypoints — вид разметки, при котором на объекте отмечают не рамку и не контур, а набор отдельных значимых точек: суставов тела, черт лица, узлов механизма. Каждая точка получает координаты и обычно метку видимости — видна она на кадре, скрыта за другим объектом или вовсе отсутствует в этом ракурсе.

В отличие от bounding box и сегментации, keypoints не описывают форму объекта целиком — они фиксируют структуру и взаимное расположение конкретных опорных точек. Именно поэтому keypoints — обязательный вид разметки там, где модели важна не площадь объекта, а его поза, ориентация или конфигурация частей относительно друг друга.

Число и состав точек фиксируют заранее в виде схемы, единой для всего датасета: если сегодня размечать 12 точек тела, а завтра — 17, модель получит несовместимые между собой примеры и не сможет обучиться устойчивому предсказанию позы на новых, ранее не виденных изображениях.

Какие задачи решают с помощью keypoints-разметки?

Keypoints лежат в основе задач оценки позы человека (спорт, фитнес-приложения, системы безопасности), распознавания лицевых точек (для anti-spoofing, эмоций и AR-фильтров) и разметки рук (жестовое управление, анализ хирургических манипуляций). В промышленности keypoints размечают и на неодушевлённых объектах — углы деталей на конвейере, точки крепления в робототехнике.

Общая черта всех этих задач — модели нужно не просто «увидеть» объект, а понять его внутреннюю структуру: как расположены суставы относительно друг друга, куда повёрнута голова, в каком положении находятся пальцы руки. Без keypoints-разметки такие модели просто не на чем обучать.

Отдельная и растущая область — keypoints для нечеловеческих объектов: разметка суставов животных в ветеринарных и биологических исследованиях, точек захвата для промышленных роботов-манипуляторов, опорных точек упаковки на конвейере, где важна не форма объекта, а конкретные позиции для точного взаимодействия механизма с ним.

Как размечают ключевые точки на практике?

Разметчик расставляет точки по заранее заданной схеме — фиксированному набору позиций вроде «левое плечо», «правый локоть», «кончик носа» — сохраняя единый порядок для каждого объекта на всём датасете. Для скрытых или обрезанных кадром точек ставится специальная метка невидимости, а не приблизительное положение, чтобы не вносить в модель ложный сигнал.

Гайдлайн для keypoints-разметки должен заранее описывать точный порядок и названия точек, а также правило для спорных случаев — например, как размечать позу, если часть тела перекрыта другим человеком в кадре. Без единого гайдлайна разные разметчики расставляют точки в разном порядке, и это ломает обучение модели, ожидающей строго фиксированную структуру на входе.

Какие инструменты используют для разметки ключевых точек?

Ключевые точки размечают в специализированных инструментах вроде CVAT, Label Studio и Supervisely — они поддерживают заданные схемы скелета, показывают связи между точками прямо в интерфейсе и не дают разметчику случайно перепутать порядок точек. Часть инструментов дополнительно встраивает предобученные модели оценки позы для автоматической предразметки.

Предразметка моделью не отменяет ручной труд, а меняет его характер: вместо расстановки точек с нуля разметчик проверяет и корректирует уже предложенные моделью позиции, что заметно ускоряет работу на простых кадрах и оставляет больше времени на сложные случаи — перекрытия, необычные ракурсы, редкие позы, где автоматика чаще ошибается.

Как хранится keypoints-разметка в формате COCO?

Формат COCO keypoints хранит для каждого объекта плоский список чисел: тройки координат x, y и флаг видимости для каждой точки по фиксированному порядку схемы. Флаг видимости принимает одно из трёх значений — точка не размечена, размечена, но скрыта, или размечена и видна на кадре — что позволяет модели корректно учитывать перекрытые точки при обучении.

Схематично массив keypoints для одного человека выглядит так: [x1, y1, v1, x2, y2, v2, ...], где порядок троек соответствует фиксированной схеме точек — например, нос, затем глаза, затем уши и так далее до лодыжек. Этот же массив дополняет обычную запись объекта в COCO с его bounding box и категорией, поэтому keypoints обычно размечают вместе с рамкой, а не отдельно от неё.

Помимо самого массива координат, датасет COCO keypoints хранит отдельным блоком описание схемы скелета — список пар индексов точек, которые считаются соединёнными между собой. Именно эта схема потом используется и при визуализации разметки для контроля качества, и при обучении моделей, которые учитывают не только положение отдельных точек, но и связи между ними.

Что такое метрика OKS и как она оценивает точность keypoints?

OKS (Object Keypoint Similarity) — метрика, которая сравнивает предсказанные моделью точки с эталонной разметкой, учитывая масштаб объекта и типичную сложность локализации каждой конкретной точки. Чем ближе предсказанная точка к эталону с поправкой на эти два фактора, тем выше значение OKS, а итоговое качество модели чаще всего измеряют как mAP по разным порогам OKS.

Поправка на масштаб объекта в OKS важна потому, что одна и та же ошибка в пикселях означает разную по значимости неточность для маленького и крупного объекта на кадре. А поправка на сложность точки учитывает, что, например, положение носа предсказать проще и точнее, чем положение локтя, который чаще перекрыт другими частями тела или объектами сцены — так метрика не наказывает модель одинаково строго за принципиально разные по трудности точки.

На практике порог OKS выбирают под требования проекта: для грубой оценки позы достаточно низкого порога, а для точных задач вроде анализа спортивной техники или медицинской диагностики движений закладывают более строгий порог, при котором даже небольшое смещение ключевой точки засчитывается как ошибка модели.

Частые вопросы

Чем keypoints отличаются от bounding box?

Bounding box сообщает модели только приблизительное расположение и границы объекта целиком, а keypoints — точное положение отдельных значимых точек внутри объекта: суставов, черт лица, углов детали. Часто их используют вместе: рамка задаёт область объекта, а точки внутри неё — его структуру, ориентацию и позу.

Сколько точек обычно размечают на позе человека?

Самая распространённая схема — 17 точек тела: глаза, нос, уши, плечи, локти, запястья, бёдра, колени и лодыжки, её использует датасет COCO. Для более детальных задач применяют схемы с большим числом точек, включая пальцы рук и контур лица, если приложению нужна более тонкая детализация позы.

Можно ли размечать keypoints автоматически?

Да, предобученные модели оценки позы способны расставить ключевые точки автоматически и заметно ускорить разметку, но на сложных ракурсах, перекрытиях объектов или нестандартных позах автоматика ошибается. Поэтому автоматическую разметку обычно дополняют ручной проверкой и правкой точек человеком перед тем, как использовать датасет для обучения.

Что такое скелет (skeleton) в keypoints-разметке?

Скелет — это заданный набор связей между ключевыми точками, который показывает, как точки соединяются друг с другом в реальном объекте: например, локоть соединён с плечом и запястьем. Скелет не просто визуализация — он помогает модели и разметчику учитывать анатомически возможные и невозможные взаимные положения точек.

Смотрите также