22#include "gtest/gtest_prod.h"
24#include "modules/perception/lidar_detection/detector/cnn_segmentation/proto/model_param.pb.h"
41 pc_gpu_size_ = kMaxPointCloudGPUSize;
42 BASE_GPU_CHECK(cudaMalloc(
reinterpret_cast<void**
>(&pc_gpu_),
44 BASE_GPU_CHECK(cudaMalloc(
reinterpret_cast<void**
>(&point2grid_gpu_),
45 pc_gpu_size_ *
sizeof(
int)));
77 const std::vector<int>& point2grid) {
79 GenerateGPU(pc_ptr, point2grid);
81 GenerateCPU(pc_ptr, point2grid);
90 inline std::string
Name()
const {
return "FeatureGenerator"; }
95 const std::vector<int>& point2grid);
96 void ReleaseGPUMemory();
99 const std::vector<int>& point2grid);
101 float LogCount(
int count) {
102 if (count <
static_cast<int>(log_table_.size())) {
103 return log_table_[count];
105 return logf(
static_cast<float>(1 + count));
109 std::vector<float> log_table_;
111 std::shared_ptr<base::Blob<float>> log_blob_;
112 const int kMaxLogNum = 256;
118 float min_height_ = 0.0f;
119 float max_height_ = 0.0f;
120 bool use_intensity_feature_ =
false;
121 bool use_constant_feature_ =
false;
124 float* max_height_data_ =
nullptr;
125 float* mean_height_data_ =
nullptr;
126 float* count_data_ =
nullptr;
127 float* direction_data_ =
nullptr;
128 float* top_intensity_data_ =
nullptr;
129 float* mean_intensity_data_ =
nullptr;
130 float* distance_data_ =
nullptr;
131 float* nonempty_data_ =
nullptr;
134 std::vector<int> map_idx_;
137 base::Blob<float>* out_blob_ =
nullptr;
141 int* point2grid_gpu_ =
nullptr;
142 int pc_gpu_size_ = 0;
143 const int kMaxPointCloudGPUSize = 120000;
144 const int kGPUThreadSize = 512;
A wrapper around SyncedMemory holders serving as the basic computational unit for images,...
friend class FeatureGeneratorTest
void Generate(const base::PointFCloudPtr &pc_ptr, const std::vector< int > &point2grid)
Generate features for cnnseg
std::string Name() const
Name of Feature Generator
virtual ~FeatureGenerator()
Destroy the Feature Generator object
FeatureGenerator()
Construct a new Feature Generator object
bool Init(const cnnseg::FeatureParam &feature_param, base::Blob< float > *out_blob)
Init the Feature Generator
std::shared_ptr< PointFCloud > PointFCloudPtr