Submitted by viertys t3_125xdrq in MachineLearning
Hello,
I am working on a project in which I'm detecting cavities in X-rays.
The dataset I have is pretty limited (~100 images). Each X-ray has a black and white mask that shows where in the image are the cavities.
I'm trying to improve my results.
What I've tried so far:
- different loss functions: BCE, dice loss, bce+dice, tversky loss, focal tversky loss
- modifying the images' gamma to make the cavities more visible
- trying out different U-Nets: U-net, V-net, U-net++, UNET 3+, Attention U-net, R2U-net, ResUnet-a, U^2-Net, TransUNET, and Swin-UNET
None of the new U-nets that I've tried improved the results. Probably because they are more suited for a larger dataset.
I'm now looking for other things to try to improve my results. Currently my network is detecting cavities, but it has trouble with the smaller ones.
trajo123 t1_je7dgjz wrote
100 images??? Folks, neural nets are data hungry, if you don't have reams of data, don't fiddle with architectures, definitely not at first. The first thing to do when data is limited is to use pre-trained models. Then do data augmentation and only then look at other things like architectures and losses if you really have nothing better to do with your time.
SMP offers a wide variety of segmentation models with the option to use pre-trained weights.