pcod-common v1.0.0
Shared preprocessing and postprocessing for point-cloud object detection
Loading...
Searching...
No Matches
test_point_preprocess.cpp File Reference
#include "pcod_common/point_preprocess.hpp"
#include <cassert>
#include <cmath>
#include <stdexcept>

Go to the source code of this file.

Functions

int main ()
 

Function Documentation

◆ main()

int main ( )

Run point preprocessing regression checks.

Definition at line 11 of file test_point_preprocess.cpp.

11 {
13 config.x_min = -1.0f;
14 config.x_max = 1.0f;
15 config.y_min = -1.0f;
16 config.y_max = 1.0f;
17 config.z_min = -1.0f;
18 config.z_max = 1.0f;
20 config.value_threshold = 10.0f;
21 config.remove_points_in_zone = true;
22 config.nd_x_min = -0.2f;
23 config.nd_x_max = 0.2f;
24 config.nd_y_min = -0.2f;
25 config.nd_y_max = 0.2f;
26 config.det_area_remove_outside = true;
27 config.da_cx = 0.0f;
28 config.da_cy = 0.0f;
29 config.da_radius = 1.0f;
30 config.da_bearing_rad = 0.0f;
31 config.da_fov_rad = 1.5707963267948966f;
32
33 pcod_common::PointPreprocessor preprocessor(config);
34
35 assert(!preprocessor.IsPointValid(0.0f, 0.0f, 0.0f));
36 assert(preprocessor.IsPointValid(0.6f, 0.0f, 0.0f));
37 assert(!preprocessor.IsPointValid(0.0f, 0.6f, 0.0f));
38 assert(!preprocessor.IsPointValid(2.0f, 0.0f, 0.0f));
39
40 assert(std::abs(preprocessor.NormalizePointFeature(5.0f) - 0.5f) < 1e-6f);
41 assert(std::abs(preprocessor.NormalizePointFeature(20.0f) - 1.0f) < 1e-6f);
42 assert(std::abs(preprocessor.NormalizePointFeature(-1.0f) - 0.0f) < 1e-6f);
43
44 {
47 mm_cfg.min_value = 10.0f;
48 mm_cfg.max_value = 20.0f;
49 pcod_common::PointPreprocessor minmax(mm_cfg);
50 assert(std::abs(minmax.NormalizePointFeature(5.0f) - 0.0f) < 1e-6f);
51 assert(std::abs(minmax.NormalizePointFeature(15.0f) - 0.5f) < 1e-6f);
52 assert(std::abs(minmax.NormalizePointFeature(25.0f) - 1.0f) < 1e-6f);
53 }
54
55 {
58 z_cfg.epsilon = 1e-3f;
60 zscore.SetZScoreStats(10.0f, 2.0f);
61 assert(std::abs(zscore.NormalizePointFeature(14.0f) - 2.0f) < 1e-6f);
62 }
63
64 {
66 assert(pcod_common::ParsePointFeatureNormalizationType("value_threshold") ==
70 bool threw = false;
71 try {
73 } catch (const std::runtime_error&) {
74 threw = true;
75 }
76 assert(threw);
77 }
78
79 return 0;
80}
PointFeatureNormalizationType ParsePointFeatureNormalizationType(const std::string &value)
bool remove_points_in_zone
Enable rectangular no-detection-zone filtering.
float min_value
Minimum for min-max normalization.
float da_cy
Detection-area center Y.
float x_max
Maximum accepted X coordinate.
float value_threshold
Divisor for value-threshold normalization.
bool det_area_remove_outside
Enable radial field-of-view filtering.
float y_min
Minimum accepted Y coordinate.
float epsilon
Lower bound for unsafe normalization divisors.
float z_min
Minimum accepted Z coordinate.
float nd_x_min
No-detection-zone minimum X.
float x_min
Minimum accepted X coordinate.
float da_radius
Detection-area radius.
float z_max
Maximum accepted Z coordinate.
float da_fov_rad
Detection-area angular width in radians.
float nd_y_max
No-detection-zone maximum Y.
float da_bearing_rad
Detection-area center bearing in radians.
float y_max
Maximum accepted Y coordinate.
float da_cx
Detection-area center X.
float max_value
Maximum for min-max normalization.
PointFeatureNormalizationType normalization_type
Feature transform.
float nd_x_max
No-detection-zone maximum X.
float nd_y_min
No-detection-zone minimum Y.

References pcod_common::PointPreprocessConfig::da_bearing_rad, pcod_common::PointPreprocessConfig::da_cx, pcod_common::PointPreprocessConfig::da_cy, pcod_common::PointPreprocessConfig::da_fov_rad, pcod_common::PointPreprocessConfig::da_radius, pcod_common::PointPreprocessConfig::det_area_remove_outside, pcod_common::PointPreprocessConfig::epsilon, pcod_common::PointPreprocessor::IsPointValid(), pcod_common::kMinMax, pcod_common::kNone, pcod_common::kValueThreshold, pcod_common::kZScore, pcod_common::PointPreprocessConfig::max_value, pcod_common::PointPreprocessConfig::min_value, pcod_common::PointPreprocessConfig::nd_x_max, pcod_common::PointPreprocessConfig::nd_x_min, pcod_common::PointPreprocessConfig::nd_y_max, pcod_common::PointPreprocessConfig::nd_y_min, pcod_common::PointPreprocessConfig::normalization_type, pcod_common::PointPreprocessor::NormalizePointFeature(), pcod_common::ParsePointFeatureNormalizationType(), pcod_common::PointPreprocessConfig::remove_points_in_zone, pcod_common::PointPreprocessor::SetZScoreStats(), pcod_common::PointPreprocessConfig::value_threshold, pcod_common::PointPreprocessConfig::x_max, pcod_common::PointPreprocessConfig::x_min, pcod_common::PointPreprocessConfig::y_max, pcod_common::PointPreprocessConfig::y_min, pcod_common::PointPreprocessConfig::z_max, and pcod_common::PointPreprocessConfig::z_min.