Data Annotation
Аннотирование данных добавляет к исходным данным эталонную разметку, например классы, рамки, маски и ключевые точки. Разбираем типы аннотаций по задачам, форматы файлов и автоматическое аннотирование.
Аннотирование данных — это процесс добавления к исходным данным информации об эталонной разметке: например, названия класса для изображения, рамки или многоугольника вокруг каждого объекта, ключевых точек на теле или тега для фрагмента текста, чтобы модели обучения с учителем могли учиться на этих данных. Это синоним разметки данных, а команды компьютерного зрения обычно используют термин «аннотирование» для нарисованной геометрии, например рамок и масок. Аннотация состоит из двух частей: геометрии или тега, которые рисует человек или модель, и формата файла, в котором они хранятся для обучения.
Типы аннотаций по задачам#
Что должна выдавать модель, определяет, что именно рисуют аннотаторы. Детализация требует времени, поэтому команды выбирают самый простой тип аннотации, содержащий нужную модели информацию.
- Ограничивающие рамки: Одна рамка и класс для каждого объекта в задаче обнаружения объектов. Формат YOLO предусматривает отдельный текстовый файл для каждого изображения, где для каждого объекта записана строка
class x_center y_center width height, нормализованная по размеру изображения в диапазон 0–1. В COCO JSON координаты[x_min, y_min, width, height]хранятся в пикселях, а в Pascal VOC XML записаны пиксельные координаты двух углов. - Многоугольники и маски: Контуры для сегментации экземпляров или метка для каждого пикселя при семантической сегментации. YOLO и COCO хранят многоугольники в виде списков вершин, а COCO также хранит маски в формате кодирования длин серий (RLE) для областей скопления объектов.
- Метки классов: Один класс на изображение для классификации изображений; часто метку хранят в виде имени папки, содержащей изображение, как в структуре папок наборов данных для классификации в стиле ImageNet.
- Ключевые точки: Координаты x, y и флаг видимости для каждой характерной точки в задаче оценки позы. В аннотациях людей COCO отмечены 17 ключевых точек, для каждой из которых указано, что она не размечена, размечена, но скрыта, или видна.
- Повернутые рамки: Четыре угловые точки, описывающие повернутые объекты, например корабли и автомобили на аэрофотоснимках; используются для обнаружения объектов с повернутыми ограничивающими рамками.
Точность разметки особенно важна для маленьких объектов. Сдвиг рамки размером 20 × 20 пикселей на 3 пикселя по горизонтали и вертикали снижает её пересечение над объединением (IoU) с исходной рамкой до 0,57. Поэтому предсказание, совпадающее с истинным объектом, будет считаться пропуском на 8 из 10 порогов IoU от 0,60 до 0,95, усредняемых при вычислении средней точности (mAP) COCO. Письменные инструкции, определяющие каждый класс и разрешающие неоднозначные случаи, например насколько плотно обводить частично скрытые объекты, обеспечивают согласованность тысяч аннотаций.
Аннотации не только для изображений#
- Видео: Рамки или маски на каждом кадре связаны идентификаторами треков, которые отслеживают каждый объект во времени, для задачи многократного отслеживания объектов.
- Лидар и 3D: Кубоиды в облаках точек — каждый с центром, размером и углом ориентации — для обнаружения 3D-объектов в задачах вождения и робототехники.
- Текст: Фрагменты, отмеченные смещениями символов и типом сущности, для распознавания именованных сущностей (NER) или одна метка на документ для таких задач, как анализ тональности.
- Аудио: Сегменты с временными метками и расшифровками или идентификаторами дикторов для распознавания речи.
- Предпочтения относительно моделей: Аннотаторы выбирают лучший из двух ответов модели, создавая данные сравнения для обучения с подкреплением на основе обратной связи от людей (RLHF).
Автоматическое аннотирование#
Аннотирование с помощью модели начинается с предложенных моделью вариантов, которые люди проверяют и исправляют. Детектор предлагает рамки для известных ему классов, а модель сегментации, работающая по запросу, например Segment Anything от Meta, превращает рамку или щелчок мышью в маску, избавляя от необходимости обводить многоугольник вершина за вершиной. Функция auto_annotate из пакета Ultralytics объединяет эти два этапа: детектор YOLO26 находит и классифицирует объекты, а SAM 2.1, работающий в пакете Ultralytics, преобразует каждую рамку в многоугольник, сохранённый в формате сегментации YOLO.
from pathlib import Path
from ultralytics.data.annotator import auto_annotate
from ultralytics.utils import ASSETS
# Detect objects in the bundled sample images, then turn each box into a SAM 2.1 polygon
auto_annotate(data=ASSETS, det_model="yolo26n.pt", sam_model="sam2.1_b.pt", output_dir="auto_labels")
# Read the annotation file written for the bus image
rows = Path("auto_labels/bus.txt").read_text().splitlines()
print(f"{len(rows)} objects annotated")
print(rows[0][:80])Каждая строка bus.txt содержит индекс класса COCO, за которым следуют нормализованные в диапазоне 0–1 пары координат x и y вершин многоугольника. Разметчик может проверить и исправить их перед обучением. Объекты, оценка уверенности которых ниже стандартного порога уверенности 0,25, не размечаются, поэтому пропущенные объекты все еще нужно рисовать вручную. Ultralytics Platform также может автоматически размечать наборы данных для обнаружения объектов с помощью визуально-языковых моделей и детекторов с открытым словарем, которым нужны только названия классов. Результаты тестирования VLM показывают точность разметки реальных изображений каждой моделью.
Разметка данных и смежные понятия#
- Разметка данных: Синоним аннотирования; чаще используется для меток классов целых элементов, например когда письмо помечают как спам.
- Аугментация данных: Совместное преобразование аннотированных изображений и их аннотаций — например, зеркальное отражение координат рамок при горизонтальном отражении — для увеличения разнообразия имеющихся эталонных данных.
- Полуконтролируемое обучение: Модель самостоятельно аннотирует неразмеченные данные и обучается на собственных уверенных предсказаниях, называемых псевдометками, без проверки человеком.
- Синтетические данные: Отрисованные или сгенерированные изображения, аннотации которых предоставляет генератор, знающий точное положение и контур каждого объекта.










