Предварительная обработка модели из небольшого набора данных (300 изображений) - Tensorflow + Keras
Я использую Tensorflow и Keras для разработки этого небольшого проекта, чтобы немного больше научиться использовать tf и keras, и я пытаюсь заняться своим собственным проектом классификации изображений, чтобы погрузиться в него.
У меня есть суперкрошечный набор данных из 300 образцов (изображения RGB размером 200 x 200 пикселей), и я пытаюсь классифицировать их по 4 классам. Моя модель (что неудивительно) переоснащается, и мне любопытно, есть ли у кого-нибудь рекомендации о том, какую предварительную обработку я мог бы сделать, чтобы помочь сделать модель более универсальной.
Я, конечно, мог бы проделать дополнительную работу по разработке набора данных, но каждый образец должен быть вручную собран и помечен, поскольку существует очень мало общедоступных источников для этих изображений, а каждый образец стоит около 50 центов и 10 секунд для захвата и классификации (что в сумме если мне нужно самому сделать набор данных из 1000+ изображений)
Я уверен, что могу написать сценарий ручной предварительной обработки, чтобы зашумить изображения, но мне бы хотелось услышать, есть ли у вас какие-либо рекомендации, чтобы я мог немного ускорить процесс.
Ниже то, что я сейчас использую для предварительной обработки.
Я подумываю о том, чтобы попытаться добавить к изображениям буквальный шум или, может быть, даже объединить их вместе в разных точках (набор данных способен на это), но я не уверен, есть ли какие-то изящные "трюки", которые я мог бы реализовать, чтобы сэкономить немного времени. Любая помощь или рекомендации были бы очень признательны!
xModel = Sequential([
layers.experimental.preprocessing.Resizing(h, w, interpolation='bilinear'),
layers.experimental.preprocessing.RandomZoom(0.2),
layers.experimental.preprocessing.RandomRotation(.6), # Roughly 35~ degrees, orientation is important for classification purposes
...
])