ETRI IVCL 1.0.0
Acceleration SW Platform for Ondevice
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros | Typedefs | Functions | Variables
refineSurfel.cl File Reference

Macros

#define SURFEL_MAX   3000000
 maximum number of surfels More...
 
#define SUPPORT_MAX   20
 maximum number of support cameras More...
 
#define INITIAL_OPTION   1
 
#define INITIAL_WIDTH   0
 width of voting window More...
 
#define NUM_NORMAL   80
 number of discrete normal candidates More...
 
#define WIN_SIZE   5
 window size (= 2*WIN_SIZE+1) for surfel refinement More...
 
#define BILINEAR_INTERPOLATION   1
 use bilinear interpolation? More...
 
#define NUMCAM   50
 number of cameras for CUDA kernels More...
 
#define SMOOTH_OPTION   4
 
#define SMOOTH_RAD   3
 radius for surfel smoothing More...
 
#define SMOOTH_SIGMA   1.0f
 gaussian standard deviation for surfel smoothing More...
 
#define SURFELFILTERING   0
 
#define PROP   300000.0f
 proportional constant for dx More...
 
#define SURFEL_ORIENTATION_NLINK   1
 exploit surfel orientation for n-links (flux optimization) More...
 
#define SURFEL_ORIENTATION_TLINK   2
 exploit surfel orientation for t-links (surfel orientation constraint) More...
 
#define MAX_ITER   500
 iteration number for push-relabel algorithm More...
 
#define GLRELABEL   100
 cycle for global relabeling More...
 
#define SMOOTHRECONSTRUCTION   1
 
#define BLOCKSIZEX   32
 CUDA block size. More...
 
#define BLOCKSIZEY   8
 
#define REDUCBLOCKSIZEX   512
 CUDA block size. More...
 
#define REDUCBLOCKSIZEY   1
 

Typedefs

typedef int edgeType
 edge data type (int or float) More...
 

Functions

__kernel void computeSurfelCost1 (__global float *d_cost, int numSurfel, __global float *d_x, __global float *d_y, __global float *d_z, __global int *d_refCam, __global int *d_supportCam, int numCam, int width, int height, __global float *d_P, __global float *d_RinvKinv, __global float *d_RinvT, int numNormal, __global float *d_samples, __global unsigned char *d_sampleCam, __global float *d_imgR, __global float *d_imgG, __global float *d_imgB)
 
__kernel void computeSurfelCost2 (__global float *d_cost, __global int *d_num, int supportIdx, int numSurfel, __global float *d_x, __global float *d_y, __global float *d_z, __global int *d_refCam, __global int *d_supportCam, int numCam, int width, int height, __global float *d_P, __global float *d_RinvKinv, __global float *d_RinvT, int numNormal, __global float *d_samples, __global unsigned char *d_sampleCam, __read_only image3d_t d_imgR, __read_only image3d_t d_imgG, __read_only image3d_t d_imgB)
 
__kernel void computeSurfelCost3 (__global float *d_cost, __global int *d_num, int supportIdx, int numSurfel, __global float *d_x, __global float *d_y, __global float *d_z, __global int *d_refCam, __global int *d_supportCam, int numCam, int width, int height, __global float *d_P, __global float *d_RinvKinv, __global float *d_RinvT, int numNormal, __global float *d_samples, __global unsigned char *d_sampleCam, __global unsigned char *img)
 

Variables

const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST
 

Macro Definition Documentation

◆ BILINEAR_INTERPOLATION

#define BILINEAR_INTERPOLATION   1

use bilinear interpolation?

◆ BLOCKSIZEX

#define BLOCKSIZEX   32

CUDA block size.

◆ BLOCKSIZEY

#define BLOCKSIZEY   8

◆ GLRELABEL

#define GLRELABEL   100

cycle for global relabeling

◆ INITIAL_OPTION

#define INITIAL_OPTION   1

option for initial surfel construction
0: minimum cost
1: maximum votes

◆ INITIAL_WIDTH

#define INITIAL_WIDTH   0

width of voting window

◆ MAX_ITER

#define MAX_ITER   500

iteration number for push-relabel algorithm

◆ NUM_NORMAL

#define NUM_NORMAL   80

number of discrete normal candidates

◆ NUMCAM

#define NUMCAM   50

number of cameras for CUDA kernels

◆ PROP

#define PROP   300000.0f

proportional constant for dx

◆ REDUCBLOCKSIZEX

#define REDUCBLOCKSIZEX   512

CUDA block size.

◆ REDUCBLOCKSIZEY

#define REDUCBLOCKSIZEY   1

◆ SMOOTH_OPTION

#define SMOOTH_OPTION   4

option for surfel smoothing
0: no smoothing
1: smooth normal
2: smooth score
3: smooth both normal and score
4: smooth and expand normal
5: smooth and expand score
6: smooth and expand both normal and score

◆ SMOOTH_RAD

#define SMOOTH_RAD   3

radius for surfel smoothing

◆ SMOOTH_SIGMA

#define SMOOTH_SIGMA   1.0f

gaussian standard deviation for surfel smoothing

◆ SMOOTHRECONSTRUCTION

#define SMOOTHRECONSTRUCTION   1

option for smoothing surfels
which are added by graph cuts
0 : smoothing off
1 : smoothing on

◆ SUPPORT_MAX

#define SUPPORT_MAX   20

maximum number of support cameras

◆ SURFEL_MAX

#define SURFEL_MAX   3000000

maximum number of surfels

◆ SURFEL_ORIENTATION_NLINK

#define SURFEL_ORIENTATION_NLINK   1

exploit surfel orientation for n-links (flux optimization)

◆ SURFEL_ORIENTATION_TLINK

#define SURFEL_ORIENTATION_TLINK   2

exploit surfel orientation for t-links (surfel orientation constraint)

◆ SURFELFILTERING

#define SURFELFILTERING   0

option for filtering out outliers
0 : filtering off
1 : filtering on

◆ WIN_SIZE

#define WIN_SIZE   5

window size (= 2*WIN_SIZE+1) for surfel refinement

Typedef Documentation

◆ edgeType

typedef int edgeType

edge data type (int or float)

Function Documentation

◆ computeSurfelCost1()

__kernel void computeSurfelCost1 ( __global float *  d_cost,
int  numSurfel,
__global float *  d_x,
__global float *  d_y,
__global float *  d_z,
__global int *  d_refCam,
__global int *  d_supportCam,
int  numCam,
int  width,
int  height,
__global float *  d_P,
__global float *  d_RinvKinv,
__global float *  d_RinvT,
int  numNormal,
__global float *  d_samples,
__global unsigned char *  d_sampleCam,
__global float *  d_imgR,
__global float *  d_imgG,
__global float *  d_imgB 
)

Compute surfel cost

Parameters
d_imgR__global float*
d_imgG__global float*
d_imgB__global float*

◆ computeSurfelCost2()

__kernel void computeSurfelCost2 ( __global float *  d_cost,
__global int *  d_num,
int  supportIdx,
int  numSurfel,
__global float *  d_x,
__global float *  d_y,
__global float *  d_z,
__global int *  d_refCam,
__global int *  d_supportCam,
int  numCam,
int  width,
int  height,
__global float *  d_P,
__global float *  d_RinvKinv,
__global float *  d_RinvT,
int  numNormal,
__global float *  d_samples,
__global unsigned char *  d_sampleCam,
__read_only image3d_t  d_imgR,
__read_only image3d_t  d_imgG,
__read_only image3d_t  d_imgB 
)

Compute surfel cost

Parameters
d_imgR__read_only image3d_t
d_imgG__read_only image3d_t
d_imgB__read_only image3d_t

◆ computeSurfelCost3()

__kernel void computeSurfelCost3 ( __global float *  d_cost,
__global int *  d_num,
int  supportIdx,
int  numSurfel,
__global float *  d_x,
__global float *  d_y,
__global float *  d_z,
__global int *  d_refCam,
__global int *  d_supportCam,
int  numCam,
int  width,
int  height,
__global float *  d_P,
__global float *  d_RinvKinv,
__global float *  d_RinvT,
int  numNormal,
__global float *  d_samples,
__global unsigned char *  d_sampleCam,
__global unsigned char *  img 
)

Compute surfel cost

Parameters
img__global unsigned char*

Variable Documentation

◆ sampler

const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST