data (images) augmentation for NN on python
Программа осуществляет аугментацияю изображений. В процессе возможно:
- Вращение изображения на определенный угол (angle) в рамках определенного сектора (sector)
- Блюр(дефокус) изображений (Размытие по Гауссу с радиусом (radius))
- Введение на изображение бликов и линий
- Сохранение изображения в файл с определенным именем
- Изменение размера до 299х299 точек
Программа проходит по директории dataset_name и составляет список изображений (jpeg или jpg), затем создает копию датасета в директории рядом c именем dataset_name_out и наполняет её копиями изображений с измененным размером до 299х299 точек. После обходит новый датасет и проводит изменение файлов (вращение, линии, блики и блюр). Измененные изображения складывает в директории #R, #L, #G и #B внутри директории dataset_name_out. Таким образом формируется новый датасет с измененными изображениями, который можно сразу "скормить" нейронной сети.
Запуск производится командой: python img_augmentation.py <параметры>
Список параметров:
- "-d" или "--dir" Обязательный параметр. Директория поиска изображений (первоначальный датасет).
- "-a" или "--angle" Необязательный параметр. Угол поворота изображения (по-умолчанию: 2 градуса).
- "-s" или "--sector" Необязательный параметр. В какой области вращать изображение (по-умолчанию:0-360 = поворот от 0+angle до 360).
- "-n" или "--noise" Необязательный параметр. Добавление шума: 1 - добавлять шум к изображению при вращении; пустая строка "" - не добавлять (по-умолчанию шум добавляется).
- "-r" или "--radius" Необязательный параметр. Радиус блюра (по-умолчанию: 3).
- "-l" или "--lines" Необязательный параметр. Количество линий (по-умолчанию: 3).
- "-g" или "--glare" Необязательный параметр. Количество бликов (по-умолчанию: 1).
Например, python data_augmentation.py -d /home/username/dataset_name/
Если запускать с параметрами по-умолчанию, то получится примерно N*185+N изображений, где N - количество изображений в первоначальном датасете.