Open3D (C++ API)  0.17.0
Data Structures | Functions | Variables
open3d::ml::contrib Namespace Reference

Data Structures

class  PointXYZ
 
struct  PointCloud
 
class  SampledData
 
struct  Point
 

Functions

PointXYZ max_point (std::vector< PointXYZ > points)
 
PointXYZ min_point (std::vector< PointXYZ > points)
 
PointXYZ operator+ (const PointXYZ A, const PointXYZ B)
 
PointXYZ operator- (const PointXYZ A, const PointXYZ B)
 
PointXYZ operator* (const PointXYZ P, const float a)
 
PointXYZ operator* (const float a, const PointXYZ P)
 
std::ostream & operator<< (std::ostream &os, const PointXYZ P)
 
bool operator== (const PointXYZ A, const PointXYZ B)
 
int OptNumThreads (int work_size)
 
dim3 OptBlockConfig (int x, int y)
 
void grid_subsampling (std::vector< PointXYZ > &original_points, std::vector< PointXYZ > &subsampled_points, std::vector< float > &original_features, std::vector< float > &subsampled_features, std::vector< int > &original_classes, std::vector< int > &subsampled_classes, float sampleDl, int verbose)
 
void batch_grid_subsampling (std::vector< PointXYZ > &original_points, std::vector< PointXYZ > &subsampled_points, std::vector< float > &original_features, std::vector< float > &subsampled_features, std::vector< int > &original_classes, std::vector< int > &subsampled_classes, std::vector< int > &original_batches, std::vector< int > &subsampled_batches, float sampleDl, int max_p)
 
void IoUBevCPUKernel (const float *boxes_a, const float *boxes_b, float *iou, int num_a, int num_b)
 
void IoU3dCPUKernel (const float *boxes_a, const float *boxes_b, float *iou, int num_a, int num_b)
 
OPEN3D_HOST_DEVICE float Cross (const Point &a, const Point &b)
 
OPEN3D_HOST_DEVICE float Cross (const Point &p1, const Point &p2, const Point &p0)
 
OPEN3D_HOST_DEVICE int CheckRectCross (const Point &p1, const Point &p2, const Point &q1, const Point &q2)
 
OPEN3D_HOST_DEVICE int CheckInBox2D (const float *box, const Point &p)
 
OPEN3D_HOST_DEVICE int Intersection (const Point &p1, const Point &p0, const Point &q1, const Point &q0, Point &ans)
 
OPEN3D_HOST_DEVICE void RotateAroundCenter (const Point &center, const float angle_cos, const float angle_sin, Point &p)
 
OPEN3D_HOST_DEVICE int PointCmp (const Point &a, const Point &b, const Point &center)
 
OPEN3D_HOST_DEVICE float BoxOverlap (const float *box_a, const float *box_b)
 
OPEN3D_HOST_DEVICE float IoUBev2DWithMinAndMax (const float *box_a, const float *box_b, bool intersection_only=false)
 (x_min, z_min, x_max, z_max, y_rotate) More...
 
OPEN3D_HOST_DEVICE float IoUBev2DWithCenterAndSize (const float *box_a, const float *box_b, bool intersection_only=false)
 (x_center, z_center, x_size, z_size, y_rotate) More...
 
OPEN3D_HOST_DEVICE float IoU3DWithCenterAndSize (const float *box_a, const float *box_b)
 (x_center, y_max, z_center, x_size, y_size, z_size, y_rotate) More...
 
std::vector< int64_t > NmsCPUKernel (const float *boxes, const float *scores, int n, double nms_overlap_thresh)
 

Variables

constexpr int NMS_BLOCK_SIZE = sizeof(uint64_t) * 8
 
constexpr float EPS = static_cast<float>(1e-8)
 

Function Documentation

◆ batch_grid_subsampling()

void open3d::ml::contrib::batch_grid_subsampling ( std::vector< PointXYZ > &  original_points,
std::vector< PointXYZ > &  subsampled_points,
std::vector< float > &  original_features,
std::vector< float > &  subsampled_features,
std::vector< int > &  original_classes,
std::vector< int > &  subsampled_classes,
std::vector< int > &  original_batches,
std::vector< int > &  subsampled_batches,
float  sampleDl,
int  max_p 
)

◆ BoxOverlap()

OPEN3D_HOST_DEVICE float open3d::ml::contrib::BoxOverlap ( const float *  box_a,
const float *  box_b 
)
inline

◆ CheckInBox2D()

OPEN3D_HOST_DEVICE int open3d::ml::contrib::CheckInBox2D ( const float *  box,
const Point p 
)
inline

◆ CheckRectCross()

OPEN3D_HOST_DEVICE int open3d::ml::contrib::CheckRectCross ( const Point p1,
const Point p2,
const Point q1,
const Point q2 
)
inline

◆ Cross() [1/2]

OPEN3D_HOST_DEVICE float open3d::ml::contrib::Cross ( const Point a,
const Point b 
)
inline

◆ Cross() [2/2]

OPEN3D_HOST_DEVICE float open3d::ml::contrib::Cross ( const Point p1,
const Point p2,
const Point p0 
)
inline

◆ grid_subsampling()

void open3d::ml::contrib::grid_subsampling ( std::vector< PointXYZ > &  original_points,
std::vector< PointXYZ > &  subsampled_points,
std::vector< float > &  original_features,
std::vector< float > &  subsampled_features,
std::vector< int > &  original_classes,
std::vector< int > &  subsampled_classes,
float  sampleDl,
int  verbose 
)

◆ Intersection()

OPEN3D_HOST_DEVICE int open3d::ml::contrib::Intersection ( const Point p1,
const Point p0,
const Point q1,
const Point q0,
Point ans 
)
inline

◆ IoU3dCPUKernel()

void open3d::ml::contrib::IoU3dCPUKernel ( const float *  boxes_a,
const float *  boxes_b,
float *  iou,
int  num_a,
int  num_b 
)
Parameters
boxes_a(num_a, 7) float32.
boxes_b(num_b, 7) float32.
iou(num_a, num_b) float32, output iou values.
num_aNumber of boxes in boxes_a.
num_bNumber of boxes in boxes_b.

◆ IoU3DWithCenterAndSize()

OPEN3D_HOST_DEVICE float open3d::ml::contrib::IoU3DWithCenterAndSize ( const float *  box_a,
const float *  box_b 
)
inline

(x_center, y_max, z_center, x_size, y_size, z_size, y_rotate)

◆ IoUBev2DWithCenterAndSize()

OPEN3D_HOST_DEVICE float open3d::ml::contrib::IoUBev2DWithCenterAndSize ( const float *  box_a,
const float *  box_b,
bool  intersection_only = false 
)
inline

(x_center, z_center, x_size, z_size, y_rotate)

◆ IoUBev2DWithMinAndMax()

OPEN3D_HOST_DEVICE float open3d::ml::contrib::IoUBev2DWithMinAndMax ( const float *  box_a,
const float *  box_b,
bool  intersection_only = false 
)
inline

(x_min, z_min, x_max, z_max, y_rotate)

◆ IoUBevCPUKernel()

void open3d::ml::contrib::IoUBevCPUKernel ( const float *  boxes_a,
const float *  boxes_b,
float *  iou,
int  num_a,
int  num_b 
)
Parameters
boxes_a(num_a, 5) float32.
boxes_b(num_b, 5) float32.
iou(num_a, num_b) float32, output iou values.
num_aNumber of boxes in boxes_a.
num_bNumber of boxes in boxes_b. intersection over union.

◆ max_point()

PointXYZ open3d::ml::contrib::max_point ( std::vector< PointXYZ points)

◆ min_point()

PointXYZ open3d::ml::contrib::min_point ( std::vector< PointXYZ points)

◆ NmsCPUKernel()

std::vector< int64_t > open3d::ml::contrib::NmsCPUKernel ( const float *  boxes,
const float *  scores,
int  n,
double  nms_overlap_thresh 
)
Parameters
boxes(n, 5) float32.
scores(n,) float32.
nNumber of boxes.
nms_overlap_threshWhen a high-score box is selected, other remaining boxes with IoU > nms_overlap_thresh will be discarded.
Returns
Selected box indices to keep.

◆ operator*() [1/2]

PointXYZ open3d::ml::contrib::operator* ( const float  a,
const PointXYZ  P 
)
inline

◆ operator*() [2/2]

PointXYZ open3d::ml::contrib::operator* ( const PointXYZ  P,
const float  a 
)
inline

◆ operator+()

PointXYZ open3d::ml::contrib::operator+ ( const PointXYZ  A,
const PointXYZ  B 
)
inline

◆ operator-()

PointXYZ open3d::ml::contrib::operator- ( const PointXYZ  A,
const PointXYZ  B 
)
inline

◆ operator<<()

std::ostream& open3d::ml::contrib::operator<< ( std::ostream &  os,
const PointXYZ  P 
)
inline

◆ operator==()

bool open3d::ml::contrib::operator== ( const PointXYZ  A,
const PointXYZ  B 
)
inline

◆ OptBlockConfig()

dim3 open3d::ml::contrib::OptBlockConfig ( int  x,
int  y 
)
inline

◆ OptNumThreads()

int open3d::ml::contrib::OptNumThreads ( int  work_size)
inline

◆ PointCmp()

OPEN3D_HOST_DEVICE int open3d::ml::contrib::PointCmp ( const Point a,
const Point b,
const Point center 
)
inline

◆ RotateAroundCenter()

OPEN3D_HOST_DEVICE void open3d::ml::contrib::RotateAroundCenter ( const Point center,
const float  angle_cos,
const float  angle_sin,
Point p 
)
inline

Variable Documentation

◆ EPS

constexpr float open3d::ml::contrib::EPS = static_cast<float>(1e-8)
constexpr

◆ NMS_BLOCK_SIZE

constexpr int open3d::ml::contrib::NMS_BLOCK_SIZE = sizeof(uint64_t) * 8
constexpr