Releases: Deep-MI/FastSurfer
v2.1.0
FastSurfer Version 2.1.0
Finally, you waited and waited and now it is here :-) our new fresh and shiny FastSurfer Release 2.1. including Cerebnet for Cerebellum sub segmentation (currently only on 1mm resolution) https://doi.org/10.1016/j.neuroimage.2022.119703
What's Changed
- Introduce segstats.py script for fast partial volume computation by @dkuegler in #239
- Docs add Windows GPU and update tutorial by @agirodi in #244
- Surfreg script by @agirodi in #241
- Fix: Misleading QC failure message in
run_fastsurfer.sh
by @AhmedFaisal95 in #247 - Refactoring of features impacted by CerebNet by @dkuegler in #249
- Fixed generate_hdf5.py issues - generalization and bug fix by @LeHenschel in #251
- Fix/yaml files by @LeHenschel in #252
- Added optional LUT to map sagittal view to other classes by @LeHenschel in #253
- Performance optimization and refactoring of the core prediction loop by @dkuegler in #255
- Bugfix: Wrong number of parameters for "setup_logging" by @ClePol in #257
- Remove np.float, deprecated in numpy 1.20 and removed in 1.24 by @mscheltienne in #263
- Set default FASTSURFER_HOME by script path instead of PWD by @dkuegler in #269
- CerebNet support in FastSurfer by @dkuegler in #258
- Fixed bug in FastSurferVINN interpolation by @ClePol in #274
- Improving ability to import FastSurferCNN into other projects by @dkuegler in #275
- Added call to create jacobian_white measure directly in fastsurfer by @LeHenschel in #282
- Simplified competitive concatentation with torch.maximum by @LeHenschel in #292
- Documentation updates for FastSurfer 2.1 by @dkuegler in #293
- Fix: 3D interact in tutorial showing white screen by @agirodi in #300
- QC check: Ventricle-bg intersection volume by @AhmedFaisal95 in #299
- Create EDITING.md by @m-reuter in #304
- Fix the version comparison in reconsurf.sh by @dkuegler in #321
Full Changelog: v2.0.4...v2.1.0
Known Issues
--no_fs_T1
flag does not work due to upper/lower case confusion- seg-only GPU docker cannot load checkpoints
We will therefore not release 2.1.0 docker images and will apply patches to fix these issues and release 2.1.1 (next week).
v2.0.4
v2.0.3
v2.0.1
v2.0.0
FastSurfer 2.0
Finally, we are happy to release a new major version of FastSurfer! After thorough testing we now base FastSurfer 2.0 on our VINN (voxel size independent neural network, see https://www.sciencedirect.com/science/article/pii/S1053811922000623 ) and support full brain segmentation on sub-mm MRI (1.5 and 3T) natively. Note, that command line arguments have changed, in order to support inclusion of future modules, such as the cerebellum segmentation which will come soon (at least for 1mm images).
Overall the performance has improved over our - already excellent - first version of FastSurfer (segmentation accuracy, test retest reliability, sensitivity to disease effects and processing time). We also solved an issue previously inherited from FreeSurfer of misaligned cortical areas (pre- and post-central) predominantly in the left hemisphere, by initializing spherical registration with our own code. Furthermore, although experimental, FastSurfer now runs on Windows (CPU via Docker), MacBooks (CPU and natively on GPU ( --device mps ) of the M chips!) and with AMD GPUs, in addition to the Nvidia GPUs or regular CPUs in Linux.
We hope you enjoy this release and please post any issues. While we perform extensive release tests on a hundreds of images from a variety of datasets, there can always be remaining bugs or issues and we appreciate your help in finding and solving them.
What's Changed
- Add hires support to conforming and recon-surf by @m-reuter in #134
- Removed pipefail env setting by @LeHenschel in #167
- Activate denormal flushing in FastSurferCNN by @AhmedFaisal95 in #171
- [run_prediction] VERIFIED ON BERT; simplify get_prediction memory all… by @dkuegler in #177
- [data_utils] fix and optimize split_cortex_labels by @dkuegler in #175
- Download correct conda architecture by @m-reuter in #179
- add requirements.mac.txt for testing mac support by @m-reuter in #180
- Speed-up BA exvivo labels projection with python by @m-reuter in #183
- [logging] cleanup and unify the logging in vinn by @dkuegler in #189
- Feature/vinn mac by @m-reuter in #191
- Add experimental docker for AMD GPUs by @m-reuter in #193
- bump to FS7.3.2 and Ubuntu 20 by @m-reuter in #195
- Fix: Inference script logging by @AhmedFaisal95 in #194
- Fix: Potential buffer overflow errors by @AhmedFaisal95 in #196
- Fix: Prevent running on existing directories by @AhmedFaisal95 in #197
- Feature/qc by @m-reuter in #198
- optimize normalizeWM and mask creation by @dkuegler in #207
- add requirements_cpu.txt and minor changes by @agirodi in #205
- Volume-based QC check after segmentation by @AhmedFaisal95 in #201
- support negative values in image (UKbio) by @m-reuter in #210
- Interface and FastSurfer basepath changes by @dkuegler in #208
- Feature/aseg brainmask module by @LeHenschel in #212
- Define global ckptdir in checkpoint.py and import from there in run_p… by @LeHenschel in #214
- Upgrade:
torch
andpillow
packages by @AhmedFaisal95 in #217 - discourage running fastsurfer as root by @dkuegler in #216
- Fix/normwm by @m-reuter in #224
- Voxel size passing and hires pipeline selection changes to allow consistent processing by @dkuegler in #225
- Fix: NIFTI image support issues by @AhmedFaisal95 in #232
- Docs by @m-reuter in #226
- and various minor bug fixes
Full Changelog: v.1.1.2...v2.0.0
v1.1.2
v1.1.1
v1.1.0
We have worked hard to bring you this new and awesome release v1.1 !!
After weeks of thorough testing we are finally happy with this version of FastSurfer, which is based on FreeSurfer 7.2 now. Over-and-over we repeated a battery of tests (including accuracy to a ground truth set, test-retest reliability, group separability, and run-time performance). Not only are we seeing the same high-quality of results as our 1.0 release, we can bring that to you at a faster speed.
What has changed in v1.1
- We upgraded our dependencies, most notably we use:
- FreeSurfer 7.2
- Ubuntu 20.4 (in Docker)
- Upgrades of other dependencies (Python packages, NVIDIA)
- We reduced our Docker image sizes significantly (via a 2-stage build and striping unnecessary files)
- We now have pre-built images on Docker Hub and documentation on how to run Singularity
- Faster N4 bias field correction using simpleITK
- Improved search for CorpusCallosum (mid plane finding)
- Replace and speed-up global spherical registration (rotation) in FS7.2 mris_register
Detailed commits: https://github.com/Deep-MI/FastSurfer/commits/v1.1.0
We thank all the contributors for their help!!
Roadmap
- Include FastSurferVINN for high-res segmentation (for v2.0, ongoing)
- Update recon-surf pipeline to high-res (for v2.0, done)
- Further speed-up, e.g. by a more efficient mapping of BA-labels etc (for v2.1 or earlier, done)
- CC/Fornix segmentation CNN (and mid plane finding) (for v2.* or 3.0)
- Integration of other segmentation modules (for v2.* or v3.0)
- CerebNet for cerebellum sub-segmentation
- Olfactory bulb segmentation
- Hypothalamus sub-segmentation
- Unify interface and merge segmentations if possible (v3.0)
- Improved surface processing (construction, registration with DL) (for v4.0)
- Restructuring of recon-surf as modern pipeline (e.g. Nextflow or Snakemake) (anytime)
- Automatisation of releasing Docker images on Dockerhub (CI, e.g. via Travis or Github Actions) (anytime)
v1.0.1
v1.0.0
What's Changed
- Conform now handles 4-dimensional data frames correctly, if the fourth dim is size 1
- Update Tutorial README with pip dependency comments
- Add requirements.in, and pip-compiled requirements.txt
- Add issue templates (bug, feature, docs, support)
- recon_surf Time Extraction
- Generate balabels if possible
- Saving FastSurferCNN output in mgz, nii, or nii.gz
- Saving conformed input in FastSurferCNN to use in recon-surf (solves larger field of view)
- FIX: guide sphere reg with FastSurferCNN precentral
- Added check for adjusted conformed_name flag
- Switch off use of Cholmod from scikit sparse
- Fix Fastsurfer output names to show DKT
- Rename branch master to stable and use dev branch for development
Full Changelog: https://github.com/Deep-MI/FastSurfer/commits/v1.0.0
Note: We are currently generating tested releases for FastSurfer. This is our first official release and includes many updates compared to the earlier unstable versions. However, this is also the last release that uses FastSurfer v6.0 for recon-surf. Our roadmap is to follow shortly with these releases, so stay tuned:
- v.1.1.0 to upgrade to FreeSurfer 7.2, Ubuntu 20.04, faster N4 BiasCorrect from sITK and fix for CC segmentation speed.
- v.2.0.0 Permit high-res processing by switching to FastSurferVINN and upgrading recon-surf to hires.