Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
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)
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)
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)
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

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

◆ NMS_BLOCK_SIZE

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