• No se han encontrado resultados

CAPÍTULO 2: MODELOS DE NEGOCIO EN INTERNET

2. Modelos de Negocio en Internet

2.5. El Enfoque Outside – In

2.6.4. Análisis de Información

One standard way to maximize a function is to use a Newton based solver to find the zeros in the gradient of the maximization function. A standard Newton solver would find that given the guess r~k in the kth iteration, the change in the deformation field, δr~, in thek+ 1th iteration solves

K τ ưHP

δr~ = ưK ~rk

τ + X

T∈{lT=1}

VT

Vvoxel d

d ~rkhu|r~kiT + X

T∈{lT=0}

VT

Vvoxel d

d ~rkhưu|~riT (3.9) where HP is the Hessian of the image agreement term, and the gradient and the Hessian terms can be estimated numerically. The terms on the right of the equation can be recognized as elastic forces due to the existing displacement of the mesh and image forces. The terms on the left can be recognized as the change in the elastic force and the change in the image force due to the candidate displacement.

Unfortunately, the standard Newton solver formulation has several difficulties in maximizing Equation 3.8. The first difficulties come from HP. Because the Hessian term is estimated locally, it can have positive eigenvalues. These positive eigenvalues make the solver unstable. To understand this problem, consider a node between voxels in a region where locally the intensity quadratically increases. If that node is attracted to high intensities, the solution to the system of equations could be to move the node infinitely far in one direction. A second difficulty with the formulations is that the elasticity matrix K is also singular. For example a rigid translation of the entire mesh causes no elastic energy increase, and therefore a rigid translation is in the null space of the elasticity matrix.

To address these issues, we do not calculateHP. (Note that changing the left hand side of the equation does not affect the maximum found. Convergence occurs when

the forces on the right hand side of the equation balance, so that δr~ = 0.) Instead, we replace it byưI where is a small positive number and I is the identity matrix.

This term essentially penalizes δr~. If one considers each iteration, a time step, then δr~ is a velocity, so that this term is effectively a velocity drag force. One can also think about this matrix as equivalent to adding a small constant to the diagonal of K. Adding a small constant to the diagonal of a matrix is a standard technique to improve the conditioning of the matrix. The iteration becomes

K τ +I

δr~ = ưK ~rk

τ + X

T∈{lT=1}

VT Vvoxel

d

d ~rkhu|r~kiT + X

T∈{lT=0}

VT Vvoxel

d

d ~rkhưu|~riT. (3.10) While the I term improves the conditioning of the elasticity matrix, the elasticity matrix is still somewhat poorly-conditioned. Solving a poorly-conditioned linear sys-tem is not a problem for standard Krylov subspace based iterative solvers. A solver of this sort attempts to minimize the squared error in the system of equations while minimizing the norm of the solution vector. However, because there may be no ex-act solution, an iterative solver will require many iterations before it converges. We therefore do not try and solve the system of equations to high precision. Since the overall algorithm is iterative, a small error in one solution step can be corrected in the next step. Instead of solving the equations to high precision, we use only a few iterations of an iterative matrix solver to solve Equation 3.10. Using this technique, the matrix solve times can be improved by more that a factor of 100. And, because there may be no exact solution, little is lost in solving the equations approximately.

As the velocity drag term in Equation 3.10 is small, the resulting solution~rcan be very large, significantly larger than one voxel. Because the image forces are estimated locally, those forces are no longer accurate after a displacement of roughly one voxel.

Such inaccuracies can lead to instabilities in the convergence of the algorithm. We therefore limit the motion of the nodes of the mesh in any iteration to the spacing between the voxels. Should the maximum displacement of a node exceed that spacing, we scale δr~ so that the maximum displacement is exactly that spacing. This type of

method is a standard technique for solving non-linear equations and is referred to as velocity limiting.

Figure 3-6: A target shape is shown in translucent white; the deformable model is in blue. From left to right: An initial alignment, after 12 iterations, after 13 iterations, after 14 iterations. The arrow shows that between iterations 12, 13 and 14 the dominate motion of the model was moving back and forth within the target.

Figure 3-6 shows a deformable model evolving using the algorithm we have just mentioned. In that match, the deformable model deformed most of the way to the target in the first 12 iterations. Afterwards, much of the changes in the model were simply moving back and forth within the target. The cause of this motion is that as the model moves to one side, the forces on that side go to zero, and increase on the other side. Thus, an oscillatory motion results.

There are two methods to obtain convergence. The first is to work with the HessianHp directly. One might expect that near the solution, the Hessian might lead to stable equations. Unfortunately, our experience is that the Hessian is almost always unstable. A second technique is to damp out oscillations using another drag force, a drag force on changes in velocity. We add such a drag in the form of−α(δr~k−δr~k−1),

where α is positive. The final iteration becomes K

τ + (+α)I

δr~k =ưK ~rk

τ +α ~δrkư1 + X

T∈{lT=1}

VT Vvoxel

d

d ~rkhu|r~kiT + X

T∈{lT=0}

VT Vvoxel

d

d ~rkhưu|~riT.

(3.11)