
Marching Through the Visible Man
The National Library of Medicine is creating a digital atlas of the
human body. This project, called the Visible Human, has already
produced computed tomography, magnetic resonance imaging and physical
cross-sections of a human male cadaver. This paper describes a
methodology and results for extracting surfaces from the Visible
Male's CT data. We use surface connectivity and isosurface extraction
techniques to create polygonal models of the skin, bone, muscle and
bowels. Early experiments with the physical cross-sections are also
reported.
There is a companion paper on the Visible Woman.
Make Your Own Visible Woman
shows how to use the Visualization Toolkit to
make and render surface models of the Visible Woman.
For more examples of 3D medical imaging done in our laboratory go to our Scientific Movie Library.
Contents:
-
Introduction
-
The Visible Man
-
Define a Methodology
-
Our Methodology
-
Results
-
Conclusions
-
Acknowledgments
-
References
-
More Images
-
In 1989, the National Library of Medicine (NLM) began an ambitious
project to create a digital atlas of the human anatomy. The NLM
Planning Panel on Electronic Image Libraries [1] recommended a project
to create XRAY Computed Tomography (XRAY-CT), Magnetic Resonance
Imaging (MRI) and physical sections of a human cadaver. The project is
called "The Visible Man." Another cadaver, that of a 59 year-old
woman, "The Visible Woman", was completed
in the Summer of 1995. See the companion paper.
Our laboratory has a long history of constructing 3D models from
contiguous CT and MRI cross-sections. The Visible Man data sets
provide an opportunity to test our algorithms on publicly available
data. The data is interesting because of its size and variety of
modalities. Also, its availability on the Internet means that other
researchers can apply their algorithms to a common data set. In the
past it has been difficult to obtain medical data because of patient
confidentiality.
This paper reports our early experiments with the Visible Man CT data
in the hopes that others will benefit from our experiences. The paper
proceeds as follows. First we briefly discuss the background on the
"Visible Man" and the four data sets. We describe the logistics of
working with such large data sets and summarize the various parameters
for the fresh CT data. Then, we propose a methodology for reporting
algorithm results. We describe the methods and materials we used to
create the models illustrated in subsequent sections.
In August of 1991 NLM awarded a contract to the University of Colorado
Health Sciences Center to create the digital cross-sections of a
39-year old convicted murderer who had donated his body to
science. The radiological data was created using commercial MRI and
XRAY-CT. Two CT data sets were created: one of the fresh cadaver, the
other after the cadaver was frozen. Then, the cadaver was embedded in
gelatin, frozen and sliced from head to toe. As each layer was
exposed, a color RGB photograph was taken. Over 1800 24-bit images
2048 by 1216 were created.
The Fresh CT Data Set
Since we have experience working with radiological cross-sections from
CT and MRI, our initial experiments used the CT data. We chose the
fresh CT data because there is better soft tissue contrast from the
data taken before the subject was frozen. Also, the fresh CT data is
the most manageable of the four data sets. And, segmentation of soft
tissue / air boundaries and bone are particularly easy for CT
data. Compared to the MRI data, the slice spacing of the CT data is
sufficient to produce decent 3D models.
Logistics
We obtained the fresh CT data using ftp via the Internet. Internet
access is available to users that sign a license agreement with
NLM. The data is stored one slice per file and the files have been
compressed using the unix compress program. Uncompressed, each slice
is 512 x 512 x 16 bits with a 3416 byte header. The format of the
headers is General Electric Genesis described in the
Medical
Image Format FAQ. The image header contains among other things the
table position and field of view. These are important quantities when
working with this data since the spacing between the slices and the
pixel size changes several times throughout the data set. The slices
are named as follows: c_vmxxxx.fre where xxxx is the location in mm's
of the slice. There are 522 slices in the fresh CT data set using
about 274 megabytes of disk storage.
Description of the CT data from headers
The first step to understand the data was to print the header
information. In particular, we need to know the size of the pixels,
and the distance between each slice. Also the order of acquisition is
important so that we retain the proper left / right correspondence. In
the fresh CT data set, the order of acquisition was from top to
bottom.
The fresh CT data was acquired in several sections with varying pixel
size and slice spacing. Because of this, we broke the data set into
nine sections. We created a new section when at least one of three
changes occurred in the slice headers:
- Change in field of view (fov).
- Change in slice spacing.
- Gap in acquisition.
The following summarizes the data for the nine sections.
Section Slice # Fov Pixel Spacing Aspect Location
# Range Size Ratio
----------------------------------------------------------------
0 1-8 8 250 .48828 1 2.048 390-383
1 9-67 59 460 .8984375 1 1.11304 382-324
2 68-150 83 345 .673828 1 1.48406 323-241
3 151-191 41 450 .8789063 3 3.41333 240-120
4 192-246 55 460 .8984375 3 3.33913 117- -45
5 247-258 12 460 .8984375 3 3.33913 -51 - -84
6 259-418 160 460 .8984375 3 3.33913 -90 - -565
7 419-480 62 480 .9375 5 5.33333 520 - 215
8 481-522 42 480 .9375 5 5.33333 -210 - -415
We propose a simple methodology to report results on the Visible Human
data sets. These are by no means rigid rules, just guidelines for
reporting results. The goal is to allow researchers to reproduce the
results reported by others and to compare their results.
- Define methods and materials. Identify the software used in each
processing step and the origin of the software. Cite any references
that describe the algorithms. Describe the hardware configurations
used for processing the data.
- Define parameters for each algorithm. Be specific enough so that
another researcher, using the same or similar software, could
reproduce the results. Parameters include region of interest
coordinates, threshold values, opacity values and connectivity seeds.
- Report results Include timings for each step. Although the actual
times often depend on particular implementations, these times will
give the reader a general feel for the processing times.
If additional images or animations are available report the site where they can be
obtained. Use Uniform Resource Locators (URL's) when appropriate.
Hardware
This work was done on an Onyx Reality Engine 2 (Silicon Graphics, Mountain View, CA)
with the following configuration:
2 150 MHZ IP19 Processors
CPU: MIPS R4400 Processor Chip Revision: 5.0
FPU: MIPS R4010 Floating Point Chip Revision: 0.0
Data cache size: 16 Kbytes
Instruction cache size: 16 Kbytes
Secondary unified instruction/data cache size: 1 Mbyte
Main memory size: 256 Mbytes, 2-way interleaved
Software
The Reality Engine was running Irix 5.3. We used a variety of software
tools we call the Research Workstation, all developed in-house. All of
the software works with 16-bit medical images.
- Mrx
- is an image display package that allows users to access medical
images stored in a variety of formats. We use it to inspect the
image data and select thresholds for surfaces.
- Surf3d
- is a surface tracking connectivity program [2] that takes user
specified seed points and marks all voxels that are connected to the
initial seeds and that satisfy a threshold range.
- Softreformat
- is a volume reformatting program that uses tri-linear interpolation to resample
volume data on arbitrary planes.
- Cubes
- implements the Marching Cubes algorithm [3] and creates triangles
from volume data. This implementation can process all of a volume, or
only those voxels whose connectivity bit has been set by surf3d.
- LYMB [4]
- is an object-oriented development system written in C that permits
object creation and modification through a scripting language. The
objects in LYMB are C modules that implement methods in C
procedures. One of these objects, decimate, implements the triangle
decimation algorithm described in [5]. We use decimate to reduce the
number of triangles in the models created by cubes. LYMB also has
extensive visualization and rendering capabilities. A user interface
and rendering subsystem in LYMB were used to create the images in the
paper.
We applied a single methodology to extract skin, bone, muscle, and the
bowels from the fresh CT data.
Bone and Skin
We used the same threshold throughout the 9 sections of the CT data
set to extract the skin and bone. For the skin, we applied the
connectivity algorithm followed by Marching Cubes with a density value
of 600 to remove the patient table and internal air passages from the
extracted surfaces. We also applied two iterations of the decimation
algorithm to the skin surface. We started with a decimation value of
.0002 (or 2%) of the field of view. The skin has less detail than the
internal surfaces and we can afford to reduce the number of skin
triangles more heavily than for the internal surfaces. We did not
apply connectivity for the bone surface since there are many
disconnected pieces of bone in the body. A density value of 1224 was
used for the bone, the same value we have used successfully on other
CT data sets. Table 2 shows triangle counts and timings for the skin
surfaces. Table 3 shows the timings and counts for the bone. The times
for each step are central processor unit (CPU) times. The images in
Figure 2 where created using
LYMB. The surfaces for each section were manually aligned using an
interactive rendering interface in LYMB. We chose section 6 as the
center of the model and moved the other sections relative to this
surface. Table 4 shows the relative movements of each section measured
in millimeters.
Section Connect Time Cubes Time Decimate Time(sec)
0 31616 0.67 63662 4.14 27168 14.24
1 65584 4.01 131448 18.17 53362 28.27
2 139922 6.20 281013 30.00 96354 68.54
3 115732 3.28 231683 18.52 77861 54.01
4 139624 4.38 277848 23.71 70773 82.61
5 27213 0.91 54476 4.76 12480 20.28
6 524253 14.04 1049476 79.69 29507 322.05
7 167288 5.07 334643 30.32 84342 89.46
8 93266 2.90 186630 17.08 71485 43.04
----- ----- ------- ----- ----- -----
Totals 1304498 41.46 2610877 226.39 798227 722.50
TABLE 2. Triangle Counts and Times for Skin.
Section Cubes Time Decimate Time(sec)
0 38394 6.23 17799 7.64
1 257356 49.06 139852 47.31
2 865454 93.78 541654 135.41
3 193102 34.24 137717 28.63
4 915904 77.94 679246 125.05
5 158174 14.58 118091 20.90
6 1990946 199.20 1501322 273.11
7 74864 41.58 49610 12.46
8 220916 33.16 168579 28.39
Totals 4715110 549.77 3353870 678.9
TABLE 3. Triangle Counts and Times for Bone.
Section x y z
0 104 165 482
1 0 0 473
2 57 57 413
3 5 5 330
4 0 0 207
5 0 0 39
6 0 0 0
7 -13 -8 -480
TABLE 4. Offsets (in mm's) for each section.
We also reconstructed coronal cross-sections for each of the data sets
using the softreformat program of the Research Workstation, composing
the reformatted image in Figure 2
using Jeff Poskanzer's Portable Bitmap
utilities. The gaps in the reformatted images show the boundaries
of the 8 sections (the 9th contains the feet and is not contiguous
with the other sections).
Bowels.
The bowels were extracted from section 6 by first
running the connectivity algorithm and then Marching Cubes with a
density of 700. The muscle was similarly extracted using connectivity
and Marching Cubes with a density of 1010. The region of interest for
the muscle was restricted to slices 100 - 160 because the CT scan
artifacts higher in the body caused the connectivity algorithm to
leak. Two decimation iterations were applied to both the muscle and
bowel surfaces. The bowels were colored with (red, green, blue) values
of (.89, .81, .34) with a specular component of .4 and a specular
power of 10. The muscle color is (.6980, .1333, .1333), specular
component .4 and specular power 10. We created a separate back face
property for these two surfaces by reducing the diffuse component of
each material to .4. This surface visualization technique is useful to
give the viewer a clue as to which surface is an outward surface and
which is an inward surface.
Muscles in the Leg.
The thigh muscles are in section 7. We extracted them using the same
density value, 1010, that we used in section 6. A separate
connectivity seed was specified for each muscle.
Flying Through the Body.
We created a flight through the bone surfaces extracted for the whole
data set. We first rendered the skin model for each section properly
displaced. Then, using the picking facility in LYMB, we selected 40
points with a mouse from the skin to serve as key frames for an
animation. We key framed both the camera look from and look at points
using consecutive picked points. LYMB created a smooth camera motion
by interpolating the from and to points using splines [6]. We
specified 1 second of animation between each key frame point,
resulting in 1200 animation frames. Before rendering the sequence, we
turned off the skin surface, rendered each frame and saved them to
disk. The Silicon Graphics movieconvert program created a lossless
QuickTime movie. After transferring the 550 megabyte QuickTime movie
to a Macintosh, we single frame recorded the animation using the
DiaQuest animaq software controlling a JVC BR-S811U S-VHS VCR. Figures
5 and 6 shows two frames from the resulting
animation.
We also produced animations to view the torso
and fly around the thighs.
Working with the Physical Cross-Sections.
We have done some preliminary investigation of the physical
cross-sections. Here we split each color physical cross-section into
its red, green and blue components shown in Figure 7. Then, we applied the
grey-scale algorithms described above to the red channel only. Figure
8 shows a front view and a profile of the extracted skin surface
from 215 slices. We selected the outer skin by first running the
connectivity program marking 1538827 voxels and then extracting
3106832 triangles in 181 seconds. We ran two decimation iterations
that removed 1226351 triangles.
The National Library of Medicine through the Visible Human Project has
provided the medical research and educational community with a rich
set of anatomical data. The general availability of the data will
encourage researchers to develop new algorithms and compare their
work with others. Our experience with that data has been positive
although any group working with the data must be prepared to dedicate
large amounts of disk storage and computer resources to the
project. Practically, most groups will work with subsets of the data,
concentrating on perhaps a few anatomical parts of regions. We expect
that the major effort in the next few years will be to segment the
Visible Man (and Woman). Such a large task will require cooperation of
many research groups throughout the world. Central repositories of
segment information will be required and we hope the NLM will be able
to provide such facilities.
Most of this work was performed while the author was a visiting
scientist at the Center for In-Vivo Microscopy at Duke University
Medical Center. Al Johnson, Director of the Laboratory, and his staff
provided a rich hardware and software environment for these
experiments. Others will find that working with such large data sets
puts pressure on most laboratory resources.
- National Library of Medicine (U.S.) Board of Regents. Electronic
imaging: Report of the Board of Regents. U.S. Department of Health and
Human Services, Public Health Service, National Institutes of Health,
1990. NIH Publication 90-2197.
- Cline, H. E., Dumoulin, C. L., Lorensen, W. E., Hart, H. R., and
Ludke, S., "3D Reconstruction of the Brain from Magnetic Resonance
Images Using a Connectivity Algorithm," Magnetic Resonance Imaging,
vol. 5, no. 5, pp. 345-352, 1987.
- Lorensen, W. E. and Cline, H. E., "Marching Cubes: A High
Resolution 3D Surface Construction Algorithm," Computer Graphics,
vol. 21, no. 3, pp. 163-169, July 1987.
- Schroeder, W., Lorensen, W., Montanaro, G. and Volpe, C., "Visage:
An Object-Oriented Scientific Visualization System," in Proceedings
of Visualization '92, IEEE Press, October 1992, pp. 219-226.
- Schroeder, W. J., Zarge, J., and Lorensen, W. E., "Decimation of
Triangle Meshes," Computer Graphics, vol. 26, no. 2, pp. 65-70, August
1992.
- Kochanek, D. H. U. and Bartels, R. H., "Interpolating Splines with
Local Tension, Continuity, and Bias Control," Computer Graphics,
vol. 18, no. 3, pp. 33-41, July 1984.
From the fresh CT data
From the physical slice data
Questions / Comments
James Miller
(millerjv@crd.ge.com)
Last Updated:
GE Home Page |
GE Global Research