Аугментации никогда не были такими простыми для обучения модели

Согласно Википедии, «увеличение данных» означает

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

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

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

Дополнения - это очень эффективный метод повышения производительности наших моделей без необходимости в дополнительном сборе данных. Мы делаем новые версии наших фотографий, основанные на оригиналах, но с намеренными дефектами.

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

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

Пойдем!

Установка

Библиотеку imgaug можно установить с помощью pip через:

pip install imgaug

или установите последнюю версию напрямую, используя:

pip install git+https://github.com/aleju/imgaug.git

Исходные изображения

В этом уроке я буду использовать три изображения, взятые из Unsplash.

Источник изображения: Собака 1
Источник изображения: Собака 2
Источник изображения: Собака 3

1. Увеличение яркости

HSV (оттенок, насыщенность, значение) - это цветовое пространство, разработанное А. Р. Смитом в 1978 году на основе интуитивно понятных свойств цвета, часто известное как модель гексона. Цветовые параметры этой модели: оттенок (H), насыщенность (S) и яркость (V).

Используя этот imgAug, мы можем настроить значение V изображения. Давайте посмотрим на фрагмент ниже:

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

2. Увеличение размытости

Размытость достигается путем вычисления и анализа быстрого преобразования Фурье. Преобразование Фурье определяет частоты, присутствующие в изображении. Если высоких частот мало, изображение будет нечетким. Вы должны определить термины «низкий» и «высокий».

Используя этот imgAug, мы можем применять различные методы размытия изображения. Давайте посмотрим на фрагмент ниже:

3. Гауссов шум

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

Однако случайный импульсный шум может иметь множество распределений.

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

4. Увеличение насыщенности

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

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

Используя imgAug, мы можем контролировать уровень насыщенности самого изображения, используя приведенный ниже фрагмент:

5. Вращение

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

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

Используя imgAug, мы можем контролировать уровень поворота на самом изображении, используя приведенный ниже фрагмент:

Бонус - несколько улучшений

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

Но как насчет набора дополнений?

В приведенном выше коде мы применили увеличение кадрирования, чтобы обрезать одно изображение с каждой стороны в диапазоне от 0 до 16 пикселей, который выбирается случайным образом.

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

Чему ты можешь научиться?

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

Это позволяет нашей модели изучать общий вид, а не запоминать точный внешний вид объектов в наших обучающих данных.

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

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

Я хотел бы подключиться к LinkedIn. Зайдите на мой сайт https://www.premstroke.com/.