introducing cavass
DESCRIPTION
Introducing CAVASS. George Grevera a,b , Jayaram Udupa b , Dewey Odhner b , Ying Zhuge b , Andre Souza b , Tad Iwanaga b , and Shipra Mishra b a Department of Mathematics and Computer Science, Saint Joseph’s University, 5600 City Avenue, Philadelphia, PA 19131 - PowerPoint PPT PresentationTRANSCRIPT
IntroducingIntroducingCAVASSCAVASS
George GreveraGeorge Greveraa,ba,b, Jayaram Udupa, Jayaram Udupabb, Dewey Odhner, Dewey Odhnerbb, , Ying ZhugeYing Zhugebb, Andre Souza, Andre Souzabb, Tad Iwanaga, Tad Iwanagabb, and Shipra , and Shipra
MishraMishrabb
aaDepartment of Mathematics and Computer Science, Department of Mathematics and Computer Science, Saint Joseph’s University, 5600 City Avenue, Saint Joseph’s University, 5600 City Avenue,
Philadelphia, PA 19131Philadelphia, PA 19131
bbMedical Image Processing Group (MIPG), Department Medical Image Processing Group (MIPG), Department of Radiology, University of Pennsylvania, 423 Guardian of Radiology, University of Pennsylvania, 423 Guardian Drive, 4th Floor Blockley Hall, Philadelphia, PA 19104-Drive, 4th Floor Blockley Hall, Philadelphia, PA 19104-
60216021
What is CAVASS?What is CAVASS?
►A CAVA Software SystemA CAVA Software System
►What is CAVA?What is CAVA? Computer Assisted Visualization and Computer Assisted Visualization and
AnalysisAnalysis
►So CAVASS is a Computer Assisted So CAVASS is a Computer Assisted Visualization and Analysis Software Visualization and Analysis Software SystemSystem
3D CAVA Software Systems 3D CAVA Software Systems (MIPG)(MIPG)
DISPLAYDISPLAY mini computer + frame buffermini computer + frame buffer19801980
DISPLAY82DISPLAY82 mini computer + frame buffermini computer + frame buffer19821982
3D833D83 GE CT/T 8800GE CT/T 8800 198319833D983D98 GE CT/T 9800GE CT/T 9800 198619863DPC3DPC PC-basedPC-based 198919893DVIEWNIX3DVIEWNIX Unix, X-WindowsUnix, X-Windows 19931993
CAVASSCAVASSplatform independent, wxWidgetsplatform independent, wxWidgets 20072007
What is CAVASS?What is CAVASS?
► Next generation of 3DVIEWNIX.Next generation of 3DVIEWNIX. development started in 1987development started in 1987 released in 1993released in 1993 development dates back to the ’70sdevelopment dates back to the ’70s freefree runs on Unix and subsequently Linuxruns on Unix and subsequently Linux 60 person years of effort60 person years of effort distributed to 100s of sitesdistributed to 100s of sites basis for over 15 specialized packages/appsbasis for over 15 specialized packages/apps
Why CAVASS?Why CAVASS?
Significant, more recent Significant, more recent developmentsdevelopments
1.1. PC platform matures.PC platform matures. price spirals downwardprice spirals downward performance increases dramaticallyperformance increases dramatically supplant Unix as the scientific workstation of supplant Unix as the scientific workstation of
choicechoice
2.2. Network bandwidth greatly increases.Network bandwidth greatly increases.3.3. Useable parallel processing standards are Useable parallel processing standards are
defined and become freely available.defined and become freely available.4.4. Toolkits such as VTK and ITK become freely Toolkits such as VTK and ITK become freely
available.available.5.5. GUI concept matures and platform GUI concept matures and platform
independent libraries are developed.independent libraries are developed.
CAVASS featuresCAVASS features
► Image processingImage processing for enhancing information about and defining an for enhancing information about and defining an
object systemobject system► VisualizationVisualization
for viewing and comprehending an object systemfor viewing and comprehending an object system►ManipulationManipulation
for altering an object system (virtual surgery)for altering an object system (virtual surgery)► AnalysisAnalysis
for quantifying information about an object for quantifying information about an object systemsystem
*Especially for large, multidimensional (at *Especially for large, multidimensional (at least 3D), possibly multimodality, data sets.least 3D), possibly multimodality, data sets.
CAVA User GroupsCAVA User Groups
UG1 – CAVA basic researchers/technology UG1 – CAVA basic researchers/technology developersdevelopers
UG2 – CAVA application developersUG2 – CAVA application developers
UG3 – Users of CAVA methods in clinical researchUG3 – Users of CAVA methods in clinical research
CAVASS is not aimed at:CAVASS is not aimed at:
UG4 – Clinical end users in patient careUG4 – Clinical end users in patient care
Key CAVASS featuresKey CAVASS features
►Built upon our experience with Built upon our experience with 3DVIEWNIX.3DVIEWNIX.
►Leverages the existing 3DVIEWNIX Leverages the existing 3DVIEWNIX software base and user interface.software base and user interface.
►Port to Windows and Mac OS with Port to Windows and Mac OS with continued support for Unix and Linux.continued support for Unix and Linux.
► Implement parallel algorithms for time Implement parallel algorithms for time consuming operations.consuming operations.
►Support for stereo rendering.Support for stereo rendering.► Interface to ITK.Interface to ITK.
Focus of the talkFocus of the talk
►Overview of CAVASS softwareOverview of CAVASS software
►Other CAVASS related papers in Other CAVASS related papers in Visualization Conference:Visualization Conference:
6509-66 Image Processing Aspects6509-66 Image Processing Aspects
6509-03 in Visualization Conference6509-03 in Visualization Conference
CAVASSCAVASS
PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze
ImportImport ExportExport SaveScreenSaveScreen
DICOMDICOM
EasyHeaderEasyHeader
VTKVTK
MatlabMatlab
DICOMDICOM
VTKVTK
STLSTL
PGMPGM
MatlabMatlab
An example of the CAVASS An example of the CAVASS DICOM header explorerDICOM header explorer
DICOM SupportDICOM Support
►Don’t reinvent the wheel for DICOM Don’t reinvent the wheel for DICOM networking/image query and retrieve networking/image query and retrieve capabilitycapability
► Integrate with commonly available DICOM Integrate with commonly available DICOM networking softwarenetworking software SimpleDICOM receiverSimpleDICOM receiver
► from the University of Pittsburg Department of Radiologyfrom the University of Pittsburg Department of Radiology►Windows platform onlyWindows platform only
Conquest DICOM serverConquest DICOM server►Windows and Linux with source codeWindows and Linux with source code
eFilm workstation packageeFilm workstation package► includes a DICOM server (version 1.5.3 was the last free includes a DICOM server (version 1.5.3 was the last free
version)version) DCMTKDCMTK
► freely available for Linux, Unix, and Windows with source freely available for Linux, Unix, and Windows with source codecode
CAVASSCAVASS
PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze
InterfaceInterfaceto ITKto ITK ScriptingScripting ShowScreenShowScreen
CAVASSCAVASS
PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze
SceneSceneOperationsOperations
StructureStructureOperationsOperations
VOIVOI
InterpolateInterpolate
FilterFilter
ClassifyClassify
SegmentSegment
SurfaceSurfaceNormalsNormals
MergeMergeStructuresStructures
To SceneTo Scene
To StructureTo Structure
RegistrationRegistration
AlgebraAlgebra
Visualization and CAVASSVisualization and CAVASS
►All of the most popular modes of All of the most popular modes of visualization are incorporated into visualization are incorporated into CAVASS.CAVASS. various 2D slice modesvarious 2D slice modes reslicingreslicing MIPMIP surface renderingsurface rendering volume renderingvolume rendering animationanimation
CAVASSCAVASS
PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze
SliceSlice SurfaceSurface VolumeVolume
MontageMontage
CycleCycle
ResliceReslice
OverlayOverlay
ViewView
MeasureMeasure
CreateMovieCreateMovie
ViewView
MeasureMeasure
CreateMovieCreateMovie
An example of overlaid slice display An example of overlaid slice display in CAVASS on the Windows in CAVASS on the Windows
operating system.operating system.
Another example of overlaid slice Another example of overlaid slice display in CAVASS.display in CAVASS.
3D rendering in CAVASS3D rendering in CAVASS
►Surface renderingSurface rendering utilizes digital shell and triangulated shell utilizes digital shell and triangulated shell
(t-shell) rendering algorithms(t-shell) rendering algorithms operates 6 to 30 times faster entirely in operates 6 to 30 times faster entirely in
software than hardware-based renderingsoftware than hardware-based rendering implemented only in sequential and not implemented only in sequential and not
parallel mode (because of their existing parallel mode (because of their existing high speed)high speed)
3D rendering in CAVASS3D rendering in CAVASS
►Volume renderingVolume rendering based on shell renderingbased on shell rendering implemented in parallel modeimplemented in parallel mode compared to the implementation in VTKcompared to the implementation in VTK CAVASS operates at least as fast as VTK CAVASS operates at least as fast as VTK
and often achieves superior performance and often achieves superior performance by a factor of 1.5 to 5by a factor of 1.5 to 5
Examples of triangulated shell Examples of triangulated shell (t-shell) rendering in CAVASS on (t-shell) rendering in CAVASS on the Windows operating system.the Windows operating system.
Head mounted display Head mounted display employed by CAVASS for stereo employed by CAVASS for stereo
viewing.viewing.
Portable graphics user Portable graphics user interfaceinterface
►Considered Qt, wxWidgets (formerly Considered Qt, wxWidgets (formerly wxWindows), and FLTK.wxWindows), and FLTK. Qt – proprietary, closed, feesQt – proprietary, closed, fees FLTK – free but doesn’t maintain native FLTK – free but doesn’t maintain native
look-and-feellook-and-feel wxWidgetswxWidgets
►one C++ API for all OS’sone C++ API for all OS’s►maintains native look-and-feelmaintains native look-and-feel►free, open source, multiplatformfree, open source, multiplatform►portable support for threads, copy-paste, drag-portable support for threads, copy-paste, drag-
and-drop, print, etc.and-drop, print, etc.
CAVASSCAVASS
PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualizeManipulateManipulate AnalyzeAnalyze
SelectSelectSliceSlice MeasureMeasure ReflectReflect CutCut MoveMove CreateCreate
MovieMovie
CAVASSCAVASS
PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze
SceneScene StructureStructure
DensityDensityProfileProfile
ROIROI
KinematicsKinematics
Experimental resultsExperimental results
Description of datasets of Description of datasets of varying sizes used in the varying sizes used in the
comparisons.comparisons.
dataset name image size voxel size data size
regular 256 x 256 x 46 0.98 x 0.98 x 3.00 mm 6 MB
large 512 x 512 x 459 0.68 x 0.68 x 1.50 mm 241 MB
super 1023 x 1023 x 417 0.24 x 0.24 x 0.50 mm 873 MB
Surface rendering timing comparison for Surface rendering timing comparison for CAVASS shell rendering (sequential CAVASS shell rendering (sequential
implementation with and without antialiasing) implementation with and without antialiasing) and surface rendering as implemented in VTK.and surface rendering as implemented in VTK.
dataset name CAVASS seq/no aa CAVASS seq/aa VTK
regular 0.03 0.06 0.29
large 0.11 0.19 0.41
super 0.16 0.26 1.38
*all times in seconds
Volume rendering timing comparison for Volume rendering timing comparison for sequential and parallel implementations of sequential and parallel implementations of CAVASS volume rendering, VTK ray casting, CAVASS volume rendering, VTK ray casting,
and VTK 2D texture mapped volume and VTK 2D texture mapped volume rendering.rendering.
dataset name sequential parallel ray casting 2D texture
regular 0.56 0.06 1.09 1.20
large 3.53 1.36 5.03 18.32
super 9.77 3.66 6.94 >240.00
*all times in seconds
CAVASS (software) VTK (hardware)
Time required for interpolation from Time required for interpolation from anisotropic to isotropic data for various anisotropic to isotropic data for various
dataset sizes and CAVASS and ITK dataset sizes and CAVASS and ITK implementations.implementations.
dataset name CAVASS sequential CAVASS parallel ITK sequential ITK multithreaded
regular 0.6s 1.0s 2.9s 1.7s
large 54.9s 14.9s 87.7s 62.8s
super 139.1s 49.2s failed after 315.0s failed after 186.9s
*all times in seconds
Multithreaded ITK employed a dual processor Multithreaded ITK employed a dual processor system and parallel CAVASS employed two system and parallel CAVASS employed two single processor systems to afford a similar single processor systems to afford a similar
comparison.comparison.
ParallelismParallelism
►Considered:Considered:
MPI/OpenMPIMPI/OpenMPI►Message Passing InterfaceMessage Passing Interface
OpenMPOpenMP►Open specifications for Multi ProcessingOpen specifications for Multi Processing
ParallelismParallelism
►MPIMPI free (for both Windows, Linux, and Unix)free (for both Windows, Linux, and Unix) part of base Linux installpart of base Linux install COW (cluster of workstations model)COW (cluster of workstations model) leverages existing hardware/computersleverages existing hardware/computers optional, inexpensive network upgradeoptional, inexpensive network upgrade easily expandableeasily expandable
►OpenMPOpenMP requires purchase of specialized compilersrequires purchase of specialized compilers ““multi-threaded, shared memory parallelism” modelmulti-threaded, shared memory parallelism” model requires purchase of expensive multiprocessor requires purchase of expensive multiprocessor
systemssystems
Parallelism recommendationParallelism recommendation
►CAVASS CAVASS uses MPI.uses MPI.
YOU ALREADY
Thanks for your attention!Thanks for your attention!
► Information about CAVASS is available Information about CAVASS is available from www.mipg.upenn.edu/~cavass.from www.mipg.upenn.edu/~cavass.
►Release date: July/August 2007.Release date: July/August 2007.►The authors gratefully acknowledge The authors gratefully acknowledge
NIH grant number R01-EB004395-01 NIH grant number R01-EB004395-01 for support of this work.for support of this work.
Other CAVASS related Other CAVASS related presentationspresentations
► In Visualization Conference:In Visualization Conference:
6509-66 Image Processing Aspects6509-66 Image Processing Aspects
6509-03 Visualization Aspects6509-03 Visualization Aspects
See See www.mipg.upenn.edu/~cavasswww.mipg.upenn.edu/~cavass