Top Banner
CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.
57

CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Dec 22, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

CAVASS(a Computer Assisted Visualization and Analysis Software System)

Features and Developments

George J. Grevera, Ph.D.

Page 2: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

CAVASS contributors

• Xinjian Chen• George Grevera• Tad Iwanaga• Tingching Kao• Shipra Mishra

• Dewey Odhner• Andre Souza• Jayaram Udupa• Xiaofen Zheng• Ying Zhuge

Page 3: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Talk outline

• Introduction• User interface• Key features• Miscellaneous topics• Concluding remarks

Page 4: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

INTRODUCTION TO CAVASS

Page 5: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

What is CAVASS?

• A CAVA Software System

• What is CAVA?– Computer Assisted Visualization and Analysis

• So CAVASS is a Computer Assisted Visualization and Analysis Software System

Page 6: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

3D CAVA Software Systems (MIPG)

DISPLAY mini computer + frame buffer 1980DISPLAY82 mini computer + frame buffer 19823D83 GE CT/T 8800 19833D98 GE CT/T 9800 19863DPC PC-based 19893DVIEWNIX Unix, X-Windows 1993

CAVASS platform independent, wxWidgets 2008

Page 7: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

What is CAVASS?

• CAVASS is the next generation of 3DVIEWNIX.• 3DVIEWNIX

– development started in 1987– released in 1993– development dates back to the ’70s– free– runs on Unix and subsequently Linux– 60 person years of effort– distributed to 100s of sites– basis for over 15 specialized packages/apps

Why CAVASS?

Page 8: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Significant, more recent developments

1. PC platform matures.– price spirals downward– performance increases dramatically– supplant Unix as the scientific workstation of choice

2. Network bandwidth greatly increases.3. Useable parallel processing standards are defined and

become freely available.4. Toolkits such as VTK and ITK become freely available.5. GUI concept matures and platform independent

libraries are developed.

Page 9: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

CAVASS features*• Image processing

– for enhancing information about and defining an object system

• Visualization– for viewing and comprehending an object system

• Manipulation– for altering an object system (virtual surgery)

• Analysis– for quantifying information about an object system

• CAVA operations take object system information from one space to another (typically, and eventually, to a quantitative space).

*Especially for large, multidimensional (at least 3D), possibly multimodality, data sets.

Page 10: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

CAVA User Groups

UG1 – CAVA basic researchers/technology developers

UG2 – CAVA application developers

UG3 – Users of CAVA methods in clinical research

CAVASS is not aimed at:

UG4 – Clinical end users in patient care

Page 11: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Key CAVASS features

• Built upon our experience with 3DVIEWNIX.• Leverages the existing 3DVIEWNIX software

base and user interface.• Port to Windows and Mac OS with continued

support for Unix and Linux.• Implement parallel algorithms for time

consuming operations.• Support for stereo rendering.• Interface to ITK.

Page 12: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

CAVASS USER INTERFACE

Page 13: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Portable graphics user interface

• Based on wxWidgets (wxwidgets.org)

– one C++ API for all OS’s

– maintains native look-and-feel

– free, open source, multiplatform

– portable support for mutex, threads, copy-paste, drag-and-drop, print, etc.

Page 14: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Portable graphics user interface

• We also considered Qt, Java, and FLTK.

– Qt – proprietary, closed, fees

– Java – performance concerns, doesn’t leverage existing C/C++ code, parallelism (MPI) lacking

– FLTK – free but doesn’t maintain native look-and-feel

Page 15: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

User interface example: Montage

Page 16: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

• Standard-style menu bar.• Window size can be changed.• Support for multiple windows.• Copy window contents to clipboard.• Print window contents.

User interface features

Page 17: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Standardized user interface

• Frame = CAVASS window

Page 18: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Standardized user interface

• Canvas = upper drawing area

Page 19: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Standardized user interface

• Control area– appears towards bottom– can be resized or even removed– buttons appear towards the right and are

relatively standardized; other controls (such as sliders) appear towards the left as necessary

Page 20: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Standardized user interface

• Bar at bottom contains status and mouse button information.

Page 21: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

User preferences

Page 22: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

KEY CAVASS FEATURES

Page 23: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Overview of CAVASS functionality

P o r tD a ta T oo ls Im ag eP ro ce ssing V isua lize M an ip u la te A na lyze

C A V A S S

Page 24: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Data interface

Input Im port

Export SaveScreen

PortData T oo ls Im ag eP ro ce ssing V isua lize M an ip u la te A na lyze

CAVASS

Support for standard image formats such as DICOM, VTK, Matlab, STL (Stereo Lithography), TIFF, and JPEG.

CAVASS also supports the extended DICOM format that was proposed and supported by 3DVIEWNIX.

Page 25: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

An example of the CAVASS DICOM header explorer

Page 26: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Tools

P o r tD a ta

T utorials T asks

Recipes IT K Filters

Show Screen

T ools Im ag eP ro ce ssing V isua lize M an ip u la te A na lyze

CAVASS

Page 27: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Tools

• Tutorials

• Recipes and Tasks

• ShowScreen

Page 28: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Interface to ITK

• ITK– Extensive C++ image processing library.– Provides no user interface.

• CAVASS – ITK interface– Optionally provide ITK with a user interface.– Added code to ITK to enable it to read and write

CAVASS files.

Page 29: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Interface to ITK

• CAVASS – ITK interface

– Completely table driven.

– Steps:• Display a slice• Allow user to set parameters.• Run ITK program.• Read and display result.

Page 30: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Interface to ITK

Page 31: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Image processing

P o r tD a ta T oo ls

VOI Interpolate

Filter Segment

Classify Algebra

Register

SceneOperations

SurfaceNorm al M ergeStructures

ToStructure ToScene

StructureOperations

Im ageProcessing V isua lize M an ip u la te A na lyze

CAVASS

Page 32: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Image processing example: interpolation

Page 33: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Image processing example: threshold

Page 34: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Image processing example: iterative live wire

Page 35: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Image processing example: registration

Page 36: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Visualize

P o r tD a ta T oo ls Im ag eP ro ce ssing

M ontage Cycle

Reslice O verlay

Slice

View M easure

CreateMovie

Surface

View M easure

CreateMovie

Volume

Visualize M an ip u la te A na ly ze

CAVASS

Page 37: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Visualize example: Montage

Page 38: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Visualize example: overlay

Page 39: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Visualize example: t-shell surface rendering

Page 40: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Manipulate

P o r tD a ta T oo ls Im ag eP ro ce ssing V isua lize

SelectSlice M easure

Reflect Cut

Separate M ove

CreateMovie

M anipulate A na lyze

CAVASS

Page 41: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Event handing for visualization and manipulation

• wxWidgets supports and implements the Windows-style event callback mechanism.– Very efficient and fine for most user interaction.

• X-Windows supports and implements the event queue mechanism.– Most flexible for intensive user interaction w/

possible delays due to computation time (e.g., rendering).

Page 42: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Event handing for visualization and manipulation

• We implemented an X-Windows style event queue w/in CAVASS using only the wxWidgets callback mechanism:1. Create a separate thread of execution that responds

to events in an event queue (of our own creation); performs compute intensive tasks; runs at a lower priority.

2. The main thread continues to respond to events via the callback mechanism; “intelligently” queues the events for execution by the other thread; runs at a higher priority.

Page 43: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Analyze

P o r tD a ta T oo ls Im ag eP ro ce ssing V isua lize M an ip u la te

DensityProfile RO I

Scene

Register Static Kinematics

Structure

Analyze

CAVASS

Page 44: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Analyze example: density profile

Page 45: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

MISCELLANEOUS TOPICSTesting, Parallelism, Getting Started

Page 46: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

TestingTest data sets:

1. Regular: 256 x 256 x 46 MR brain image 6 MB

2. Large: 512 x 512 x 459 CT of thorax 241 MB

3. Super: 1023 x 1023 x 417 CT of VW head 873 MB

Page 47: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Parallelism

• Considered:

– MPI/OpenMPI• Message Passing Interface

– OpenMP• Open specifications for Multi Processing

Page 48: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Parallelism

• MPI– free (for both Windows, Linux, and Unix)– part of base Linux install– COW (cluster of workstations model)– leverages existing hardware/computers– optional, inexpensive network upgrade– easily expandable

• OpenMP– requires purchase of specialized compilers– “multi-threaded, shared memory parallelism” model– requires purchase of expensive multiprocessor systems

Page 49: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Parallelization of Operations in CAVASS

• Divide the input image into chunks and assign each chunk to a processor.

• A chunk represents data contained in a contiguous set of slices, either image or object structure data.

Page 50: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Parallelization of Operations in CAVASS

• CAVA operations can be divided into the following three groups.– Type 1: Operation chunk-by-chunk, each chunk accessed

only once.• Ex: slice interpolation.

– Type 2: As in Type 1, but significant further operation needed to combine results.

• Ex: 3D rendering.

– Type 3: Operation chunk-by-chunk, but each chunk may have to be accessed more than once.

• Ex: graph traversal.

• CAVASS parallelizes all three groups of operations when necessary.

Page 51: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Getting started with CAVASS

• As a user:– Tutorials– Tasks and Recipes

• As a programmer:– cvs code repository– doxygen code documentation– Data C++ classes– Example module

Page 52: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Data C++ classes1. CavassData

– Given the name of a data file, CavassData will read in the entire data set.

2. ChunkData– Given the name of a data file, ChunkData will read in a set of contiguous

slices (a chunk).– When slices are accessed w/in the cached chunk, no additional reads are

necessary.– When a slice is accessed outside of the current chunk, a chunk containing

the new slice is read.– Subclass of CavassData.

3. SliceData– Given the name of a data file, SliceData will read in a single slice of data.– A different slice can be read at any time.– Subclass of CavassData.

Page 53: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

doxygen example

Page 54: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Example module

• C++ code that consists of ExampleFrame (a subclass of MainFrame) and ExampleCanvas (a subclass of MainCanvas).

Page 55: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

CONCLUDING REMARKS

Page 56: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

CAVASS contributors

• Xinjian Chen• George Grevera• Tad Iwanaga• Tingching Kao• Shipra Mishra

• Dewey Odhner• Andre Souza• Jayaram Udupa• Xiaofen Zheng• Ying Zhuge

Page 57: CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments George J. Grevera, Ph.D.

Thanks for your attention!

• Information about CAVASS is available from www.mipg.upenn.edu/~cavass.

• The authors gratefully acknowledge NIH grant number R01-EB004395-01 for support of this work.