International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume XXXIX-B4, 2012
XXII ISPRS Congress, 25 August — 01 September 2012, Melbourne, Australia
4. PROJECTIVE RECTIFICATION WITH CUDA
To perform a projective rectification, a geometric
transformation between the image plane and the projective
plane is necessary. For the calculation of the eight unknown
coefficients of the projective transformation, at least four
control points in the object plane are required. Projective
transformation is applicable to rectifying imagery of flat terrain
or images of facades of buildings, since it does not correct the
relief displacement. The equations for projective rectification
are given as follows: E.g.
| axtbytce
ax +b,y+1 (1)
ax+b,y+c,
; : a,x+b,y+1
Figure 4. CUDA thread hierarchy. Ey
X, Y = rectified coordinates
x, y = tilted image coordinates
ay, by, ¢1, ay, by, Cy, a3, by = transformation parameters
CUDA processing flow shown in Figure 5 as follow: where
1. Copy data from main mem to GPU mem
2. CPU instructs the process to GPU
3. GPU execute parallel in each core
4. Copy the result from GPU mem to main mem
Projective rectification algorithm used as an example. In this
example we used 4096x4096 pixel size image which taken on a
plane arca. Four image and object coordinates known points
chosen from the image. With these points we solved the
equation and calculated the coefficients of the equation. With
these coefficients, object-space coordinates of each pixel on the
image is calculated. All these calculation procedures
parallelized and coded with using CUDA programming
language. The same code runs on CPU and also GPU. So we
can compare the results with processing time. When the
program runs, the computer screen snapshot shown in Figure 7.
nn spy processing data
Memory
for GPU
Instruct the processing
> Copy the result
GPU
(GeForce 8800)
Execute parallel
in each core
UDA Process:
UDA Process average time:
ICPU Process: Orthorectifying an LETS 4896 hy 4896 ...
PU Ortho Rectification tine: 798.991 ns
Orthorectif ying an Edd bd by 46
E 47
Coordinates: hobjectcoords[ 8 72479 .221
Coordina hobjectcoordsI €
[ Coordinates: hobjectcoordsi
Coordinates: hobjectcoords[
MEN AAN
Coordinates: ;:tcoords I
[ Coordinates: hob Rar E t
Figure 5. Processing flow on CUDA (URL 1).
LNT UE Ee
L Coordinates:
Coordinat
| Coordinat
Some of the applications made by parallel processing with
CUDA shows that GPUs processing time is 5-150 times faster
H oe, |
than CPUs. Some Nvidia research results given in Figure 6.
Coordinates:
Coordinates:
Coordinates:
hobjectcoords [
hobjectcoords[ !
hobjectcoords [
y:
y=1 4586 NT
URP NERIS
042.812
a
8
ü
8
a
Coordinates: he etc dsi 8
j dsl 8
8
1
H
1
H
1
FEES E ES
y=1788.734
Coordinates: hobjectcoords[
Figure 7. Projective rectification screen snapshot.
In this study, projective rectification procedure applied to each
pixel of the sample image. In this situation, the problem could
be separated to threads with CUDA and the graphical
Interazive lonic placement Transcoding Simulation in Astrophysics N- .
wsualizadon of for molecular HD video Matlab using body processors processed the data at the same time. So we could
volumetric dynanmtécs stream to mex file CUDA simulation? : :
vinite matter simulation on 264 for function take the calculation result quickly.
connectivity! GPR portable video?
If we analyze the program output from Figure 7, calculation
GPU time 175,593 millisecond, for the same procedure CPU
time is 790,991 millisecond. The discrepancy with GPU and
CPU time shows that GPU 4.5 times faster than CPU. In this
example we used 4096x4096 pixel size image and Nvidia
Geforce 8600M GT graphic card with Core 2 Duo 2.2GHz
Financial GLAME@¥ab Ultrasound Highiy Cmatcn exact
simulation of M-scñpt API for medical optimized string matching 2" P 1 ‘yr si s ‘ euet,
An near Agedra ti agen fat EE d ne CPU. If the image size getting smaller, CPU performance
with swaptions® operations ar cancer molecular proteins & gens 1 A " x stiti 1
Eu Foo noue idu increase. So with the very huge and repetitive calculation
problems using GPU is more efficient and produces results
Figure 6. The results of some applications made by Nvidia. rapidly.
158