Классификация изображений (Image Classification) — основные типы и особенности разметки

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

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

Что такое Image Classification?

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

Типы классификации изображений

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

Binary Classification (Бинарная классификация)

Бинарная классификация предполагает, что изображению может быть присвоена только одна из двух возможных меток. Задачи такого типа часто сводятся к выбору между вариантами «да» или «нет». Например: «Есть ли на изображении человек?». Ответ будет либо «да», либо «нет». Или возможно подобное условие: «Здесь изображена осень или зима?» Ответ либо «осень», либо «зима». 

Бинарная классификация изображений

Здесь важно сказать, что один вариант всегда исключает второй — то есть, если выбран один ответ, другой автоматически неверен. 

Multiclass Classification (Многоклассовая классификация)

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

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

Многоклассовая классификация изображений

Multilabel Classification (Классификация с несколькими метками) 

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

В этом случае используется классификация с несколькими метками.

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

Hierarchical Classification (Иерархическая классификация)

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

Например, класс «транспорт» может включать в себя подклассы «наземный транспорт» и «воздушный транспорт», а внутри каждого подкласса могут быть выделены более узкие категории, такие как «легковой автомобиль», «грузовик», «самолет», «вертолет» и т. д. 

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

Иерархическая классификация изображений

Чем отличается Image Classification от Object Detection?

Различие между классификацией изображений (Image Classification) и детекцией объектов (Object Detection) состоит в уровне детализации той информации об изображении, которую они предоставляют. Это легко понять на примере:

Здесь мы видим, что в случае Image Classification изображению были присвоены две метки, которые лишь указывают на то, какие классы объектов на нём находятся.

В то же время разметка Object Detection позволила дополнительно локализовать эти объекты на изображении и указать их местоположение с помощью ограничивающих рамок (bounding boxes).

Важность качественной разметки Image Classification в проектах машинного обучения

Рассмотрим, почему правильная разметка Image Classification настолько важна и как она влияет на различные аспекты проектов, связанных с машинным обучением (ML) и компьютерным зрением (CV).

Основополагающий этап обучения моделей

В задаче Image Classification модели учатся распознавать классы объектов, опираясь на примеры уже размеченных изображений. Если разметка некорректна, модель будет обучаться на противоречивых данных, что приведёт к снижению эффективности её работы.

Напротив, корректная разметка способствует улучшению точности модели. Когда изображению присваивается правильная метка, модель учится лучше распознавать уникальные признаки, которые соответствуют определённым классам. Это особенно важно для сложных задач, где визуальные различия между классами могут быть минимальными (например, при классификации разных пород животных).

Оптимизация времени и ресурсов

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

Распознавание сложных классов

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

Поддержка балансировки классов

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

Валидация и улучшение модели 

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

Поддержка масштабируемости проекта

В проектах, которые предполагают масштабирование (например, добавление новых классов или увеличение объёма данных), правильная разметка является основой для успешного роста. Если начальные данные размечены корректно, это создаёт прочную базу для дальнейшей работы. В противном случае, ошибки, допущенные на ранних стадиях, будут учащаться, что создаст дополнительные проблемы на следующих этапах развития проекта.

Как получить разметку Image Classification?

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

Ручная разметка

Ручная разметка данных Image Classification подразумевает, что разметчики, самостоятельно анализируют изображения и присваивают им метки, используя специальные инструменты, такие как Computer Vision Annotation Tool (CVAT), Labelbox, SuperAnnotate, RectLabel, Supervisely, LabelImg.

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

Автоматическая разметка

Автоматическая разметка Image Classification осуществляется с помощью предобученных моделей машинного обучения. Эти модели, например ResNet, EfficientNet или MobileNet, могут автоматически классифицировать изображения после обучения на больших наборах данных. 

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

Полуавтоматическая разметка

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

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

Гайд по классификации изображений в 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-моделей.

Где применяется Image Classification

Медицина

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

Транспорт

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

Сельское хозяйство

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

Розничная торговля и электронная коммерция

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

Социальные сети и контент-модерация

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

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

Ключевые выводы

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

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

Ваша заявка успешно отправлена!

Мы скоро свяжемся с вами для обсуждения деталей проекта