В настоящее время я занимаюсь подготовкой небольших наборов данных, похожих на Flickrlogos-32 с глубокими CNN. Для обучения более крупным сетям мне нужно больше набора данных, используя, таким образом, аугментацию. Лучшее, что я делаю прямо сейчас, - это использование аффинных преобразований (отличная нормализация, центрирование по центру, поворот, сдвиг высоты по ширине, горизонтальный вертикальный флип). Но для больших сетей мне нужно больше дополнений. Я пробовал искать в kaggle национальной чае науки данных forum, но не смог получить большую помощь. Там код для некоторых методов, приведенных здесь, но я не уверен, что может быть полезно. Каковы некоторые другие (или лучшие) методы увеличения данных изображения, которые могут быть применены к этому типу (или в любом общем изображении), кроме аффинных преобразований?
Методы увеличения данных для небольших наборов данных изображений?
Ответ 1
Хорошее резюме можно найти здесь, раздел 1 по увеличению данных: так что переворачивает, случайные культуры и цвет дрожания, а также шум освещения:
Крижевский и др. предложили фантастический PCA при обучении знаменитого Alex-Net в 2012 году. Необычный PCA изменяет интенсивность каналов RGB в обучении изображения.
В качестве альтернативы вы также можете взглянуть на задачу зоопарка Kaggle Galaxy: победители написали очень подробное сообщение в блоге. Он охватывает те же методы:
- вращение,
- перевод,
- увеличение,
- переворачивается,
- цветовое возмущение.
Как указано, они также делают это "в реальном времени, т.е. во время обучения".
Например, здесь приведен практический Torch реализация Facebook (для ResNet).
Ответ 2
Я собрал пару методов дополнения в мою магистерскую диссертацию, стр. 80. Он включает в себя:
- Zoom,
- Crop
- Флип (горизонтальный/вертикальный)
- Вращение
- Масштабирование
- ножницы
- сдвиги каналов (rgb, hsv)
- контраст
- шум,
- виньетирования