18
CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera, 1,2 Jayaram Udupa, 2 Dewey Odhner, 2 Ying Zhuge, 2 Andre Souza, 2 Tad Iwanaga, 2 and Shipra Mishra 2 The Medical Image Processing Group at the University of Pennsylvania has been developing (and distributing with source code) medical image analysis and visualization software systems for a long period of time. Our most recent system, 3DVIEWNIX, was first released in 1993. Since that time, a number of significant advancements have taken place with regard to computer platforms and operating systems, networking capability, the rise of parallel processing standards, and the development of open-source toolkits. The development of CAVASS by our group is the next generation of 3DVIEWNIX. CAVASS will be freely available and open source, and it is integrated with toolkits such as Insight Toolkit and Visualization Toolkit. CAVASS runs on Windows, Unix, Linux, and Mac but shares a single code base. Rather than requiring expensive multiprocessor systems, it seamlessly provides for parallel processing via inexpen- sive clusters of work stations for more time-consuming algorithms. Most importantly, CAVASS is directed at the visualization, processing, and analysis of 3-dimensional and higher-dimensional medical imagery, so support for digital imaging and communication in medicine data and the efficient implementation of algorithms is given paramount importance. KEY WORDS: Visualization, 3-dimensional imaging, software systems, image analysis INTRODUCTION S oftware development for 3-dimensional com- puter-aided visualization and analysis (CAVA) in our group started in the 1970s. In 1980, we brought out the first ever such package for medical 3-dimensional CAVA. 1 This software worked on a Data General minicomputer, which drove a Comtal image display frame buffer. In 1982, we brought out a significantly expanded version of this software package. 2 In spite of its high machine and display device dependency, this package was distributed to over 150 sites with source code worldwide long before the term open sourcewas coined. This package was also incorporated into the General Electric (GE) computed tomography (CT)/T 8800 scanner. 3 We subsequently developed a more advanced package 4 for the GE 9800 CT scanner. GE distributed widely these on-the-scanner pack- ages. Earlier, we implemented DISPLAY and DISPLAY82 at the Mayo Clinic, whose inves- tigators used these packages until they started developing the Analyze system 5 around 19841985. Around 1987, we started the development of a Unix-work-station-based software system named 3DVIEWNIX, 6 which was based on standard C programming language and a graphical user interface library developed by us based on X Windows. It also incorporated a multidimensional 1 From the Department of Mathematics and Computer Science, Saint Josephs University, 5600 City Avenue, Philadelphia, PA 19131, USA. 2 From the Medical Image Processing Group (MIPG), Department of Radiology, University of Pennsylvania, 423 Guardian Drive, 4th Floor Blockley Hall, Philadelphia, PA 19104-6021, USA. Correspondence to: George Grevera, Department of Math- ematics and Computer Science, Saint Josephs University, 5600 City Avenue, Philadelphia, PA 19131, USA; tel: +1-610- 6601535; fax: +1-610-6603082; e-mail: [email protected] Copyright * 2007 by Society for Imaging Informatics in Medicine Online publication 6 September 2007 doi: 10.1007/s10278-007-9060-5 Journal of Digital Imaging, Vol 20, Suppl 1, 2007: pp 101Y118 101

CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

CAVASS: A Computer-Assisted Visualizationand Analysis Software System

George Grevera,1,2Jayaram Udupa,2 Dewey Odhner,2 Ying Zhuge,2 Andre Souza,2 Tad Iwanaga,2

and Shipra Mishra2

The Medical Image Processing Group at the University ofPennsylvania has been developing (and distributing withsource code) medical image analysis and visualizationsoftware systems for a long period of time. Our mostrecent system, 3DVIEWNIX, was first released in 1993.Since that time, a number of significant advancementshave taken place with regard to computer platforms andoperating systems, networking capability, the rise ofparallel processing standards, and the development ofopen-source toolkits. The development of CAVASS byour group is the next generation of 3DVIEWNIX.CAVASS will be freely available and open source, andit is integrated with toolkits such as Insight Toolkit andVisualization Toolkit. CAVASS runs on Windows, Unix,Linux, and Mac but shares a single code base. Ratherthan requiring expensive multiprocessor systems, itseamlessly provides for parallel processing via inexpen-sive clusters of work stations for more time-consumingalgorithms. Most importantly, CAVASS is directed at thevisualization, processing, and analysis of 3-dimensionaland higher-dimensional medical imagery, so support fordigital imaging and communication in medicine data andthe efficient implementation of algorithms is givenparamount importance.

KEY WORDS: Visualization, 3-dimensional imaging,software systems, image analysis

INTRODUCTION

S oftware development for 3-dimensional com-puter-aided visualization and analysis (CAVA)

in our group started in the 1970s. In 1980, webrought out the first ever such package for medical3-dimensional CAVA.1 This software worked on aData General minicomputer, which drove a Comtalimage display frame buffer. In 1982, we broughtout a significantly expanded version of thissoftware package.2 In spite of its high machine

and display device dependency, this package wasdistributed to over 150 sites with source codeworldwide long before the term “open source” wascoined. This package was also incorporated into theGeneral Electric (GE) computed tomography (CT)/T8800 scanner.3 We subsequently developed a moreadvanced package4 for the GE 9800 CT scanner.GE distributed widely these on-the-scanner pack-ages. Earlier, we implemented DISPLAY andDISPLAY82 at the Mayo Clinic, whose inves-tigators used these packages until they starteddeveloping the Analyze system5 around 1984–1985.Around 1987, we started the development of a

Unix-work-station-based software system named3DVIEWNIX,6 which was based on standard Cprogramming language and a graphical userinterface library developed by us based on XWindows. It also incorporated a multidimensional

1From the Department of Mathematics and Computer Science,Saint Joseph’s University, 5600 City Avenue, Philadelphia, PA19131, USA.

2From the Medical Image Processing Group (MIPG),Department of Radiology, University of Pennsylvania, 423Guardian Drive, 4th Floor Blockley Hall, Philadelphia, PA19104-6021, USA.

Correspondence to: George Grevera, Department of Math-ematics and Computer Science, Saint Joseph’s University, 5600City Avenue, Philadelphia, PA 19131, USA; tel: +1-610-6601535; fax: +1-610-6603082; e-mail: [email protected]

Copyright * 2007 by Society for Imaging Informatics inMedicine

Online publication 6 September 2007doi: 10.1007/s10278-007-9060-5

Journal of Digital Imaging, Vol 20, Suppl 1, 2007: pp 101Y118 101

Page 2: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

generalization7 of the 2-dimensional digital im-aging and communication in medicine (DICOM)image representation standards. This issue of theneed to handle a multidimensional vectorial imageas a single entity and also to handle nonimagestructure information such as surfaces is only nowbeing looked into by the standards committeesrelated to DICOM. These issues were addressedin 3DVIEWNIX in the early stage of its designduring 1987–1990. 3DVIEWNIX has incorpo-rated numerous advanced 3-dimensional (andhigher-dimensional) CAVA operations includingvarious methods of interpolation, filtering, seg-mentation, registration, algebraic and morphol-ogical operations, visualization methods forsurfaces and volumes, interactive structure edit-ing and manipulation, and scene intensity andstructure-based quantitative analysis. Its binaryversion is available freely via the Internet and hasbeen used by hundreds of sites, and the source-code-version has been distributed to more than180 sites worldwide to date. We continue tomaintain, distribute, and develop 3DVIEWNIXby incorporating into it all functions that we finduseful after rigorously testing them in one ormore of our ongoing applications. About 60person years of work has gone into 3DVIEWNIXso far. Its design has stood the test of time and ofover 15 applications pursued by us since itsrelease.Since the time 3DVIEWNIX was first released

(1993), a number of significant developmentshave occurred. Most significantly, PC platforms(and the Windows OS) have gained in capability,accompanied by precipitous price reductions.They have supplanted traditional Unix-basedwork stations as the scientific work stations ofchoice. Second, network connectivity speed hasgreatly increased. Third, viable parallel process-ing standards have been developed and are nowfreely available for all popular platforms andoperating systems. Fourth, platform-independentwindowing application programming interfaces(APIs), some of which maintain the native lookand feel, have been defined and implemented.Finally, toolkits such as Insight Toolkit (ITK)and Visualization Toolkit (VTK) have beendeveloped and are freely available. Although notcomplete applications in themselves, these tool-kits provide a breadth of techniques and can beemployed as building blocks of applications.

Current Software Systemsand their Limitations

During the past 10 years, the software devel-opment activity for CAVA has increased consid-erably, making several open-source systemsavailable. In the rest of this section, we shallreview the currently available software systems andexamine their limitations that were considered inthe design and implementation of CAVASS. Oursurvey here considered most of the well-knownsoftware systems, including Analyze,5 Digital DataViewer (DDV) (http://www.compgeomco.com),GNU Image Manipulation Program (GIMP)(http://www.gimp.org), Image/J (rsb.info.nih.gov/ij/), Interactive Data Language (IDL) (http://www.rsinc.com), ITK,8 Java ( http://www.javasoft.com),Khoros ( http://www.khoral.com), Mathematica(http://www.wolfram.com), Matlab (http://www.mathworks.com), Open Data Explorer (OpenDX)(http://www.opendx.org), Photoshop (http://www.adobe.com), Volview (http://www.kitware.com/products/volview.html), VTK (http://www.vtk.org),Vision-something-Libraries (VXL) (vxl.sourceforge.net), and 3DSlicer (http//www.slicer.org). Analyze,IDL, Khoros, Mathematica, Matlab, Photoshop, andVolview are excellent commercial software pack-ages. However, none of them are freely available oravailable as open source. Academic prices forthese packages for a single user on a MicrosoftWindows platform are typically subsidized. Plat-forms other than Windows are often moreexpensive, as are commercial licenses. These feestypically include 1 year of updates. After thatperiod of time, additional fees are required toobtain updated software. Only a few of thesevendors offer source code (for an additional fee).Additionally, IDL, Khoros, Mathematica, andMATLAB are not complete medical imagingapplications but libraries of functions that arecallable from their own respective proprietarycomputer programming languages. Note that, inthe case of these proprietary languages, evenexperienced software developers who are typical-ly already familiar with C++ must learn theseprogramming languages. Matlab provides somesupport for libraries that are callable from C/C++and FORTRAN. Analyze is a complete applica-tion with the Developer Add-On available for theprogramming of custom applications. Photoshopis exclusively oriented towards 2-dimensional

102 GREVERA ET AL.

Page 3: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

image processing and manipulation. Photoshopmay be extended by user-written plugins. ADICOM plugin is available for Photoshop toenable it to read single DICOM image files(2-dimensional slices).The DDV (free, open source, Windows only)

software available was not afforded furtherconsideration because it is primarily orientedtoward EEG data and not 2-dimensional orhigher-dimensional imagery. Another DDVsoftware package, available from http://www.compgeomco.com/, is freely available as binaryexecutables for a variety of platforms, includingWindows, Linux, Unix, and Mac. Source code isnot available, and even if source code were freelyavailable, DDV uses Qt, which costs $2,330 perperson, per development platform. It is primarilya complete application but is limited to thedisplay of slice data (read in from TIFF, raw,and a proprietary format) and the creation anddisplay of isosurfaces from manually segmentedslice data. GIMP is freely available as opensource on Unix/Linux only. There is no supportfor DICOM and it is exclusively oriented towards2-dimensional image processing and manipula-tion. Image/J is a Java (and therefore, platform-independent) outgrowth of the NIH Imageapplication that is available only for the Mac.It is primarily oriented towards 2-dimensionalimages but can combine 2-dimensional imagesinto “stacks” of slices. Three-dimensional dis-play is limited to surface plots only. Image/Jcan import DICOM data. Source code is freelyavailable. ITK, funded by the National Libraryof Medicine, is also freely available as opensource on a wide variety of platforms. It is aprogrammer’s toolkit that is specifically gearedtowards medical image segmentation and reg-istration. It requires a software developer withextensive C++ knowledge (even more so thanVTK). As for VTK, no user interface is pro-vided, but, in contrast with VTK, it does con-tain a rich variety of algorithms for imageprocessing that are specific to medical imaging.CAVASS incorporates simple mechanisms tointerface to ITK.Our consideration now turns to the Java

programming language (including the Java Ad-vanced Imaging, Java2D, and Java3D APIs). Ourexperience shows that medical CAVA demandsthe utmost in speed and efficiency due to the

voluminous higher-dimensional and/or multimo-dality data. Simple, prototype Java-based appli-cations that we developed required inordinateamounts of memory and executed far moreslowly than their C++ counterparts. We consid-ered using the Java Native Interface (JNI), whichallows one to combine Java and C++ code but thatrequires developers to be experts in two program-ming languages with no benefit over the solutionthat we propose below. In fact, a JNI version of3DVIEWNIX may even be slower because of theconversion between Java and C++ data structures.In the future, Java compilers [such as Google CodeJam (GCJ)], which compile Java to native machinecode, may make Java as efficient as C++, but GCJis still in its infancy as it does not yet supportSwing (the Java API for building user interface,which is responsible for drawing buttons, menus,windows, etc.). Similar to Matlab, IDL, VTK,and ITK, it does not provide a suite of medicalimaging and visualization applications but is ageneral-purpose, higher-level programming lan-guage upon which these applications may be built.If Java was adopted, we would have had to rewriteall existing 3DVIEWNIX in a different program-ming language.OpenDX is an X11-based, open-source appli-

cation that is freely available for Unix platforms.It is not oriented towards medical imagingapplications. It does not contain any segmenta-tion or registration methods. It does, however,perform surface and volume rendering. TheDICOM format is not supported. A stereoviewing module, DXStereo, has also been con-tributed, but, according to the documentation, thismodule runs only on IBM RS6000 and SGIR4000 platforms. Volview is an application thatis primarily oriented towards volume rendering.One may also filter and annotate data. It supportsa wide variety of input data formats and isavailable for a wide variety of platforms (exceptMac). Volview is one of the few packages (otherthan 3DVIEWNIX and CAVASS) that interfacewith computer-aided design/computer-assisted man-ufacturing (CAD/CAM) packages. VTK is freelyavailable as open source on a wide variety ofplatforms. It is not specifically oriented towardsmedical image processing or medical visualizationbut it can be used to develop such applications if oneis a software developer with solid C++ and Tcl/Tkexperience. As a toolkit, no user interface (let alone

CAVASS: A COMPUTER-ASSISTED VISUALIZATION AND ANALYSIS SOFTWARE SYSTEM 103

Page 4: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

one tailored to image processing or medicalimaging) is provided. It does not include anymedical image processing or visualization appli-cations either. It would require a great deal ofeffort to use VTK as the basis of CAVASSbecause none of the existing 3DVIEWNIXapplications would be directly transferable intoits framework and, therefore, would have to berewritten. Furthermore, because VTK does notprovide a multidimensional (and multimodality)user interface dedicated to medical imaging andvisualization as 3DVIEWNIX currently does, thiswould have to be developed as well. VXL is anopen-source C++ library that grew out of Tar-getJr and Image Understanding Environment. It isprimarily oriented towards the analysis of 2-dimensional surveillance satellite imagery withthe goal of inferring 3-dimensional geometry.3DSlicer is an open-source, freely availableapplication for the analysis and display of 3-dimensional medical imagery. It also includesbasic automatic registration and semiautomaticsegmentation capabilities. It is primarily designedto be used for surgical planning.Other recently introduced systems include the

Medical Imaging Interaction Toolkit,9 anothersystem by the same name,10 and Image-GuidedSurgery Toolkit.11 The Medical Imaging Interac-tion Toolkit9 and the Medical Imaging Toolkit10

are similar and independent open-source systemsthat reuse and extend the capabilities of VTK andITK. The Image-Guided Surgery Toolkit11 is anopen-source software library that provides thebasic components needed to develop image-guidedsurgery applications, providing functionality fortracking, reading, registering, and calibratingimages based on the programs available in ITKand VTK. There is a dichotomy between commer-cial and noncommercial software systems. Becausethe availability of source in an open manner is ofprimary consideration for the theme of this paper,feature-filled and otherwise excellent commercialpackages such as Analyze and IDL do not enterinto our further discussion.In the noncommercial group, considering the

features as already discussed, the most prominentcandidates that remain are 3DVIEWNIX, ITK,VTK, and 3DSlicer. VTK and 3DSlicer are notstrong in image processing, manipulation, andanalysis. ITK on the other hand is very rich inimage processing functions but has no functions

for visualization, manipulation, and analysis. Fur-thermore, it only caters to sophisticated softwaredevelopers. 3DVIEWNIX has its own limitations.Although it has a variety of functions underimage processing, ITK is by far richer in thiscategory. On the other hand, many importantimage processing functions that are in 3DVIEW-NIX and that have been of proven utility, such asshape-based interpolation,38,39 digital surface de-tection (in n-dimensions),49 live-wire segmenta-tion,12,13 MR image intensity standardization,14 andvarious local scale-based processing strategies,15–19

are not in ITK. The visualization tools in3DVIEWNIX are as rich and efficient as in any(commercial/noncommercial) system. It has arich collection of structure manipulation tools,including the ability to cut, move, reflect, and re-edit in 3-dimensional space structures defined inboth hard and fuzzy manner. In addition to thecommon intensity-based and geometry-basedanalysis tools, it has advanced tools to analyzethe morphology, architecture, and kinematics ofobject systems.From our review and experience in developing

CAVA software and in using (and contributing to)ITK, we conclude that there are four main groupsof limitations that exist in open-source software forCAVA currently. (1) Lack of comprehensiveness:There simply is no software (open-source orotherwise) currently that covers all elements(image processing, visualization, manipulation,and analysis) of CAVA comprehensively. Thereare no systems that provide the basic functionalsupport needed to realize inexpensive stereoscopicvisualization and user interaction with such dis-plays in a portable manner. (2) Lack of ease of use:Current systems should cater to such diverse usersas CAVA technology developers, CAVA applica-tion developers, and users of CAVA in clinicalresearch. (Open-source software activities are notsuited for clinical end users of CAVA for day-to-daypatient care due mainly to the safety, legal, andfinancial issues related to patient care.) (3) Lack ofspeed: Both interactive and noninteractive operationsfall short of the speed needed to make many CAVAapplications practical, from future considerations andat present, especially when dealing with large datasets. (4) Interfaceability with other systems (such asITK). Our design goal for CAVASS is to overcomeall of these limitations in a system that is useable by awide variety of different users.

104 GREVERA ET AL.

Page 5: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

METHODS

CAVASS is an open-source system writtenentirely in C/C++ and is based on our years ofexperience with 3DVIEWNIX. It encompassesfour groups of operations: image processing(including region of interest, interpolation, filter-ing, segmentation, registration, morphologicaloperations, and algebraic operations), visualization(including slice, reslice, maximum intensity pro-jection, surface rendering, and volume rendering),manipulation (for surgical planning and simula-tion), and analysis (various methods for extractingquantitative information).CAVASS shares a single code base for all

Windows, Unix, Linux, and Mac platforms byemploying the portable, open-source wxWidgetslibrary. wxWidgets is unique in that it provides asingle API across all platforms while maintaining thenative look and feel of each. This allows CAVASS tohave a single code base for all platforms rather thanseparate code bases for each platform (which makesdevelopment and updates much more difficult).CAVASS also employs the open source local-areamulticomputer (LAM) implementation of the mes-sage passing interface (MPI) parallel-processingstandard. LAM MPI is part of the Linux distributionand is freely available for Unix, Mac, and Windowsas well. CAVASS also integrates with populartoolkits such as ITK and VTK.CAVASS retains much of the architecture of

3DVIEWNIX, which has proven to be very

effective, efficient, and easy to maintain andexpand (see Fig. 1). The program libraries arecompartmentalized into four groups: (1) data inter-face, (2) graphical interface, (3) process interface,and (4) and CAVA functions. In the interest ofbrevity, only groups 1 and 4 will be described indetail. CAVA functions are further divided intofour groups according to the four elements ofCAVA: (a) image processing, (b) visualization,(c) manipulation, and (d) analysis. One may de-velop their own applications based on theselibraries. In addition to these libraries, CAVASSalso provides a sophisticated GUI, which, together,form a complete suite of medical imaging applica-tions. The GUI is menu-driven with such main itemsas Preprocess, Visualize, Manipulate, and Analyze,as well as Port Data, which allows data to be portedinto and out of CAVASS. In addition to DICOMsupport (as illustrated in Fig. 2), CAVASS alsosupports an n-dimensional generalization of theDICOM standard, as well as popular CAD/CAMformats such as stereo lithography (STL) (for thebiomechanical analysis) and image format standardssuch as TIFF, PNM, and VTK.

Data Interface

The data interface library in 3DVIEWNIX7,20 isdesigned for a data representation protocol, whichis a generalization and an extension of the 2-dimensional DICOM standards. The data interfacelibrary contains functions for reading and writing

Fig 1. The architecture of CAVASS.

CAVASS: A COMPUTER-ASSISTED VISUALIZATION AND ANALYSIS SOFTWARE SYSTEM 105

Page 6: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

the various types of data handled in 3DVIEWNIX.DICOM21 is a communication and representationstandard for 2-dimensional images. In its currentform, it cannot represent 3-dimensional and higher-dimensional image data as a single entity. Also, it hasnot dealt with issues related to the representation ofnonimage data such as surfaces. In view of theselapses, we spent a considerable amount of time in theearly phase of the design of 3DVIEWNIX ondevising a multidimensional extension and general-ization of DICOM. The data interface manual of3DVIEWNIX20 describes this generalization and alldata types handled in 3DVIEWNIX in great detail.Because the generalization has been found to bevery satisfactory, we adopted this in the develop-ment of CAVASS. There are three types of datahandled by CAVASS: SCENE data, STRUCTUREdata, and DISPLAY data. There are multiplesubtypes under each category. The SCENE datatype represents n-dimensional images—scalar, vec-tor-valued, or binary with a regular (rectangulargrid) or arbitrary sampling scheme. The STRUC-TURE data type represents multidimensional non-image structure information usually derived fromSCENE data. These may be hard or fuzzy bound-aries, represented by curves, digital surfaces ofvarious forms, triangulated surfaces, or shells. There

is a particular subtype of STRUCTURE data, whichis very powerful and has been found to be useful ina variety of applications. This type allows us torepresent a structure system, which is a collection ofstructures, in a manner that is very useful for itsvisualization and analysis. The structure systemmay contain any combination of rigid, deformable,static, and dynamic objects. The structure system isessentially a computer representation of an object(organ) system in the body. In the case of dynamicand deformable objects, multiple time samples ofthe objects are represented in the structure system orappropriate transformations (in the case of rigid,dynamic objects) are stored. When a structuresystem is rendered, the variable character of theobjects is also portrayed – static objects remainstatic, dynamic objects are rendered with thedynamics – the adequacy of the time componentof the portrayal depending on the speed of therendering algorithm and of the host computer.Finally, the DISPLAY data type constitutes a visualrepresentation of any information in the form of apicture ready to be displayed. This includes suchsubtypes as screen shots, rendered images, andmovie sequences. Because the data types have beenfound to be very satisfactory and useful, wecontinue to utilize them in CAVASS.

Fig 2. An example of the CAVASS DICOM header browser (sample DICOM image from http://www.agfa.com/en/he/support/doc_library/dicom/adc_dicom_images/index.jsp).

106 GREVERA ET AL.

Page 7: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

In addition to supporting the DICOM fileformats (both import and export), 3DVIEWNIX(and, hence, CAVASS) supports other commonimage file formats such as raw unformatted data,GIF, JPEG, TIFF, and PGM. Additionally,3DVIEWNIX has been used to export structuraldata to CAD/CAM packages such as Fluid (forcomputational fluid dynamics) andAbaqus (for finiteelement modeling) via its ability to create files in theSTL format. CAVASS also supports these formats.In addition, it also supports Matlab, Analyze, andMathematica formats.Rather than reinventing the wheel with regard to

DICOM networking/image query and retrievecapability, CAVASS integrates with commonlyavailable DICOM networking software such as theSimpleDICOM receiver (http://www.radiology.upmc.edu/software.html), which is available fromthe University of Pittsburg Department of Radiol-ogy (for the Windows platform only) or theConquest DICOM server (http://www.xs4all.nl/%7Eingenium/dicom.html), which is availablefor both Windows and Linux with source code.Other options include the eFilm work stationpackage (http://www.efilm.ca/), which includes aDICOM server (version 1.5.3 was the last freeversion), and DCMTK (dicom.offis.de/dcmtk.php.en), which is freely available for Linux, Unix, andWindows with source code.

CAVA Functions

Image Processing

The key image processing operations commonlyemployed in CAVA are interpolation, filtering,registration, segmentation, and miscellaneous otheroperations. The image processing operations in-cluded in CAVASS may be divided into thefollowing seven groups. We will use I=(I, f) todenote an (n-dimensional) image where I is theimage domain, which is a rectangular array ofvolume elements (voxels), and f is an intensityfunction that assigns to each voxel v in I an in-tensity value f (v). f (v) is usually scalar-valued, butit may also be vectorial. In the following descrip-tion, we assume that Ii=(Ii, fi) and Io=(Io, fo)denote input and output images, respectively.

1. Volume of interest: These operations are suchthat Io⊆Ii and fo is a restriction of fi to Io. Io

may be selected interactively or by automaticmeans. The aim of these operations is to makesubsequent operations more efficient and effective.

2. Interpolation: In these operations, the voxels inIo can be of any size relative to those in Ii andboth may be gray or binary images; fo is someinterpolant of fi.

3. Filtering: The meaning of the term “filtering” isextremely variable as used in the literature. Weconsider filtering to be any operation such thatIo=Ii, Io and Ii are both either gray or binary,and the intensities in Io are modified from thosein Ii. Operations that come under this categoryare image enhancement, noise/artifact suppres-sion, and morphological and certain topologicaloperations.

4. Segmentation: In these operations, the output isa binary or a gray image such that Io=Ii andfo(v) for v∈Io indicates the degree of member-ship of v in the object of interest. Alternatively,the output may also be a hard or fuzzy surface,which represents the boundary of the object.

5. Registration: These operations take two inputs,either images Ii1 and Ii2 or surfaces Si1 and Si2and produce in the respective cases an imageIo=T(Ii2), which matches with Ii1 or a surfaceSo=T(Si2) that matches with Si1, where T is ageometric transformation. T may be a rigid (six-parameter), affine (9–12-parameter), or defor-mation (hundreds to thousands of parameters)transformation.

6. Image algebra: These operations take generallytwo input images, either of which may be grayor binary and produce an output gray or binaryimage. A variety of operations, such as addition,subtraction, multiplication, division, inverting,and certain types of algebraic expressionsinvolving the input images, are permitted.

7. Miscellaneous: These operations allow convert-ing one structure (surface) representation toanother, structure-to-image representation,merging different structures into a single struc-ture system, editing DISPLAY data for creatingdemos, annotation operations, etc.

Visualization

Our work on the surface rendering method ofvisualization dates back to the early days of CTand MR imaging.1,22–24 We have devised digital

CAVASS: A COMPUTER-ASSISTED VISUALIZATION AND ANALYSIS SOFTWARE SYSTEM 107

Page 8: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

surface rendering algorithms25 that run on PCs 16–31 times faster than methods based on renderingtriangulated surfaces by using hardware renderingengines26 and take about an order of magnitudeless storage space. The simplicity and efficiency ofthese algorithms afforded by the simplicity of thegeometry of digital surfaces can also be extendedto triangulated surfaces and thereby achieve an 8–10-fold speedup in software on PCs over hardwarerendering engines if the triangles are embedded ina digital grid, as in the output produced by theMarching Cubes family27 of algorithms. This alsoaffords compact storage of such surfaces. Due tothis computational/storage efficiency, the need fortriangle decimation methods currently pursued toreduce the number of triangles in the surface forovercoming computational bottlenecks is obviated.For volume rendering, we developed a paradigm

called shell rendering.28 The basic idea of thisapproach is to represent tissue interfaces as shellsand do volume rendering by projecting voxels inthe shell in a back-to-front or front-to-back orderonto the projection plane and performing, in theprocess, the basic operations of volume rendering,such as reflection, emission, and transmission. Inone extreme, the shell may be very thin, just onevoxel thick, in which case shell rendering reduces

to the digital surface rendering method referred toabove. In another extreme, the shell may includethe whole foreground of a 3-dimensional image. Inpractice, the thickness of the shell is in between thetwo extremes. Recently, a method of volumerendering that has become popular is shear-warprendering.29 Like shell rendering, the shear-warpmethod can be used in both surface and volumemode. The speed of its surface mode is about thesame as that of shell rendering in surface mode, butits volume mode is faster (about two times) thanshell rendering,30 although the shear-warp methodrequires about six to eight times more storagespace than shell rendering. We have developed anew method, called shear-warp shell rendering,which combines the advantages of both methods30

to achieve the speed of shear-warp and storageefficiency close to that of shell rendering. Figures 3and 4 demonstrate overlaid slice display and t-shellsurface rendering in CAVASS on the Windowsoperating system.

Manipulation

One of the earliest papers to suggest the use ofstructure information derived from images for sur-gery planning was that of Udupa.31 3DVIEWNIX

Fig 3. Example of overlaid slice display in CAVASS on the Windows operating system.

108 GREVERA ET AL.

Page 9: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

contains extensive tools for manipulating (cut-ting, separating, mirror reflecting, moving, orrepositioning) structures interactively, all imple-mented without depending on specialized hard-ware, and to carry out these manipulativeoperations on structures defined in a hard, as wellas a fuzzy, manner.25,32

Analysis

An early paper on the estimation of volumeenclosed by and the area of a surface is another byUdupa.33 Recently we have demonstrated that thevolume enclosed by triangulated surfaces can alsobe estimated in the same simple way by tablelookup as done for digital surfaces.34 We havepublished methods to compute linear, curvilinear,and angular measurements on the surface or byutilizing landmark points on surfaces observable intheir renditions.3 Methods are also implemented in3DVIEWNIX for various intensity-based mea-sures.6 We have developed methods for higher-level analysis of object systems by describing themorphology of individual objects through mor-phological parameters, the interrelationship amongobjects through parameters describing the archi-tecture of the object system, and the way thisinterrelationship changes when the objects movethrough kinematic parameters.35–37

Parallelizing Key Operations in CAVASS

Before we set out to develop parallel imple-mentations of key algorithms, we first devised anexperiment to determine the need for such algo-rithms operating on data sets of common, practicalsizes. We know that if we are given an image ofhigh resolution, size, dimensionality, and pixeldepth, then many computationally intensive algo-rithms are choked. We argue that we are already ata stage where it is just impractical to carry outsome computationally intensive CAVA operationson top-of-the-line work stations and PCs withsequential algorithms. To justify this argument, welist in Table 1 the processing time for both3DVIEWNIX and ITK for some key CAVAoperations for (scalar) images of two sizes. Theplatform on which this was performed was a 2-GHz Pentium PC with 1 GB of RAM and 4 GB ofswap-space running version 2.4 of Linux. In allcases, the images had 16 bits/pixel. The interpola-tion operation here created (from a size 512×512×193 input image) an output image whose sizeswere, respectively, 512×512×296 and 1,023×1,023×591 for the two cases. (The larger imagesize simply choked – indicated by “error” – bothsystems.) Blanks indicate that the operation wasnot tested. NA stands for “not available.” Althoughthis is not at all the main point we wish to make

Fig 4. Example of triangulated shell (t-shell) rendering in CAVASS on the Windows operating system.

CAVASS: A COMPUTER-ASSISTED VISUALIZATION AND ANALYSIS SOFTWARE SYSTEM 109

Page 10: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

from Table 1, note that the 3DVIEWNIX oper-ations are more efficient than those of ITK. Thelower efficiency of ITK is mainly due to itsgenerality (often 2-dimensional and 3-dimensionalimages treated as n-dimensional), its class inheri-tance overhead, code developed at multiple cen-ters, etc. In CAVASS, we keep the same level ofemphasis on efficiency as in 3DVIEWNIX.).From the perspective of the ease of paralleliz-

ability, CAVA operations may be divided intothree groups, which we will call type 1, type 2, andtype 3. Our general approach to parallelizedimplementation of key CAVA operations is toperform what we call chunking. A chunk is thedata contained in a contiguous set of slices. Achunk may represent SCENE or STRUCTUREdata. In the former case, it represents a set ofcontiguous slices of the given image. In the lattercase, it represents structure data contained in acontiguous set of slices.

Parallelizing Type 1 CAVA Operations

There are many operations in CAVA, whichwork, or, which can be made to work, in a more-or-less “slice-by-slice”, and hence in a “chunk-by-chunk”, manner. In these operations, a slice(or chunk) worth of data needs to be accessedonly once to complete the operation (or tocomplete one iteration of the operation) andproduce the final output. Such operations arelabeled type 1. Examples of such operations are

image gray level slice interpolation methods(linear, spline-based methods),38 shape-based(binary as well as gray-level) interpolation,38–42

image-based registration (via mutual information/correlation),43,44 diffusive filtering,45–47 inhomo-geneity correction,48 all nonuser-steered slice-by-slice segmentation methods (such as clusteringtechniques), nonconnected isosurface detection,and structure manipulation.25,32 The method ofprocessing for type 1 operations may be summa-rized as follows:Begin

Step 1 Divide the given image Ii into chunks.Step 2 Assign the next set of chunks to be

processed to the processors; one chunkper processor.

Step 3 In each processor, carry out the type 1operation on the chunk assigned to it andsend its result to the master processor.

Step 4 If there are chunks remaining to beprocessed, go to step 2.

Step 5 Else assemble results from all processors andoutput the resulting image Io or structure.

EndThe effect of parallelization here comes from

step 3. In the above algorithm, the number of timesthe loop from step 2 to step 4 is executed dependson the size of Ii, the number of processorsavailable, and the RAM on each processor. In thismanner, load balancing is achieved automaticallyand there is no limit on the size of Ii that can be

Table 1. Processing Time (in Seconds) for Some Key Operations in CAVASS and ITK

Operation

512×512×296 1,023×1,023×591

CAVASS ITK CAVASS ITK

Interpolation (trilinear) 10 319 96 2,530Filter (3D median) 54 310 517 3,480Image algebra (difference) 16 52 211 896Threshold 5 22 51 396Reslice 14 323 410 2,668Isosurface creation (digital58) 10 NA 129 NAIsosurface creation (triangles) (http://www.gimp.org; rsb.info.nih.gov/ij/) 12 NA Error NADistance transform (3D) 66 1,766 Error ErrorRegistration (correlation) 679 330,336 Error ErrorRegistration (mutual information) (http://www.javasoft.com) 3,410 Error Error ErrorFuzzy connectedness segmentation (http://www.compgeomco.com) 357 840 Error ErrorVolume rendering (http://www.khoral.com) 1 NA 4 NASurface rendering (http://www.wolfram.com) 1 NA 1 NAStructure manipulation (http://www.wolfram.com) 1 NA 1 NA

110 GREVERA ET AL.

Page 11: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

handled irrespective of the number of processorsavailable.

Parallelizing Type 2 CAVA Operations

There are other CAVA operations, which work(chunk-by-chunk) in the above sense, but somefurther operation is needed to combine the outputsproduced by the chunks to yield the final output.Such operations are labeled type 2. These are moredifficult to parallelize and implement than type 1operations. Examples of such operations arevarious surface- and volume-rendering methods,particularly those that use some sort of a front-to-back or back-to-front splatting/projection strat-egy, such as shell and shear-warp renderingmethods.25,28–30

Parallelizing Type 3 CAVA Operations

We label those CAVA operations that requireeach slice/chunk to be accessed more than once tocomplete the operation as type 3. These can bemore difficult than type 1 and type 2 operations toparallelize the implementation. These operationscan be characterized by graph traversal methods.The number of times a slice (chunk) is accesseddepends on the shape of the objects represented inthe image and on the orientation of the slices withrespect to the objects. Examples of such operationsare connected isosurface detection,49–51 connectedobject segmentation in a hard or fuzzy man-ner,52–62 and optimal path (graph cut) and fastmarching (level set) methods of segmentation.63,64

In connected isosurface detection,49,50,65 for ex-ample, the average number of accesses of an axialslice in a 3-dimensional image of the human bodyis typically in the range 1.5–1.8.A general parallelization scheme for type 3

operations is outlined below. The algorithm usesa queue Qj (optionally) a list Lj associated witheach chunk I

ji of the input image Ii. In the

algorithm, π is a predicate whose exact formdepends on the particular type 3 operation withwhich we are dealing.Begin

Step 1 Divide the given image Ii into chunksIji ; j ¼ 1; :::;N .

Step 2 Initialization. A set of voxels is identifiedfor initializing the underlying type 3

operation. These voxels are placed in thequeues associated with the chunks towhich they belong.

Step 3 While any of the queues Qj, j=1,..., N, isnot empty, do steps 4–7.

Step 4 Find a free processor Pj and load it with Iji

and Qj and Lj.Step 5 While Qj is not empty, Pj executes steps

6–7.Step 6 Remove a voxel v from Qj, evaluate π(v),

and place v in Lj, perform appropriateoutput operations.

Step 7 If π(v) is true, place the appropriateneighbors of v in the queues they belongto if they are not already in their desig-nated lists.

Step 8 Combine all outputs from all processors tooutput Io or the output structure.

EndIn the above algorithm, parallelism is achieved

via steps 4–7. It is the task of the master processorto keep a watch on the processors whose queuesbecome empty and who therefore may becomeidle. A processor may be activated because thereare chunks whose queues are not empty. The entireprocess stops at a point when all queues becomeempty. In steps 6–7, the exact nature of theoperations depends on the specific type 3 operationbeing implemented. Step 7 also calls for interpro-cessor communication, which can be handled inseveral ways to keep it efficient. The method wehave implemented is to allow one slice overlapbetween neighboring chunks and in the associatedQj and Lj.

Algorithms for Parallelization

Our aim in CAVASS is to parallelize theimplementation for the following 10 groups ofkey CAVA operations: gray-level slice interpola-tion, shape-based interpolation, image-based reg-istration (via mutual information, correlation),diffusive filtering (scale-based and non-scale-based), inhomogeneity correction (scale-based),structure manipulation (hard and fuzzy25,32), sur-face and volume rendering (via shell and shear-warp techniques), connected isosurface detection(both digital and triangulated), and fuzzy connect-edness segmentation. Another area where parallel-ism can be employed is in stereo rendering for

CAVASS: A COMPUTER-ASSISTED VISUALIZATION AND ANALYSIS SOFTWARE SYSTEM 111

Page 12: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

display. We modified the CAVASS surface/vol-ume rendering implementation to render from notone but two different points of view (one for eacheye) for each given position of the projectionplane. Typically, the angle between the two nearbyviewpoints is about 4°. In CAVASS, we leave thisnumber as a parameter whose value can bemodified according to an individual’s visioncharacteristics. The graphics interface library andthe GUI was modified to handle these stereo displayhardware devices. Library functions were alsodeveloped to support all necessary interactions withthe stereo display, including pointing to locations onthe structures in their surface/volume renditions (wehave previously published such algorithms25,28),interactively performing curved cuts, repositioningof segments, and making linear, angular, andcurvilinear measurements interactively.

Parallel Implementation

Parallel algorithms are implemented in CAV-ASS using the MPI/OpenMPI standard, which iscommonly and freely available for Linux, Unix,Mac, and Windows. MPI or OpenMPI should notbe confused with MP or Open Specifications forMulti Processing (OpenMP) (http://www.llnl.gov/computing/tutorials/openMP/#Introduction,OpenMP; http://www.openmp.org/drupal/).OpenMP is a parallel processing standard for“multi-threaded, shared memory parallelism.”(http://www.llnl.gov/computing/tutorials/openMP/#Introduction, OpenMP) OpenMP requires specialcompilers that recognize compiler directives em-bedded in the source code to control parallelism.Furthermore, “OpenMP is not meant for distribut-ed memory parallel systems.” (http://www.llnl.gov/computing/tutorials/openMP/#Introduction,OpenMP) Typically, OpenMP systems are expen-sive, tightly coupled, shared memory multiproces-sor systems (MPS), such as the SGI Originsystems or the new SGI Altix 4700, which“supports up to 512 processors under one instanceof Linux and as much as 128TB of globally sharedmemory” (http://www.sgi.com/products/servers/altix/4000/). Our approach uses inexpensive, com-monly available “commodity” work stations/PCs.In particular, our cluster of work stations (COW)consists of six single-process systems (Dell singleprocess 3.6-GHz Pentium systems with 3 GB RAM,hyperthreading enabled, Linux operating system

version 2.6.9-1.667smp) interconnected by aninexpensive 1-gigabit (Gb) switch (Dell Power-Connect 2608, an 8-port 1-Gb Ethernet switch).Another area where parallelism can be employed

is in stereo rendering for displays such as thoseshown in Figure 5 (i-glassesonline.stores.yahoo.net/iglassespc-3d.html). The CAVASS stereo surface/volume rendering implementation renders from notone but two different points of view (one for eacheye) for each given position of the projection plane.Typically, the angle between the two nearby view-points is about 4°. In CAVASS, this number is aparameter whose value can be modified accordingto an individual’s vision characteristics. Thegraphics interface library and the GUI handle stereodisplay hardware devices such as the one inFigure 5. Library functions support all necessaryinteractions with the stereo display, includingpointing to locations on the structures in theirsurface/volume renditions (we have previouslypublished such algorithms49,50), interactivelyperforming curved cuts, repositioning of segments,and making linear, angular, and curvilinear meas-urements interactively.

An Interface to ITK

We provide access to ITK within the GUI ofCAVASS. In this manner, from the user’s perspec-tive, all ITK algorithms appear to be incorporatedinto CAVASS. A working example of the integra-tion of a portable CAVASS prototype GUI withITK was developed. Platform-independent softwareloads two SCENE files and displays these files. Theuser is allowed to change various parameters ofThirion’s Demons deformable registration algo-rithm66 as implemented in ITK. Once theseparameters have been specified (or the defaultvalues are found to be acceptable), CAVASSexecutes the ITK registration algorithm. Results ofthe registration process are then provided to theuser by CAVASS as an output SCENE file.

Portable User Interface

To implement a portable GUI, we considered Qt(http://www.prolltech.com), wxWidgets (formerlycalled wxWindows) (wxWidgets.org),67–69 andFast Light Tool Kit (FLTK) (http://www.fltk.org).Qt was eliminated from further consideration as itis proprietary/closed and requires fees [$2,330 for

112 GREVERA ET AL.

Page 13: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

one developer on a single platform (ie, Unix,Windows, or Mac OS); $4,660 for one developeron three platforms]. FLTK and wxWidgets bothprovide a common C++ API that one may use todevelop portable GUIs. Both are freely availableon a variety of platforms, are open-source, supportOpenGL, and drag and drop and cut and paste in aplatform-independent manner. Choosing betweenFLTK and wxWidgets is not simple, but we feelthat wxWidgets is superior because it endeavors tomaintain the native look and feel of the platform onwhich it is running. Furthermore, only wxWidgetssupports printing in a platform-independent man-ner. For these reasons, we chose wxWidgets forimplementing the GUI in CAVASS.

RESULTS

Many algorithms have already been imple-mented and tested in CAVASS. For example,

interpolation of anisotropic data to isotropic datais a common medical imaging task. We didextensive comparisons on a variety of CAVAoperations (type 1 and type 3) in both sequentialand parallel modes in various configurations ofthe COW on a variety of data sets (Table 2). Wealso compared the speed of these operations asimplemented in ITK in sequential mode andparallel mode (when available). The parallelimplementations in ITK are in the MPS environ-ment. Because MPS are very expensive, weacquired a dual-processor MPS for testing purpo-ses only. Therefore, to make the comparison fair,in such instances, the COW was configured withonly two single-processor CPU work stations. Ourresults are summarized in Table 3.We note that considerable speed differences

exist between CAVASS and ITK for the imageprocessing operations. We attribute the higherspeed of CAVASS to several factors. First, manyof the implementations in ITK are very general on

Table 2. Description of Data Sets of Varying Sizes used in the Comparisons

Data Set Name Voxel Size (mm) Image Size Data Size (MB)

Regular 0.98×0.98×3.00 256×256×46 6Large 0.68×0.68×1.50 512×512×459 241Super 0.24×0.24×0.50 1,023×1,023×417 873

Fig 5. Head-mounted display employed by CAVASS for stereo viewing.

CAVASS: A COMPUTER-ASSISTED VISUALIZATION AND ANALYSIS SOFTWARE SYSTEM 113

Page 14: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

various counts, such as image dimensionality,number of bits per pixel, and scalar versusvectorial. In CAVASS, we went for generality tothe extent it is needed and in most common use.Second, implementations in CAVASS (many ofwhich come from 3DVIEWNIX) are more tightlymonitored, being an effort within a single group.Third, in ITK, because of its openness, and contri-butions of implementations coming from around theworld, testing and optimization become reallychallenging.The times reported in Table 3 represent the total

operational time for each listed CAVA operation.Some of these operations include a mix of type 1 andtype 3 algorithms in addition to other housekeepingoperations such as input/output. We may note that,for pure type 1 operations (interpolation, scalecomputation), we achieve a speedup factor of 0.65–1.8 for parallelization. Here, the speedup factor isdefined as ts/(tpnp), where ts and tp are the timetaken for the sequential and parallel implementationof the same operation, and np is the number ofprocessors used in parallel implementation. Thisfactor is, quite understandably, lower, 0.56, for puretype 3 operations (eg, fuzzy connectedness).Among the operations listed in Table 3, registrationis the most time consuming. In these operations,normalized mutual information was used to registerthe two images. The second image was created from

the first by applying a known (rigid or affine)transformation. The speedup factor achieved in thisinstance is excellent. With a COW of about 10 PCs,therefore, we can expect to complete a 12-parameteraffine registration of extremely large data sets inabout 30 min. Parallelized deformable registration iscurrently being implemented in CAVASS.The two major volume visualization methods of

surface rendering and volume rendering have alsobeen implemented and tested in CAVASS. Wecompared the implementations of sequential t-shellsurface rendering (an example appears in Fig. 4)implemented entirely in software in CAVASS withhardware-assisted surface rendering using theMarching Cubes method as implemented in VTK(using the vtkImageMarchingCubes class). Wealso compared sequential and parallel volumerendering implemented entirely in software inCAVASS with two methods of volume rendering(ray casting and 2-dimensional texture mapping)implemented in VTK (using the vtkVolumeRay-CastMapper and vtkOpenGLVolumeTextureMap-per2D classes, respectively). The timing results inseconds per frame were obtained by applying thevarious visualization techniques to three data setsof varying sizes (regular, large, and super) asshown in Table 2. Results for sequential surfacerendering and parallel and sequential volumerendering appear in Tables 4 and 5, respectively.

Table 3. Time in Seconds for the Various Operations for the Regular (6 MB), Large (241 MB), and Super (873 MB) Image Data Sets

Operation System

Regular (DS1) Large (DS2) Super (DS3)

Seq Parallel Seq Parallel Seq Parallel

InterpolationITK 2.9 1.7 87.7 62.8 [2] Failed FailedCAVASS 0.6 1 [2] 54.9 14.9 [2] 139.1 49.2

Anisotropic diffusive filteringITK 57 2,026.6 FailedCAVASS 52.7 1,664.2

Gaussian filteringITK 1.5 65.2 FailedCAVASS 0.4 18.3 83

Distance transformITK 10.5 473.7 FailedCAVASS 18.7 916.5 3,882.4

ThresholdingITK 0.3 11.4 340.6CAVASS 0.1 2.7 20.2

Fuzzy connected segmentationITK 108.4 Failed FailedCAVASS 49.5 17.8 843.7 298.6 [5] Failed 1,312.6 [5]

Registration (rigid)ITK 57.2 Failed FailedCAVASS 56.1 8.6 [5] 1,860.6 301.6 [5] 3,863.4 1,089.1 [5]

Registration (affine—12 parameters)ITK 208.3 Failed FailedCAVASS 155.3 25.1 3,602.4 1,018.6 [5] 13,111 3,662.2 [5]

The number of processors used is indicated in square brackets in case of parallel operations. No entries indicate that the particularoperation was either not tested or not available.

114 GREVERA ET AL.

Page 15: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

Table 4 shows that sequential CAVASS shellrendering, entirely in software and without anti-aliasing, was more than 8.5 times faster thanhardware-based rendering as implemented inVTK for the largest data set (super) in our test.With antialiasing, CAVASS shell rendering wasmore than five times faster. For volume rendering,Table 5 shows that the CAVASS implementation,entirely in software, was faster than both raycasting and 2-dimensional texture mapping asimplemented in VTK for both the regular andlarge data sets. For the super data set, sequentialCAVASS volume rendering was slower thanvolume rendering in VTK, but the parallel imple-mentation of volume rendering in CAVASS wasalmost twice as fast as ray casting in VTK.Although VTK ray casting was able to render thelargest data set, 2-dimensional texture mapping asimplemented in VTK was unable to render thelargest data set after more than 240 s. This is likelydue to the limited amount of memory on thegraphics card. When we compare VTK ray castingto VTK 2-dimensional texture mapping, we notethe trend that VTK ray casting is consistentlyfaster than VTK 2-dimensional texture mapping.Because CAVASS parallel volume rendering isconsistently faster than both VTK ray casting andVTK 2-dimensional texture, we conclude that,even with additional video memory, CAVASSparallel volume rendering would be faster thanVTK 2-dimensional texture rendering of thelargest data set.All sequential tests were performed on a Dell

single-processor, 3.6-GHz Pentium system with3 GB RAM and hyperthreading enabled under theLinux operating system version 2.6.9-1.667smp.The multithreaded tests were performed on a Delldual processor, 3.4-GHz Xeon system with 4 GBof RAM and hyperthreading enabled under theLinux operating system version 2.6.9-1.667smp.The parallel visualization tests were performed ona cluster of six single-processor systems (Dell

single processor, 3.6-GHz Pentium systems with3 GB RAM and hyperthreading enabled under theLinux operating system version 2.6.9-1.667smp)interconnected by an inexpensive 1-Gb switch(Dell PowerConnect 2608, an eight-port, 1-GbEthernet switch). All systems had Nvidia QuadroNVS280 PCIe 64-MB video cards.

CONCLUSIONS

We described CAVASS, a new open-source,open-platform software system and the nextincarnation of the previously established andwidely distributed 3DVIEWNIX software system.We demonstrated the extremely efficient imple-mentation of algorithms in sequential and parallelmodes on COWs in CAVASS. CAVASS is theonly freely available, open-source image process-ing, analysis, and visualization software system formultidimensional medical imagery that incorpo-rates other open-source toolkits and provides forthe efficient and parallel implementations ofimportant algorithms. With regard to such com-mon image processing tasks as interpolation,anistropic diffusive filtering, Gaussian filtering,thresholding, fuzzy connected segmentation, rigidregistration, and affine registration, CAVASSsequential implementations were shown to be asmuch as 4.8, 1.2, 3.8, 4.2, 2.2, 1.0, and 1.3 timesfaster, respectively, than ITK sequential imple-mentations. The only exception was the distancetransform where the ITK implementation was asmuch as 1.9 times faster than the CAVASSimplementation. With regard to parallel interpola-tion, CAVASS was as much as 4.2 times fasterthan ITK parallel interpolation. CAVASS alsoprovides parallel implementations for fuzzy

Table 5. Volume Rendering Timing Comparison for Sequentialand Parallel Implementations of CAVASS Volume Rendering,VTK Ray Casting, and VTK 2-Dimensional Texture Mapped

Volume Rendering

Data Set Name

CAVASS VTK

Sequential Parallel Ray Casting 2D Texture

Regular 0.56 0.06 1.09 1.20Large 3.53 1.36 5.03 18.32Super 9.77 3.66 6.94 9240.00

Table 4. Surface Rendering Timing Comparison for CAVASS(Sequential Implementation with and without Antialiasing)

and Surface Rendering as Implemented in VTK

Data Set Name CAVASS seq/no aa CAVASS seq/aa VTK

Regular 0.03 0.06 0.29Large 0.11 0.19 0.41Super 0.16 0.26 1.38

CAVASS: A COMPUTER-ASSISTED VISUALIZATION AND ANALYSIS SOFTWARE SYSTEM 115

Page 16: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

connected segmentation and rigid and affineregistration, whereas ITK does not. These parallelimplementations in CAVASS were shown to be 6.1,6.7, and 8.3 times faster than the correspondingsequential ITK implementations. CAVASS was alsoable to deal with much larger data sets that made ITKfail.With regard to visualization, surface rendering

in CAVASS entirely in software was demonstratedto be more than 8.5 times faster than hardware-assisted surface rendering. For volume rendering,we demonstrated that sequential volume renderingin CAVASS entirely in software is faster for theregular and medium data sets in our test, and forthe largest data set (super), parallel volumerendering in CAVASS was almost twice as fastas the fastest hardware-based method.Finally, CAVASS may be used as a toolkit

library or as a complete set of applications with aneasy-to-use GUI that interfaces with other populardata formats and toolkits.CAVASS is available from http://www.mipg.

upenn.edu/~cavass.

ACKNOWLEDGEMENT

The authors gratefully acknowledge support for this workfrom DHHS grant EB004395. Portions of this work werepreviously published in Udupa et al.70 and Grevera et al.71,72

and appear here with permission.

REFERENCES

1. Udupa JK: DISPLAY—A System of Programs for Two-and Three-dimensional Display of Medical Objects from CTData. Technical Report MIPG41, Medical Image ProcessingGroup, Department of Computer Science, SUNY/Buffalo,Buffalo, 19802. Udupa JK: DISPLAY82—A System of Programs for the

Display of 3D Information in CT Data. Technical ReportMIPG67, Medical Image Processing Group, Department ofRadiology, University of Pennsylvania, Philadelphia, 19833. Chen LS, Herman GT, Meyer CR, Reynolds RA, Udupa

JK: 3D83—An easy-to-use software package for three-dimen-sional display from computed tomograms. In: Proceedings ofIEEE Computer Society International Symposium on MedicalImages and Icons, Arlington, 1984, pp 309–3164. Udupa JK, Herman GT, Margasahayam PS, Chen LS,

Meyer CR: 3D9S: A turnkey system for the display andanalysis of 3D medical objects. SPIE Proc 671:154–168, 1986

5. Robb RA, Hanson DP, Karwoski RA, Larson AG,Workman EL, Stacy MC: ANALYZE: A comprehensive,operator-interactive software package for multidimensionalmedical image display and analysis. Comput Med ImagingGraph 13:433–454, 1989

6. Udupa JK, Odhner D, Samarasekera S, Goncalves R, lyerK, Venugopal K, Furuie S: 3DVIEWNIX: an open, transport-able, multidimensional, multimodality, multiparametric imagingsoftware system. SPIE Proc 2164:58–73, 1994

7. Udupa JK, Hung HM, Odhner D, Goncalves R: Multidi-mensional data format specification: A generalization of theAmerican College of Radiology National Electric Manufac-turers Association Standards. J Digit Imaging 5(l):26–45, 1992

8. Ibanez L, Schroeder W, Ng L, Cates J: The ITK SoftwareGuide. New York: Kitware, 2003

9. Wolf I, Vetter M, Wegner I, Böttger T, Nolden M,Schöbinger M, Hastenteufel M, Kunert T, Meinzer H-P: TheMedical Imaging Interaction Toolkit (MITK). Med Image Anal9(6):594–604, 2005

10. Zhao M, Tian J, Zhu X, Xue J, Cheng Z, Zhao H:Design and implementation of a C++ toolkit for integratedmedical image processing and analyzing. Proc SPIE 5367:39–47, 2004

11. Gary K, Ibanez L, Aylward S, Gobbi D, Blake MB,Cleary K: IGSTK: An open source software toolkit for image-guided surgery. Computer 39(4):46–53, 2006

12. Falcao A, Udupa JK, Samarasekera S, Sharma S, HirschBE, Lotufo R: User-steered image segmentation paradigms:Live wire and live lane. Graph Models Image Process 60(4):233–260, 1998

13. Falcao A, Udupa JK, Miyazawa FK: An ultra-fast user-steered image segmentation paradigm: Live-wire-on-the-fly.IEEE Trans Med Imag 19(1):55–62, 2000

14. Nyul LG, Udupa JK, Zhang X: New variants of amethod of MRI scale standardization. IEEE Trans Med Imag 19(2):143–150, 2000

15. Saha PK, Udupa JK: Scale-based image filteringpreserving boundary sharpness and fine structure. IEEE TransMed Imag 20(11):1140–1155, 2001

16. Nyul LG, Udupa JK, Saha PK: Incorporating a measureof local scale in voxel-based 3-D image registration. IEEETrans Med Imag 22(2):228–237, 2003

17. Souza A, Udupa JK, Saha PK: Volume rendering in thepresence of partial volume effects. IEEE Trans Med Imag 24(2):223–235, 2005

18. Madabhushi A, Udupa JK, Souza A: Generalized scale:Theory, algorithms, and application to image inhomogeneitycorrection. Comput Vis Image Underst 101:100–121, 2006

19. Madabhushi A, Udupa JK: New methods of MR imageintensity standardization via generalized scale. Med Phys 33(9):3426–3434, 2006

20. Udupa JK, Hung HM, Odhner D, Goncalves R: The3DVIEWNIX Software System, Data Format Specification: AMultidimensional Extension to the ACR-NEMA Standards.Version 1.0. Technical Report MIPG177, Medical ImageProcessing Group, Department of Radiology, University ofPennsylvania, Philadelphia, 1991

21. National Electrical Manufactures Association (NEMA):Digital Imaging and Communication in Medicine (DICOM)Part 1: Introduction and Overview. Washington, DC: NEMA,1993

116 GREVERA ET AL.

Page 17: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

22. Altschuler MD, Censor Y, Eggermont PBB, HermanGT, Kuo YH, Lewitt RM, McKay MR, Tuy H, Udupa JK,Yau MM: Demonstration of a software package for thereconstruction of the dynamically changing structure of thehuman heart from cone-beam x-ray projections. J Med Syst 4(2):289–304, 1980

23. Udupa JK: Display of 3-D information in discrete 3-Dscenes produced by computerized tomography. Proc IEEE71:420–431, 1983

24. Herman GT, Udupa JK: Display of 3-D information in 3-D digital images: Computational foundations and medicalapplications. IEEE Comput Graph Appl 3:39–46, 1983

25. Udupa JK, Odhner D: Fast visualization, manipulation,and analysis of binary volumetric objects. IEEE Comput GraphAppl 11(6):53–62, 1991

26. Grevera GJ, Udupa JK, Odhner D: An order ofmagnitude faster surface rendering in software on a PC thanusing dedicated rendering hardware. IEEE Trans Vis ComputGraph 6(4):335–345, 2000

27. Lorensen WE, Cline HE: Marching cubes: A highresolution 3D surface construction algorithm. Comput Graph21(4):163–169, 1987

28. Udupa JK, Odhner D: Shell rendering. IEEE ComputGraph Appl 13(6):58–67, 1993

29. Lacroute P, Levoy M: Fast volume rendering using ashear-warp factorization of the viewing transformation. In:Proceedings of SIGGRAPH. New York: ACM Press, 1994,pp 451–458

30. Falcao AX, Rocha LM, Udupa JK: Comparative analysisof shell rendering and shear-warp rendering. SPIE Proc4681:472–482, 2002

31. Udupa JK: Interactive segmentation and boundarysurface formation for 3-D digital images. Comput Graph ImageProcess 18:213–235, 1982

32. Odhner D, Udupa JK: Shell manipulation: Interactivealteration of multiple-material fuzzy structures. SPIE Proc2431:35–42, 1995

33. Udupa JK: Determination of 3-D shape parameters fromboundary information. Comput Graph Image Process 17:52–59,1981

34. Nystrom I, Udupa JK, Grevera GJ, Hirsch BE: Area ofand volume enclosed by digital and triangulated surfaces. SPIEProc 4681:669–680, 2002

35. Stindel E, Udupa J, Hirsch B, Odhner D, Couture C: 3DMR image analysis of the morphology of the rear foot:Application to classification of bones. Comput Med ImagingGraph 23:75–83, 1999

36. Stindel E, Udupa J, Hirsch B, Odhner D: A character-ization of the geometric architecture of the peritalar jointcomplex via MRI: An aid to classification of feet. IEEE TransMed Imag 18:753–763, 1999

37. Udupa J, Hirsch B, Samarasekera S, Hillstrom H, BauerG, Kneeland B: Analysis of in vivo 3D internal kinematics ofthe joints of the foot. IEEE Trans Biomed Eng 45:1387–1396,1998

38. Grevera GJ, Udupa JK: Shape-based interpolation ofmultidimensional grey-level images. IEEE Trans Med Imag 15(6):881–892, 1996

39. Raya SP, Udupa JK: Shape-based interpolation ofmultidimensional objects. IEEE Trans Med Imag 9(l):32–42,1990

40. Higgins WE, Morice C, Ritman EL: Shape-basedinterpolation of thin structures in three-dimensional images.IEEE Trans Med Imag 12(3):439–450, 1993

41. Herman GT, Zheng J, Bucholtz CA: Shape-basedinterpolation. IEEE Comput Graph Appl 12(3):69–79, 1992

42. Treece GM: Volume Measurement and Surface Visual-isation in Sequential Freehand 3D Ultrasound. Ph.D. Thesis,Cambridge University, 200043. Wells WM III, Viola P, Atsumi H, Makajima S, Kikinis

R: Multi-modal volume registration by maximization of mutualinformation. Med Image Anal 1(1):35–51, 199644. Lauchaud JO, Montanvert A: Continuous analogs of

digital boundaries: A topological approach to iso-surfaces.Graph Models 62(3):129–164, 200045. Gerig G, Kubler O, Kikinis R, Jolesz FA: Nonlinear

anisotropic filtering of MRI data. IEEE Trans Med Imag 11(2):221–232, 199246. Saha PK, Udupa JK: Scale-based image filtering

preserving boundary sharpness and fine structure. IEEE TransMed Imag 20(11):1140–1155, 200147. Perona P, Malik J: Scale-space and edge detection using

anisotropic diffusion. IEEE Trans Pattern Anal Mach Intell 12(7):629–639, 199048. Zhuge Y, Udupa JK, Liu J, Saha PK, Iwanaga T: Scale-

based method for correcting background intensity variation inacquired images. Proc SPIE 4684:1103–1111, 200249. Udupa JK: Multidimensional digital boundaries. CVGIP

Graph Models Image Process 50(4):311–323, 199450. Udupa JK, Srihari SN, Herman GT: Boundary detection

in multidimensions. IEEE Trans Pattern Anal Mach Intell 4:41–50, 198251. Boykov Y, Veksler O, Zabih R: Fast approximate energy

minimization via graph cuts. IEEE Trans Pattern Anal MachIntell 23:1222–1239, 200152. Udupa J, Samarasekera S: Fuzzy connectedness and

object definition: Theory, algorithms, and applications inimage segmentation. Graph Models Image Process 58:246–261, 199653. Saha P, Udupa J, Odhner D: Scale-based fuzzy

connected image segmentation: Theory, algorithms and valida-tion. Comput Vis Image Underst 77:145–174, 200054. Saha P, Udupa J: Relative fuzzy connectedness among

multiple objects: Theory, algorithms, and applications in imagesegmentation. Comput Vis Image Underst 82:42–56, 200155. Saha P, Udupa J: Fuzzy connected object delineation:

Axiomatic path strength definition and the case of multipleseeds. Comput Vis Image Underst 83:275–295, 200156. Udupa J, Saha P, Lotufo R: Relative fuzzy connected-

ness and object definition: Theory, algorithms, and applicationsin image segmentation. IEEE Trans Pattern Anal Mach Intell24:1485–1500, 200257. Jones T: Image-Based Ventricular Blood Flow Analysis.

Doctoral Dissertation, University of Pennsylvania, 199858. Cutrona J, Bonnet N: Two methods for semi-automatic

image segmentation based on fuzzy connectedness and water-sheds. France-Iberic Microscopy Congress, Barcelona, 2001, pp23–2459. He R, Narayana P: Detection and delineation of multiple

sclerosis lesions in gadolinium-enhanced 3D Tl-weighted MRIdata. In: Proceedings of IEEE Symposium on Computer BasedMedical Systems, 2000

CAVASS: A COMPUTER-ASSISTED VISUALIZATION AND ANALYSIS SOFTWARE SYSTEM 117

Page 18: CAVASS: A Computer-Assisted Visualization and Analysis ... · CAVASS: A Computer-Assisted Visualization and Analysis Software System George Grevera,1,2Jayaram Udupa, 2Dewey Odhner,

60. Aldeliesten T, Niessen W, Vincken K, Maintz J, JansenF, van Nieuwenhuizen O, Viergever M: Objective andreproducible segmentation and quantification of tuberoussclerosis lesions in FLAIR brain MR images. Proc SPIE4322:1509–1518, 200161. Jin Y, Laine A, Imielinska C: An adaptive speed term

based on homogeneity for level-set segmentation. Proc SPIE4684(1):383–390, 200262. Henn S, Lemole MG, Ferreira MAT, Gonzalez FL,

Schornak M, Preul MC, Spetzler RF: Interactive stereoscopicvirtual reality: a new tool for neurosurgical education. JNeurosurg 96(1):144–149, 200263. Sethian J: Level Set Methods. Cambridge: Cambridge

University Press, 199664. Raya SP, Udupa JK, Barrett WA: A PC-based 3D

imaging system: algorithms, software, and hardware consider-ations. Comput Med Imaging Graph 14(5):353–370, 199065. Frieder G, Gordon D, Reynolds RA: Back-to-front

display of voxel-based objects. IEEE Comput Graph Appl5:52–60, 1985

66. Mockus A, Fielding RT, Herbsleb JD: Two case studiesof open source software development: Apache and Mozilla.ACM Trans Softw Eng Methodol 11(3):309–346, 2002

67. Cochran S: wxWindows 2.2 offers cross-platform alter-native to Java. Dr Dobb’s J, August 2000

68. Zeitlin V: The wxWindows cross-platform framework.Dr Dobb’s J, May 2001

69. Rampersad T: wxWindows for cross-platform coding.Linux J 2003(111):6, 2003

70. Udupa JK, Grevera GJ, Odhner D, Zhuge Y, Souza A,Mishra S, Iwanaga T: CAVASS: a computer-assisted visuali-zation and analysis software system—image processing aspects.SPIE Proc 6509, 2007

71. Grevera GJ, Udupa JK, Odhner D, Zhuge Y, Souza A,Mishra S, Iwanaga T: CAVASS: a computer assisted visuali-zation and analysis software system—visualization aspects.SPIE Proc 6509, 2007

72. Grevera GJ, Udupa JK, Odhner D, Zhuge Y, Souza A,Mishra S, Iwanaga T: Introducing CAVASS: a computer-assistedvisualization and analysis software system. SPIE Proc 6516, 2007

118 GREVERA ET AL.