Information Technology Reference
In-Depth Information
3
Implementation
3.1 System Configuration
GPU implementations are realized on a desktop with Intel Core i7-920 (2.67 GHz) ,
3GB RAM and a NVIDIA GTX295 graphic board. The GTX295 graphic board inte-
grates two GTX280 GPUs inside and has 896MB GPU RAM for each GPU. Operating
system is Windows XP (service pack 2).
Our GPU applications are developed with NVIDIA's CUDA (Compute Capability
1.3). In CUDA's programming model, functions are expressed as kernels and the small-
est execution unit on GPU is a thread. Usually multiple CUDA kernels are needed to
realize different kinds of functions in one algorithm.
3.2
Implementation of GPU-ESM
The proposed GPU-ESM tracking algorithm can be categorized into 6 CUDA kernels.
1) Warping. This kernel completes the task that warps a reference image to the cur-
rent image with a known homography.
2) Gradient. This kernel calculates the intensity gradient in X and Y directions.
3) Jesm. This kernel calculates the J esm matrix in ESM algorithm.
4) Solving. This kernel finds the solution x of linear equations
J esm x
=
d
(
0
)
(15)
J esm is of m
1, therefore this equation is overdetermined. To solve this
equation, we multiply the transpose of J esm on both sides:
J esm J esm x
×
8, x is of 8
×
J esm d
=
(
0
)
(16)
and adopt the Cholesky decomposition method to solve Eq. 16 for the solution x 0 .
5) Updating. This kernel updates homography with solution x from “Solving” ker-
nel. Calculation methods are shown in Eq. 5, 6 and 14. In our application, we use the
following SL
(
3
)
basis matrices:
001
000
000
000
001
000
010
000
000
000
100
000
A 3 =
A 4 =
A 1 =
A 2 =
(17)
100
0
000
0
000
000
100
000
000
010
A 6 =
A 7 =
A 8 =
A 5 =
10
000
10
001
We adopt such approximation to calculate the matrix exponential of ex p
((
A
(
x 0
)))
:
i = 0
1
i ! (
i
G
(
x 0 )=
ex p
(
A
(
x 0 )) =
A
(
x 0 ))
(18)
1
2 A
1
6 A
2
3
I
+
A
(
x 0 )+
(
x 0 )
+
(
x 0 )
Search WWH ::




Custom Search