Подтвердить что ты не робот

Изменение обучаемых изображений для тренировки нейронной сети

В настоящее время я пытаюсь сделать программу, чтобы дифференцировать гнилые апельсины и съедобные апельсины исключительно на основе их внешнего вида. Для этого я планирую использовать свернутую нейронную сеть для тренировки с гнилыми апельсинами и нормальными апельсинами. После некоторых поисков я мог найти только одну базу данных ок. 150 гнилых апельсинов и 150 нормальных апельсинов на черном фоне (http://www.cofilab.com/downloads/). Очевидно, что для модели машинного обучения потребуется не менее нескольких тысяч апельсинов для достижения точности более 90 процентов. Однако могу ли я изменить эти 150 апельсинов каким-то образом, чтобы создать больше фотографий апельсинов? По alter, я имею в виду добавление различных оттенков апельсина на цитрусовые, чтобы сделать "другой апельсин". Будет ли это эффективным методом обучения нейронной сети?

4b9b3361

Ответ 1

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

Предполагая, что вы будете тренировать его на изображениях, вот очень хороший репозиторий github, который предоставляет средства для использования этих методов. Эта библиотека python помогает вам дополнять изображения для ваших проектов машинного обучения. Он преобразует набор входных изображений в новый, гораздо больший набор слегка измененных изображений. Ссылка: https://github.com/aleju/imgaug

Особенности:

  • Доступны самые стандартные методы аугментации.

  • Методы могут применяться как к изображениям, так и к ключевым точкам/ориентирам на изображений. Определите свою последовательность дополнений один раз в начале эксперимент, затем применяйте его много раз.

  • Определите гибкие стохастические диапазоны для каждого увеличения, например. "вращать каждое изображение на значение от -45 до 45 градусов "или" вращать каждый образ на значение, выбранное из нормального распределения N (0, 5.0) ".

  • Легко конвертировать все стохастические диапазоны в детерминированные значения по-разному увеличивать различные партии изображений (например, изображения и их тепловые карты).

введите описание изображения здесь

Ответ 2

Расширение данных - это то, что вы ищете. В этом случае вы можете делать разные вещи:

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

  • Отрежьте оранжевый цвет и поместите его в разные фоны.

  • Масштабируйте апельсины с различными коэффициентами масштабирования.

  • Поверните изображения.

  • создают синтетические гнилые апельсины.

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

Я сделал что-то подобное с набором данных из 12 000 изображений, и я могу создать 630 000 образцов

Ответ 3

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

Ответ 4

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