27 const std::vector<base::ObjectSubType> &types,
32 const float *boxes_data = boxes->cpu_data();
33 const float *labels_data = labels->cpu_data();
34 const float *scores_data = scores->cpu_data();
37 for (
int i = 0; i < labels->num(); ++i) {
38 const float *bbox = boxes_data + i * len_pred;
39 float score = *(scores_data + i);
44 float label = *(labels_data + i);
51 obj->sub_type_probs.assign(
53 obj->type_probs[
static_cast<int>(obj->type)] = score;
54 obj->sub_type_probs[
static_cast<int>(obj->sub_type)] = score;
55 obj->confidence = score;
59 Eigen::Matrix<float, 3, 4> velo_to_cam;
60 velo_to_cam << 0.00753374, -0.9999714, -0.0006166, -0.00406977, 0.01480249,
61 0.00072807, -0.9998902, -0.07631618, 0.9998621, 0.00752379, 0.01480755,
64 Eigen::Matrix<float, 3, 3> R;
65 R << 0.9999239, 0.00983776, -0.00744505, -0.0098698, 0.9999421, -0.00427846,
66 0.00740253, 0.00435161, 0.9999631;
68 std::vector<float> test_result(7);
73 objects->push_back(obj);
78 const Eigen::Matrix<float, 3, 3> &R,
79 const float *bbox_lidar,
80 std::vector<float> *bbox_camera) {
81 float x = *(bbox_lidar + 0);
82 float y = *(bbox_lidar + 1);
83 float z = *(bbox_lidar + 2);
84 float l = *(bbox_lidar + 3);
85 float w = *(bbox_lidar + 4);
86 float h = *(bbox_lidar + 5);
87 float r = *(bbox_lidar + 6);
90 Eigen::Vector4f xyz_lidar;
91 xyz_lidar << x, y, z - h / 2.0, 1.0;
92 Eigen::Matrix<float, 1, 3> pts_rect =
93 xyz_lidar.transpose() * (V2C.transpose() * R.transpose());
94 std::vector<float> final_result{
95 pts_rect(0), pts_rect(1), pts_rect(2), l, h, w, r};
96 bbox_camera->assign(final_result.data(),
97 final_result.data() + final_result.size());
void Bbox3dLidar2Camera(const Eigen::Matrix< float, 3, 4 > &V2C, const Eigen::Matrix< float, 3, 3 > &R, const float *bbox_lidar, std::vector< float > *bbox_camera)
Get the Caddn Objects objects from Blob
void GetCaddnObjects(std::vector< base::ObjectPtr > *objects, const caddn::ModelParam &model_param, const std::vector< base::ObjectSubType > &types, const base::BlobPtr< float > &boxes, const base::BlobPtr< float > &labels, const base::BlobPtr< float > &scores)
Get the Caddn Objects objects from Blob