Presentation is loading. Please wait.

Presentation is loading. Please wait.

(a Computer Assisted Visualization and Analysis Software System) Using CAVASS as the Basis for Imaging Applications George Grevera ab, Jayaram Udupa b,

Similar presentations


Presentation on theme: "(a Computer Assisted Visualization and Analysis Software System) Using CAVASS as the Basis for Imaging Applications George Grevera ab, Jayaram Udupa b,"— Presentation transcript:

1 (a Computer Assisted Visualization and Analysis Software System) Using CAVASS as the Basis for Imaging Applications George Grevera ab, Jayaram Udupa b, Dewey Odhner b a Computer Science Department Saint Joseph’s University b Medical Image Processing Group (MIPG), Department of Radiology University of Pennsylvania

2 CAVASS contributors Xinjian Chen George Grevera Tad Iwanaga Tingching Kao Shipra Mishra Dewey Odhner Andre Souza Jayaram Udupa Xiaofen Zheng Ying Zhuge

3 Overview Introduction User interface Key features Parallelism Getting Started with CAVASS Concluding remarks

4 INTRODUCTION TO CAVASS

5 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

6 3D CAVA software systems (MIPG) DISPLAYmini computer + frame buffer1980 DISPLAY82mini computer + frame buffer1982 3D83GE CT/T 88001983 3D98GE CT/T 98001986 3DPCPC-based1989 3DVIEWNIXUnix, X-Windows1993 CAVASSplatform independent, wxWidgets2009

7 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 binaries – 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?

8 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.

9 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 *E specially for large, multidimensional (at least 3D), possibly multimodality, data sets.

10 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

11 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.

12 CAVASS USER INTERFACE

13 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.

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

15 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

16 Standardized user interface Bar at bottom contains status and mouse button information.

17 KEY CAVASS FUNCTIONALITY

18 Overview of CAVASS functionality

19 Data interface 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.

20 Tools

21 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.

22 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.

23 Interface to ITK: median filter

24 Interface with ITK: Canny edge detection

25 Image processing: live wire & interpolation

26 Visualize: slice/cine & surface rendering

27 Manipulate

28 Event handling 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).

29 Event handling 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.

30 Analyze

31 PARALLELISM

32 Parallelism MPI (Message Passing Interface) – 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 (Open specification for Multi Processing) – requires purchase of specialized compilers – “multi-threaded, shared memory parallelism” model – requires purchase of expensive multiprocessor systems

33 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. Parallelization of operations in CAVASS

34 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.

35 GETTING STARTED WITH CAVASS

36 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

37 Data C++ classes 1.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.

38 Doxygen documentation example

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

40 CONCLUDING REMARKS

41 Concluding remarks User interface Key features (image processing, visualization, manipulation, and analysis) Parallelism Getting Started with CAVASS

42 CAVASS contributors Xinjian Chen George Grevera Tad Iwanaga Tingching Kao Shipra Mishra Dewey Odhner Andre Souza Jayaram Udupa Xiaofen Zheng Ying Zhuge

43 Thanks for your attention! Information about CAVASS is available from www.mipg.upenn.edu/~cavass. The authors gratefully acknowledge NIH grant number R01-EB004395 for support of this work.


Download ppt "(a Computer Assisted Visualization and Analysis Software System) Using CAVASS as the Basis for Imaging Applications George Grevera ab, Jayaram Udupa b,"

Similar presentations


Ads by Google