introducing cavass

35
Introducing Introducing CAVASS CAVASS George Grevera George Grevera a,b a,b , Jayaram Udupa , Jayaram Udupa b , Dewey Odhner , Dewey Odhner b , Ying , Ying Zhuge Zhuge b , Andre Souza , Andre Souza b , Tad Iwanaga , Tad Iwanaga b , and Shipra Mishra , and Shipra Mishra b a Department 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 19131 Philadelphia, PA 19131 b Medical Image Processing Group (MIPG), Department of Medical Image Processing Group (MIPG), Department of Radiology, University of Pennsylvania, 423 Guardian Radiology, University of Pennsylvania, 423 Guardian Drive, 4th Floor Blockley Hall, Philadelphia, PA Drive, 4th Floor Blockley Hall, Philadelphia, PA 19104-6021 19104-6021

Upload: acton-cummings

Post on 31-Dec-2015

21 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Introducing CAVASS

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

Page 2: Introducing CAVASS

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

Page 3: Introducing CAVASS

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

Page 4: Introducing CAVASS

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?

Page 5: Introducing 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.

Page 6: Introducing CAVASS

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.

Page 7: Introducing CAVASS

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

Page 8: Introducing CAVASS

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.

Page 9: Introducing CAVASS

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

Page 10: Introducing CAVASS

CAVASSCAVASS

PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze

ImportImport ExportExport SaveScreenSaveScreen

DICOMDICOM

EasyHeaderEasyHeader

VTKVTK

MatlabMatlab

DICOMDICOM

VTKVTK

STLSTL

PGMPGM

MatlabMatlab

Page 11: Introducing CAVASS

An example of the CAVASS An example of the CAVASS DICOM header explorerDICOM header explorer

Page 12: Introducing CAVASS

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

Page 13: Introducing CAVASS

CAVASSCAVASS

PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze

InterfaceInterfaceto ITKto ITK ScriptingScripting ShowScreenShowScreen

Page 14: Introducing CAVASS

CAVASSCAVASS

PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze

SceneSceneOperationsOperations

StructureStructureOperationsOperations

VOIVOI

InterpolateInterpolate

FilterFilter

ClassifyClassify

SegmentSegment

SurfaceSurfaceNormalsNormals

MergeMergeStructuresStructures

To SceneTo Scene

To StructureTo Structure

RegistrationRegistration

AlgebraAlgebra

Page 15: Introducing CAVASS

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

Page 16: Introducing CAVASS

CAVASSCAVASS

PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze

SliceSlice SurfaceSurface VolumeVolume

MontageMontage

CycleCycle

ResliceReslice

OverlayOverlay

ViewView

MeasureMeasure

CreateMovieCreateMovie

ViewView

MeasureMeasure

CreateMovieCreateMovie

Page 17: Introducing CAVASS

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.

Page 18: Introducing CAVASS

Another example of overlaid slice Another example of overlaid slice display in CAVASS.display in CAVASS.

Page 19: Introducing 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)

Page 20: Introducing CAVASS

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

Page 21: Introducing CAVASS

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.

Page 22: Introducing CAVASS

Head mounted display Head mounted display employed by CAVASS for stereo employed by CAVASS for stereo

viewing.viewing.

Page 23: Introducing CAVASS

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.

Page 24: Introducing CAVASS

CAVASSCAVASS

PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualizeManipulateManipulate AnalyzeAnalyze

SelectSelectSliceSlice MeasureMeasure ReflectReflect CutCut MoveMove CreateCreate

MovieMovie

Page 25: Introducing CAVASS

CAVASSCAVASS

PortDataPortData ToolsTools ImageImageProcessingProcessing VisualizeVisualize ManipulateManipulate AnalyzeAnalyze

SceneScene StructureStructure

DensityDensityProfileProfile

ROIROI

KinematicsKinematics

Page 26: Introducing CAVASS

Experimental resultsExperimental results

Page 27: Introducing CAVASS

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

Page 28: Introducing CAVASS

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

Page 29: Introducing CAVASS

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)

Page 30: Introducing CAVASS

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.

Page 31: Introducing CAVASS

ParallelismParallelism

►Considered:Considered:

MPI/OpenMPIMPI/OpenMPI►Message Passing InterfaceMessage Passing Interface

OpenMPOpenMP►Open specifications for Multi ProcessingOpen specifications for Multi Processing

Page 32: Introducing CAVASS

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

Page 33: Introducing CAVASS

Parallelism recommendationParallelism recommendation

►CAVASS CAVASS uses MPI.uses MPI.

YOU ALREADY

Page 34: Introducing CAVASS

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.

Page 35: Introducing CAVASS

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