Как рисовать ограничивающие рамки для детекции объектов
Настройка разметки ограничивающими рамками для компьютерного зрения в Potato: цвета меток, минимальный размер рамки, несколько классов, правила проверки и экспорт в COCO/YOLO.
Если вы обучаете детектор объектов, вам нужны ограничивающие рамки. Это руководство начинается с минимальной настройки и доходит до атрибутов, правил проверки и полной боевой конфигурации. Про параметры изображений, стоящие за этим, читайте в документации по разметке изображений.
Базовая настройка ограничивающих рамок
Минимальная конфигурация
annotation_task_name: "Object Detection Annotation"
data_files:
- "data/images.json"
annotation_schemes:
- annotation_type: image_annotation
name: objects
description: "Draw boxes around all objects"
tools:
- bbox
labels:
- name: car
color: "#FF6B6B"
- name: person
color: "#4ECDC4"
- name: bicycle
color: "#45B7D1"Как это работает
- Выберите метку на панели инструментов
- Нажмите и протяните, чтобы нарисовать рамку
- Подвиньте углы, чтобы уточнить рамку
- Добавьте столько рамок, сколько нужно
- Отправьте результат
Разметчики рисуют рамки прямо на изображении, зажимая и протягивая мышь:
The bounding box tool lets annotators draw and label rectangular regions on images
Подробная настройка меток
annotation_schemes:
- annotation_type: image_annotation
name: objects
description: "Annotate all visible objects"
tools:
- bbox
labels:
- name: person
color: "#FF6B6B"
description: "Any human, partial or full"
keyboard_shortcut: "p"
- name: car
color: "#4ECDC4"
description: "Cars, trucks, SUVs"
keyboard_shortcut: "c"
- name: motorcycle
color: "#45B7D1"
description: "Motorcycles and scooters"
keyboard_shortcut: "m"
- name: bicycle
color: "#96CEB4"
description: "Bicycles of all types"
keyboard_shortcut: "b"
- name: traffic_light
color: "#FFEAA7"
description: "Traffic signals"
keyboard_shortcut: "t"
- name: stop_sign
color: "#DDA0DD"
description: "Stop signs"
keyboard_shortcut: "s"Добавление атрибутов объектов
Собирайте дополнительные сведения о каждой рамке:
annotation_schemes:
- annotation_type: image_annotation
name: objects
tools:
- bbox
labels:
- name: person
color: "#FF6B6B"
attributes:
- name: occlusion
type: radio
options: [none, partial, heavy]
- name: truncated
type: checkbox
description: "Object extends beyond image"
- name: difficult
type: checkbox
description: "Hard to identify"Когда разметчик нарисует рамку, ему предложат заполнить эти атрибуты.
Правила проверки
Поддерживайте качество разметки проверками:
annotation_schemes:
- annotation_type: image_annotation
name: objects
tools:
- bbox
labels: [...]
min_annotations: 1Горячие клавиши
В Potato есть встроенные горячие клавиши для быстрой разметки:
- Цифровые клавиши выбирают метку
- Delete удаляет выделенную разметку
- Стрелки переключают объекты
Параметры отображения
Настройте вывод изображения:
image_display:
width: 800
height: 600Полная боевая конфигурация
annotation_task_name: "Autonomous Driving - Object Detection"
data_files:
- "data/driving_frames.json"
annotation_schemes:
- annotation_type: image_annotation
name: objects
description: "Annotate all traffic participants and objects"
tools:
- bbox
min_annotations: 1
labels:
- name: vehicle
color: "#FF6B6B"
keyboard_shortcut: "v"
attributes:
- name: type
type: radio
options: [car, truck, bus, motorcycle, bicycle]
- name: occlusion
type: radio
options: [0%, 1-25%, 26-50%, 51-75%, 76-99%]
- name: pedestrian
color: "#4ECDC4"
keyboard_shortcut: "p"
attributes:
- name: pose
type: radio
options: [standing, walking, sitting, lying]
- name: age_group
type: radio
options: [child, adult, elderly]
- name: cyclist
color: "#45B7D1"
keyboard_shortcut: "c"
- name: traffic_sign
color: "#FFEAA7"
keyboard_shortcut: "t"
attributes:
- name: sign_type
type: radio
options: [stop, yield, speed_limit, warning, other]
- name: traffic_light
color: "#DDA0DD"
keyboard_shortcut: "l"
attributes:
- name: state
type: radio
options: [red, yellow, green, off, unknown]Формат вывода
{
"frame_id": "frame_0001",
"frame_path": "/images/frame_0001.jpg",
"image_dimensions": {"width": 1920, "height": 1080},
"annotations": {
"objects": [
{
"label": "vehicle",
"bbox": [450, 380, 680, 520],
"attributes": {
"type": "car",
"occlusion": "0%"
}
},
{
"label": "pedestrian",
"bbox": [820, 400, 870, 550],
"attributes": {
"pose": "walking",
"age_group": "adult"
}
}
]
}
}Советы по качественным рамкам
Рисуйте рамки вплотную к объекту, чтобы не скармливать модели много фона. Запишите, как поступать в неудобных случаях (перекрытие, объекты, обрезанные краем кадра), и в самом начале разберите пачку примеров вместе, чтобы все рисовали одинаково. Следите за числом рамок и распределением их размеров: резкий сдвиг обычно означает, что кто-то трактует правила по-своему.
Что дальше
- Добавьте разметку полигонами для точной сегментации
- Изучите детекцию ключевых точек для оценки позы
- Настройте контроль качества ради надёжной разметки
Полная документация — в разметке изображений.