Giter VIP home page Giter VIP logo

dcbia-ortholab / slicerdentalmodelseg Goto Github PK

View Code? Open in Web Editor NEW
40.0 40.0 10.0 25.52 MB

This extension aims to provide a GUI for a deep-learning automated teeth segmentation tool that we developed at the University of North Carolina in Chapel Hill in collaboration with the University of Michigan in Ann Arbor.

License: Apache License 2.0

CMake 4.89% Python 95.11%
3d-slicer-extension

slicerdentalmodelseg's People

Contributors

allemangd avatar gaelleleroux avatar hutin1 avatar jcfr avatar juanprietob avatar luciacev avatar mathieuleclercq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

slicerdentalmodelseg's Issues

Module name specificity

It is my opinion that "prediction" is too generic of a module name to have in an extension. The module name should likely relate to the extension name.

Python package question

If I recall, you opted for using the system python environment so you could get newer packages than were available in Python 3.6. With the update of Slicer's (not SlicerSALT's yet) Python to 3.9.10, can you get everything you need into the Slicer python environment?

GUI of new version

The GUI of the new version differs from the one explained in the README file.
Could you please provide some information on how to run the updated extension?

extension_gui

Random Review comments

This is a collection of random small comments or questions that don't necessarily warrant their own issue yet. I am putting individual topics in separate comments. If any of them rise to level of an individual issue, we use the "Reference in new issue" feature to create a new issue for it.

Extension Loading Failure on Linux Machine Due to Unused Import

The instantiation failure of the CrownSegmentation module in Slicer is attributed to the following line:

from CondaSetUp import CondaSetUpCall,CondaSetUpCallWsl

It is noted that only CondaSetUpCallWsl is utilized from this import. A potential resolution involves relocating the import statement to the scope where it is used, specifically within the else statement's scope:
else : # if windows system
# The code is run on wsl into an environment 'shapeaxi'
self.conda_wsl = CondaSetUpCallWsl()

Should I proceed to fix this issue by submitting a PR?

Properly include `seg_code` folder in the output

There is nothing in any of the CMake to actually bring the seg_code folder into Slicer. Thus, when I try to run I get

image

When the extension is actually being installed into / built into Slicer, the source repo won't be there. I don't know exactly how you were adding the extension to slicer, via the Extension Wizard or what, but I think it allowed your sys.path shenanigans to work.

When actually installed closer to how it would be from the extension manager, it can't find the code.

I will fix this and put out PR. There is not a clean slicer way to do this, but we can add some CMake that makes it work.

Documentation updates

  • In help, separate the different options into different lines. If I am looking for "Number of views" to see what it does, it is hard to find since it is halfway through some paragraph
  • In README, same as above, separate the different options into different lines.
  • In help say something about clicking the Advanced->Install/Check dependencies button the first time through
  • In README say something about clicking the Advanced->Install/Check dependencies button the first time through

Cannot run without CUDA

It would be good to be able to run without CUDA. I got the following error:

CLI execution failed: 
 
CrownSegmentationcli standard error:

Traceback (most recent call last):
  File "/data/Projects-build/salt-general/SlicerJawSegmentation-build/lib/SlicerSALT-5.1/cli-modules/CrownSegmentationcli.py", line 297, in <module>
    main(sys.argv[1], sys.argv[2], int(sys.argv[3]), int(sys.argv[4]), sys.argv[5],sys.argv[6], sys.argv[7], sys.argv[8])
  File "/data/Projects-build/salt-general/SlicerJawSegmentation-build/lib/SlicerSALT-5.1/cli-modules/CrownSegmentationcli.py", line 145, in main
    model.load_state_dict(torch.load(unet_model))
  File "/home/connor/Projects-build/salt-general/build-5-2/python-install/lib/python3.9/site-packages/torch/serialization.py", line 712, in load
    return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
  File "/home/connor/Projects-build/salt-general/build-5-2/python-install/lib/python3.9/site-packages/torch/serialization.py", line 1046, in _load
    result = unpickler.load()
  File "/home/connor/Projects-build/salt-general/build-5-2/python-install/lib/python3.9/site-packages/torch/serialization.py", line 1016, in persistent_load
    load_tensor(dtype, nbytes, key, _maybe_decode_ascii(location))
  File "/home/connor/Projects-build/salt-general/build-5-2/python-install/lib/python3.9/site-packages/torch/serialization.py", line 1001, in load_tensor
    wrap_storage=restore_location(storage, location),
  File "/home/connor/Projects-build/salt-general/build-5-2/python-install/lib/python3.9/site-packages/torch/serialization.py", line 176, in default_restore_location
    result = fn(storage, location)
  File "/home/connor/Projects-build/salt-general/build-5-2/python-install/lib/python3.9/site-packages/torch/serialization.py", line 152, in _cuda_deserialize
    device = validate_cuda_device(location)
  File "/home/connor/Projects-build/salt-general/build-5-2/python-install/lib/python3.9/site-packages/torch/serialization.py", line 136, in validate_cuda_device
    raise RuntimeError('Attempting to deserialize object on a CUDA '
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.

Create tutorial

As part of SlicerSALT, create a google slides tutorial for using the module. As examples, see the following:

SRep: https://bit.ly/3sTEG3H
Groups: https://bit.ly/2WsFiun
SPHARM-PD Generator: https://bit.ly/2Fyn97v

For the install from extension manager slides, use the SRep as basis, since it is up to date with the newer Slicer look.

For now, focus on getting the content of the tutorial (words, screenshots, etc). @bpaniagua will work on getting a google slides template.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.