Необходимо написать скрипт на языке python для аугментации изображений. Функции (или методы класса) должны быть реализованы так, чтобы их можно было удобно внедрить в реальные проекты. То есть написаны понятно и структурировано, и, конечно же, без фанатизма. Нельзя использовать сторонние библиотеки/модули для аугментации. Можно использовать opencv.
Виды аугментаций:
- Поворот изображения
- Повышение и понижение яркости
Дано:
- Изображения
- Координаты объектов на изображениях в формате pickle 2.1. Координаты хранятся в следующей последовательности x1, y1, x2, y2
Реализовать обязательно:
- У скрипта должны быть следующие изменяемые параметры:
1.1. Кол-во аугментированных фото на выходе для каждого файла.
1.2. Шанс срабатывания каждого вида аугментации.
1.3. Пороги для максимального поворота в одну и другую сторону в градусах.
1.4. Пороги на максимального повышения и понижения яркости.
1.5. Возможность визуализации разметки при сохранении в виде отдельного флага. - Возможность обработать разный по размеру список изображений.
- При повороте изображения координаты должны смещаться соответственно объектам.
- Аугментированные изображения должны сохраняться в отдельную папку.
- Разметка к аугментированным изображениям должна сохраняться всё в одном файле или в отдельных pickle-файлах (или json-файлах) для каждого изображения. Разметка должна сохраняться в таком же формате как в исходном pickle-файле.
- Реализация повышения и понижения яркости без использования циклов с проходом по всем пикселям. То есть с использованием numpy-функций и/или cv2-функций (opencv).
python main.py -n 4 -p 0.5 0.5 -a -180 180 -b -100 100 -v