ImageDataGenerator

Оновлено: 31.07.2023

Кількість доступних даних часто покращує продуктивність нейронних мереж DL.

  • Доповнення даних - це метод штучного створення нових навчальних даних з наявних даних. Це досягається шляхом використання специфічних для домену підходів для перетворення екземплярів з навчальних даних на нові та унікальні навчальні приклади.
.

Найвідомішим різновидом доповнення даних є доповнення зображень, яке полягає у перетворенні зображень у навчальних даних на змінені копії. До перетворень відносяться масштабування, перевертання, зсуви та інші операції з області редагування зображень. Мета полягає в тому, щоб додати додаткові, правдоподібні екземпляри до навчальної колекції. Маються на увазі зміни на зображеннях навчальної вибірки, які модель, ймовірно, може спостерігати. В результаті, очевидно, що точні методи доповнення даних, які використовуються для навчальних даних, повинні бути ретельно підібрані з урахуванням набору навчальних даних, а також розуміння проблемної області. Крім того, для тестування стратегій доповнення даних окремо і разом можна використати невеликі домашні дані, систему і навчальний цикл, щоб оцінити, чи призводять вони до помітного поліпшення продуктивності моделі. Сучасні алгоритми DL (CNN) можуть вивчати характеристики, які не залежать від того, де вони з'являються на зображенні. Однак доповнення може допомогти з цим інваріантним до перетворення методом навчання, допомагаючи моделі вивчати характеристики, які також є інваріантними до перетворення. Зазвичай доповнення даних зображень використовується лише на навчальних, а не на тестових наборах даних. Підготовка даних, така як зміна розміру зображення і масштабування пікселів, відрізняється тим, що вона повинна бути виконана рівномірно для всіх даних, які взаємодіють з моделлю.

Generator ImageDataGenerator та доповнення зображень

Під час навчання моделі пакет глибокого навчання Keras дозволяє автоматично використовувати доповнення даних. Для цього використовується клас ImageDataGenerator. Спочатку потрібно створити клас і налаштувати типи доповнення даних за допомогою параметрів, що надсилаються до основного підходу. Підтримуються різні підходи, а також методи масштабування зображень. Фотографії з набору даних безпосередньо не використовуються. Натомість моделі надаються лише покращені зображення. Оскільки доповнення виконуються випадковим чином, під час навчання можна створювати і використовувати змінені зображення, а також наближені до реальних зображення. Валідацію, як і тестові дані, можна задавати за допомогою генератора даних. Часто використовується другий екземпляр ImageDataGenerator, який може мати ті самі налаштування масштабування пікселів, що й екземпляр ImageDataGenerator, який використовується для навчальних даних, але не вимагає доповнення даних. Це пов'язано з тим, що аугментація використовується лише для штучного збільшення навчального набору даних з метою покращення продуктивності моделі на нерозширеному наборі даних.

Методи доповнення даних

  • Горизонтальне та вертикальне перевертання- У випадку горизонтального або вертикального перевертання зображення відбувається інвертування стовпчиків і рядків пікселів.
.

Логічний горизонтальний фліп або опція вертикального фліпу в основному підході ImageDataGenerator визначає доповнення фліпу.

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

Мета полягає в тому, щоб модель адаптувалася до фотографій, які були навчені за різних умов освітлення. Цього можна досягти за допомогою опції діапазону яскравості у конструкторі ImageDataGenerator, яка надає мінімальний та максимальний діапазон у вигляді плаваючого числа, що вказує на % для визначення величини освітлення. Числа трохи менше 1.0 затемнюють зображення, тоді як значення більше 1.0 освітлюють його, тоді як 1.0 не має ніякого впливу.

  • Випадкове обертання- Доповнення обертання обертає зображення за годинниковою стрілкою на вказану кількість градусів у діапазоні від 0 до 360 у випадковому порядку.
.

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