Run PBOD decoder input-validation regression checks.
31 {
36
37 PillarGrid grid =
BuildPillarGrid({1, 1}, {{{0.0f, 1.0f}, {0.0f, 1.0f}, {0.0f, 1.0f}}}, 1, 1);
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.