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

Go to the source code of this file.

Functions

int main ()
 

Function Documentation

◆ main()

int main ( )

Run PBOD decoder input-validation regression checks.

Definition at line 31 of file test_pbod_postprocess_validation.cpp.

31 {
36
37 PillarGrid grid = BuildPillarGrid({1, 1}, {{{0.0f, 1.0f}, {0.0f, 1.0f}, {0.0f, 1.0f}}}, 1, 1);
39 config.class_names = {"car"};
40
41 {
42 PbodOutputsView bad_view;
43 bad_view.num_pillars = 1;
44 bad_view.num_classes = 1;
45 bad_view.reg_dim = 7;
46 assert(ExpectInvalidArgument([&]() { (void)DecodePbod(bad_view, grid, config); }));
47 }
48
49 float focal_logits[1] = {0.0f};
50 float class_logits[1] = {1.0f};
51 float size_posterior[3] = {1.0f, 1.0f, 1.0f};
52 float reg_logits[7] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
53
54 {
55 PbodOutputsView bad_view;
56 bad_view.focal_logits = focal_logits;
57 bad_view.class_logits = class_logits;
58 bad_view.size_posterior = size_posterior;
59 bad_view.reg_logits = reg_logits;
60 bad_view.num_pillars = 1;
61 bad_view.num_classes = 1;
62 bad_view.reg_dim = 6;
63 assert(ExpectInvalidArgument([&]() { (void)DecodePbod(bad_view, grid, config); }));
64 }
65
66 {
67 PbodOutputsView good_view;
68 good_view.focal_logits = focal_logits;
69 good_view.class_logits = class_logits;
70 good_view.size_posterior = size_posterior;
71 good_view.reg_logits = reg_logits;
72 good_view.num_pillars = 1;
73 good_view.num_classes = 1;
74 good_view.reg_dim = 7;
75
76 PillarGrid bad_grid = grid;
77 bad_grid.centers.clear();
78 assert(ExpectInvalidArgument([&]() { (void)DecodePbod(good_view, bad_grid, config); }));
79 }
80
81 return 0;
82}
PillarGrid BuildPillarGrid(const std::array< int, 2 > &pillar_map_size, const std::array< std::array< float, 2 >, 3 > &pillar_map_range, int first_up_stride, int stride)
std::vector< BoundingBox > DecodePbod(const PbodOutputsView &outputs, const PillarGrid &grid, const PbodPostprocessConfig &config)
std::vector< std::string > class_names
Class name in model-output order.

References pcod_common::BuildPillarGrid(), pcod_common::PbodPostprocessConfig::class_names, and pcod_common::DecodePbod().