Nondefaced-Detector
A framework to detect if a 3D MRI volume has been defaced.
Table of contents
- Installation
- Using pre-trained networks
- Reproducibility
- Paper
- Roadmap
- Questions or Issues
- Contributing
- License
- Contact
- Acknowledgements
Installation
Container
We recommend using the latest Nondefaced-detector docker container, which includes all the dependencies required for the framework.
GPU
The Nondefaced-detector GPU supported container uses the tensorflow-gpu as its base image. Please see the official tensorflow docker install page for all of the CUDA and NVIDIA driver requirements.
$ docker pull poldracklab/nondefaced-detector:latest-gpu
CPU
This container can be used on most systems that have Docker/Singularity installed.
$ docker pull poldracklab/nondefaced-detector:latest-cpu
NOTE: The CPU container will be very slow for training. We highly recommend that you use a GPU system.
Pip
$ pip install --no-cache-dir nondefaced-detector[gpu]
Using pre-trained networks
Pre-trained networks are avalaible in the Nondefaced-detector models repository. Prediction can be done using the nondefaced-detector CLI or in python.
From docker container installation
$ docker run --rm -v $PWD:/data nondefaced-detector:latest-cpu \
predict \
--model-path=/opt/nondefaced-detector/nondefaced_detector/models/pretrained_weights \
/data/example1.nii.gz
From pip installation
$ nondefaced-detector
Usage: nondefaced-detector [OPTIONS] COMMAND [ARGS]...
A framework to detect if a 3D MRI Volume has been defaced.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
convert Preprocess MRI volumes and convert to Tfrecords.
evaluate Evaluate a model's predictions against known labels.
info Return information about this system.
predict Predict labels from features using a trained model.
Reproducibility
Steps to reproduce inference results from the paper.
Step 1: Get the preprocessed dataset. You need to have datalad installed.
$ datalad clone https://gin.g-node.org/shashankbansal56/nondefaced-detector-reproducibility /data/nondefaced-detector-reproducibility
$ cd /data/nondefaced-detector-reproducibility
$ datalad get test_ixi/tfrecords/*
NOTE: To reproduce inference results from the paper, you only need to download the tfrecords.
Step 2: Depending on your system create a tensorflow-cpu/gpu virtual environment. We recommend using conda.
$ conda create -n tf-cpu tensorflow
$ conda activate tf-cpu
Step 3: Get the nondefaced-detector repo.
$ git clone https://github.com/poldracklab/nondefaced-detector.git
Step 4: Run the standalone inference script. The inference script uses the pre-trained model weights under nondefaced_detector/models/pretrained_weights
$ cd nondefaced-detector
$ pip install -e .
$ cd nondefaced_detector
$ python inference.py < PATH_TO_TFRECORDS [/data/nondefaced-detector-reproducibility/test_ixi/tfrecords] >
Paper
Roadmap
See the projects dashboard for a list of ongoing work and proposed features.
Questions or Issues
See the open issues for a list of known issues. If you have any questions or encounter any issues, please submit a github issue.
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the Apache 2.0 License. See LICENSE
for more information.
Contact
Shashank Bansal - shashankbansal56@gmail.com
Acknowledgements
Training Dataset
The original model was trained on 980 defaced MRI scans from 36 different studies that are publicly available at OpenNeuro.org