I have several image preprocessing steps built into my model:
model = Sequential()
model.add(Cropping2D(cropping=((22, 0), (0, 0)), input_shape=(160, 320, 3)))
model.add(Lambda(lambda image: tf.image.resize_images(image, (66, 200))))
model.add(Lambda(lambda image: image / 255.0 - 0.5))
The benefit of that approach is that the pipeline for training and testing is exactly the same. The disadvantage is that its rather difficult to verify the results of the preprocessing steps, e.g. by watching the images after the cropping step.
Is there a good way to do that in keras ?