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

Абирами Вина

4 мин. чтения

2 сентября 2024 г.

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

Искусственный интеллект (ИИ) стремится наделить машины человекоподобными способностями, и одним из самых популярных способов сделать это является контролируемое обучение. Другими словами, обучение моделей ИИ путем показа им маркированных примеров помогает им учиться на шаблонах и улучшать выполнение задач. Это очень похоже на то, как человек учится на опыте. Как же создаются эти маркированные примеры?

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

Исследования показывают, что более 80 % времени, затрачиваемого на проекты ИИ, приходится на управление данными - от сбора и агрегирования до очистки и маркировки. Это показывает, насколько важна аннотация данных при разработке моделей ИИ. Использование высококачественных аннотированных данных позволяет моделям ИИ выполнять такие задачи, как распознавание лиц и обнаружение объектов, с большей точностью и надежностью в реальных ситуациях.

Почему необходимо аннотировать данные

От аннотации данных зависит, насколько хорошо работает модель компьютерного зрения. Маркированные данные - это базовая истина, которую модель использует для обучения и прогнозирования. Истинные данные являются ключевыми, поскольку они представляют собой реальный мир, который модель пытается понять. Без этой надежной основы модель искусственного интеллекта будет подобна кораблю, ориентирующемуся без компаса. 

__wf_reserved_inherit
Рис. 1. Истина и предсказание.

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

Лучшие ресурсы для работы с наборами данных

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

  • ImageNet: Он широко используется для обучения моделей классификации изображений.
  • COCO: Этот набор данных предназначен для обнаружения объектов, сегментации и создания подписей к изображениям.
  • PASCAL VOC: Поддерживает задачи обнаружения и сегментации объектов.
__wf_reserved_inherit
Рис. 2. Примеры данных в наборе данных COCO.

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

Создание собственного набора данных - отличный вариант, если существующие наборы данных не совсем соответствуют вашим потребностям. Вы можете собирать изображения с помощью таких инструментов, как веб-камеры, дроны или смартфоны, в зависимости от того, что требуется для вашего проекта. В идеале ваша пользовательская база данных должна быть разнообразной, сбалансированной и действительно отражать суть проблемы, которую вы пытаетесь решить. Это может означать получение снимков при различном освещении, с разных ракурсов и в разных условиях.

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

Виды техники аннотирования изображений

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

Ограничивающие рамки

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

__wf_reserved_inherit
Рис. 3. Пример граничных боксов.

Маски для сегментации

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

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

__wf_reserved_inherit
Рис. 4. Пример семантической сегментации (слева) и масок сегментации экземпляров (справа).

3D-кубоиды

3D-кубоиды похожи на ограничительные рамки, но их уникальность заключается в том, что 3D-кубоиды добавляют информацию о глубине и обеспечивают трехмерное представление объекта. Эта дополнительная информация позволяет системам понимать форму, объем и положение объектов в трехмерном пространстве. 3D-кубоиды часто используются в самоуправляемых автомобилях для измерения расстояния до объектов.

__wf_reserved_inherit
Рис. 5. Пример трехмерных кубоидов.

Ключевые точки и ориентиры

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

__wf_reserved_inherit
Рис. 6. Пример ключевых точек.

Как аннотировать данные с помощью labelImg

Теперь, когда мы обсудили различные типы аннотаций, давайте разберемся, как можно аннотировать изображения с помощью популярного инструмента LabelImg. LabelImg - это инструмент с открытым исходным кодом, который упрощает аннотирование изображений и может использоваться для создания наборов данных в формате YOLO (You Only Look Once). Это отличный выбор для новичков, работающих над небольшими проектами Ultralytics YOLOv8.

Настройка LabelImg очень проста. Во-первых, убедитесь, что на вашем компьютере установлен Python 3. Затем вы можете установить LabelImg с помощью быстрой команды.

После установки вы можете запустить инструмент с помощью команды:

LabelImg работает на нескольких платформах, включая Windows, macOS и Linux. Если у вас возникнут проблемы при установке, в официальном репозитории LabelImg вы найдете более подробные инструкции.

__wf_reserved_inherit
Рис. 7. Использование LabelImg для аннотирования изображений.

Запустив инструмент, выполните следующие простые действия, чтобы начать маркировку изображений:

  • Создайте свои классы: Начните с определения списка классов (категорий), которые вы хотите аннотировать, в файле с именем "predefined_classes.txt". Этот файл позволяет программе узнать, какие объекты вы будете помечать на своих изображениях.
  • Переключитесь на формат YOLO: По умолчанию LabelImg использует формат PASCAL VOC, но если вы работаете с YOLO, вам нужно переключить формат. Просто нажмите кнопку "PascalVOC" на панели инструментов, чтобы переключиться на YOLO.
  • Начните аннотирование: Используйте опции "Open" или "OpenDIR" для загрузки изображений. Затем нарисуйте ограничительные рамки вокруг объектов, которые вы хотите аннотировать, и присвойте им правильную метку класса. После маркировки каждого изображения сохраните свою работу. LabelImg создаст текстовый файл с тем же именем, что и ваше изображение, содержащий аннотации YOLO.
  • Сохраните и просмотрите: Аннотации сохраняются в файле .txt в формате YOLO. Программа также сохраняет файл "classes.txt", в котором перечислены названия всех ваших классов.

Эффективные стратегии маркировки данных

Чтобы сделать процесс маркировки данных более гладким, следует помнить о нескольких ключевых стратегиях. Например, очень важны четкие рекомендации по аннотированию. Без них разные аннотаторы могут по-разному интерпретировать задачу. 

Допустим, задача состоит в аннотировании птиц на изображениях с ограничительными рамками. Один аннотатор может пометить всю птицу, а другой - только голову или крылья. Такое несоответствие может сбить модель с толку во время обучения. Если дать четкие определения, например "пометить всю птицу, включая крылья и хвост", а также примеры и инструкции для сложных случаев, можно обеспечить точное и последовательное маркирование данных.

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

Маркировка данных в двух словах

Аннотирование данных - это простая концепция, которая может оказать значительное влияние на вашу модель компьютерного зрения. Независимо от того, используете ли вы такие инструменты, как LabelImg, для аннотирования изображений или обучаете модели на открытых наборах данных, понимание маркировки данных является ключевым. Стратегии маркировки данных могут помочь оптимизировать весь процесс и сделать его более эффективным. Потратив время на совершенствование подхода к аннотированию, можно добиться лучших и надежных результатов в области ИИ.

Продолжайте исследовать и расширять свои навыки! Оставайтесь на связи с нашим сообществом и продолжайте узнавать об искусственном интеллекте! Загляните в наш репозиторий GitHub, чтобы узнать, как мы используем ИИ для создания инновационных решений в таких отраслях, как производство и здравоохранение. 🚀

Давайте вместе построим будущее
искусственного интеллекта!

Начните свое путешествие в будущее машинного обучения

Начните бесплатно
Ссылка копируется в буфер обмена