Почему качество разметки данных для Computer Vision так важно?
Плохая разметка — главная причина низкой точности моделей Computer Vision. Один клиент потерял 12% mAP из-за разницы в IoU между аннотаторами в 0.15. Это обошлось в $810–1.2k и две недели дообучения. Мы занимаемся разметкой CV-данных более 5 лет и выполнили 50+ проектов — от 100 до 100 000 изображений. Наши заказчики экономят в среднем 60–75% времени по сравнению с разметкой с нуля, что в денежном выражении составляет около $90–130 на проект.
Проблемы, которые мы решаем
Согласованность аннотаторов — ключевой фактор. IoU 0.65 между двумя разметчиками на мелких объектах — не редкость. Если два bbox одного объекта расходятся на 20%, модель получает противоречивый сигнал. Другая проблема — edge cases: частичная occlusion, низкое разрешение, нестандартные ракурсы. Мы разрабатываем онтологию классов и подробные инструкции, чтобы минимизировать variance. Для контроля качества используем Inter-rater reliability — стандарт в медицинской и промышленной разметке.
Пропуск дефекта из-за некачественной разметки может привести к убыткам в $1.8k–2.6k на дообучении модели. Поэтому мы внедряем многоуровневый QA.
Сравнение инструментов разметки — разметка cv датасетов
| Инструмент | Ключевая особенность | Когда выбрать |
|---|---|---|
| CVAT | Self-hosted, REST API, командная работа | Крупные проекты с развёрнутым QA-пайплайном |
| Label Studio | Мультимодальная разметка, conditional logic | Сложные онтологии, смешанные данные |
| Roboflow | Версионирование, встроенная аугментация | Быстрый старт, прототипирование |
CVAT обрабатывает большие датасеты в 3 раза быстрее Label Studio благодаря встроенной очереди задач. Label Studio выигрывает в гибкости разметки разнородных сущностей.
Пошаговый процесс разметки
- Анализ задачи – формализация онтологии классов, определение сложности.
- Подготовка инструмента – настройка CVAT или Label Studio, загрузка изображений, при необходимости развёртывание GPU-сервера для авторазметки.
- Пилотная разметка – 50–100 изображений для калибровки инструкций.
- Основная разметка – параллельная работа аннотаторов с непрерывным QA.
- Экспорт и верификация – выгрузка в нужном формате, финальный отчёт по качеству.
Как мы контролируем согласованность аннотаторов?
Мы используем inter-annotator agreement с целевым mean IoU > 0.80. При отклонении возвращаем на доразметку. Senior-специалист проверяет каждый десятый объект. Для крупных проектов внедряем continuous QA.
import numpy as np from itertools import combinations def calculate_iou(box1: list, box2: list) -> float: inter_x1 = max(box1[0], box2[0]) inter_y1 = max(box1[1], box2[1]) inter_x2 = min(box1[2], box2[2]) inter_y2 = min(box1[3], box2[3]) if inter_x2 < inter_x1 or inter_y2 < inter_y1: return 0.0 inter_area = (inter_x2 - inter_x1) * (inter_y2 - inter_y1) area1 = (box1[2]-box1[0]) * (box1[3]-box1[1]) area2 = (box2[2]-box2[0]) * (box2[3]-box2[1]) return inter_area / (area1 + area2 - inter_area) def inter_annotator_iou(annotations_by_annotator: dict) -> dict: annotators = list(annotations_by_annotator.keys()) results = {} for a1, a2 in combinations(annotators, 2): boxes1 = annotations_by_annotator[a1] boxes2 = annotations_by_annotator[a2] ious = [] for b1 in boxes1: best_iou = max( (calculate_iou(b1, b2) for b2 in boxes2), default=0.0 ) if best_iou > 0.1: ious.append(best_iou) results[f'{a1}_vs_{a2}'] = { 'mean_iou': np.mean(ious) if ious else 0.0, 'n_matched': len(ious) } return results Auto-labeling для ускорения разметки
Предварительная авторазметка моделью + ручная корректура — стандарт для больших объёмов. Экономия времени 60–75% при правильном выборе модели. Один клиент сэкономил 3 месяца работы двух специалистов, внедрив наш пайплайн авторазметки, что в денежном эквиваленте составило $1.6k–2.3k.
from ultralytics import YOLO import json def auto_label_batch( image_paths: list[str], model_path: str = 'yolov8l-world.pt', conf_threshold: float = 0.5, output_format: str = 'yolo' ) -> dict: model = YOLO(model_path) results = {} for img_path in image_paths: preds = model.predict( img_path, conf=conf_threshold, verbose=False )[0] confident_boxes = [] needs_review_boxes = [] for box in preds.boxes: conf = float(box.conf) entry = { 'bbox': box.xyxy[0].tolist(), 'class_id': int(box.cls), 'confidence': conf } if conf > 0.7: confident_boxes.append(entry) else: needs_review_boxes.append(entry) results[img_path] = { 'auto_labeled': confident_boxes, 'needs_review': needs_review_boxes, 'review_required': len(needs_review_boxes) > 0 } return results Форматы экспорта
| Формат | Применение | Инструмент |
|---|---|---|
| YOLO TXT | YOLOv5/v8/v11 обучение | Ultralytics |
| COCO JSON | Detectron2, MMDetection | torchvision |
| Pascal VOC XML | TensorFlow Object Detection API | TF OD API |
| LabelMe JSON | Сегментация, polygons | LabelMe |
| CVAT XML | Импорт/экспорт CVAT | cvat-sdk |
Сроки и объёмы
| Тип разметки | Скорость (человек/час) | Относительная стоимость |
|---|---|---|
| Bbox | 200–400 объектов | 1x |
| Polygon | 40–80 объектов | 4–6x |
| Semantic segmentation | 2–5 изображений | 15–20x |
| Keypoints | 50–100 персон | 3x |
| Объём датасета | Срок с QA |
|---|---|
| 1000 изображений, bbox | 1–2 недели |
| 5000 изображений, bbox | 3–4 недели |
| 2000 изображений, polygon | 3–5 недель |
Почему качество разметки так важно для Computer Vision?
Модель, обученная на шумных данных, даёт ложные детекции или пропускает объекты. Наши заказчики экономят недели на дообучении, получая готовый датасет с гарантированным качеством. Мы берём на себя онтологию классов, инструкции для аннотаторов, QA и экспорт. Свяжитесь, чтобы обсудить ваш проект — мы подготовим датасет с гарантией качества.
Что входит в работу
- Анализ задачи и разработка онтологии классов
- Выбор инструмента и настройка проекта
- Пилотная разметка для калибровки
- Основная разметка с параллельным QA
- Экспорт в нужных форматах + отчёт по качеству
- Поддержка на этапе обучения модели
Опыт нашей команды — 5+ лет, 50+ проектов разметки для Computer Vision. Мы гарантируем согласованность аннотаций и соблюдение сроков. Закажите разметку — мы подготовим датасет с гарантией качества. Свяжитесь, чтобы обсудить ваш проект и получить оценку объёма и стоимости.







