Представьте, что вам нужно научить машину "видеть" и понимать мир вокруг. Нет, не просто распознавать лица или выделять дороги на фотографиях – а по-настоящему разбираться, что изображено на любом снимке, будь то лес, чашка кофе или картина. Классификация изображений – это ключ к машинному зрению. Но как этому научить модель? 

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


Но для начала: что такое классификация? Давайте разберемся.

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

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

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

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

  • Собственные архивы и контент пользователей: Если ваша компания имеет собственные архивы изображений или вы хотите привлечь пользователей для создания контента, это отличный способ получить уникальные и релевантные данные.

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

Разметка данных: почему так важно внимание к деталям

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

Вот несколько популярных инструментов для аннотирования изображений:

Инструмент

Описание

CVAT

Опенсорсный инструмент для аннотирования изображений. Поддерживает аннотацию боксами и полигонами.

LabelImg

Простое решение для аннотирования изображений боксами.

VGG Image Annotator

Веб-инструмент, позволяющий аннотировать как изображения, так и видео.

Для обеспечения точности и последовательности лучше привлекать опытную компанию-эксперта по разметке. Это позволяет минимизировать ошибки и повысить качество данных.

Почему это так важно? Не забывайте, что точность разметки (от 95% и выше) является очень важным фактором, который может увеличить точность модели на 20%. А неоднозначная или некорректная разметка могут привести к ряду проблем:

  • Неправильная классификация: Модель может путаться из-за несоответствий в метках, что приведет к неверным прогнозам.

  • Переоценка (Overfitting): Если разметка некачественная, модель может запомнить конкретные изображения, но не справляться с новыми данными.

Применение классификации изображений: реальные кейсы

Классификация изображений находит применение в совершенно разных отраслях. Мы расскажем всего про 4 из них, для которых мы недавно делали разметку:

  1. Здравоохранение: Анализ медицинских изображений (МРТ, рентген) с помощью алгоритмов глубокого обучения помогает точно диагностировать заболевания, улучшая лечение.

  2. Розничная торговля: Визуальный поиск позволяет покупателям загружать фотографии товаров и находить похожие. Это не только улучшает пользовательский опыт, но и повышает продажи.

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

  4. Безопасность: Системы распознавания лиц помогают идентифицировать людей, что расширяет возможности контроля доступа и мониторинга.

Классификация медицинских изображений для диагностики заболеваний легких

Чтобы лучше понять цели и этапы разметки для задач классификации, давайте посмотрим несколько более детальных кейсов:

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

Решение:

  1. Сбор данных: Команда использовала несколько общедоступных медицинских наборов данных, таких как ChestX-ray14, а также договорилась с несколькими больницами о предоставлении анонимизированных рентгеновских снимков. Это обеспечило разнообразие и достоверность данных.

  2. Разметка данных: Для повышения точности разметки пришлось привлечь экспертов в области радиологии, которые разметили изображения, присвоив метки “пневмония” и “здоровые легкие”. Было важно достичь консенсуса между специалистами, чтобы минимизировать ошибки.

  3. Подготовка данных: Данные разделили на тренировочное, валидационное и тестовое подмножества. В ходе подготовки также применялись техники аугментации данных, чтобы увеличить разнообразие и избежать переобучения модели.

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

Как результат, автоматизированная система помогла снизить нагрузку на врачей, увеличив скорость обработки снимков в 5 раз и повысив точность диагностики на 15%.

Улучшение безопасности аэропортов с помощью классификации изображений

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

Решение:

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

  2. Разметка данных: Команда аннотаторов вручную пометила видеозаписи, выделяя действия, такие как “нормальное ожидание”, “быстрая ходьба”, “бесцельное перемещение” и “необычная активность”. Каждое видео было просмотрено и размечено в CVAT.

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

  4. Оптимизация и развертывание: Модель с размеченными данными была интегрирована в систему видеонаблюдения аэропорта. Это позволило ей работать в режиме реального времени и автоматически уведомлять службу безопасности в случае обнаружения подозрительных действий.

Система сократила время реагирования службы безопасности на потенциальные угрозы на 40%, значительно улучшив контроль за ситуацией и повысив безопасность пассажиров.

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

Но давайте пройдем к практическому гайду: как правильно классифицировать изображения? Для примера обсудим все шаги для разметки в CVAT.

Гайд по классификации изображений в CVAT

Шаг 1: Создание проекта
Пройдите авторизацию в CVAT и откройте вкладку Projects на главной странице. Нажмите на кнопку + и выберите Create a new project, чтобы создать новый проект.

Перед вами откроется окно проекта. Присвойте ему название, которое будет его описывать. Затем нажмите на кнопку Add label. В открывшемся разделе вы сможете создать и задать цвет лейблов — это те метки, которые будут присвоены изображениям.

Обратите внимание, что для разметки Image Classification не требуется специальный инструмент, поэтому в центральном поле следует оставить Any.

Для примера мы будем классифицировать содержимое изображений по двум классам: «пицца» и «бургер». Для этой задачи мы создали 2 лейбла:

  • Пицца — Any — Оранжевый.

  • Бургер — Any — Зелёный. 

После того, как вы настроили лейблы для разметки своего изображения, нажмите Submit & Open.

Шаг 2: Создание задачи
Теперь необходимо перейти к созданию задачи. Нажмите на + и выберите Create a new task.

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

После загрузки снова нажмите Submit & Open.

Шаг 3: Разметка изображения

Перед вами откроется основной интерфейс разметки в CVAT. Чтобы начать разметку, перейдите в режим Tag annotation (справа вверху). Выберите из выпадающего списка метку, которая будет соответствовать содержимому изображения и нажмите +, чтобы её добавить. После того, как вы её добавите, она отобразится в левой части экрана. 

Чтобы перейти к следующему изображению, нажмите стрелку в верхней панели интерфейса или используйте горячую клавишу F. Вы также можете поставить галочку в пункте Automatically go to the next frame, чтобы автоматически переходить к следующим изображениям после присвоения одной метки. 

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

Шаг 4: Сохранение

После завершения разметки всех изображений сохраните изменения с помощью кнопки Save.

Шаг 5: Экспорт

Чтобы экспортировать результаты, нажмите Menu → Eхport job dataset и выберите нужный формат для сохранения. 

Вот и все! Полученные данные можно использовать для обучения ML-моделей.

Комментарии (2)


  1. tanmiro
    08.11.2024 16:05

    А если не в CVAT?


    1. evgeniatro Автор
      08.11.2024 16:05

      По ним мы тоже обязательно подготовим гайды)