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
extractSurfel.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
 
#define GPU_PI   3.14159265358979323846
 pi value More...
 
#define GRAY_BFS   1
 
#define WHITE_BFS   0
 
#define BLACK_BFS   2
 

Typedefs

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

Functions

__kernel void kernelComputePhotoConsistencyArray (float sigma, int numSurfel, __global float *d_pc, __global int *d_index, __global float *d_score)
 
__kernel void kernel_bfs_t (__global edgeType *g_push_reser, __global edgeType *g_sinkedge, __global int *g_graph_heightw, __global unsigned char *g_node_mask, int totnodenum)
 
__kernel void kernel_bfs (int N0, int N1, int N2, __global edgeType *edge, __global int *g_graph_height, __global int *g_graph_heightw, int totnodenum, __global unsigned char *g_node_mask, __global bool *g_continue, int g_counter, __global edgeType *g_push_reser, __global bool *g_CutContinue)
 
__kernel void kernel_push1_atomic (int N0, int N1, int N2, __global edgeType *edge, __global edgeType *g_sink_weight, __global edgeType *g_push_reser, __global int *g_graph_height, int totnodenumber, __global bool *g_relabel_mask)
 
__kernel void kernel_relabel_atomic (int N0, int N1, int N2, __global edgeType *edge, __global edgeType *g_sink_weight, __global edgeType *g_push_reser, __global int *g_graph_height, __global int *g_height_write, int totnodenumber, __global bool *g_relabel_mask)
 
__kernel void kernelComputeNlink1 (int N0, int N1, int N2, int numPoint, float dx, __global float *d_pc, __global edgeType *d_edge)
 
__kernel void kernelComputeNlink2 (int N0, int N1, int N2, int numPoint, float dx, __global float *d_pc, __global edgeType *d_edge, __global float *d_nx, __global float *d_ny, __global float *d_nz)
 
__kernel void kernelComputeNSum (int N0, int N1, int N2, int numPoint, __global edgeType *d_edge, __global edgeType *d_nLinkSum)
 
__kernel void kernelGetResult (int totnodenum, __global int *d_graph_heightr, __global unsigned char *d_nodeLabel, __global edgeType *d_push_reser)
 

Macro Definition Documentation

◆ BILINEAR_INTERPOLATION

#define BILINEAR_INTERPOLATION   1

use bilinear interpolation?

◆ BLACK_BFS

#define BLACK_BFS   2

◆ BLOCKSIZEX

#define BLOCKSIZEX   32

CUDA block size.

◆ BLOCKSIZEY

#define BLOCKSIZEY   8

◆ GLRELABEL

#define GLRELABEL   100

cycle for global relabeling

◆ GPU_PI

#define GPU_PI   3.14159265358979323846

pi value

◆ GRAY_BFS

#define GRAY_BFS   1

◆ 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

◆ WHITE_BFS

#define WHITE_BFS   0

◆ 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

◆ kernel_bfs()

__kernel void kernel_bfs ( int  N0,
int  N1,
int  N2,
__global edgeType edge,
__global int *  g_graph_height,
__global int *  g_graph_heightw,
int  totnodenum,
__global unsigned char *  g_node_mask,
__global bool *  g_continue,
int  g_counter,
__global edgeType g_push_reser,
__global bool *  g_CutContinue 
)

◆ kernel_bfs_t()

__kernel void kernel_bfs_t ( __global edgeType g_push_reser,
__global edgeType g_sinkedge,
__global int *  g_graph_heightw,
__global unsigned char *  g_node_mask,
int  totnodenum 
)

◆ kernel_push1_atomic()

__kernel void kernel_push1_atomic ( int  N0,
int  N1,
int  N2,
__global edgeType edge,
__global edgeType g_sink_weight,
__global edgeType g_push_reser,
__global int *  g_graph_height,
int  totnodenumber,
__global bool *  g_relabel_mask 
)

push-relabel algorithm

◆ kernel_relabel_atomic()

__kernel void kernel_relabel_atomic ( int  N0,
int  N1,
int  N2,
__global edgeType edge,
__global edgeType g_sink_weight,
__global edgeType g_push_reser,
__global int *  g_graph_height,
__global int *  g_height_write,
int  totnodenumber,
__global bool *  g_relabel_mask 
)

push-relabel algorithm

◆ kernelComputeNlink1()

__kernel void kernelComputeNlink1 ( int  N0,
int  N1,
int  N2,
int  numPoint,
float  dx,
__global float *  d_pc,
__global edgeType d_edge 
)

compute nlink

◆ kernelComputeNlink2()

__kernel void kernelComputeNlink2 ( int  N0,
int  N1,
int  N2,
int  numPoint,
float  dx,
__global float *  d_pc,
__global edgeType d_edge,
__global float *  d_nx,
__global float *  d_ny,
__global float *  d_nz 
)

compute nlink

◆ kernelComputeNSum()

__kernel void kernelComputeNSum ( int  N0,
int  N1,
int  N2,
int  numPoint,
__global edgeType d_edge,
__global edgeType d_nLinkSum 
)

compute max nlink sum

◆ kernelComputePhotoConsistencyArray()

__kernel void kernelComputePhotoConsistencyArray ( float  sigma,
int  numSurfel,
__global float *  d_pc,
__global int *  d_index,
__global float *  d_score 
)

Compute photo consistency array

◆ kernelGetResult()

__kernel void kernelGetResult ( int  totnodenum,
__global int *  d_graph_heightr,
__global unsigned char *  d_nodeLabel,
__global edgeType d_push_reser 
)

Labeling by using mincut