28 if (frame ==
nullptr) {
32 for (
size_t i = 0; i < objects->size(); ++i) {
34 GetObjSemanticAndMotionType(objects->at(i));
40void SemanticBuilder::GetObjSemanticAndMotionType(
ObjectPtr object) {
43 for (
size_t i = 0; i <
object->lidar_supplement.cloud.size(); i++) {
44 uint8_t value =
object->lidar_supplement.cloud.points_semantic_label(i);
47 int index =
static_cast<int>(label);
53 int motion_index =
static_cast<int>(motion_label);
55 motion_type_count[motion_index]++;
61 for (
size_t i = 0; i < type_count.size(); i++) {
62 if (type_count.at(i) > max_value) {
63 max_value = type_count.at(i);
71 int motion_max_value = -1;
72 int motion_max_index = 0;
73 for (
size_t i = 0; i < motion_type_count.size(); i++) {
74 if (motion_type_count.at(i) > motion_max_value) {
75 motion_max_value = motion_type_count.at(i);
80 object->lidar_supplement.dynamic_state =
static_cast<base::MotionState>(motion_max_index);
bool Init(const SemanticBuilderInitOptions &options=SemanticBuilderInitOptions())
Init the Semantic Builder with initialization options
bool Build(const SemanticBuilderOptions &options, LidarFrame *frame)
Get object semantic type.
PointSemanticLabel GetSemanticLabel(uint8_t value)
PointMotionLabel GetMotionLabel(uint8_t value)
std::shared_ptr< apollo::perception::base::Object > ObjectPtr
std::vector< std::shared_ptr< base::Object > > segmented_objects