Skip to content

[WIP] Support Deepgrow 2D/3D Training#1329

Closed
SachidanandAlle wants to merge 40 commits intoProject-MONAI:masterfrom
SachidanandAlle:master
Closed

[WIP] Support Deepgrow 2D/3D Training#1329
SachidanandAlle wants to merge 40 commits intoProject-MONAI:masterfrom
SachidanandAlle:master

Conversation

@SachidanandAlle
Copy link
Copy Markdown
Contributor

@SachidanandAlle SachidanandAlle commented Dec 8, 2020

Fixes # .

Description

Support Deegrow 2D/3D training (training example will be added into Tutorials)

Status

Work in progress

Types of changes

  • Non-breaking change (fix or new feature that would not break existing functionality).
  • Breaking change (fix or new feature that would cause existing functionality to change).
  • New tests added to cover the changes.
  • Integration tests passed locally by running ./runtests.sh --codeformat --coverage.
  • Quick tests passed locally by running ./runtests.sh --quick.
  • In-line docstrings updated.
  • Documentation updated, tested make html command in the docs/ folder.

@wyli
Copy link
Copy Markdown
Contributor

wyli commented Dec 8, 2020

thanks! i put a few todos here for discussion:

I feel it's important to set up some regression tests before any of these refactorings it'll also be very helpful for other people that continue maintaining this module

cc @Nic-Ma

@tvercaut
Copy link
Copy Markdown
Member

tvercaut commented Dec 8, 2020

Interesting. I couldn't see a paper reference within the code. Is this a re-implementation of https://arxiv.org/abs/1903.08205?

Having some documentation, and maybe even an exemplar tutorial / example use case would be great.

SachidanandAlle and others added 26 commits December 23, 2020 12:26
Signed-off-by: Sachidanand Alle <[email protected]>
* adds a bounding box transform

Signed-off-by: Wenqi Li <[email protected]>

* fixes integration

Signed-off-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
… build (#1327)

flake8-executable is GPL'ed

Signed-off-by: Isaac Yang <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* adds test init_reader

Signed-off-by: Wenqi Li <[email protected]>

* fixes loadimage

Signed-off-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* [DLMED] refine generate_spatial_bounding_box

Signed-off-by: Nic Ma <[email protected]>

* [DLMED] update according to comments

Signed-off-by: Nic Ma <[email protected]>

* [DLMED] add check for margin value

Signed-off-by: Nic Ma <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* Working on DynUNet Torchscript compatibility

Signed-off-by: Eric Kerfoot <[email protected]>

* Working on DynUNet Torchscript compatibility

Signed-off-by: Eric Kerfoot <[email protected]>

* Working on DynUNet Torchscript compatibility

Signed-off-by: Eric Kerfoot <[email protected]>

* Working on DynUNet Torchscript compatibility

Signed-off-by: Eric Kerfoot <[email protected]>

* Working on DynUNet Torchscript compatibility

Signed-off-by: Eric Kerfoot <[email protected]>

Co-authored-by: Yiheng Wang <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* fixes params groups

Signed-off-by: Wenqi Li <[email protected]>

* update based on comments

Signed-off-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* [DLMED] enhance save_final in CheckpointSaver

Signed-off-by: Nic Ma <[email protected]>

* [DLMED] add log message

Signed-off-by: Nic Ma <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* adding simple profiling tools

Signed-off-by: charliebudd <[email protected]>

* removing old timing decorator

Signed-off-by: charliebudd <[email protected]>

* auto-reformatting

Signed-off-by: charliebudd <[email protected]>

* removing unnecessary list comprehension in sum()

Signed-off-by: charliebudd <[email protected]>

* adding imports to __init__.py

Signed-off-by: charliebudd <[email protected]>

* [MONAI] python code formatting

Signed-off-by: monai-bot <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
…ed. #1210. Requires torch.fft module and PyTorch 1.7.0+. (#1287)

Signed-off-by: Christian Baker <[email protected]>

* New tests/utils.py unittest decorators added: SkipIfModule(),
SkipIfBeforePyTorchVersion() and SkipIfAtLeastPyTorchVersion

Signed-off-by: Christian Baker <[email protected]>

* New unit tests added test_hilbert_transform.py and
test_detect_envelope.py

Signed-off-by: Christian Baker <[email protected]>

* New exception InvalidPyTorchVersionError implemented in monai/utils/module.py

Signed-off-by: Christian Baker <[email protected]>

* New class HilbertTransform implemented in
monai/networks/layers/simplelayers.py

Signed-off-by: Christian Baker <[email protected]>

* New class DetectEnvelope implemented in
monai/transforms/intensity/array.py, uses HilbertTransform

Signed-off-by: Christian Baker <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* ci/cd with 1.7.1

Signed-off-by: Wenqi Li <[email protected]>

* revise various tests, fixes docs

Signed-off-by: Wenqi Li <[email protected]>

* temp full tests

Signed-off-by: Wenqi Li <[email protected]>

* remove temp. tests

Signed-off-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* [DLMED] add astype in NormalizeIntensity transform

Signed-off-by: Nic Ma <[email protected]>

* [DLMED] update according to comments

Signed-off-by: Nic Ma <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* add striding for occlusion sensitivity

Signed-off-by: Richard Brown <[email protected]>

* autofix changes

Signed-off-by: Richard Brown <[email protected]>

* baseline - sensitivity

Signed-off-by: Rich <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* [DLMED] update highlights page

Signed-off-by: Nic Ma <[email protected]>

* [DLMED] update arch module chart

Signed-off-by: Nic Ma <[email protected]>

* [DLMED] update GradCam, LoadImage, TorchScript, Layer wise LR, Occlusion sensitivity

Signed-off-by: Nic Ma <[email protected]>

* [DLMED] add partition dataset and cross validation

Signed-off-by: Nic Ma <[email protected]>

* adds CAM vis.

Signed-off-by: Wenqi Li <[email protected]>

* adds a cam link

Signed-off-by: Wenqi Li <[email protected]>

* patchdataset desc.

Signed-off-by: Wenqi Li <[email protected]>

* update fig

Signed-off-by: Wenqi Li <[email protected]>

* adds tutorial links

Signed-off-by: Wenqi Li <[email protected]>

* update tutorial link

Signed-off-by: Wenqi Li <[email protected]>

* fixes typos

Signed-off-by: Wenqi Li <[email protected]>

* [DLMED] remove DeepGrow from arch chart

Signed-off-by: Nic Ma <[email protected]>

Co-authored-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
…et label (#1347)

Signed-off-by: Isaac Yang <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* Add AddExtremePointsChannel transform

Signed-off-by: Mohammad Adil <[email protected]>

* permutation -> perturbation

Signed-off-by: Wenqi Li <[email protected]>

* [MONAI] python code formatting

Signed-off-by: monai-bot <[email protected]>

Co-authored-by: YuanTingHsieh <[email protected]>
Co-authored-by: Wenqi Li <[email protected]>
Co-authored-by: monai-bot <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* Update hausdorff metric

Signed-off-by: yiheng-wang-nv <[email protected]>

* Update surface distance

Signed-off-by: yiheng-wang-nv <[email protected]>

* fix reduction type error

Signed-off-by: yiheng-wang-nv <[email protected]>

* Add handlers for new metrics

Signed-off-by: yiheng-wang-nv <[email protected]>

* Simplify distance code

Signed-off-by: yiheng-wang-nv <[email protected]>

* autofixes and typo fixes

Signed-off-by: Wenqi Li <[email protected]>

* fixes lgtm typos

Signed-off-by: Wenqi Li <[email protected]>

Co-authored-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* Fix randomness in dictionary transform

Signed-off-by: YuanTingHsieh <[email protected]>

* Fix optional

Signed-off-by: YuanTingHsieh <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* Update docs for GitHub Discussion tab

Signed-off-by: Richard Brown <[email protected]>

* discussion -> discussions

Signed-off-by: Richard Brown <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* fixes #1346

Signed-off-by: Wenqi Li <[email protected]>

* [MONAI] python code formatting

Signed-off-by: monai-bot <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
wyli and others added 14 commits December 23, 2020 12:26
Signed-off-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* AE: check lens of stride and channel match

Signed-off-by: Richard Brown <[email protected]>

* [MONAI] python code formatting

Signed-off-by: monai-bot <[email protected]>

Co-authored-by: monai-bot <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Nic Ma <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Wenqi Li <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Nic Ma <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
* Initial cpu implementation

Signed-off-by: charliebudd <[email protected]>

* hue speed increase moving away from torch tensors

Signed-off-by: charliebudd <[email protected]>

* allowing generic channel dimension size

Signed-off-by: charliebudd <[email protected]>

* allowing generic dimensionality

Signed-off-by: charliebudd <[email protected]>

* manual testing script for bilateral filter

Signed-off-by: charliebudd <[email protected]>

* Initial commit of CRF using permutohedral lattice to optimise message passing, implementation from https://github.com/SamuelJoutard/Permutohedral_attention_module

Signed-off-by: charliebudd <[email protected]>

* temporary example scripts demonstrating the usage of crf and phl, and some data to process

Signed-off-by: charliebudd <[email protected]>

* alternate phl implementation using a more efficient cuda hashtable, code currently untested due to windows build issues, implementation from https://github.com/SamuelJoutard/Permutohedral_attention_module

Signed-off-by: charliebudd <[email protected]>

* c++ cpu permutohedral lattice implementation

Signed-off-by: charliebudd <[email protected]>

* comparison script

Signed-off-by: charliebudd <[email protected]>

* cleaning

Signed-off-by: charliebudd <[email protected]>

* backwards pass

Signed-off-by: charliebudd <[email protected]>

* initial cuda brute force kernel

Signed-off-by: charliebudd <[email protected]>

* reverting setup.py

Signed-off-by: charliebudd <[email protected]>

* working cuda kernel for brute force 2d kernel

Signed-off-by: charliebudd <[email protected]>

* fixing unresolved symbols when compiling without cuda

Signed-off-by: charliebudd <[email protected]>

* removing macros file

Signed-off-by: charliebudd <[email protected]>

* placeholder cuda phl implementation

Signed-off-by: charliebudd <[email protected]>

* changing test case color sigma

Signed-off-by: charliebudd <[email protected]>

* Initial import of reference cuda phl implementation

Signed-off-by: charliebudd <[email protected]>

* fixing cuda kernel color weight error

Signed-off-by: charliebudd <[email protected]>

* initial edits to cuda phl code

Signed-off-by: charliebudd <[email protected]>

* fixing errors in cuda phl implementation

Signed-off-by: charliebudd <[email protected]>

* removing logging from cuda phl

Signed-off-by: charliebudd <[email protected]>

* using template data_ptr function

Signed-off-by: charliebudd <[email protected]>

* fixed cpu phl implementation

Signed-off-by: charliebudd <[email protected]>

* updating cpu phl to run on arbitrary input dimensions and channles

Signed-off-by: charliebudd <[email protected]>

* 2d and 3d testing scripts

Signed-off-by: charliebudd <[email protected]>

* Generalising permutohedral implementation to remove independance on width and height

Signed-off-by: charliebudd <[email protected]>

* removing width and height from permutohedral filter function and implementing templated feature creation

Signed-off-by: charliebudd <[email protected]>

* fixed typo

Signed-off-by: charliebudd <[email protected]>

* exteneding 3d testing script

Signed-off-by: charliebudd <[email protected]>

* generalising bruteforce cuda implementation

Signed-off-by: charliebudd <[email protected]>

* updating testing scripts

Signed-off-by: charliebudd <[email protected]>

* file organisiation

Signed-off-by: charliebudd <[email protected]>

* fixing weight error in cpu bruteforce implementation, also inlineing functions

Signed-off-by: charliebudd <[email protected]>

* some refactoring and introducing proper batch handling

Signed-off-by: charliebudd <[email protected]>

* fixing indexing error at border

Signed-off-by: charliebudd <[email protected]>

* fixing some artifacts in cuda phl for high color sigmas

Signed-off-by: charliebudd <[email protected]>

* fixing gaussian kernel function for cpu and cuda bruteforce

Signed-off-by: charliebudd <[email protected]>

* ensuring kernel is an odd numbered size

Signed-off-by: charliebudd <[email protected]>

* adding tests for precised implementation

Signed-off-by: charliebudd <[email protected]>

* adding approximate imlpementation test

Signed-off-by: charliebudd <[email protected]>

* templating implementations based on scalar_type

Signed-off-by: charliebudd <[email protected]>

* cleaning up

Signed-off-by: charliebudd <[email protected]>

* code formatting

Signed-off-by: charliebudd <[email protected]>

* removing half precision implementation for permutohedral due to errors caused on windows

Signed-off-by: charliebudd <[email protected]>

* skipping cuda tests if cuda missing

Signed-off-by: charliebudd <[email protected]>

* reformating

Signed-off-by: charliebudd <[email protected]>

* adding unit test skip based on cpp extention availablility

Signed-off-by: charliebudd <[email protected]>

* removing unused import

Signed-off-by: charliebudd <[email protected]>

* changing to  use of THCatomic add

Signed-off-by: charliebudd <[email protected]>

* adding missing licenses

Signed-off-by: charliebudd <[email protected]>

* clang reformat

Signed-off-by: charliebudd <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Richard Brown <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
Signed-off-by: Sachidanand Alle <[email protected]>
@SachidanandAlle
Copy link
Copy Markdown
Contributor Author

Refer: #1395

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.