Image Segmentation Techniques on the ISBI 2012 dataset: http://brainiac2.mit.edu/isbi_challenge/
All results are from src/models/unet_jocic.py implementation, which has an Argparse CLI that should be a good starting point.
Running the code
- All of the data is kept in the /data directory, so no need to download anything.
- Make sure dependencies in requirements.txt are installed (you'll know when you run it).
- Run the unet model to train:
python src/models/unet.py trainwithout saved weights, or with saved weights
python src/models/unet.py train --weights /path/to/weights_file.hdf5.
- To make a submission (i.e. predictions on testing data):
python src/models/unet.py submit --weights /path/to/weights_file.hdf5 --tiff /path/to/saved_submission.tiff.
- Rand score ~0.9511, information score ~0.9805, would have made it on the leaderboard but it was worse than my prior submission.
- Most significant difference is that I trained on all the images and validated with 9 images. I trained longer and got the loss lower than on the previous submission, so this leads me to believe there must have been a little overfitting.
- Rand score ~0.9637, information score ~0.9814, ~30th place.
- UNet based on JocicMarko example, sampling 256x256 tiles from a montage of images.
- The biggest difference seems to have been using the
he_normalinitialization for all of the convolutional layers, inspired by this blog post.