SEE-GRID is based on the SEE++ software for the biomechanical simulation of the human eye. The goal of SEE-GRID is to adapt and to extend SEE++ in several steps and to develop an efficient grid-based tool for ``Evidence Based Medicine'', which supports the surgeons to choose the best/optimal surgery techniques in case of the treatments of different syndromes of strabismus. This paper consists of some speed up curves incase of the calculation of the brainstem pattern wit 45 points. This paper also outlines the further development steps related to the SEE-GRID database. The last section of this paper, will discuss and evaluate the possible designs of grid based Pathology Fitting and Surgery Fitting algorithms.

   Over view of SEE++ software system:
 SEE++ means Simulation Expert for Eyes +Diagnoses +Transposition Surgery. SEE++ is software for the biomechanical 3D simulation of the human eye and its muscles. It simulates the common eye muscle surgery techniques in a graphic interactive way that is familiar to an experienced surgeon to deal with the support of diagnosis and treatment of strabismus.

               3D View of the human eye
      Offers a realistic 3D representation of the human eye and the six extra ocular eye muscles
      Supports camera rotation, zoom-in, zoom-out and gaze rotation
               User is able to perform interactive surgeries
The design of SEE-GRID is based on the SEE++ software for the biomechanical simulation of the human eye and its muscles. SEE++ was developed in the frame of the SEE-KID project by Upper Austrian Research and the Upper Austria University of Applied Sciences [SEEKID, Buchberger 2004, and Kaltofen 2002]; it simulates the common eye muscle surgery techniques in a graphic interactive way that is familiar to an experienced surgeon. SEE++ consists of a client component for user interaction and visualization and a server component for running the actual calculations; the message protocol SOAP is used for communication between the two components.

               SEE++ deals with the support of diagnosis and treatment of strabismus, which is the common name given to usually persistent or regularly occurring misalignment of the eyes. Strabismus is a visual defect in which eyes point in different directions. A person suffering from it may see double images due to misaligned eyes. SEE++ is able to simulate the result of the Hess- Lancaster test, from which the pathological reason of strabismus can be estimated. The outcome of such an examination is two gaze patterns (see Figure 3) of blue points and of red points respectively. The blue points represent the image seen by one eye and the red points the image seen by the simulated other eye, but in a pathological situation there is a deviation between the blue and the red points. The default gaze pattern that is calculated from the patient's eye data by SEE++ contains 9 points. But there exist gaze patterns with 21, 45 or more points (bigger gaze patterns provide more precise results for the decision support in case of some pathology, but their calculations are more time consuming).
In SEE++, a third gaze pattern, a measured one (with green points) of a patient can be given as input. In this case, the goal is to take some default or estimated eye data and to modify a subset of them until the calculated gaze pattern of the simulated eye (red points) matches the measured gaze pattern. This procedure is called pathology fitting. The original algorithm is time consuming and gives only a more or less precise estimation for the pathology of the patient. In the previous phases of the SEE-GRID project [SEE-GRID, 2005/1], the implementation is through” SEE++ to Grid Bridge". It is the initial component of SEE-GRID, via which the normal SEE++ client can get access to the infrastructure of the Austrian Grid (see Figure 1). The SEE++ clients can access this application in the same way as in the original SEE++ system; the usage of grid resources is completely transparent to them.
The ``SEE++ to Grid Bridge'' is able to split gaze pattern calculation requests of clients to independent subtasks and to distribute them among the servers. By this, we demonstrated how normal SEE++ clients are able to access via this bridge (see Figure 1) to the Austrian Grid and how a noticeable speedup can be reached in SEE++ — by applying simple data parallelism — by the exploitation of the huge computational power of the Grid. Then, we also developed a prototype version of the grid-enabled pathology fitting algorithm, whose goal is to determine (approximately) the pathological reason of strabismus in case of a patient.

Benchmark Results in case of the Calculation of the Brainstem Gaze Patterns

                                                                                 The Design of the SEE-GRID Database

               Current State
In the first step, a medical database for SEE++ was designed and developed as a Web Service application (see Figure 3). The SEE++ client interacts with the database via the SOAP protocol. Also the communication protocol of SEE++ was extended with some additional SOAP messages used by this database application. The Web Service functionality on the server side is implemented and provided by Apache Axis. Later, this component can be substituted by a grid-enabled database interface component. For mapping the implemented object-oriented data structures to relational data structures, an open source tool, called Hibernate is used. Hibernate aims to be a transparent source Object/Relational (O/R) mapping framework, which means that the objects need not implement specific interfaces or extend a special base class. For easily accomplishing this O/R mapping, we used up the predefined Hibernate functionality contained by the application framework spring. Philosophy of the spring framework is not to create new solutions for problems already solved but to integrate existing solutions and simplify their usage. For directly communicating with the data basis, JDBC database drivers are used. The medical data of SEE++ (e.g.: patient’s data, simulated and measured gaze patterns, result of medical experiments, etc.) are stored in the Patient-database (see Figure 3). The metamodeldoes not only support SEE++, it was designed for supporting general medical database. Since the SEE-GRID database is designed for storing patient records, security is a very important aspect. The user database (see Figure 3) contains the user authentication and authorization information of the system. The security implementation ensures that every Web Service call is secured appropriately by checking the caller’s identity. Furthermore, the persistence component employs many techniques to maximize security:

       encrypting any network transfer via HTTPS or SSL,
      applying certificates on client and server side to ensure mutual trust,
      Applying strong encryption of user passwords with a SHA-512 salted hash.

All cryptographic algorithms are based on proven standards to maximize security. The security component is not tied to the persistence component at all. Therefore, it can be maintained separately and used for other purposes.

Next Development Steps
The proposed grid database will be based either on G-SDAM (Grid Seamless Data Access Middleware) architecture [G-SDAM, 2005] or on the Web Service technologies applied in Globus 4. Since both of them are able to communicate via the SOAP protocol with other grid based applications, our database implementation is flexible enough and it can be easily adapted to them. The data sets of the database may be collected by manual insertion of patient data (respectively by automatic transfer of data entered in local databases into the grid base) as well as by automatic insertion of the computed simulation data. By the SEE-GRID database, a huge number of medical cases will be easily available for users/surgeons, but also the proposed parallel pathology fitter will be based on it (see Section3.2). By searching in this database for corresponding input eye data sets for the pathology fitter and by starting concurrent pathology fitting processes on some grid sites,
      We may get better solutions than in the case of the existing algorithm;
      We may get more then one solution which may relevant to the actual pathological situation of the patient;
      The execution of the solutions may take less time, since we will have good estimations at the very beginning
Since we intend to distribute the implementation of the database over multiple grid nodes, we must develop a parallel/distributed search algorithm so that computational processes will be able to access and to collect the necessary and most relevant information from this distributed grid database for the pathology fitting.

         Evaluation for Further Development

Figure 4: Examples for Gaze Patterns: Intended (blue lines), measured (green lines) and simulated (red lines)
This section contains an evaluation and design analysis of the grid-based pathology fitting and surgery fitting algorithms, which will be developed in the later phases of the SEE-GRID project.

    Overview on the Pathology Fitting
The goal of the pathology fitting is to determine (approximately) the pathological cause of strabismus from which a patient suffers. A pathology fitting process takes an initial parameterization of both eyes and gradually “improves” it (by modifying the different kind of parameters of the eye muscles) until the gaze pattern calculated with the biomechanical eye model matches the measured pattern of the patient (see Figure 4). Since the measuring of gaze pattern is not perfect and precise usually, the simulated gaze patterns almost never will be completely the same as the measured one. Unfortunately, a gaze pattern does not uniquely determine the values of eye model parameters. Hence, a new term, called strategy is introduced in the SEE++ software system, which is derived from some other medical examinations (besides the Hess-Lancaster test) by the doctors. The strategy works as some kind of heuristic and it can estimate which eye data parameters may be most effected in the current strabismus syndrome from which a patient suffers (the reasons of different syndromes are the disease of different sets of muscle parameters). The strategy is a list of particular muscle parameters in a specific order for the pathology fitter in order to exclude most of the possible incorrect solutions. Only these given kinds of muscle parameters are allowed the pathology fitter to modify.

Roughly, the pathology fitting works in the following way:
      On the highest level, the algorithm selects the different kind of eye muscle
Parameters contained by the strategy one by one. The simulated eye model updated
By the last calculated values of the currently modified parameters is used as input
For the optimization of the next kind of parameters (if and only if the fitting of the
Currently modified parameter yields any improvement).
      On the lower level, a non-linear optimization algorithm (currently Levenberg-    Marquard is used) modifies the muscle parameters selected by the strategy in several
       Iterative optimization steps. The same kind of muscle parameters is always modified       together.
      On the level of the optimization steps, the algorithm performs some computations
            By which it tries to determinate the next improvement values of the given data
            (Jacobian and Hessian matrices are computed among others).
      At the end of each optimization step, a gaze pattern is calculated with the modified
      eye data for the evaluation of the improvement comparing with the previous state.

    Parallelization of the Existing Algorithm
We investigated the possibilities how we can improve the pathology fitting algorithm by parallelization:

      On the highest level the different kinds of eye data parameters have to be modified sequentially in a specific order given by the strategy. Hence, the only possibility for parallelizing the algorithm on this level is to find a non-sequential strategy/heuristic instead of the current one.

      The optimization algorithm itself is an iterative algorithm, in which the last
Computed result is always used in the next optimization step. Hence, there is no Possibility to parallelize the algorithm on this level.

      On the level of the optimization steps, we can parallelize the computation of each Optimization step (parallelizing the computations of the Jacobian and Hessian matrices) as it is described in [Parallel LevMarq.]. But the algorithm uses too small parameter vectors (the sizes of the previously mentioned matrices are small, therefore, their computation takes much less than 1 second) and it has too many iterative optimization steps. Because of the communication overhead, we may be able to reach any speedup.

      On the lowest level at the end of each optimization step, a gaze pattern is
calculated with the modified eye data. Since a pathology fitting process often
requires the calculation of approx. 60-100 gaze patterns, we combined the
sequential pathology fitting algorithm with the parallel gaze pattern calculation in previous project work. By this, we could improve the algorithm and reach some limited speedups.

    Speeding up the Sequential Algorithm
To improve the optimization algorithm, it may be also possible to execute the optimization of the parameters given in the strategy concurrently by for instance some weighted optimization (however this will not result parallel processes, which can be distributed to independent resources, just less iterative optimization steps) The basic idea is to assign different numbers to different kind of muscle parameters(greater numbers to those parameters that usually have more important effects for the supposed pathological syndrome). By assigning the same numbers to some different kind of muscle parameter, we also can cluster some parameters, if the order of their modification is not strictly determined. We introduce some small values like _1> _2 > _3 … etc. First, only the muscle parameters with greatest weight are altered until the deviation between the computed and the measured gaze pattern is less then _1. Then we start to modify the next kind of parameters with smaller weight until the deviation between the gaze patterns is less than _2. The process proceeds analogously until the algorithm modifies each kind of eye muscle parameters given in the strategy. By this weighted optimization, we might get similar result as in the case of the current algorithm, but with fewer sequential steps.

Possibilities for Finding Better Solutions
Since a gaze pattern does not uniquely determine a simulation model and the current algorithm may not find always the best solution, we can exploit the grid infrastructure to attempt to find better solution by some techniques which helps us to avoid local minima during the optimization (e.g.: simulated annealing). The pathology fitting process may not always search for the global minimum, since the given strategy works like a heuristic and may lead the algorithm to some desired local minimum. However, if we mix the simulated annealing technique [Sim. Annealing] and the heuristic, it can also help us to find better local minima. In this case, the application may give a list of the best solutions found and the users/doctors can choose the most relevant one for the actual pathological situation. Another possibility for improving the output of the algorithm is to search in the SEE-GRID database in order to find similar cases by taking the measured gaze pattern (and maybe the name of the supposed syndrome from which the current patient suffers) as input. Then, we can start concurrent and independent pathology fitting processes on some grid nodes with the founded eye models as initial estimations for the optimizations. Furthermore, the computed results will also be stored in the database as feedbacks for providing better and better initial estimations for later computations.

Later, we intend to encapsulate the combined pathology fitting and parallel gaze pattern calculation into a MPI process and execute multiple such fitting processes on different grid sites (see Figure 5).

Surgery Fitting
This method is able to support the doctors to find the best/optimal surgery technique to correct efficiently the vision of the patients. The problem of surgery fitting is similar to pathology fitting, but this case the result of the pathology fitting is taken as input and it is modified until the calculated gaze pattern closely matches the gaze pattern of the healthy eye. Further differences are:
<,,>Since only few eye parameters (e.g.: length of the muscles, muscle insertion on the
eye globe, etc.) can be changed by surgery, the set of those eye parameters, which
the surgery fitting algorithm can modify, is only a subset of the parameters which
could be modified by the pathology fitting.
<,,>The final goal of the surgery fitting is to correct the (stereo) vision of a patient as
much as possible (finding a global minimum). Since the intended optimal state can
be uniquely determined by a particular gaze pattern. Here there is no need to apply a
sequential heuristic as in the case of pathology fitting.
<,,>There is only one possible input data set, this is the fitted pathology (or if the
pathology fitter returned more than one solutions, then the doctor has to choose
From these it can be seen, that we do not need to execute the same application with different input parameters on the grid multiple times as in case of the pathology fitting. However we have to be sure that the optimization algorithm avoids the local minima. Therefore, during the surgery fitting we should branch the calculation sometimes and start some other fitting processes on the grid with some kinds of neighborhood values of the reached intermediate improvement of the eye data (simulated annealing [Sim. Annealing]). Furthermore, since we need not use any sequential heuristic on the highest level of the algorithm, we may have a chance to speed up the algorithm itself by implementing some parallel search technique (e.g.: parallel Branch and Bound [Aida et. al. 2003, Aida Osumi2005, Filho et. al., 2003]) on the grid.

Based on the results and investigations described in this paper, our ongoing research work has three main directions:
Algorithmic improvements
Implementation of the grid-based database
Development of a grid-based parallel search technique for pathology fitting

               Tree view
      Offers quick access to the most important features of the program
      Used for navigation and for managing the scenarios
               3D View
      Offers a realistic 3D representation of the human eye and the six extra ocular eye muscles
      Supports camera rotation, zoom-in, zoom-out and gaze rotation
      User is able to perform interactive surgeries

No comments:

Post a Comment

leave your opinion