Active Contours
Alan L. Scheinine, Marco Donizelli and Marco Pescosolido
CRS4 (Center for Advanced Studies, Research and Development in Sardinia)
via Nazario Sauro 10, 09123 Cagliari (Italy)
Email: donza@crs4.itAbstract. In this paper we describe the first prototype of a distributed medicalimaging system suitable for the visualisation and processing of medical images.The prototype is an object-oriented client-server system that provides a com-plete framework for the interactive segmentation of blood vessel contours fromX-Ray Computed Tomography (CT) or Magnetic Resonance Imaging (MRI)scans, through the method of snakes or active contours. The system has beenimplemented exploiting the benefits of recent software developments, such asthe Java language programming and the CORBA distributed object technology,which simplify the building, the maintenance and the portability of this kind ofdistributed applications.
Keywords: Distributed medical imaging systems, Distributed computing, Java,CORBA, Active contours
1 Introduction
Beyond the immediate diagnostic value of medical images from X-Ray ComputedTomography (CT), Magnetic Resonance Imaging (MRI) and ultrasound scans, imagedata can be used for physical analysis and simulation. For example, the reconstructionas a geometric data set of a section of an artery could be used for medical proceduralplanning and for conducting research in vascular physiophathology through fluiddynamic simulations [1]. This key role played by medical imaging has led to an in-creasing demand for electronic medical imaging systems (EMISs, [2]) that allow visu-alisation and processing of medical images. Recently, the growing demand for EMISshas been coupled with a need to access medical images and other diagnostic informa-tion remotely across networks, and to integrate and analyse data from various sources.These requirements, together with the development of data interchange standard for-mats such as DICOM [3], has also led to an increasing demand for distributed EMISs[1]. These systems go far beyond the original previsions of the instruments as stand-alone diagnostic workstations, and must have the capabilities to access images acrossnetworks, provide powerful image processing tools, as well image retrieval and stor-age mechanisms, manage various data from various sources, and integrate differentsoftware packages. Recent software developments, such as the Java programminglanguage [4] and the CORBA distributed object technology [5], meet the needs un-
derlying these distributed EMISs, simplifying their development, maintenance andportability. This paper describes the design and implementation of the first prototypeof a distributed EMIS suitable for the visualisation and processing of medical imagesfrom different modalities. The prototype is an object-oriented client-server system thatprovides a complete framework for the interactive segmentation of CT or MRI scansof carotid artery sections including the first bifurcation, through the method of snakesor active contours [6].
2 The System Requirements
In the design of the system prototype, the following requirements have been consid-ered:
• The prototype must provide a complete, usable and efficient graphical user-interface (GUI), with all the controls needed to manage, visualise and processa sequence of images. In particular, the GUI must provide all the tools usefulto interact with a snake-based edge detection algorithm and to evaluate the al-gorithm results (due to the poor definition of medical images and the com-plexity of anatomical structures a user interaction is essential to guide thesegmentation process [7]).
• The prototype GUI must be portable, in order to lead the visualisation and the
processing of the images on any platform.
• The prototype GUI must be flexible, in order to permit the implementation of
time-consuming segmentation algorithms using the most appropriate fastcomputer language and, possibly, the execution on special-purpose machines.• The framework for the communication and the data exchange among the
prototype components must be able to work with different languages and plat-forms.
• The prototype architecture must be scalable, in order to lead the simple addi-tion of new segmentation algorithms or other useful system components with-out requiring the rewriting of the system.
3 Solution: Java and Distributed Object Technology
The Java programming language [4] and the CORBA distributed object technology[5] have met the requirements underlying the design of the system listed above.
Java is an object-oriented programming language that has sparked over the pasttwo years considerable interest among software developers. Besides the properties thatit has in common with other OO languages (modularity, reusability, security), threefeatures supported by Java has been particularly relevant to its choice as the languageused to implement the prototype GUI:
• Java is a complete programming environment that provides a complete set of
services and packages that support GUI development, graphics and imagevisualisation and treatment.
Java is a platform-independent language, so an application written in Java iscompletely portable and executable on any platform.
• Java has built-in support for multi-threading programming, relevant for an
application like a medical imaging system characterised by time-consumingprocessing algorithms.
In addition to these three properties, Java has also built-in support for TCP/IP basednetworking and for distributed computing middleware (Java RMI). Even if this featureguarantees the possibility of developing distributed applications within the Java envi-ronment, a different technology has been chosen to implement the framework thatmanages the communication among the system prototype components: the CORBAdistributed object technology. CORBA, the Common Object Request Broker Archi-tecture defined by the Object Management Group (OMG), specifies how softwareobjects distributed over a network can work together without regard to client andserver operating systems and programming languages. The kernel of the CORBAarchitecture is the CORBA Object Request Broker (ORB), the middleware that estab-lishes the client-server relationships between objects. Using an ORB, a client objectcan invoke a method on a server object that can be on the same machine or across thenetwork. The ORB intercepts the call and finds an object that implements the request,passes it the parameters, invokes its method, and returns the result. The client does nothave to know the object’s location, neither its programming language nor its operatingsystem: the ORB takes care of all these details. An ORB can manage various serverson different hosts, and this guarantees the complete scalability of a CORBA-baseddistributed system. Since the Java and C++ binding of CORBA are based on the ob-ject method invocation, CORBA is completely compatible with object-oriented lan-guages as Java or C++, leading in this way the simple development of distributedapplication as the proposed medical system.
•
4 The System Architecture
Figure 1 shows the object-oriented distributed architecture of the system prototype.
Local Host Request Request Remote HostOBJECTREQUEST BROKERJava User Interface Result ResultC++Segmentation AlgorithmObjectImplementationFigure 1. The OO distributed architecture of the system prototype.
The client side of the system is represented by a GUI written in Java. It has been im-plemented developing a set of packages and classes that represent both the visualcomponents of the interface and the underlying modules needed to perform the re-trieving, the treatment and the visualisation of a sequences of images, some simpleimage processing routines, and the complex remote snake-based segmentation proce-dures:
Package slice: contains the classes useful to the creation and storage in mem-ory of the images that form the CT or MRI scan sequence to analyse. The im-age data can be retrieved from graphic files of various formats (GIF, JPEG,BMP, and raw data), or from URL locations, or from a DICOM archivethrough a TCP/IP socket-based DICOM server.
• Package sequence: contains the classes that build the GUI components useful
to visualise in various ways the entire sequence of images.
• Package slicedisplayer: contains the classes that build the GUI component
useful to visualise an image of the sequence, in which it is possible to performsimple image processing operations and to draw interactively overlays on theimage.
• Package image: contains classes that build the GUI components useful both
to display some characteristics of the visualised image (histogram, cross-section, bit-planes) and to modify interactively the appearance of the image(contrast stretching, grey-scale slicing, intensity mappings).
• Package overlay: contains all the classes needed to draw, modify and store in
memory the overlays on the visualised image.
• Package segmentation: contains the classes that build the GUI components by
which the user can employ the remote snake-based segmentation algorithms.
A generic snake-based edge detection algorithm written in C++ represents the serverside of the system. For now, in the prototype only one algorithm is available, based onthe Generalized Active Contour Model theory [8]. It has been implemented using thepublic-domain C++ library GSNAKE API [9], jointly developed by the InformationTechnology Institute (ITI), Singapore, and the School of Applied Science, NanyangTechnological University (NTU), Singapore.
The client side and the server side of the system are connected through the func-tionalities of a CORBA Object Request Broker. The data types and methods useful toperform a complete remote segmentation procedure have been defined following theCORBA specifications and using an Interface Definition Language (IDL), which hasbeen subsequently mapped both to the Java language and to the C++ language. Theclasses so obtained have been integrated into the Java GUI and the C++ algorithm,and their methods invocation represent the modality by which the client side and theserver side of the system interoperate through the ORB during a segmentation session.These methods concern the connection and the disconnection between client andserver, the posting of the image data and of the initial contour points from the client tothe server for being processed, the posting of the extracted contour from the server tothe client for being visualised and postprocessed.
•
5 Discussion
Fig. 2 shows the contours extracted from three different CT scans of a carotid arteryusing the functionalities provided by the described system. The good result obtained,together with the good performances of the system and its relative simplicity of im-plementation, indicate that the technologies such as Java and CORBA are suitable forthe design and development of medical imaging systems. The object-oriented feature
of the system guarantees its simple maintenance and scalability, while its client-serverarchitecture allows the different components of the system to be implemented usingthe most appropriate computer language and platform.
Figure 2. The contours extracted from three different CT scans of a carotid artery using thefunctionalities provided by the described system.
Acknowledgements
The authors gratefully acknowledge Dr. Massimiliano Tuveri for his important help inproviding vascular image sequences.
References
1. D. P. Giddens, C. K. Zarins and S. Glagov: The Role of Fluid Mechanics in Lo-calization and Detection of Atherosclerosis. Journal of Biomechanical Engineering115:588-594, 1993.
2. P. Jain, S. Widoff, D. C. Schmidt: The Design and Performance of MedJava.USENIX Conf. On Object-Oriented Technologies and Systems, Sante Fe, NewMexico, April 1998.
3. NEMA Standard Publication PS3.X: Digital Imaging and Communications inMedicine Parts 1-10, 1994.
4. M. Campione and K. Walrath: The Java Tutorial - Object-Oriented Programmingfor the Internet. Addison-Wesley, 1996.
5. R. Ben-Natan: CORBA - A Guide to Common Object Request Broker Architec-ture. McGraw-Hill, 1995.
6. M. Kass, A. Witkin and D. Terzopoulos: Snakes: Active Contour Models. IEEEConf. On Computer Vision and Pattern Recognition:259-268, 1987.
7. G. J. Sicewright, J. M. Knapman, W. Dickson and P. J. Elliot: Interactive ImageSegmentation Applied to CT and MR Images, Proc. of CAR:328-333, 1993.
8. K. F. Lai and R. T. Chin: Deformable Contours: Modeling and Extraction. IEEETransactions on Pattern Analysis and Machine Intelligence 17(11):1084-1090,1995.
9. K. F. Lai, S. Chan, C. W. Ngo, E. L. Ang and K. W. Ong: GSnake API version1.0: reference manual. 1995.
因篇幅问题不能全部显示,请点此查看更多更全内容