I have images that I need to classify into 5 classes.
These images are best suited for a U-net but I need classes not a segmentation.
The model need to determine the class from the middle of the images (if contained in object in image class [1-5] depending on the container). The images can be converted to grayscale since they don't have color.
I have 10k+ examples (no outlier) and I augmented then with rotation and mirror.
I tried:
very basic CNN with a dense layer at the end : best so far 72%
Conv2D(32, (3, 3), activation='relu')(input_layer)
MaxPooling2D((2, 2))
Conv2D(64, (3, 3), activation='relu')
MaxPooling2D((2, 2))
lConv2D(128, (3, 3), activation='relu')
MaxPooling2D((2, 2))(l5)
Flatten()(l6)
Dense(256, activation='relu')(l7)
Dropout(0.3)(l8)
output_layer = Dense(), activation='softmax')```
A very basic U-net (Vram limited) converted to class: stuck at 68%
A more complex CNN : stuck at 69%
from https://keras.io/examples/vision/image_classification_from_scratch/ with rgb still on because of the sizes.
I also tried VGG16 with 4 layers untranable but result were very poor.
How can I determine the best architecture for my data ?
Is there an already existing model that I can borrow and retrain that works well ?