[Half Paper]GPU-Accelerated Point Cloud Interpolation

“Half Paper”意思指的是本人知道可以实现但是没有来得及做的小文章,不存在东拼西凑沽名钓誉,我没兴趣实现之并发表,但是如果你感兴趣我们可以探讨相关的主题。本文是来自于libMesh一篇有限元相关会议中的一篇论文和写Houdini节点导出流体点云的限制而思考出来的,目的是替代传统的三线性差值点云数据而可以差值出凸壳内任意一点的数据。

GPU-Accelerated Point Cloud Interpolation

PDF Fulltext Download

Introduction

In natural science, there are many problems which are all could be merged as solving linear system, such as building engineering simulation, heat energy diffusion. Point cloud interpolation should be a very useful tool for solving PCA(Principal Component Analysis) problems, such as volume data interpolation, picture color reconstruction. Origin method, includes linear interpolation. We extend the method about FEM, use GPGPU to accelerate the basic linear algebra operation.

Solution

Assume there is a triangleGpu Acc Point Interpolation_html_m27479f26 Gpu Acc Point Interpolation_html_6905388d , with a scalar value Gpu Acc Point Interpolation_html_m600f735c on each vertex. And we want to get interpolated value Gpu Acc Point Interpolation_html_22ce1c16 on a point Gpu Acc Point Interpolation_html_72ec1b84 in the convex hull. This forms a linear interpolation function,

Gpu Acc Point Interpolation_html_701077ea .

The Gpu Acc Point Interpolation_html_68dc1787 is the area ratio, Gpu Acc Point Interpolation_html_m5bedabb6 is the area of triangle Gpu Acc Point Interpolation_html_m2aeeb6de . It's very clear that there are also 3 condition,

Gpu Acc Point Interpolation_html_1c1f6903 .

We re-write it as matrix form below,

Gpu Acc Point Interpolation_html_7c6f7de1 .

The quadratic error basis function is

Gpu Acc Point Interpolation_html_m7a68949a .

Let Gpu Acc Point Interpolation_html_m6142ea87 be the next Gpu Acc Point Interpolation_html_m6fce0625 donor mesh points that are closest to Gpu Acc Point Interpolation_html_m18a5773e . Let Gpu Acc Point Interpolation_html_m7648e140 represent the value of Gpu Acc Point Interpolation_html_m718b4186 at the data point Gpu Acc Point Interpolation_html_m2d43fd9d . Define a matrix

Gpu Acc Point Interpolation_html_1d5edeee .

To get the coefficients we invert a Gpu Acc Point Interpolation_html_4f155f2c system,

Gpu Acc Point Interpolation_html_m1c0907f5

where Gpu Acc Point Interpolation_html_4753fe05 and

Gpu Acc Point Interpolation_html_m5b62b43 .

It's very easy to get solutions in 3D case,

Gpu Acc Point Interpolation_html_3b6ced60

and

Gpu Acc Point Interpolation_html_4bb4ac8e ,

inverse this matrix would get the Gpu Acc Point Interpolation_html_m71e533f3 ,

Gpu Acc Point Interpolation_html_m1f477628 .

The quadratic error is

Gpu Acc Point Interpolation_html_32e573ac .

The Gpu Acc Point Interpolation_html_m18a5773e is in a terahedron Gpu Acc Point Interpolation_html_667118f8 , not planar triangle. Similar the (7) we can get 3D version of this linear system,


Gpu Acc Point Interpolation_html_59b0b1b

after inverse the Gpu Acc Point Interpolation_html_eb213e5 we can easily obain the Gpu Acc Point Interpolation_html_m685449af . Third order and fourth order requires inverse Gpu Acc Point Interpolation_html_20936617 and Gpu Acc Point Interpolation_html_m52aa00ab linear system.

Half Implementation

Current NVIDIA CUDA CUBLAS library has complete linear algebra support from BLAS1 to BLAS3. It's high efficient to operate matrix and vector in parallel on GPU now, so nearly the all work could be mapped onto GPU. There are maturity linear algebra operator LU released by some researchers from U.C. Berkeley and UNC. Use K-nearest to get some points near the interested position, then apply the above linear system to get the value.

Conclusion

Maybe you will think of that it's not valuable, simple linear interpolation is enough for grid data, to obtain the gradient. To achieve higher accuracy in engineering analysis, it's necessary to get interpolated point data not only in XYZ dimensions but any position. This idea is inspired by a paper about MAE and processing Houdini's fluid grid.

posted on 2009-02-26 11:08  Bo Schwarzstein  阅读(2962)  评论(0编辑  收藏  举报