Git Product home page Git Product logo

slicer-abltemporalbonesegmentation's Introduction

ABL Temporal Bone Segmentation Module

Developed by HML & SKA Auditory Medical Biophysics Lab at Western University, London, ON, CA

About

This 3D Slicer module handles spacing resampling, fiducial registration, rigid registration, and inference of the major structures of CT temporal bone scans. Inference is done using ABL's Temporal Bone Segmentation Network.

Also included is a module for batch registration of temporal bone scans.

Dependencies

This module requires the SlicerElastix module to be installed in 3D Slicer.

This module also requires either a functional ABLInfer Server or a local Docker instance. Specific system requirements for running the network may be found on the Temporal Bone Segmentation Network page.

Screenshot

Screenshot

Basic Tutorial

  1. Load the CT scan into 3D Slicer and navigate to the "ABL Temporal Bone Segmentation Module"
    • If desired, the CBCTDentalSurgery sample data set should provide enough of a scan to work with
  2. Choose the volume to segment and which side of the head the scan is of Choose volume
  3. Align and register the image using fiducial selection; select at least three points and locate them on your CT scan Fiducal registration
  4. Run automated rigid registration Rigid registration
  5. Finalize the transformation and choose the region of interest (ROI) before segmentation Finalize
  6. Run the inference, either on a remote ABLInfer server or using a local Docker instance Remote Docker
  7. Display and manipulate the result Render

slicer-abltemporalbonesegmentation's People

Contributors

ben-connors avatar e-simpson avatar jamesobutler avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

slicer-abltemporalbonesegmentation's Issues

Bundling python package causes problems on the extension package server

Many users have reported that SlicerJupyter extension is missing in the extension manager. We investigated the problem and it turned out that it is caused by this ABLTemporalBoneSegmentation extension somehow installing ipython (probably indirectly, through dependencies). Our Python packaging expert @jcfr will not be available for a few more weeks, so we cannot do any deeper analysis of the problem right now.

To make both SlicerJupyter and ABLTemporalBoneSegmentaiton extensions available, let's try the following: update your extension so that it does not bundle ablinfer package (do not even make the extension use SuperBuild) but instead make it install ablinfer the first time the module is launched, similarly to how this extension installs the "mosek" package: https://github.com/ToothAndClaw/SlicerAuto3dgm/blob/master/Auto3dgm/Auto3dgm.py#L72-L77

Can i Dataset and code of PWD-3DNet

Hello, I'm very interested in your PWD-3DNet article. At the same time, we are also engaged in temporal bone segmentation. We published 3DDSD Net before, and recently read your article. Can I apply for a copy of your Dataset and the code in the paper

Unable to set up and run inference

Can instructions be provided on how to set up docker integrated with 3D-slicer to run inference? This is not clear on the instructions. Have tried extensively to figure this out with no joy

Update modules to use markups instead of annotations

Annotations module, which provides vtkMRMLAnnotationROI and vtkMRMLAnnotationRuler nodes have been deprecated since April 2021 and will be removed in Slicer-5.4 stable version early next year.
Since some modules in this extension use annotation nodes, these modules need to be updated to use markups nodes before the end of this year.

This section of the migration guide should help with implementing the changes and any questions can be asked at the Remove Annotations module topic in the Slicer forum.

Impacted module: ABLTemporalBoneSegmentationModule\ABLTemporalBoneSegmentationModule.py

Package size too large

The extension package size is over 150MB due to bundling two huge data files:

Resources/Atlases/Atlas_L.mha
Resources/Atlases/Atlas_R.mha

This causes huge unnecessary storage burden (new package is created on 3 platforms for preview and stable release, resulting in almost 1GB extra storage increase per day). Please update the ABLTemporalBoneSegmentationModule so that it downloads the atlas files at runtime. You can find here examples about how to load an image from a URL: https://www.slicer.org/wiki/Documentation/Nightly/ScriptRepository#Load_volume_from_URL. The downloaded data is cached and shared between all Slicer installations of the user.

Error: Command 'elastix' returned non-zero exit status 1.

I am writing about the same issue because I am still unable to use this extension. Any easy way. help me as not a coding expert but am a physician; I want to segment temporal bone for medical research, .even after multiple trials, not moving beyond
step 2
It would be great if somebody created a video for this issue.

itk::ExceptionObject (0x7fdbb6707300)
Location: "ElastixTemplate - Run()"
File: /Volumes/D/S/S-0-E-b/SlicerElastix-build/elastix/Common/CostFunctions/itkAdvancedImageToImageMetric.hxx
Line: 916
Description: ITK ERROR: AdvancedMattesMutualInformationMetric(0x7fdbb701aa00): Too many samples map outside moving image buffer: 48 / 1117

Error occurred during actual registration.

Errors occurred!
Error: Command 'elastix' returned non-zero exit status 1.

ddd

Error during rigid registration

itk::ExceptionObject (0x3fc43a0)
itk::ExceptionObject (0x3fc43a0)
Location: "ElastixTemplate - Run()"
Location: "ElastixTemplate - Run()"
File: /work/Stable/S-4102-E-b/SlicerElastix-build/elastix/Common/CostFunctions/itkAdvancedImageToImageMetric.hxx
File: /work/Stable/S-4102-E-b/SlicerElastix-build/elastix/Common/CostFunctions/itkAdvancedImageToImageMetric.hxx
Line: 1030
Line: 1030
Description: itk::ERROR: AdvancedMattesMutualInformationMetric(0x3e43180): Too many samples map outside moving image buffer: 24976 / 131072
Description: itk::ERROR: AdvancedMattesMutualInformationMetric(0x3e43180): Too many samples map outside moving image buffer: 24976 / 131072

Error occurred during actual registration.
Error occurred during actual registration.

Errors occurred!
Errors occurred!
Error: Command 'elastix' returned non-zero exit status 1

Error With Step 2 of Registration.

Hello,

I am excited to try out this module. I love the method and the work that the lab has done. I recently downloaded the slicer extension and am having an error on step2 of the rigid registration. I have copied the error message below:

"""
itkAdvancedImageToImageMetric.hxx
File: D:\D\S\S-1-E-b\SlicerElastix-build\elastix\Common\CostFunctions\itkAdvancedImageToImageMetric.hxx
Line: 969
Line: 969
Description: itk::ERROR: itk::ERROR: AdvancedMattesMutualInformationMetric(0000025C5EC9B2E0): Too many samples map outside moving image buffer: 0 / 1119
Description: itk::ERROR: itk::ERROR: AdvancedMattesMutualInformationMetric(0000025C5EC9B2E0): Too many samples map outside moving image buffer: 0 / 1119

Error occurred during actual registration.
Error occurred during actual registration.

Errors occurred!
Errors occurred!
Error: Command 'elastix' returned non-zero exit status 1.
Traceback (most recent call last):
File "C:/Users/anand/AppData/Local/NA-MIC/Slicer 4.11.20210226/NA-MIC/Extensions-29738/ABLTemporalBoneSegmentation/lib/Slicer-4.11/qt-scripted-modules/ABLTemporalBoneSegmentationModule.py", line 635, in process_transform
output = function()
File "C:/Users/anand/AppData/Local/NA-MIC/Slicer 4.11.20210226/NA-MIC/Extensions-29738/ABLTemporalBoneSegmentation/lib/Slicer-4.11/qt-scripted-modules/ABLTemporalBoneSegmentationModule.py", line 812, in transform
log_callback=self.update_rigid_progress)
File "C:/Users/anand/AppData/Local/NA-MIC/Slicer 4.11.20210226/NA-MIC/Extensions-29738/ABLTemporalBoneSegmentation/lib/Slicer-4.11/qt-scripted-modules/ABLTemporalBoneSegmentationModule.py", line 1318, in apply_elastix_rigid_registration
movingVolumeMaskNode=mask_node
File "C:\Users\anand\AppData\Local\NA-MIC\Slicer 4.11.20210226\NA-MIC\Extensions-29738\SlicerElastix\lib\Slicer-4.11\qt-scripted-modules\Elastix.py", line 807, in registerVolumes
self.logProcessOutput(ep)
File "C:\Users\anand\AppData\Local\NA-MIC\Slicer 4.11.20210226\NA-MIC\Extensions-29738\SlicerElastix\lib\Slicer-4.11\qt-scripted-modules\Elastix.py", line 728, in logProcessOutput


Reloading module: ABLTemporalBoneSegmentationModule

raise subprocess.CalledProcessError(return_code, "elastix")

subprocess.CalledProcessError: Command 'elastix' returned non-zero exit status 1.
"""

I have placed 3 of the anatomical fiducials at step1. Then I have tried "Apply" on Step 1. The "apply" registration in step1 seems to transform the moving image out of the field of view. ( see attached image)
image

Please advise for next steps. Thank you for your time.

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.