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.
azorsenpai t1_je6hjpu wrote
Is there any reason you're really restraining to a Unet based model ? I'd recommend testing different architectures such as DeepLab V3 or FPN and see whether stuff improves. If it doesn't I'd recommend looking to your data and the quality of the ground truth as with only 100 data points you should be very much limited by the information contained in your data.
If the data is clean I'd recommend using some kind of ensemble method, this might be overkill, especially with heavy models but having multiple models with random initializations infer on a same input generally gives a few more points of accuracy/dice so if you really need it , this is an option.