Citation
JointTrack

Material Information

Title:
JointTrack An Open-Source, Easily Expandable Program for Skeletal Kinematic Measurement Using Model-Image Registration
Creator:
Mu, Shang
Place of Publication:
[Gainesville, Fla.]
Florida
Publisher:
University of Florida
Publication Date:
Language:
english
Physical Description:
1 online resource (27 p.)

Thesis/Dissertation Information

Degree:
Master's ( M.S.)
Degree Grantor:
University of Florida
Degree Disciplines:
Mechanical Engineering
Mechanical and Aerospace Engineering
Committee Chair:
Banks, Scott A.
Committee Members:
Wu, Dapeng
Fregly, Benjamin J.
Graduation Date:
12/14/2007

Subjects

Subjects / Keywords:
Architectural models ( jstor )
Data types ( jstor )
Distance functions ( jstor )
Graphical user interfaces ( jstor )
Image processing ( jstor )
Kinematics ( jstor )
Knees ( jstor )
Libraries ( jstor )
Software ( jstor )
Three dimensional modeling ( jstor )
Mechanical and Aerospace Engineering -- Dissertations, Academic -- UF
kinematic, measurement, registration, software
Genre:
bibliography ( marcgt )
theses ( marcgt )
government publication (state, provincial, terriorial, dependent) ( marcgt )
born-digital ( sobekcm )
Electronic Thesis or Dissertation
Mechanical Engineering thesis, M.S.

Notes

Abstract:
Skeletal kinematic measurement using model-image registration has been available for more than fifteen years and has proven invaluable in elucidating the dynamic function of knee replacements and other joints. However, technical complexity and the time consuming nature of the analysis have restricted utilization to a few dozen research groups. To accelerate the entry of model-image registration for skeletal kinematics into practical clinical use and to enhance research collaboration, we developed JointTrack, an open-source, easily expandable program for radiographic model-image registration. In this paper, we describe the technical considerations and design choices made, and the capabilities of the resulting programs. First, we identify a software architecture that satisfies the requirements for a flexible and extensible registration platform. Second, a data and operational structure are described that will accommodate a very wide range of 3D-to-2D model image registration capabilities. Third, the platform core and basic registration functionality are described and implemented. Finally, correctness of the fully functional implementation is verified. ( en )
General Note:
In the series University of Florida Digital Collections.
General Note:
Includes vita.
Bibliography:
Includes bibliographical references.
Source of Description:
Description based on online resource; title from PDF title page.
Source of Description:
This bibliographic record is available under the Creative Commons CC0 public domain dedication. The University of Florida Libraries, as creator of this bibliographic record, has waived all rights to it worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
Thesis:
Thesis (M.S.)--University of Florida, 2007.
Local:
Adviser: Banks, Scott A.
Statement of Responsibility:
by Shang Mu.

Record Information

Source Institution:
University of Florida
Holding Location:
University of Florida
Rights Management:
Copyright Mu, Shang. Permission granted to the University of Florida to digitize, archive and distribute this item for non-profit research and educational purposes. Any reuse of this item in excess of fair use or other copyright exemptions requires permission of the copyright holder.
Classification:
LD1780 2007 ( lcc )

Downloads

This item has the following downloads:


Full Text










File Edit View Help
Panels
E I/O (LoadlSave) O Properties
List Items
Images 0 Frame's 1st image
0 Frames
SOnly show current activity


Copy previous Copy next


B Activity 1
2002 0411 ta 01.TIF
2002 04 11 ta 02.tif
2002 04 11 to 03.tif
2002 04 11 ta 04.,tif
200204 11 ta 05.tif
2002 04 11 ta 06.tif
B Activity 2
51-07 undist.tif




< .i i;. >


Load Project Save Project

One-button Load ]



New Activity


Load Calibration

Load Movie

Load 3D Model(s)
Import
Model Kinematics

SSingle Pose
Export
Model Kinematics

Single Pose


Figure 2-3. The JointTrack Administrative window provides basic functionality for file
input/output.


Figure 2-4. The main JointTrack display window shows the current image and models
superimposed.





18


(Jitrk tU









into the same plug-in to escape the limitation of the external interface. Plug-in management in

the JointTrack core can be improved. Currently, if one plug-in is dependent upon another plug-

in, a configuration file is required to locate the other plug-in. Ideally, locating and starting a

proper plug-in should be handled at run-time.

Despite these limitations, JointTrack could dramatically improve the current situation in

the field. Different optimizers, metrics, or image processing routines can be easily added. New

approaches more easily can be tested. Any component can be implemented in scripting language

for the benefit of quick implementation and debugging. Important libraries available in only one

language do not need to be ported to a different language for use in JointTrack. Perhaps most

importantly, the open source, modular nature of JointTrack will facilitate collaborative

development of novel techniques and standardized methods.

The flexibility of the JointTrack structure will permit incorporation of novel registration

methods that go beyond traditional image based metrics. For example, a computational model of

the joint may be embedded into the registration routine, e.g. as part of a CostFunction. In this

scenario, geometric interference between joint surfaces will prevent non-physiologic poses from

being tested or accepted. Muscles and ligaments will control and constrain the motion of joints.

The pose of one bone articulating with multiple bones easily can be initialized for registration

from the poses of adjacent bones (e.g. spinal vertebra or the hind-foot). These geometric and

mechanical constraints will shrink the pose optimization search space and potentially will

increase accuracy and automation for 3D-2D registration for skeletal kinematic measurements.










conventions, including Euler and Cardan angle sequences of ordered rotations.7 8 Orientations

are stored as unit quaternions in the JointTrack platform core, which can be accessed in any

alternate representation to enable seamless and convenient communication between different

plug-ins using common biomechanical conventions. Some frequently used angular conventions

already are available, and support for new representations easily can be added without

modification to the interface definition.

Types in Figure 2-1 are defined similar to the following (Note: The code is in Slice, the

simple language used by Ice for interface definitions.):


class FrameData
{
int id;
Frame* proxy;
IntSeq vImages;

};
class Frame extends FrameData
{
int GetID();
FrameData GetData();
void SetData(FrameData data, JTObserver* caller);
ImageSeq GetImages();
void SetImageList(IntSeq imageIDs, JTObserver* caller);

};

The functions are implemented in the platform core. A plug-in can directly access a specific data

element of an object using these functions, or operate on a local copy of the entire object using

the GetDatao function. Additionally, a plug-in object can register itself as an observer of a data

object, and receive notification whenever a change is made to the data object.


Operation Layer / Plug-ins

Built using object-oriented programming languages, plug-ins are naturally object-oriented.

The fundamental interface can be written:









Implemented Plug-ins

Table 2-1 is an incomplete list of the plug-ins that already are implemented and tested.

Together they form a fully functional 3D-to-2D registration program with a graphical user

interface.


Validation

Validation was carried out by comparing results for a cementless total knee arthroplasty in

9 x-ray images against previous results from KneeTrack. The same mobile bearing total knee

replacement is present in all the images. JointTrack used a combined grayscale and edge metric

with simulated annealing numerical minimization. KneeTrack used an edge-distance metric with

non-linear least-squares minimization The human operator was skilled in the use of KneeTrack,

and blinded to the results until after the comparisons were made.











SExtemalCalibInfo


Frame 0 Image 0

Activity 2
A tFrame 1 I Image N


Frame N
ModelPose 0


^' CalibrationInfo


SModel


ModelPose N

Figure 2-1. Data types and their reference relationship. Numbers indicate possibility of reference
multiplicity.


Figure 2-2. Basic 3D-to-2D model image registration.









BIOGRAPHICAL SKETCH

Shang Mu received his bachelor's degree from Beihang University (Beijing University of

Aeronautics and Astronautics), Beijing, China, in 2005. He joined University of Florida

thereafter. Apart from his pursuit in engineering, his biggest interest lies in physics.









CHAPTER 1
INTRODUCTION

Model-image registration for the measurement of dynamic skeletal motion has been used

for orthopaedic research since 1991.1 Numerous groups have developed measurement tools

based upon model-image registration and applied these in studies of natural2 3 and prosthetic4-6

joints. Despite this research success, none of these methods has been introduced into clinical use,

only a few dozen research groups are active worldwide, no standards for testing or reporting

results are available, and collaboration is restricted by incompatible computer programs often

built on proprietary and expensive software foundations.

The principal of model-image registration for skeletal kinematic measurement is simple

and many potential clinical uses can be identified. However, the potential for these methods to

impact clinical care will not be realized until automated measurement capabilities progress far

beyond what currently is available. We believe that providing an open-source software platform

to easily implement model-image registration techniques for skeletal kinematic measurements

will catalyze efforts to develop measurement standards, enhance availability and utilization of

such measures for research and clinical use, and spur collaborative development and innovation.

Herein we report the development of JointTrack, an open-source software platform for

performing skeletal kinematic measurement with model-image registration.

Our approach to the software platform was to create a very flexible foundation code that

will permit easy implementation of functionality through a plug-in architecture. Program

functionality, in terms of the number of image planes, number of moving objects, types of

projection models, image metrics, and optimization routines is to be unrestricted by the

foundation code. In particular, the platform is intended to facilitate implementation of novel

registration methods incorporating knowledge of kinematic or mechanical constraints between









interface Plugin
{
PluginObject* New(int objtype);
void shutdown();

interface SomeObject extends PluginObject
{
... (operations are defined here)
};

A plug-in has a manager interface (the "Plugin" interface in the above code) capable of creating

a new object carrying the operations needed to achieve its goal. Multiple objects of the same type

can co-exist without interfering with each other.

Object-image registration has several stereotypic processes where algorithmic details can

vary widely, but the basic interface can be defined generally. In order to maximize modularity

and reusability, several typical types of object interfaces have been defined, including Optimizer,

Projector, ImageReader, ImageFilter and Metric. However, differentiation between two types of

functionality does not necessarily separate the implementation, and care must be taken to

combine appropriate functions. No restriction is imposed on the number of interfaces a single

object can provide.


Other Fundamental Design Aspects

An on-demand pipeline-type processing scheme very similar to that in VTK (Kitware, Inc.

http://www.vtk.org/) is utilized. Every object can have one or more input ports to receive images,

and one or more output ports to connect to input ports of other objects.


3D-to-2D Registration

The process of a basic 3D-to-2D model image registration is shown in Figure 2-2. In

JointTrack, the following object types are used:

* Projector: A projector generates 2D images from 3D models with specified poses and
projection parameters.

























Figure 2-6. The Secondary View provides a 3D view of the relative positions of the registration
objects.










LIST OF TABLES


Table


2-1. List of current plug-ins in JointTrack. ........................................ ......................................21

3-1. Comparison between pose estimation results from JointTrack and KneeTrack for 9 in
v iv o radio rap h s..................................................... ................ 2 2


page









CHAPTER 2
METHODS

Software Architecture

Two layers are defined for the software
The Internet Communications Engine (Ice)
S is a modern alternative to object
framework: data and operation. The data layer is the middleware such as CORBATM or
COM/DCOM/COM+, with support for C++,
core of JointTrack and is responsible for C#, Java, Python, Ruby, PHP, and Visual
Basic.
maintaining a master copy of most data. Operations Ice is easy to learn, yet provides a
Ice is easy to learn, yet provides a
powerful network infrastructure for
using the data are achieved by plug-ins, and plug- demanding technical applications. Ice
shines where technologies such as SOAP
ins comprise the operation layer. or XML-RPC are too slow, or do not
provide sufficient scalability or security. For
Sa comparison between Ice and CORBA,
An open-source tool called Ice (sidebar: please see this page.

ZeroC, Inc., Palm Beach Gardens, FL) is the Ice is free software, available with full
source, and released under the terms of
foundation for JointTrack's modular architecture. GNU General Public License (GPL).
Commercial licenses are available for
customers who wish to use Ice for closed-
Ice middleware functions handle communication source software.

between the multitude of functional software From: http://www.zeroc.com/

components. A major benefit of Ice is support for many common programming languages,

meaning different JointTrack components can be coded in many modern languages.


Data Layer

Several basic data types are defined for the 3D-to-2D registration framework (Figure 2-1).

Radiographic and fluoroscopic data can be individual or sequences of images. JointTrack defines

a Frame structure that contains one or several images acquired at the same instant in time. This

definition makes analysis of single-plane, bi-plane and multi-plane image sequences fundamental

to the JointTrack software framework.

Another data type of particular interest is ModelPose which represents the position and

orientation of a moving body. Body orientation can be described by a wide variety of different









* Metric: A metric takes two sets of images as input, and outputs a score indicating the
similarity between the two sets of images. An image set can contain only one image or
multiple images, for example, a grey-scale image and an edge-detected version of the same
image. A multi-plane registration metric may take more than two sets of images, and may
use single-plane metrics to compute the score. A score may be scalar or vector valued.

* Optimizer: Optimizers are standard numerical optimization algorithms, such as simulated
annealing. The output of an optimizer is simply a vector of numbers.

* CostFunction: Cost functions generate scores for the optimizer. In our framework, a
CostFunction is responsible of (1) translating the output of the optimizer, which is just a
vector of numbers, into the pose(s) of one or more 3D models; (2) invoking the projection
procedure on the projector objectss; and (3) returning the score generated by a metric. A
CostFunction usually is tightly coupled with a Registration and commonly implemented in
the same plug-in as the Registration.

* Registration: Registration is responsible to organize the 3D-to-2D registration process.
Here, a proper Optimizer is connected to the Cost Function. It also connects the output of a
Projector to a proper Metric, and potentially adds certain image processing plug-ins
between them.

These components define the registration framework. The only difference from Figure 2-2

is that model poses are not directly transferred between components: instead they are first saved

to the data layer and then retrieved by appropriate components, so that translation between

different pose representations is handled automatically. This structure is not designedfor

algorithms that utilize 3D distance maps.4 9 However, a distance map algorithm is just a

combination of a projector and a metric (although i/ ith slightly different meaning from the above

definition), and can still utilize other appropriate plug-ins and the platform core.


Graphical User Interface (GUI)

Model registration often requires human supervision. At the starting point of the

registration, an initial guess is required from a human operator. To feed data into the program

and to initialize the registration, a GUI, or at least a command-line front-end has to be provided.

Next to nothing has been defined for how the user interface should work. Different

research groups are completely free to implement their own user interface for their special needs.









Because every piece of data is observable, a GUI has the ability to watch the progress of a

registration job, whereas a registration component has no obligation of taking account of

updating the GUI.

A simple GUI has been implemented that replicates the critical functionality of the

predecessor program (KneeTrack) and adds some new features. The GUI uses a windowed tool

approach, like PhotoShop for example, rather than the monolithic and complex KneeTrack

window. An administrative window (Figure 2-3) allows users to open/close projects,

import/export models and images, and save kinematics of the moving bodies. A main display

window (Figure 2-4) shows the current radiographic view with models of registration objects

superimposed. Unlike Knee-Track, this window can be arbitrarily large or small, depending on

the native size of the radiographic images. The Interaction Control window (Figure 2-5) allows

users to change how the models and image are displayed, modify parameters in basic image

processing, and control the registration process. The Secondary Display window (Figure 2-6)

shows the current relative poses of the registration objects at any viewing aspect the user wishes.

There is a simple click and drag user interface to change the viewing orientation in a manner

similar to common CAD programs.

Users can bring up configuration dialog boxes to change the settings for plug-in objects.

The GUI currently supports single-plane registration.


Kinematic Outputs

The JointTrack data layer provides an interface to save/load a single pose, and to save/load

a sequence of poses from a specific 3D model. Files are saved in comma-delimited ASCII format

to permit maximum flexibility and avoid obsolescence.










Table 2-1. List of current plug-ins in JointTrack.*
Plug-in name Object type(s) Open- Comments
provided source
libraries
used
JTRendererVTK Projector, GUI VTK
GUIwx GUI wxWidgets,
Boost C++
Libraries
OptiSimAnnealIce Opimizer Simulated annealing algorithm.
CostFuncSFMahfouz Metric/ A metric based on method from
CostFunction Mahfouz5, and a corresponding basic cost
function.
MyMahfouzRegistration Registration/ A registration routine that uses
CostFunction CostFuncSFMahfouz and
OptiSimAnnealIce.
ReaderTIFFVTK ImageReader VTK
ReaderBMPVTK ImageReader VTK
FilterCannyEdge ImageFilter CImg Canny edge detector
FilterCannyEdgeOpenCV ImageFilter OpenCV Canny edge detector from the OpenCV
library
* All plug-ins are currently implemented on Windows.









registration framework may be too expensive to cross most inter-language boundaries. In

essence, ITK's scripting language bindings provide only a basic "user" interface, not the

flexibility and power of a "developer" interface. Second, ITK is completely software based. Its

volume rendering is unacceptably slow for kinematic measurements, where often hundreds of

images per subject must be processed. The wide availability of open-source libraries and

standard methods for hardware acceleration argue for the inclusion of these capabilities in a

practical 3D-to-2D registration framework. Third, ITK appears not to provide a direct method to

create a binary projection image from a surface model, which is the most basic operation in any

3D rendering library. Black-white projection images from surface models are most often used for

metallic implants (which are radiopaque). Fourth, all current customizable registration methods

in ITK can only use single valued optimizers and cost functions (KneeTrack utilized an error

vector-based metric with non-linear least squares minimization). The goal of JointTrack is not to

replace ITK, which is a vast library incorporating a wide array of registration functions. The aim

of JointTrack is specific to performing skeletal kinematic measurement using 3D-2D model

registration techniques. By narrowing the application scope and providing application-specific

common structures, JointTrack simplifies the definition and implementation of new capabilities

and should work productively for both researchers analyzing skeletal motions and engineers

exploring new registration methods. Developers still can use ITK or other libraries for individual

JointTrack plug-ins.

The current implementation of JointTrack has some limitations. The current imaging

pipeline is simple and only supports type "byte" (in Ice) or "unsigned char" (in C++). A more

robust structure can be implemented, but at the expense of a more complicated structure and

more challenging prototyping. One option is to put image operations that require other data types









LIST OF FIGURES


Figure pe

2-1. Data types and their reference relationship. Numbers indicate possibility of reference
m ultiplicity ............................ ........... ..... ..... ..... ................... .. ............ 17

2-2. Basic 3D-to-2D model image registration............................. ... ....................17

2-3. The JointTrack Administrative window provides basic functionality for file
input/output. ................................................................................18

2-4. The main JointTrack display window shows the current image and models
superim posed. .............................................................................18

2-5. The Interaction Control window gives the user control over registration objects, images,
and registration m methods. ........................................... ..................... .. ..... 19

2-6. The Secondary View provides a 3D view of the relative positions of the registration
objects ......................................................... ................................... 2 0









Abstract of Thesis Presented to the Graduate School
of the University of Florida in Partial Fulfillment of the
Requirements for the Degree of Master of Science

JOINTTRACK: AN OPEN-SOURCE, EASILY EXPANDABLE PROGRAM
FOR SKELETAL KINEMATIC MEASUREMENT
USING MODEL-IMAGE REGISTRATION

By

Shang Mu

December 2007

Chair: Scott Banks
Major: Mechanical Engineering

Skeletal kinematic measurement using model-image registration has been available for

more than fifteen years and has proven invaluable in elucidating the dynamic function of knee

replacements and other joints. However, technical complexity and the time consuming nature of

the analysis have restricted utilization to a few dozen research groups. To accelerate the entry of

model-image registration for skeletal kinematics into practical clinical use and to enhance

research collaboration, we developed JointTrack, an open-source, easily expandable program for

radiographic model-image registration. In this paper, we describe the technical considerations

and design choices made, and the capabilities of the resulting programs. First, we identify a

software architecture that satisfies the requirements for a flexible and extensible registration

platform. Second, a data and operational structure are described that will accommodate a very

wide range of 3D-to-2D model image registration capabilities. Third, the platform core and basic

registration functionality are described and implemented. Finally, correctness of the fully

functional implementation is verified.









LIST OF ABBREVIATIONS

GUI: Graphical User Interface.

Ice: Internet Communications Engine.

ITK: Insight Toolkit.

VTK: Visualization Toolkit.









LIST OF REFERENCES


1. Banks SA, Riley PO, Spector C, Hodge WA. 1991. In vivo bearing motion with meniscal
bearing TKR. Orthop Trans 15: 544.

2. You BM, Siy P, Anderst W, Tashman S. 2001. In vivo measurement of 3-D skeletal
kinematics from sequences of biplane radiographs: application to knee kinematics. IEEE
Trans Med Imaging 20: 514-25.

3. Komistek RD, Dennis DA, Mahfouz M. 2003. In vivo fluoroscopic analysis of the
normal human knee. Clin Orthop Relat Res: 69-81.

4. Zuffi S, Leardini A, Catani F, et al. 1999. A model-based method for the reconstruction
of total knee replacement kinematics. IEEE Trans Med Imaging 18: 981-91.

5. Mahfouz MR, Hoff WA, Komistek RD, Dennis DA. 2003. A robust method for
registration of three-dimensional knee implant models to two-dimensional fluoroscopy
images. IEEE Trans Med Imaging 22: 1561-74.

6. Kaptein BL, Valstar ER, Stoel BC, et al. 2003. A new model-based RSA method
validated using CAD models and models from reversed engineering. J Biomech 36: 873-
82.

7. Grood ES, Suntay WJ. 1983. A joint coordinate system for the clinical description of
three-dimensional motions: application to the knee. J Biomech Eng 105: 136-44.

8. Tupling SJ, Pierrynowski MR. 1987. Use of cardan angles to locate rigid bodies in three-
dimensional space. Med Biol Eng Comput 25: 527-32.

9. Lavallee S, Szeliski R. 1995. Recovering the position and orientation of free-form objects
from image contours using 3D distance maps. IEEE Trans Pattern Anal Mach Intell 17:
378-90.



















Model Control
S electrnst
Select:


Display mode
C H.I11lIHi
3D
O Edge
0 Shadow


S5


Image Control
] Image is black (bones) on white (background)
[ Invert Color (for display only)
i,,r ,, OEdge OHybrid
Intensity
Lower bound 0
Upper bound 185 i

Apply Apply all set

Edge Detection
Canny edge detection:
Aperture:
Thresholds: low 4':1 high 7

Apply Apply all Reset


how All Hide All But Selected

Config Registration

Optimize NewGuess


Figure 2-5. The Interaction Control window gives the user control over registration objects,
images, and registration methods.


















19


Current Model
F-1 Hidden










TABLE OF CONTENTS

page

ACKNOWLEDGMENT S 3..___. ... ... ...............
A CKNLIST OF TABLEDGM ENT...... ....................................................... .....................


L IS T O F F IG U R E S .......................................................................................

ABSTRAC T ...........................................................................................

1 INTRODUCTION ............. ............. ...... ............................

2 M ETHOD S ....... ....... ...... .. .............................................. ... 11

Softw are A architecture ................................. ............. ............ ... ... 11
D ata L ay e r .......................................................................................... 1 1
O operation L ay er / P lug-in s ...................................................................... ..................12
Other Fundam ental D esign A aspects .............................. ................................. ...... .. 13
3D -to-2D R registration ................. ...... ..... ................................ ................... 13
G raphical U ser Interface (G U I) .......................................................................... ... ... 14
K inem atic Outputs ............... ..... .............................. ....... .. .. ............ 15
Im plem ented Plug-ins ...................................................... ................. 16
V alid atio n ..........................................................................16

3 R E S U L T S ...........................................................................................2 2

4 DISCU SSION .......................... ................................ .. 23

L IST O F R E FE R E N C E S ................................................................................................ 26

B IO G R A PH IC A L SK E T C H .............................................................................. .....................27




















4


































2007 Shang Mu









ACKNOWLEDGMENTS

I wish to express sincere appreciation to Dr. Banks, my advisor, who gave me enormous

support on my quest. To all who waited so long either just to see it born or to actually use it, I

thank you for your patience.

Special thanks go to my father, who fostered my enthusiasm in science.









CHAPTER 3
RESULTS

There were significant differences in z-values between the two data sets (1009mm)

because the z-origin in KneeTrack was at the image plane, while the z-origin in JointTrack is at

the x-ray focus (Table 3-1).

There was a significant difference of 0.430 and 0.40 for femoral and tibial x-rotations. No

other comparisons of kinematic parameters revealed a significant difference.


Table 3-1. Comparison between pose estimation results from JointTrack and KneeTrack for 9 in
vivo radiographs.
Position (mm)* Orientation ()*
x y Z x y z
Standard deviation
0.41 0.24 4.46 0.15 0.24 0.49
of difference
Femur
component Average difference 0.18 -0.10 1009 0.43 -0.04 -0.25

t-test 0.23 0.27 <1E-3 <1E-3 0.60 0.17

Standard deviation
0.41 0.31 4.53 0.39 0.77 0.54
of difference
Tibia
component Average difference 0.04 -0.16 1009 0.40 0.07 0.25

t-test 0.76 0.16 <1E-3 0.02 0.78 0.20
*The reference coordinate system has the x-axis horizontal (positive right), y-axis vertical
(positive upward) and z-axis projecting outward from the image plane. The rotations are ordered
3-1-2 sequences for body-fixed coordinate systems.









bodies, and/or the inclusion of a computational joint model as part of the registration cost

function.

In the material that follows, we describe the considerations and choices made in the

development of the JointTrack foundation code and capabilities. First, we identify a software

architecture that satisfies the requirements for a flexible and extensible registration platform.

Second, a data and operational structure are described that will accommodate a very wide range

of 3D-to-2D model image registration capabilities. Third, the platform core and basic registration

functionality are described and implemented. Finally, JointTrack is validated against the

predecessor code (KneeTrack) by comparison of implant kinematics measured from the same set

of radiographs.









CHAPTER 4
DISCUSSION

Over the past 15 years, three-dimensional measurements of skeletal motion by model-

image registration have provided information critical to the improvement of joint prostheses and

the understanding of natural joint mechanics. However, the development and evolution of this

measurement approach is limited to a relative few specialist groups worldwide, and practical

clinical implementation is not yet feasible. The goal of JointTrack is to provide an open-source

foundation upon which existing and newly interested parties can freely and easily add and

explore ideas for model-image registration. By facilitating easy evolution and collaboration,

JointTrack could prove a useful tool immediately for research, but may ultimately spur the

required advances for practical clinical measurement of skeletal kinematics.

The validation exercise demonstrates the same results are produced by JointTrack as its

predecessor, KneetTrack. The z-translations differed between the two applications because of a

difference in coordinate system origin, not because of a difference in pose measurement. The x-

axis rotations exhibited a statistically significant difference of less than 0.50, which is

unsurprising given different metrics and optimizers were used on a relatively small set of images.

This difference is not clinically significant, and likely would not persist if similar

metrics/optimizers or a greater number of images were used for the validation step.

In considering 3D-to-2D registration, an obvious question is 'Why not use ITK'? First,

ITK (Kitware, Inc., http://www.itk.org/) works exclusively with C++. ITK provides bindings to

scripting languages like Python and Tcl, but many common operations for 3D-to-2D registration

need to be performed by subclassing. ITK completely relies upon virtual method overriding, but

does not provide virtual function hooks in its scripting language bindings rendering useless

subclassing in Python or Tcl. The pixel by pixel access or 'access by index' scheme in ITK's










JOINTTRACK: AN OPEN-SOURCE, EASILY EXPANDABLE PROGRAM
FOR SKELETAL KINEMATIC MEASUREMENT
USING MODEL-IMAGE REGISTRATION





















By

SHANG MU


A THESIS PRESENTED TO THE GRADUATE SCHOOL
OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT
OF THE REQUIREMENTS FOR THE DEGREE OF
MASTER OF SCIENCE

UNIVERSITY OF FLORIDA

2007




Full Text

PAGE 1

JOINTTRACK: AN OPEN-SOURCE, EASILY EXPANDABLE PROGRAM FOR SKELETAL KINEMATIC MEASUREMENT USING MODEL-IMAGE REGISTRATION By SHANG MU A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLOR IDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE UNIVERSITY OF FLORIDA 2007 1

PAGE 2

2007 Shang Mu 2

PAGE 3

ACKNOWLEDGMENTS I wish to express sincere appreciation to Dr Banks, my advisor, who gave me enormous support on my quest. To all who waited so long either just to see it born or to actually use it, I thank you for your patience. Special thanks go to my father, who fo stered my enthusiasm in science. 3

PAGE 4

TABLE OF CONTENTS page ACKNOWLEDGMENTS ...............................................................................................................3 LIST OF TABLES ...........................................................................................................................5 LIST OF FIGURES .........................................................................................................................6 ABSTRACT .....................................................................................................................................8 1 INTRODUCTION ....................................................................................................9 2 METHODS .............................................................................................................11 Software Architecture .............................................................................................................11 Data Layer .......................................................................................................................11 Operation Layer / Plug-ins ..............................................................................................12 Other Fundamental Design Aspects ................................................................................13 3D-to-2D Registration ............................................................................................................13 Graphical User Interface (GUI) .......................................................................................14 Kinematic Outputs ...........................................................................................................15 Implemented Plug-ins ......................................................................................................16 Validation ...............................................................................................................................16 3 RESULTS ...............................................................................................................22 4 DISCUSSION .........................................................................................................23 LIST OF REFERENCES ...............................................................................................................26 BIOGRAPHICAL SKETCH .........................................................................................................27 4

PAGE 5

LIST OF TABLES Table page 2-1. List of current pl ug-ins in JointTrack. ....................................................................................21 3-1. Comparison between pose estimation results from JointTrack and KneeTrack for 9 in vivo radiographs. ................................................................................................................22 5

PAGE 6

LIST OF FIGURES Figure page 2-1. Data types and their reference relationshi p. Numbers indicate possibility of reference multiplicity. ........................................................................................................................17 2-2. Basic 3D-to-2D model image registration. .............................................................................17 2-3. The JointTrack Administrative window provides basic functionality for file input/output. .......................................................................................................................18 2-4. The main JointTrack display window shows the current image and models superimposed. ....................................................................................................................18 2-5. The Interaction Control window gives the us er control over regist ration objects, images, and registration methods. ...................................................................................................19 2-6. The Secondary View provides a 3D view of the relative positions of the registration objects. ...............................................................................................................................20 6

PAGE 7

LIST OF ABBREVIATIONS GUI: Graphical User Interface. Ice: Internet Comm unications Engine. ITK: Insight Toolkit. VTK: Visualization Toolkit. 7

PAGE 8

Abstract of Thesis Presen ted to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Master of Science JOINTTRACK: AN OPEN-SOURCE, EASILY EXPANDABLE PROGRAM FOR SKELETAL KINEMATIC MEASUREMENT USING MODEL-IMAGE REGISTRATION By Shang Mu December 2007 Chair: Scott Banks Major: Mechanical Engineering Skeletal kinematic measurement using modelimage registration has been available for more than fifteen years and has proven invaluab le in elucidating the dynamic function of knee replacements and other joints. However, technica l complexity and the time consuming nature of the analysis have restricted utilization to a fe w dozen research groups. To accelerate the entry of model-image registration for skeletal kinematics into practical clinical use and to enhance research collaboration, we developed JointTrack, an open-source, easily expandable program for radiographic model-image registration. In this paper, we describe the te chnical considerations and design choices made, and the capabilities of the resulting programs. First, we identify a software architecture that satisfies the requireme nts for a flexible and extensible registration platform. Second, a data and operational structur e are described that will accommodate a very wide range of 3D-to-2D model im age registration capabilities. Thir d, the platform core and basic registration functionality are described and implemented. Fina lly, correctness of the fully functional implementation is verified. 8

PAGE 9

CHAPTER 1 INTRODUCTION Model-image registration for the measuremen t of dynamic skeletal motion has been used for orthopaedic research since 1991. 1 Numerous groups have de veloped measurement tools based upon model-image registration and a pplied these in studies of natural 2, 3 and prosthetic 4-6 joints. Despite this research succe ss, none of these methods has been introduced into clinical use, only a few dozen research groups are active worl dwide, no standards for testing or reporting results are available, and collaboration is restricted by incompatible computer programs often built on proprietary and expensive software foundations. The principal of model-image registration fo r skeletal kinematic measurement is simple and many potential clinical uses can be identified. However, the potential for these methods to impact clinical care will not be realized until automated measurement capabilities progress far beyond what currently is available. We believe that providing an open-source software platform to easily implement model-image registration te chniques for skeletal kinematic measurements will catalyze efforts to develop measurement stan dards, enhance availability and utilization of such measures for research and clinical use, and spur collaborative development and innovation. Herein we report the development of JointT rack, an open-source software platform for performing skeletal kinematic measur ement with model-image registration. Our approach to the software platform was to create a very flexible foundation code that will permit easy implementation of functionali ty through a plug-in architecture. Program functionality, in terms of the number of image planes, num ber of moving objects, types of projection models, image metrics, and optimization routines is to be unrestricted by the foundation code. In particular, the platform is intended to facilitate implementation of novel registration methods incorporati ng knowledge of kinematic or m echanical constraints between 9

PAGE 10

bodies, and/or the inclusion of a computational joint model as part of the registration cost function. In the material that follows, we describe the considerations and choices made in the development of the JointTrack foundation code and capabilities. First, we identify a software architecture that satisfies the requirements for a flexible and extensible registration platform. Second, a data and operati onal structure are described that wi ll accommodate a very wide range of 3D-to-2D model image registra tion capabilities. Third, the platfo rm core and basic registration functionality are described and implemented. Fi nally, JointTrack is validated against the predecessor code (KneeTrack) by co mparison of implant kinematics measured from the same set of radiographs. 10

PAGE 11

CHAPTER 2 METHODS Software Architecture Two layers are defined for the software framework: data and operati on. The data layer is the core of JointTrack and is responsible for maintaining a master copy of most data. Operations using the data are achieved by plug-ins, and plugins comprise the operation layer. An open-source tool called Ice (sidebar: ZeroC, Inc., Palm Beach Gardens, FL) is the foundation for JointTracks modular architecture. Ice middleware functions handle communication between the multitude of functional software components. A major benefit of Ice is support for many common programming languages, meaning different JointTrack components can be coded in many modern languages. The Internet Communications Engine (Ice) is a modern alternative to object middleware such as CORBA or COM/DCOM/COM+, with support for C++, C#, Java, Python, Ruby, PHP, and Visual Basic. Ice is easy to learn, yet provides a powerful network infrastructure for demanding technical applications. Ice shines where technologies such as SOAP or XML-RPC are too slow, or do not provide sufficient scalability or security. For a comparison between Ice and CORBA, please see this page. Ice is free software, available with full source, and released under the terms of GNU General Public License (GPL). Commercial licenses are available for customers who wish to use Ice for closedsource software. From: http://www.zeroc.com/ Data Layer Several basic data types are defined for the 3D-to-2D registration framework (Figure 2-1). Radiographic and fluoroscopic data can be individual or sequences of images. JointTrack defines a Frame structure that contains one or several images acquired at the same instant in time. This definition makes analysis of single-plane, bi-plane and multi-plane image sequences fundamental to the JointTrack software framework. Another data type of particul ar interest is ModelPose which represents the position and orientation of a moving body. Body orientation can be described by a wide variety of different 11

PAGE 12

conventions, including Euler and Cardan angle sequences of ordered rotations. 7, 8 Orientations are stored as unit quaternions in the JointTrack platform core, which can be accessed in any alternate representation to enable seamless and convenient communicat ion between different plug-ins using common biomechanical conventions. Some frequently used angular conventions already are available, and support for new representations easily can be added without modification to the interface definition. Types in Figure 2-1 are defined similar to the following (Note: The code is in Slice, the simple language used by Ice for interface definitions.): class FrameData { int id; Frame* proxy; IntSeq vImages; }; class Frame extends FrameData { int GetID(); FrameData GetData(); void SetData(FrameData data, JTObserver* caller); ImageSeq GetImages(); void SetImageList(IntSeq imageIDs, JTObserver* caller); }; The functions are implemented in the platform co re. A plug-in can directly access a specific data element of an object using these functions, or ope rate on a local copy of the entire object using the GetData() function. Add itionally, a plug-in object can register itself as an observer of a data object, and receive notification whenever a change is made to the data object. Operation Layer / Plug-ins Built using object-oriented programming language s, plug-ins are naturally object-oriented. The fundamental inte rface can be written: 12

PAGE 13

interface Plugin { PluginObject* New(int objtype); void shutdown(); }; interface SomeObject extends PluginObject { (operations are defined here) }; A plug-in has a manager interface (the Plugin interface in the above code) capable of creating a new object carrying the operations needed to achieve its goal. Multiple objects of the same type can co-exist without inte rfering with each other. Object-image registration has several stereoty pic processes where al gorithmic details can vary widely, but the basic interface can be defi ned generally. In order to maximize modularity and reusability, several typical t ypes of object interfaces have b een defined, including Optimizer, Projector, ImageReader, ImageFilter and Metric. However, differentiation between two types of functionality does not necessarily separate th e implementation, and car e must be taken to combine appropriate functions. No restriction is imposed on the number of interfaces a single object can provide. Other Fundamental Design Aspects An on-demand pipeline-type processing scheme ve ry similar to that in VTK (Kitware, Inc. http://www.vtk.org/ ) is utilized. Every object can have one or more input ports to receive images, and one or more output por ts to connect to input ports of other objects. 3D-to-2D Registration The process of a basic 3D-to-2D model imag e registration is shown in Figure 2-2. In JointTrack, the following object types are used: Projector: A projector generates 2D images from 3D models with specified poses and projection parameters. 13

PAGE 14

Metric: A metric takes two sets of images as input, and outputs a score indicating the similarity between the two sets of images. An image set can contain only one image or multiple images, for example, a grey-scale image and an edge-detected version of the same image. A multi-plane registration metric may ta ke more than two sets of images, and may use single-plane metrics to compute the score. A score may be scalar or vector valued. Optimizer: Optimizers are standard numerical optim ization algorithms, such as simulated annealing. The output of an optimizer is simply a vector of numbers. CostFunction: Cost functions generate scores fo r the optimizer. In our framework, a CostFunction is responsible of (1) translating the output of th e optimizer, which is just a vector of numbers, into the pose(s) of one or more 3D models; (2) invoking the projection procedure on the projector object(s); and (3) returning the score generated by a metric. A CostFunction usually is tightly coupled with a Registration and commonly implemented in the same plug-in as the Registration. Registration: Registration is responsible to organi ze the 3D-to-2D registration process. Here, a proper Optimizer is connected to the Co st Function. It also connects the output of a Projector to a proper Metric and potentially adds certain image processing plug-ins between them. These components define the registration fr amework. The only difference from Figure 2-2 is that model poses are not directly transferred between components: instead they are first saved to the data layer and then retrieved by appropr iate components, so that translation between different pose representations is handled automatically. This structure is not designed for algorithms that utiliz e 3D distance maps. 4, 9 However, a distance map algorithm is just a combination of a projector and a metric (although with slightly different meaning from the above definition), and can still utilize other appropr iate plug-ins and the platform core. Graphical User Interface (GUI) Model registration often requires human s upervision. At the st arting point of the registration, an initial gu ess is required from a human operator. To feed data into the program and to initialize the registration, a GUI, or at least a command-line front-end has to be provided. Next to nothing has been defined for how the user interface should work. Different research groups are completely free to implement their own user interface for their special needs. 14

PAGE 15

Because every piece of data is observable, a GUI has the ability to watch the progress of a registration job, whereas a regi stration component has no obligation of taking account of updating the GUI. A simple GUI has been implemented that repl icates the critical functionality of the predecessor program (KneeTrack) a nd adds some new features. The GUI uses a windowed tool approach, like PhotoShop for example, rather than the monolithic and complex KneeTrack window. An administrative window (Figure 2-3) allows user s to open/close projects, import/export models and images, and save kinematics of the moving bodies. A main display window (Figure 2-4) shows the cu rrent radiographic view with models of registration objects superimposed. Unlike Knee-Track, this window can be arbitrarily large or small, depending on the native size of the radiographic images. The Interaction Control windo w (Figure 2-5) allows users to change how the models and image are displayed, modify parameters in basic image processing, and control the registration process. The Secondary Display window (Figure 2-6) shows the current relative poses of the registration objects at any viewing aspe ct the user wishes. There is a simple click and drag user interface to change the viewing orientation in a manner similar to common CAD programs. Users can bring up configuration dialog boxes to change the settings for plug-in objects. The GUI currently supports single-plane registration. Kinematic Outputs The JointTrack data layer provi des an interface to sa ve/load a single pose, and to save/load a sequence of poses from a specific 3D model. Files are saved in comma-delimited ASCII format to permit maximum flexibility and avoid obsolescence. 15

PAGE 16

Implemented Plug-ins Table 2-1 is an incomplete list of the plugins that already are implemented and tested. Together they form a fully functional 3D-to-2D registration program with a graphical user interface. Validation Validation was carried out by co mparing results for a cementless total knee arthroplasty in 9 x-ray images against previous results from KneeTrack. The same mobile bearing total knee replacement is present in all the images. JointTra ck used a combined grayscale and edge metric with simulated annealing numerical minimization. KneeTrack used an edge-distance metric with non-linear least-squares minimiza tion The human operator was skil led in the use of KneeTrack, and blinded to the results until after the comparisons were made. 16

PAGE 17

Figure 2-1. Data types and their re ference relationship. Numbers indicate possibility of reference multiplicity. Figure 2-2. Basic 3D-to-2D model image registration. 17

PAGE 18

Figure 2-3. The JointTrack Administrative wind ow provides basic functionality for file input/output. Figure 2-4. The main JointTrack display wi ndow shows the current image and models superimposed. 18

PAGE 19

Figure 2-5. The Interaction Contro l window gives the user contro l over registration objects, images, and registration methods. 19

PAGE 20

Figure 2-6. The Secondary View provi des a 3D view of the relative positions of the registration objects. 20

PAGE 21

Table 2-1. List of current plug-ins in JointTrack.* Plug-in name Object type(s) provided Opensource libraries used Comments JTRendererVTK Projector, GUI VTK GUIwx GUI wxWidgets, Boost C++ Libraries OptiSimAnneal_Ice Opimizer Simulated annealing algorithm. CostFuncSFMahfouz Metric/ CostFunction A metric based on method from Mahfouz 5 and a corresponding basic cost function. MyMahfouzRegistration Registration/ CostFunction A registration routine that uses CostFuncSFMahfouz and OptiSimAnneal_Ice. ReaderTIFFVTK ImageReader VTK ReaderBMPVTK ImageReader VTK FilterCannyEdge ImageFilter CImg Canny edge detector FilterCannyEdgeOpenCV ImageFilter OpenCV Canny edge detector from the OpenCV library All plug-ins are currently implemented on Windows. 21

PAGE 22

CHAPTER 3 RESULTS There were significant differe nces in z-values between the two data sets (1009mm) because the z-origin in KneeTrack was at the image plane, while the z-origin in JointTrack is at the x-ray focus (Table 3-1). There was a significant difference of 0.43 and 0.4 for femoral and tibial x-rotations. No other comparisons of kinematic paramete rs revealed a significant difference. Table 3-1. Comparison between pose estimation results from JointTrack and KneeTrack for 9 in vivo radiographs. Position (mm)* Orientation ( )* x y Z x y z Standard deviation of difference 0.41 0.24 4.46 0.15 0.24 0.49 Average difference 0.18 -0.10 1009 0.43 -0.04 -0.25 Femur component t-test 0.23 0.27 <1E-3 <1E-3 0.60 0.17 Standard deviation of difference 0.41 0.31 4.53 0.39 0.77 0.54 Average difference 0.04 -0.16 1009 0.40 0.07 0.25 Tibia component t-test 0.76 0.16 <1E-3 0.02 0.78 0.20 *The reference coordinate system has the x-axis horizontal (positive right), y-axis vertical (positive upward) and z-axis projecting outward fr om the image plane. The rotations are ordered 3-1-2 sequences for body-fixe d coordinate systems. 22

PAGE 23

CHAPTER 4 DISCUSSION Over the past 15 years, three-dimensional measurements of skeletal motion by modelimage registration have provided information critic al to the improvement of joint prostheses and the understanding of natural joint mechanics. However, the development and evolution of this measurement approach is limited to a relative few specialist groups worldwide, and practical clinical implementation is not yet feasible. The go al of JointTrack is to provide an open-source foundation upon which existing a nd newly interested parties can freely and easily add and explore ideas for model-image registration. By facilitating easy evolut ion and collaboration, JointTrack could prove a useful tool immediately for research but may ultimately spur the required advances for practical clinical measurement of skeletal kinematics. The validation exercise demonstrates the same results are produced by JointTrack as its predecessor, KneetTrack. The z-translations diffe red between the two app lications because of a difference in coordinate system origin, not becau se of a difference in pose measurement. The xaxis rotations exhibited a stat istically significant difference of less than 0.5, which is unsurprising given different metrics and optimizers were used on a relatively small set of images. This difference is not clinically significan t, and likely would not persist if similar metrics/optimizers or a greater number of im ages were used for the validation step. In considering 3D-to-2D registration, an obvious question is Why not use ITK? First, ITK (Kitware, Inc., http://www.itk.org/ ) works exclusively with C++. ITK provides bindings to scripting languages like Python and Tcl, but many common operations for 3D-to-2D registration need to be performed by subclassing. ITK co mpletely relies upon vi rtual method overriding, but does not provide virtual functi on hooks in its scripting langua ge bindings rendering useless subclassing in Python or Tcl. The pixel by pixe l access or access by index scheme in ITKs 23

PAGE 24

registration framework may be too expensive to cross most inter-language boundaries. In essence, ITKs scripting language bindings pr ovide only a basic user interface, not the flexibility and power of a dev eloper interface. Second, ITK is completely software based. Its volume rendering is unacceptably slow for kine matic measurements, where often hundreds of images per subject must be processed. The wi de availability of ope n-source libraries and standard methods for hardware acceleration argue for the inclusion of these capabilities in a practical 3D-to-2D registration framework. Third, ITK appears not to provide a direct method to create a binary projection image from a surface model, which is the most basic operation in any 3D rendering library. Black-white projection images from surface models are most often used for metallic implants (which are radiopaque). Fourth all current customizable registration methods in ITK can only use single valued optimizers a nd cost functions (KneeTra ck utilized an error vector-based metric with non-linear least squares mi nimization). The goal of JointTrack is not to replace ITK, which is a vast library incorporati ng a wide array of regist ration functions. The aim of JointTrack is specific to performing skel etal kinematic measurement using 3D-2D model registration techniques. By narro wing the application scope and providing application-specific common structures, JointTrack simplifies the defi nition and implementation of new capabilities and should work productively for both researcher s analyzing skeletal motions and engineers exploring new registration methods Developers still can use ITK or other libraries for individual JointTrack plug-ins. The current implementation of JointTrack has some limitations. The current imaging pipeline is simple and only suppor ts type byte (in Ice) or u nsigned char (in C++). A more robust structure can be implement ed, but at the expense of a mo re complicated structure and more challenging prototyping. One op tion is to put image operations that require other data types 24

PAGE 25

into the same plug-in to escape the limitation of the external interface. Plug-in management in the JointTrack core can be im proved. Currently, if one plug-in is dependent upon another plugin, a configuration file is required to locate the other plug-i n. Ideally, locating and starting a proper plug-in should be handled at run-time. Despite these limitations, JointTrack could dram atically improve the current situation in the field. Different optimizers, me trics, or image processing r outines can be easily added. New approaches more easily can be tested. Any component can be implemented in scripting language for the benefit of quick implementation and de bugging. Important libraries available in only one language do not need to be porte d to a different language for us e in JointTrack. Perhaps most importantly, the open source, modular nature of JointTrack will facilitate collaborative development of novel technique s and standardized methods. The flexibility of the JointTrack structure will permit incorporation of novel registration methods that go beyond traditional image based metr ics. For example, a computational model of the joint may be embedded into the registration r outine, e.g. as part of a CostFunction. In this scenario, geometric inte rference between joint surfaces will prevent non-physiologic poses from being tested or accepted. Muscles and ligaments w ill control and constrain the motion of joints. The pose of one bone articulating with multiple b ones easily can be initialized for registration from the poses of adjacent bones (e.g. spinal vertebra or the hind-foot). These geometric and mechanical constraints will shrink the pose op timization search space and potentially will increase accuracy and automation for 3D-2D regi stration for skeletal kinematic measurements. 25

PAGE 26

LIST OF REFERENCES 1. Banks SA, Riley PO, Spector C, Hodge WA. 1991. In vivo bearing motion with meniscal bearing TKR. Orthop Trans 15: 544. 2. You BM, Siy P, Anderst W, Tashman S. 2001. In vivo measuremen t of 3-D skeletal kinematics from sequences of biplane radiogr aphs: application to knee kinematics. IEEE Trans Med Imaging 20: 514-25. 3. Komistek RD, Dennis DA, Mahfouz M. 2003. In vivo fluoroscopic analysis of the normal human knee. Clin Orthop Relat Res: 69-81. 4. Zuffi S, Leardini A, Catani F, et al. 1999. A model-based method for the reconstruction of total knee replacement kinematics. IEEE Trans Med Imaging 18: 981-91. 5. Mahfouz MR, Hoff WA, Komistek RD Dennis DA. 2003. A robust method for registration of three-dimensional knee implan t models to two-dimensional fluoroscopy images. IEEE Trans Med Imaging 22: 1561-74. 6. Kaptein BL, Valstar ER, Stoel BC, et al. 2003. A new model-based RSA method validated using CAD models and models fr om reversed engineering. J Biomech 36: 87382. 7. Grood ES, Suntay WJ. 1983. A joint coordinate system for the clinic al description of three-dimensional motions: application to the knee. J Biomech Eng 105: 136-44. 8. Tupling SJ, Pierrynowski MR. 1987. Use of carda n angles to locate rigid bodies in threedimensional space. Med Biol Eng Comput 25: 527-32. 9. Lavallee S, Szeliski R. 1 995. Recovering the posi tion and orientation of free-form objects from image contours using 3D distance maps IEEE Trans Pattern Anal Mach Intell 17: 378-90. 26

PAGE 27

BIOGRAPHICAL SKETCH Shang Mu received his bachelors degree from Beihang University (Beijing University of Aeronautics and Astronautics), Beijing, China, in 2005. He joined University of Florida thereafter. Apart from his pursu it in engineering, his biggest interest lies in physics. 27