CHAPTER 6 IMPLEMENTATION AND EXPERIMENTAL RESULTS
6.3 Comparison to Existing Methods
The testing environment is a desktop computer with Intel I5-2500K (3.4GHz) Quad Core CPU, 8GB memory and Asus Motherboard P8Z77. The operating system is Windows® 7 Professional (64bit), the Matlab version is R2013a, the MOSEK version is 7.0, and the C++ compiler is Visual Studio 2010.
96
The execution times here exclude the setup time for triangularizing the domain and building the cotangent stiffness matrices. For multigrid methods, the setup time is about times of that of non-multigrid methods since triangular meshes have sizes across multiple resolutions
and have a total size .
In our first comparison experiment, we tested some previously existing methods include Matlab quadprog, Alec's active set, and MOSEK. Alec's active set method [21] used sparse Cholesky solver. With MOSEK, we used conic quadratic programming that was implemented with the interior point method.
Figure 6.5: Comparison of three existing methods and our multigrid active set with Jacobi scheme. The x-axis represents the reciprocal of the mesh spacing on our unit square domain. The y-axis is the execution time in seconds.
Figure 6.5 shows the comparison of three existing methods and our multigrid active set with Jacobi scheme on triangular meshes. The x-axis represents the reciprocal of the mesh spacing . Since we use a unit square domain, the meshes from left to right have spacing 1/16, 1/32, 1/64,
0 50 100 150 200 250 300 0 200 400 600 Ee xu tion Ti m e s in Sec o n d s
x=1/h where h is mesh spacing
Execution Times
Active Set with Cholesky Quadprog
MOSEK with Interior Point
97
1/128, 1/256 and 1/512. As we can see, MOSEK solver is the fastest one among the existing methods, and our method is much faster than MOSEK.
In our future report, we will focus on the comparison of our methods to the fastest existing method, MOSEK. We tested the multigrid active set method and MOSEK solver on triangular meshes with higher resolutions, such as 1/1024 and 1/1280. The number of vertices on these meshes are shown in the table below. The highest resolution has 1.336 million vertices. Although our multigrid solver works for higher resolutions, MOSEK crashes probably due to memory limitation. Therefore we can't compare results from resolutions higher than 1280.
1/h
16
32
64
128
256
512
768
1024
1280
# of
vertices
340
890
3415 13515 53680 214281 481804 857494 1336434
Table 6.1: Number of vertices on the triangular meshes with different mesh spacing .1/h
16
32
64
128
256
512
768
1024
1280
MOSEK
0.02
0.06
0.30
1.43
8.22
48.95 131.24 275.35 517.88
Multigrid
Jacobi
0.07
0.08
0.13
0.33
1.09
4.10
9.72
16.54
27.56
Multigrid
SOR
0.04
0.06
0.11
0.36
1.44
5.34
12.29
21.32
34.83
Table 6.2: Execution times (in seconds) of MOSEK, multigrid active set with Jacobi, multigrid active set with SOR over meshing spacing from 1/16, 1/32, ..., 1/1280.The execution times for these mesh resolutions are given in the table above. To find out the speedup over MOSEK, we have the following speedups shown in the figure below. As we can see, with higher resolutions and more vertices, our multigrid active set methods have more speedups over MOSEK. A possible reason is that our multigrid methods have theoretical complexity of while MOSEK interior point methods probably calls a sparse Cholesky solver, which takes in some experiments but probably not always. The number of fill-in elements in Cholesky decompostion highly depends on the sparse matrix structure and the reordering algorithm.
98
Figure 6.6: The speedup of multigrid active set methods (with Jacobi and SOR schemes) over MOSEK. SOR schemes has smaller speedups than Jacobi since it has more computations at each iteration by solving a linear system of a sparse lower triangular matrix.
While the execution time of the multigrid active set method is much superior to that of MOSEK, the multigrid method may produce some inaccurate results, which is common in iterative solvers. The figure below shows the absolute differences between the solutions of multigrid active methods and those of MOSEK. The difference is almost zero at the coarsest resolution since we uses much bigger number of iterations to find a high quality solution at the coarsest resolution. SOR scheme is more accurate than weighted Jacobi scheme probably because some low frequency errors can't be reduced effectively with the nested iteration scheme of multigrid. SOR tends to damp more errors of low frequency since its eigenvectors are mixtures of some Fourier modes. For example, on 1D Cartesian meshes [57], SOR's eigenvectors are . 0 2 4 6 8 10 12 14 16 18 20 0 200 400 600 800 1000 1200 1400
Spe
e
d
u
p
O
ve
r
M
os
e
k
x=1/h where h is mesh spacing
Speedup over MOSEK
Multigrid Jacobi Multigrid SOR
99
Figure 6.7: The absolute differences between multigrid solutions and MOSEK solutions.
One way to reduce the low frequency errors is full multigrid V-cycle, which goes back to the low resolutions to correct some residual errors in low frequencies. Another way to reduce the errors is to use more iterations. In the experiments reported here, we use only 5 stages of active set shrinking and expanding at each resolution. And at each expanding stage, we only use 5 iterations.
The accuracy is not very important for our applications of interactive image registration. The deformation field generated from our method will be used as the initial deformation of the automatic image registration. The current automatic registration algorithms work well at finding local optimum, and therefore correcting small inaccuracies. The automatic registration algorithms usually can't find a global optimum, and that is why interactive image registration is needed to provide a rough alignment.