62 std::string
Name()
const override {
return "BEVObstacleDetector"; }
74 bool ImageExtrinsicPreprocess(
const CameraFrame *frame,
77 bool Nuscenes2Apollo(std::vector<base::ObjectPtr> *objects);
79 void Mat2Vec(
const cv::Mat &im,
float *data);
81 void GetObjects(
const CameraFrame *frame,
const float *outputs_scores,
82 const float *outputs_coords,
83 std::vector<base::ObjectPtr> *objects);
85 bool GetOccResults(
CameraFrame *frame,
const float *outputs_occupancy);
92 int max_batch_size_ = 32;
93 cudaStream_t stream_ =
nullptr;
95 std::vector<float> k_nuscenes_lidar2img_{
96 1.26315285e+03, 8.20961550e+02, 2.39035795e+01, -6.07673494e+02,
97 6.61316935e+00, 5.15120214e+02, -1.25698017e+03, -7.86354408e+02,
98 -3.95160255e-03, 9.99817517e-01, 1.86900441e-02, -7.62910510e-01,
99 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,
100 1.36956207e+03, -6.04983867e+02, -2.90382932e+01, -3.15916033e+02,
101 3.99862161e+02, 3.04064067e+02, -1.25807304e+03, -7.97115537e+02,
102 8.33862795e-01, 5.51951686e-01, 4.70912802e-03, -7.53284567e-01,
103 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,
104 5.10102547e+01, 1.51619727e+03, 3.66401186e+01, -8.63314902e+02,
105 -3.89866270e+02, 3.05282552e+02, -1.26667835e+03, -7.77329408e+02,
106 -8.19828451e-01, 5.72492498e-01, 1.15607703e-02, -7.39298163e-01,
107 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,
108 -8.12919287e+02, -8.25472117e+02, -1.42047254e+01, -7.56204850e+02,
109 5.79180367e+00, -4.75682694e+02, -8.12798555e+02, -6.61898527e+02,
110 -4.51723964e-03, -9.99961261e-01, -7.55454093e-03, -9.09695896e-01,
111 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,
112 -1.14954471e+03, 9.40916235e+02, 8.06648094e+00, -6.46751669e+02,
113 -4.42244125e+02, -1.14568251e+02, -1.27024460e+03, -5.19557827e+02,
114 -9.48195535e-01, -3.16334599e-01, -2.92856511e-02, -4.34020102e-01,
115 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,
116 3.04831143e+02, -1.46336936e+03, -6.04997023e+01, -4.76695738e+01,
117 4.61395173e+02, -1.27936752e+02, -1.26819508e+03, -5.58714538e+02,
118 9.34193888e-01, -3.56238546e-01, -1.93875899e-02, -4.27659445e-01,
119 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00};
121 bevformer::ModelParam model_param_;
122 ObstacleDetectorInitOptions options_;
123 std::vector<base::ObjectSubType> types_;
125 int num_decoder_layer_;
128 int num_classes_det_;
129 int num_classes_occ_;
131 int class_blob_start_index_;
132 int class_blob_end_index_;
133 int box_blob_start_index_;
134 float *use_prev_bev_;
135 int prev_bev_size_ = 1;
136 std::shared_ptr<onboard::TransformWrapper> trans_wrapper_;
137 Buffer *tf2_buffer_ = Buffer::Instance();
139 std::vector<float> mean_bgr_{0, 0, 0};
140 std::vector<float> std_bgr_{0, 0, 0};
141 bool resize_flag_ =
false;
142 std::vector<float> resized_lidar2img_;
143 std::vector<double> last_can_bus_;
145 int occ_blob_index_ = 3;
147 float occ_threshold_ = 0.25;
148 float occ_xmin_ = -20.0;
149 float occ_xmax_ = 20.0;
150 float occ_ymin_ = -20.0;
151 float occ_ymax_ = 20.0;
152 float occ_zmin_ = -20.0;
153 float occ_zmax_ = 20.0;
154 float voxel_size_ = 0.2;
158 std::vector<float> no_pad_image_shape_ = {450.0, 800.0};
159 std::vector<std::pair<int, int>> occ_results_;