86 {
87 const auto& object = new_object->object_ptr;
88 if (log_prob == nullptr) {
89 return false;
90 }
91 const auto& vecs = object->lidar_supplement.raw_probs;
92 const auto& names = object->lidar_supplement.raw_classification_methods;
93 if (vecs.empty()) {
94 return false;
95 }
96
97 log_prob->setZero();
98
100 static const Vectord epsilon = Vectord::Ones() * 1e-6;
101 float conf = object->confidence;
102 for (size_t i = 0; i < vecs.size(); ++i) {
103 auto& vec = vecs[i];
104
105 size_t type_count = static_cast<size_t>(ObjectType::MAX_OBJECT_TYPE);
106 if (vec.size() != type_count) {
107 AERROR <<
"[TypeFilter] Encounter Unknown type_probs";
108 continue;
109 }
113 single_prob = single_prob + epsilon;
114 } else {
115 single_prob = iter->second * single_prob + epsilon;
116 }
118
121 single_prob = conf * single_prob + (1.0 - conf) * tmp;
122
125 *log_prob += single_prob;
126 }
127
128 return true;
129}
Matrixd confidence_smooth_matrix_
apollo::common::EigenMap< std::string, Matrixd > smooth_matrices_
void FromStdToVector(const std::vector< float > &src_prob, Vectord *dst_prob)
From std to vector
void ToLog(Vectord *prob)
Compute log of Vectord
void Normalize(Vectord *prob)
Compute normalize of Vectord
Eigen::Matrix< double, VALID_OBJECT_TYPE, 1 > Vectord