Você está na página 1de 2

Registration for Point Cloud Data Processing

E. Rivera, Y. Ruiz, I. Caballero, K. Hernndez


Electrical and Computer Engineering Department
University of Puerto Rico, Mayagez Campus, Mayagez, Puerto Rico, 00681
Advisor: Nayda Santiago
Keywords: registration, algorithms, point cloud, parallel programming, graphics processing unit
Harris Corporation is exploring the use of Point Cloud technologies such as generation,
exploitation, volumetric change, line of sight analysis, obstruction, registration, resolution, and
scanning systems (3D data). In particular, their interest lies in the implementation of these
algorithms on parallel computing systems. To this end, this research work consists in the analysis
and implementation of Point Cloud Registration algorithms on parallel computing platforms.
The most commonly used algorithms for this purpose are Iterative Closest Point (ICP) and
Principal Component Analysis (PCA) and they will be implemented on Graphics Processing Unit
(GPU) structures.
It is hypothesized that taking advantage of the GPU structure, which is designed for massively
parallel processes, will allow for time optimizations if the algorithm is mapped adequately to the
computing architecture. Registration algorithms are targeted because their fundamental concepts
can be applied to a wide variety of subjects inside the field.
The ICP algorithm begins by receiving two data sets of point clouds as inputs. After these are
gathered, a matching between them is performed in order to use Singular Value Decomposition
(SVD) to obtain a transformation matrix, which aligns the points of the data sets. This process is
repeated in order to remove outliers until the approximation error between the points is the one
desired [1]. ICP can be parallelized using certain techniques, for instance divide and conquer,
which can be used by separating the data sets of point clouds given as inputs while matching
their relation individually, to get more accurate results and with less exhaustive time complexity.
PCA is a pairwise process that aligns the directions of largest variance, along eigenvectors,
between two point clouds. Multiple mathematical operations, such as the generation of
covariance matrices, are applied to these point clouds. Afterwards, registration can be achieved
by aligning their respective eigenvectors [2]. Problems of memory allocation or cache
invalidation are avoided because the memory of these point clouds are independent of one
another. The necessary mathematical operations could theoretically be performed to both point
clouds in parallel if multithreading is implemented. Due to the complexity of the methods
employed and the size of the data involved, the mathematical operations were classified as
computationally expensive; therefore, a GPU was utilized. A divide and conquer method was
implemented to systematically classify independent processes in the threads of the GPU. After
great scrutinization of the methods involved, it was concluded that the mathematical processes
involving both point clouds could be parallelized but no further acceleration could be achieved
inside these due to the fact that they are sequential.
NVIDIAs CUDA is a parallel programming model that works with a small amount of
abstractions for expressing parallelism with the programming language C/C++. It is designed for

highly scalable and massively parallel codes that run according to the GPU structures,
specifically NVIDIAs. This means that a code can run in thousands of threads and hundreds of
cores at the same time [3]. CUDA is advantageous for data parallelism because it is intended for
process distribution corresponding with the GPU architecture. Thanks to this, and the Basic
Linear Algebra Subprograms (BLAS) library, covariance and transformation matrices used in
ICP and PCA can solved with ease. For further efficiency, matrices should be saved transposed in
the memory of the GPU to reduce the time spent accessing the memory while solving them [3].
The ICP and PCA Registration algorithms will be implemented while utilizing the architecture of
the GPU through CUDA. It will be possible to parallelize these algorithms by distributing their
independent processes through different threads and cores, thereby reducing their execution time.
The acceleration of the registration process may open its use to real time applications. Some
expected problems may include processes that cannot be implemented due to the GPU structure
or CUDA limitations. Nevertheless, a large workload can be divided on all of the GPUs many
threads and cores with only the knowledge of a few abstractions and C/C++. At the end, a library
of support algorithms for point cloud operations will be delivered to the scientific community.
References:
[1] B. Bellekens et al., A survey of Rigid 3D Point Cloud Registration Algorithms, in Fourth
International Conference on Ambient Computing, Applications, Services and Technologies,
Services and Technologies, Rome, Italy, 2014, pp. 8 - 13.
[2] J. Rajput and B. Limbasiya, Image Registration using combination of PCA and GPOF
Method for Multiframe Super-Resolution. International Journal of Computer Applications
120(12):1-5, June 2015.
[3] M. Garland et al., "Parallel Computing Experiences with CUDA," in IEEE Micro, vol. 28,
no. 4, pp. 13-27, July-Aug. 2008.

Você também pode gostar