У меня проблемы с пользовательским изменением ImageDataGenerator Keras таким образом, чтобы я мог выполнить, скажем, SaltAndPepper Noise и Gaussian Blur (которые они не предлагают). Я знаю, что этот тип вопросов задавался много раз прежде, и я прочитал почти каждую возможную ссылку ниже:
Но из-за моей неспособности понять полный исходный код или его отсутствия python знаний; Я изо всех сил пытаюсь реализовать эти два дополнительных типа дополнения в ImageDataGenerator как пользовательский. Я очень sh кто-то мог бы указать мне в правильном направлении, как изменить исходный код, или любым другим способом.
Использовать генератор для Keras model.fit_generator
Пользовательский генератор данных Keras с выходом
Увеличение в реальном времени с добавлением шумов и контрастов
Увеличение данных Генератор данных изображения Keras Семанти c Сегментация
https://stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-fly
https://github.com/keras-team/keras/issues/3338
https://towardsdatascience.com/image-augmentation-14a0aafd0498
https://towardsdatascience.com/image-augmentation-for-deep-learning-using-keras-and-histogram-equalization-9329f6ae5085
Пример шума SaltAndPepper
выглядит следующим образом, и я sh добавлю дополнительные типы дополнений в ImageDataGenerator:
class SaltAndPepperNoise:
def __init__(self, replace_probs=0.1, pepper=0, salt=255, noise_type="RGB"):
"""
It is important to know that the replace_probs here is the
Probability of replacing a "pixel" to salt and pepper noise.
"""
self.replace_probs = replace_probs
self.pepper = pepper
self.salt = salt
self.noise_type = noise_type
def get_aug(self, img, bboxes):
if self.noise_type == "SnP":
random_matrix = np.random.rand(img.shape[0], img.shape[1])
img[random_matrix >= (1 - self.replace_probs)] = self.salt
img[random_matrix <= self.replace_probs] = self.pepper
elif self.noise_type == "RGB":
random_matrix = np.random.rand(img.shape[0], img.shape[1], img.shape[2])
img[random_matrix >= (1 - self.replace_probs)] = self.salt
img[random_matrix <= self.replace_probs] = self.pepper
return img, bboxes