Apollo 10.0
自动驾驶开放平台
apollo::perception 命名空间参考

apollo::perception 更多...

命名空间

namespace  algorithm
 
namespace  base
 
namespace  camera
 
namespace  common
 
namespace  fusion
 
namespace  inference
 
namespace  lib
 
namespace  lidar
 
namespace  map
 
namespace  msg
 
namespace  onboard
 
namespace  radar
 
namespace  radar4d
 
namespace  trafficlight
 

struct  BarrierGate
 
struct  BaseInitOptions
 
struct  BBox2D
 
struct  CameraValidDist
 
struct  CIPVInfo
 
struct  DebugMessage
 
struct  DstExistenceFusionConfig
 
struct  EgoLane
 
class  EvaluatorManager
 
struct  ImpendingCollisionEdge
 
struct  ImpendingCollisionEdges
 
struct  KeyValueArrayBool
 
struct  KeyValueArrayDouble
 
struct  KeyValueArrayFloat
 
struct  KeyValueArrayInt
 
struct  KeyValueArrayString
 
struct  KeyValueBool
 
struct  KeyValueDouble
 
struct  KeyValueFloat
 
struct  KeyValueInt
 
struct  KeyValueString
 
struct  LaneLineSimple
 
struct  LaneMarker
 
struct  LaneMarkers
 
struct  LightStatus
 
struct  LineSegment2Df
 
struct  ModelConfigFileListProto
 
struct  ModelConfigProto
 
struct  MotionService
 
struct  MotionType
 
class  MsgAdapterComponent
 
class  MsgConverter
 
struct  MultiModelConfigProto
 
struct  PerceptionAccurateDockInfo
 
struct  PerceptionBarrierGate
 
struct  PerceptionBenchmarkFrame
 
struct  PerceptionEdgeInfo
 
struct  PerceptionLanes
 
struct  PerceptionObstacle
 
struct  PerceptionObstacles
 
struct  PerceptionWaste
 
struct  PluginParam
 
struct  SensorFrameInfo
 
struct  SensorMeasurement
 
struct  TrafficLight
 
struct  TrafficLightBox
 
struct  TrafficLightDebug
 
struct  TrafficLightDetection
 
struct  Trajectory
 
struct  V2XInformation
 
struct  VanishingPoint
 
struct  VehicleStatus
 

类型定义

typedef Eigen::Vector2i Point2Di
 
typedef Eigen::Vector2f Point2Df
 
typedef Eigen::Vector2d Point2Dd
 
using IdObstacleListMap = std::unordered_map< int, std::list< Obstacle * > >
 

枚举

enum  KeyCode {
  KEY_0 = 48 , KEY_1 = 49 , KEY_2 = 50 , KEY_3 = 51 ,
  KEY_4 = 52 , KEY_5 = 53 , KEY_6 = 54 , KEY_7 = 55 ,
  KEY_8 = 56 , KEY_9 = 57 , KEY_UPPER_A = 65 , KEY_UPPER_B = 66 ,
  KEY_UPPER_C = 67 , KEY_UPPER_D = 68 , KEY_UPPER_E = 69 , KEY_UPPER_F = 70 ,
  KEY_UPPER_G = 71 , KEY_UPPER_H = 72 , KEY_UPPER_I = 73 , KEY_UPPER_J = 74 ,
  KEY_UPPER_K = 75 , KEY_UPPER_L = 76 , KEY_UPPER_M = 77 , KEY_UPPER_N = 78 ,
  KEY_UPPER_O = 79 , KEY_UPPER_P = 80 , KEY_UPPER_Q = 81 , KEY_UPPER_R = 82 ,
  KEY_UPPER_S = 83 , KEY_UPPER_T = 84 , KEY_UPPER_U = 85 , KEY_UPPER_V = 86 ,
  KEY_UPPER_W = 87 , KEY_UPPER_X = 88 , KEY_UPPER_Y = 89 , KEY_UPPER_Z = 90 ,
  KEY_LOWER_A = 97 , KEY_LOWER_B = 98 , KEY_LOWER_C = 99 , KEY_LOWER_D = 100 ,
  KEY_LOWER_E = 101 , KEY_LOWER_F = 102 , KEY_LOWER_G = 103 , KEY_LOWER_H = 104 ,
  KEY_LOWER_I = 105 , KEY_LOWER_J = 106 , KEY_LOWER_K = 107 , KEY_LOWER_L = 108 ,
  KEY_LOWER_M = 109 , KEY_LOWER_N = 110 , KEY_LOWER_O = 111 , KEY_LOWER_P = 112 ,
  KEY_LOWER_Q = 113 , KEY_LOWER_R = 114 , KEY_LOWER_S = 115 , KEY_LOWER_T = 116 ,
  KEY_LOWER_U = 117 , KEY_LOWER_V = 118 , KEY_LOWER_W = 119 , KEY_LOWER_X = 120 ,
  KEY_LOWER_Y = 121 , KEY_LOWER_Z = 122 , KEY_LEFT = 65361 , KEY_UP = 65362 ,
  KEY_RIGHT = 65363 , KEY_DOWN = 65364 , KEY_SHIFT_LEFT = 130897 , KEY_SHIFT_RIGHT = 130899 ,
  KEY_CTRL_S = 262259 , KEY_ALT_C = 524387 , KEY_LEFT_NUM_LOCK_ON = 1113937 , KEY_UP_NUM_LOCK_ON = 1113938 ,
  KEY_RIGHT_NUM_LOCK_ON = 1113939 , KEY_DOWN_NUM_LOCK_ON = 1113940 , KEY_SHIFT_LEFT_NUM_LOCK_ON = 1179475 , KEY_SHIFT_RIGHT_NUM_LOCK_ON = 1179473 ,
  KEY_CTRL_S_NUM_LOCK_ON = 1310835 , KEY_ALT_C_NUM_LOCK_ON = 1572963
}
 

函数

 DEFINE_string (obs_sensor_intrinsic_path, "modules/perception/data/params", "The intrinsics/extrinsics dir.")
 
 DEFINE_string (obs_sensor_meta_file, "sensor_meta.pb.txt", "The SensorManager config file.")
 
 DEFINE_bool (enable_base_object_pool, false, "Enable base object pool.")
 
 DEFINE_string (config_manager_path, "./", "The ModelConfig config paths.")
 
 DEFINE_string (work_root, "modules/perception", "Project work root direcotry.")
 
 DEFINE_string (onnx_obstacle_detector_model, "modules/perception/camera" "/lib/obstacle/detector/yolov4/model/yolov4_1_3_416_416.onnx", "The onnx model file for emergency detection")
 
 DEFINE_string (onnx_test_input_path, "modules/perception/inference" "/onnx/testdata/dog.jpg", "The test input image file for onnx inference")
 
 DEFINE_string (onnx_test_input_name_file, "modules/perception/inference" "/onnx/testdata/coco.names", "The test input coco name file for onnx inference")
 
 DEFINE_string (onnx_prediction_image_path, "modules/perception/inference" "/onnx/testdata/prediction.jpg", "The prediction output image file for onnx inference")
 
 DEFINE_int32 (num_classes, 80, "number of classes for onnx inference")
 
 DEFINE_string (torch_detector_model, "modules/perception/camera" "/lib/obstacle/detector/yolov4/model/yolov4.pt", "The torch model file for emergency detection")
 
 DEFINE_string (lidar_sensor_name, "velodyne128", "lidar sensor name")
 
 DEFINE_string (object_template_file, "object_template.pb.txt", "object template config file")
 
 DEFINE_int32 (hdmap_sample_step, 1, "hdmap sample step")
 
 DEFINE_bool (use_trt, false, "True if preprocess in CPU mode.")
 
 DEFINE_int32 (trt_precision, 1, "Precision type of tensorrt, 0: kFloat32, 1: kInt8, 2: kHalf")
 
 DEFINE_int32 (trt_use_static, 1, "Whether to load the tensorrt graph optimization from a disk path")
 
 DEFINE_bool (use_calibration, true, "Whether to use calibration table")
 
 DEFINE_bool (collect_shape_info, false, "Whether to collect dynamic shape before using tensorrt")
 
 DEFINE_bool (use_dynamicshape, true, "Whether to use dynamic shape when using tensorrt")
 
 DEFINE_string (dynamic_shape_file, "modules/perception/data/models/" "center_point_paddle/collect_shape_info_3lidar_20.pbtxt", "Path of a dynamic shape file for tensorrt")
 
 DEFINE_string (scene_manager_file, "scene_manager.conf", "scene manager config file")
 
 DEFINE_string (roi_service_file, "roi_service.conf", "roi service config file")
 
 DEFINE_string (ground_service_file, "ground_service.conf", "ground service config file")
 
 DEFINE_bool (need_judge_front_critical, false, "True if should short-miss-detection-but-track-output")
 
 DEFINE_double (x_front, 3.0, "reserve range smaller than X")
 
 DEFINE_double (x_back, -3.0, "reserve range bigger than X")
 
 DEFINE_double (y_front, 8.0, "reserve range smaller than Y")
 
 DEFINE_double (y_back, 0.0, "reserve range bigger than Y")
 
 DEFINE_bool (need_reserve_blind_cone, false, "True if reserve trafficCone when in host-car-blind-zone")
 
 DEFINE_double (cone_x_front, 2.0, "cone reserve range smaller than X")
 
 DEFINE_double (cone_x_back, -2.0, "cone reserve range bigger than X")
 
 DEFINE_double (cone_y_front, 5.0, "cone reserve range smaller than Y")
 
 DEFINE_double (cone_y_back, 0.0, "cone reserve range bigger than Y")
 
 DEFINE_double (cone_reserve_time, 10000.0, "cone reserve time")
 
 DECLARE_string (obs_sensor_intrinsic_path)
 
 DECLARE_string (obs_sensor_meta_file)
 
 DECLARE_bool (enable_base_object_pool)
 
 DECLARE_string (config_manager_path)
 
 DECLARE_string (work_root)
 
 DECLARE_string (onnx_obstacle_detector_model)
 
 DECLARE_string (onnx_test_input_path)
 
 DECLARE_string (onnx_test_input_name_file)
 
 DECLARE_string (onnx_prediction_image_path)
 
 DECLARE_int32 (num_classes)
 
 DECLARE_string (torch_detector_model)
 
 DECLARE_string (lidar_sensor_name)
 
 DECLARE_bool (use_trt)
 
 DECLARE_int32 (trt_precision)
 
 DECLARE_int32 (trt_use_static)
 
 DECLARE_bool (use_calibration)
 
 DECLARE_bool (use_dynamicshape)
 
 DECLARE_bool (collect_shape_info)
 
 DECLARE_string (dynamic_shape_file)
 
 DECLARE_string (object_template_file)
 
 DECLARE_int32 (hdmap_sample_step)
 
 DECLARE_string (scene_manager_file)
 
 DECLARE_string (roi_service_file)
 
 DECLARE_string (ground_service_file)
 
 DECLARE_bool (need_judge_front_critical)
 
 DECLARE_double (x_front)
 
 DECLARE_double (x_back)
 
 DECLARE_double (y_front)
 
 DECLARE_double (y_back)
 
 DECLARE_bool (need_reserve_blind_cone)
 
 DECLARE_double (cone_x_front)
 
 DECLARE_double (cone_x_back)
 
 DECLARE_double (cone_y_front)
 
 DECLARE_double (cone_y_back)
 
 DECLARE_double (cone_reserve_time)
 
std::string GetCommonConfigFile (const std::string &config_file)
 Get the perception common config path
 
std::string GetModelPath (const std::string &model_name)
 Get the model path by model name, search from APOLLO_MODEL_PATH
 
std::string GetModelFile (const std::string &model_name, const std::string &file_name)
 Get the model file path by model path and file name
 
std::string GetConfigPath (const std::string &config_path)
 Get the config path
 
std::string GetConfigFile (const std::string &config_path, const std::string &config_file)
 
bool ConvertObjectToPb (const base::ObjectPtr &object_ptr, PerceptionObstacle *pb_msg)
 
bool ConvertCameraFrame2Obstacles (const std::shared_ptr< onboard::CameraFrame > &frame, PerceptionObstacles *obstacles)
 
bool ConvertSensorFrameMessage2Obstacles (const std::shared_ptr< onboard::SensorFrameMessage > &msg, PerceptionObstacles *obstacles)
 
bool ConvertLidarFrameMessage2Obstacles (const std::shared_ptr< onboard::LidarFrameMessage > &msg, PerceptionObstacles *obstacles)
 
bool IsTrainable (const Feature &feature)
 

变量

constexpr float kMaxFloat = std::numeric_limits<float>::max()
 
constexpr float kLowestFloat = -std::numeric_limits<float>::max()
 
constexpr float kMinAngle = kLowestFloat / 180.0f
 
constexpr float kFloatEpsilon = 0.000001f
 
constexpr float k45DegreeInRadian = static_cast<float>(45.0f * M_PI) / 180.0f
 
constexpr uint32_t kMinLaneLineLengthForCIPV = 2
 
constexpr float kAverageLaneWidthInMeter = 3.7f
 
constexpr float kMaxVehicleWidthInMeter = 1.87f
 
constexpr float kMarginVehicleToLane
 
constexpr float kSingleVirtualEgolaneWidthInMeter
 
constexpr float kHalfVehicleWidthInMeter = kMaxVehicleWidthInMeter / 2.0f
 
cv::Scalar black_color = cv::Scalar(0, 0, 0)
 
cv::Scalar white_color = cv::Scalar(255, 255, 255)
 
cv::Scalar magenta_color = cv::Scalar(255, 0, 255)
 
cv::Scalar purple_color = cv::Scalar(128, 0, 128)
 
cv::Scalar teal_color = cv::Scalar(128, 128, 0)
 
cv::Scalar violet_color = cv::Scalar(238, 130, 238)
 
cv::Scalar pink_color = cv::Scalar(203, 192, 255)
 
cv::Scalar beige_color = cv::Scalar(220, 245, 245)
 
cv::Scalar ivory_color = cv::Scalar(240, 255, 255)
 
cv::Scalar azure_color = cv::Scalar(255, 255, 240)
 
cv::Scalar cyan_color = cv::Scalar(255, 255, 0)
 
cv::Scalar sky_blue_color = cv::Scalar(235, 206, 135)
 
cv::Scalar deep_sky_blue_color = cv::Scalar(255, 191, 0)
 
cv::Scalar dodger_blue_color = cv::Scalar(255, 144, 30)
 
cv::Scalar blue_color = cv::Scalar(255, 0, 0)
 
cv::Scalar medium_blue_color = cv::Scalar(205, 0, 0)
 
cv::Scalar dark_blue_color = cv::Scalar(139, 0, 0)
 
cv::Scalar navy_color = cv::Scalar(128, 0, 0)
 
cv::Scalar dark_green_color = cv::Scalar(0, 100, 0)
 
cv::Scalar lime_color = cv::Scalar(0, 255, 0)
 
cv::Scalar light_green_color = cv::Scalar(144, 238, 144)
 
cv::Scalar olive_color = cv::Scalar(0, 128, 128)
 
cv::Scalar green_color = cv::Scalar(0, 128, 0)
 
cv::Scalar red_color = cv::Scalar(0, 0, 255)
 
cv::Scalar coral_color = cv::Scalar(80, 127, 255)
 
cv::Scalar salmon_color = cv::Scalar(144, 128, 250)
 
cv::Scalar orange_color = cv::Scalar(0, 165, 255)
 
cv::Scalar yellow_color = cv::Scalar(0, 255, 255)
 
cv::Scalar maroon_color = cv::Scalar(0, 0, 128)
 
cv::Scalar light_gray_color = cv::Scalar(100, 100, 100)
 
cv::Scalar gray_color = cv::Scalar(128, 128, 128)
 
cv::Scalar dark_gray_color = cv::Scalar(170, 170, 170)
 
cv::Scalar silver_color = cv::Scalar(192, 192, 192)
 

详细描述

类型定义说明

◆ IdObstacleListMap

using apollo::perception::IdObstacleListMap = typedef std::unordered_map<int, std::list<Obstacle*> >

在文件 evaluator_manager.cc37 行定义.

◆ Point2Dd

typedef Eigen::Vector2d apollo::perception::Point2Dd

在文件 lane_object.h54 行定义.

◆ Point2Df

typedef Eigen::Vector2f apollo::perception::Point2Df

在文件 lane_object.h53 行定义.

◆ Point2Di

typedef Eigen::Vector2i apollo::perception::Point2Di

在文件 lane_object.h52 行定义.

枚举类型说明

◆ KeyCode

枚举值
KEY_0 
KEY_1 
KEY_2 
KEY_3 
KEY_4 
KEY_5 
KEY_6 
KEY_7 
KEY_8 
KEY_9 
KEY_UPPER_A 
KEY_UPPER_B 
KEY_UPPER_C 
KEY_UPPER_D 
KEY_UPPER_E 
KEY_UPPER_F 
KEY_UPPER_G 
KEY_UPPER_H 
KEY_UPPER_I 
KEY_UPPER_J 
KEY_UPPER_K 
KEY_UPPER_L 
KEY_UPPER_M 
KEY_UPPER_N 
KEY_UPPER_O 
KEY_UPPER_P 
KEY_UPPER_Q 
KEY_UPPER_R 
KEY_UPPER_S 
KEY_UPPER_T 
KEY_UPPER_U 
KEY_UPPER_V 
KEY_UPPER_W 
KEY_UPPER_X 
KEY_UPPER_Y 
KEY_UPPER_Z 
KEY_LOWER_A 
KEY_LOWER_B 
KEY_LOWER_C 
KEY_LOWER_D 
KEY_LOWER_E 
KEY_LOWER_F 
KEY_LOWER_G 
KEY_LOWER_H 
KEY_LOWER_I 
KEY_LOWER_J 
KEY_LOWER_K 
KEY_LOWER_L 
KEY_LOWER_M 
KEY_LOWER_N 
KEY_LOWER_O 
KEY_LOWER_P 
KEY_LOWER_Q 
KEY_LOWER_R 
KEY_LOWER_S 
KEY_LOWER_T 
KEY_LOWER_U 
KEY_LOWER_V 
KEY_LOWER_W 
KEY_LOWER_X 
KEY_LOWER_Y 
KEY_LOWER_Z 
KEY_LEFT 
KEY_UP 
KEY_RIGHT 
KEY_DOWN 
KEY_SHIFT_LEFT 
KEY_SHIFT_RIGHT 
KEY_CTRL_S 
KEY_ALT_C 
KEY_LEFT_NUM_LOCK_ON 
KEY_UP_NUM_LOCK_ON 
KEY_RIGHT_NUM_LOCK_ON 
KEY_DOWN_NUM_LOCK_ON 
KEY_SHIFT_LEFT_NUM_LOCK_ON 
KEY_SHIFT_RIGHT_NUM_LOCK_ON 
KEY_CTRL_S_NUM_LOCK_ON 
KEY_ALT_C_NUM_LOCK_ON 

在文件 keycode.h21 行定义.

21 {
22 // Arabic numbers
23 KEY_0 = 48,
24 KEY_1 = 49,
25 KEY_2 = 50,
26 KEY_3 = 51,
27 KEY_4 = 52,
28 KEY_5 = 53,
29 KEY_6 = 54,
30 KEY_7 = 55,
31 KEY_8 = 56,
32 KEY_9 = 57,
33
34 // Alphabet upper case
35 KEY_UPPER_A = 65,
36 KEY_UPPER_B = 66,
37 KEY_UPPER_C = 67,
38 KEY_UPPER_D = 68,
39 KEY_UPPER_E = 69,
40 KEY_UPPER_F = 70,
41 KEY_UPPER_G = 71,
42 KEY_UPPER_H = 72,
43 KEY_UPPER_I = 73,
44 KEY_UPPER_J = 74,
45 KEY_UPPER_K = 75,
46 KEY_UPPER_L = 76,
47 KEY_UPPER_M = 77,
48 KEY_UPPER_N = 78,
49 KEY_UPPER_O = 79,
50 KEY_UPPER_P = 80,
51 KEY_UPPER_Q = 81,
52 KEY_UPPER_R = 82,
53 KEY_UPPER_S = 83,
54 KEY_UPPER_T = 84,
55 KEY_UPPER_U = 85,
56 KEY_UPPER_V = 86,
57 KEY_UPPER_W = 87,
58 KEY_UPPER_X = 88,
59 KEY_UPPER_Y = 89,
60 KEY_UPPER_Z = 90,
61
62 // Alphabet lower case
63 KEY_LOWER_A = 97,
64 KEY_LOWER_B = 98,
65 KEY_LOWER_C = 99,
66 KEY_LOWER_D = 100,
67 KEY_LOWER_E = 101,
68 KEY_LOWER_F = 102,
69 KEY_LOWER_G = 103,
70 KEY_LOWER_H = 104,
71 KEY_LOWER_I = 105,
72 KEY_LOWER_J = 106,
73 KEY_LOWER_K = 107,
74 KEY_LOWER_L = 108,
75 KEY_LOWER_M = 109,
76 KEY_LOWER_N = 110,
77 KEY_LOWER_O = 111,
78 KEY_LOWER_P = 112,
79 KEY_LOWER_Q = 113,
80 KEY_LOWER_R = 114,
81 KEY_LOWER_S = 115,
82 KEY_LOWER_T = 116,
83 KEY_LOWER_U = 117,
84 KEY_LOWER_V = 118,
85 KEY_LOWER_W = 119,
86 KEY_LOWER_X = 120,
87 KEY_LOWER_Y = 121,
88 KEY_LOWER_Z = 122,
89
90 // Arrows
91 KEY_LEFT = 65361,
92 KEY_UP = 65362,
93 KEY_RIGHT = 65363,
94 KEY_DOWN = 65364,
95 KEY_SHIFT_LEFT = 130897,
96 KEY_SHIFT_RIGHT = 130899,
97
98 // Combination with Shift and Control keys
99 KEY_CTRL_S = 262259,
100 KEY_ALT_C = 524387,
101
102 // Num Lock is on
103 // Arrows
104 KEY_LEFT_NUM_LOCK_ON = 1113937,
105 KEY_UP_NUM_LOCK_ON = 1113938,
106 KEY_RIGHT_NUM_LOCK_ON = 1113939,
107 KEY_DOWN_NUM_LOCK_ON = 1113940,
110
111 // Combination with Shift and Control keys
112 KEY_CTRL_S_NUM_LOCK_ON = 1310835,
113 KEY_ALT_C_NUM_LOCK_ON = 1572963,
114}; // enum KeyCode
@ KEY_SHIFT_RIGHT_NUM_LOCK_ON
Definition keycode.h:109

函数说明

◆ ConvertCameraFrame2Obstacles()

bool apollo::perception::ConvertCameraFrame2Obstacles ( const std::shared_ptr< onboard::CameraFrame > &  frame,
PerceptionObstacles obstacles 
)

在文件 convert.h33 行定义.

35 {
36 static uint32_t seq_num = 0;
37 auto header = obstacles->mutable_header();
38 header->set_timestamp_sec(cyber::Clock::NowInSeconds());
39 header->set_module_name("perception_camera");
40 header->set_sequence_num(seq_num++);
41 // nanosecond
42 header->set_lidar_timestamp(static_cast<uint64_t>(frame->timestamp * 1e9));
43 header->set_camera_timestamp(static_cast<uint64_t>(frame->timestamp * 1e9));
44
45 obstacles->set_error_code(apollo::common::OK);
46
47 for (const auto &obj : frame->detected_objects) {
48 PerceptionObstacle *obstacle = obstacles->add_perception_obstacle();
49 if (!ConvertObjectToPb(obj, obstacle)) {
50 AERROR << "ConvertObjectToPb failed, Object:" << obj->ToString();
51 return false;
52 }
53 }
54 return true;
55}
static double NowInSeconds()
gets the current time in second.
Definition clock.cc:56
#define AERROR
Definition log.h:44
bool ConvertObjectToPb(const base::ObjectPtr &object_ptr, PerceptionObstacle *pb_msg)
Definition common.h:28

◆ ConvertLidarFrameMessage2Obstacles()

bool apollo::perception::ConvertLidarFrameMessage2Obstacles ( const std::shared_ptr< onboard::LidarFrameMessage > &  msg,
PerceptionObstacles obstacles 
)

在文件 convert.h81 行定义.

83 {
84 static uint32_t seq_num = 0;
85 auto header = obstacles->mutable_header();
86 header->set_timestamp_sec(cyber::Clock::NowInSeconds());
87 header->set_module_name("perception_lidar");
88 header->set_sequence_num(seq_num++);
89 header->set_lidar_timestamp(msg->lidar_timestamp_);
90 header->set_camera_timestamp(0);
91 header->set_radar_timestamp(0);
92
93 obstacles->set_error_code(apollo::common::OK);
94
95 int id = 0;
96 for (const auto &obj : msg->lidar_frame_.get()->segmented_objects) {
97 Eigen::Vector3d trans_point(obj->center(0), obj->center(1), obj->center(2));
98 trans_point = msg->lidar_frame_.get()->lidar2world_pose * trans_point;
99 obj->center(0) = trans_point[0];
100 obj->center(1) = trans_point[1];
101 obj->center(2) = trans_point[2];
102
103 for (size_t i = 0; i < obj->polygon.size(); ++i) {
104 auto &pt = obj->polygon[i];
105 Eigen::Vector3d trans_point_polygon(pt.x, pt.y, pt.z);
106 trans_point_polygon =
107 msg->lidar_frame_.get()->lidar2world_pose * trans_point_polygon;
108 pt.x = trans_point_polygon[0];
109 pt.y = trans_point_polygon[1];
110 pt.z = trans_point_polygon[2];
111 }
112
113 base::PointDCloud& cloud_world = (obj->lidar_supplement).cloud_world;
114 cloud_world.clear();
115 cloud_world.resize(obj->lidar_supplement.cloud.size());
116 for (size_t i = 0; i < obj->lidar_supplement.cloud.size(); ++i) {
117 Eigen::Vector3d pt(obj->lidar_supplement.cloud[i].x,
118 obj->lidar_supplement.cloud[i].y,
119 obj->lidar_supplement.cloud[i].z);
120 Eigen::Vector3d pt_world = msg->lidar_frame_.get()->lidar2world_pose * pt;
121 cloud_world[i].x = pt_world(0);
122 cloud_world[i].y = pt_world(1);
123 cloud_world[i].z = pt_world(2);
124 cloud_world[i].intensity = obj->lidar_supplement.cloud[i].intensity;
125 }
126
127 for (size_t i = 0; i < obj->lidar_supplement.cloud.size(); ++i) {
128 cloud_world.SetPointHeight(i,
129 obj->lidar_supplement.cloud.points_height(i));
130 }
131
132 Eigen::Vector3d trans_anchor_point(obj->anchor_point(0),
133 obj->anchor_point(1),
134 obj->anchor_point(2));
135 trans_anchor_point =
136 msg->lidar_frame_.get()->lidar2world_pose * trans_anchor_point;
137 obj->anchor_point(0) = trans_anchor_point[0];
138 obj->anchor_point(1) = trans_anchor_point[1];
139 obj->anchor_point(2) = trans_anchor_point[2];
140
141 obj->track_id = id++;
142 }
143
144 for (const auto &obj : msg->lidar_frame_.get()->segmented_objects) {
145 PerceptionObstacle *obstacle = obstacles->add_perception_obstacle();
146 if (!ConvertObjectToPb(obj, obstacle)) {
147 AERROR << "ConvertObjectToPb failed, Object:" << obj->ToString();
148 return false;
149 }
150 }
151 return true;
152}

◆ ConvertObjectToPb()

bool apollo::perception::ConvertObjectToPb ( const base::ObjectPtr object_ptr,
PerceptionObstacle pb_msg 
)

在文件 common.h28 行定义.

29 {
30 if (object_ptr == nullptr || pb_msg == nullptr) {
31 return false;
32 }
33
34 pb_msg->set_id(object_ptr->track_id);
35 pb_msg->set_theta(object_ptr->theta);
36
37 apollo::common::Point3D *obj_center = pb_msg->mutable_position();
38 obj_center->set_x(object_ptr->center(0));
39 obj_center->set_y(object_ptr->center(1));
40 obj_center->set_z(object_ptr->center(2));
41
42 apollo::common::Point3D *obj_velocity = pb_msg->mutable_velocity();
43 obj_velocity->set_x(object_ptr->velocity(0));
44 obj_velocity->set_y(object_ptr->velocity(1));
45 obj_velocity->set_z(object_ptr->velocity(2));
46
47 apollo::common::Point3D *obj_acceleration = pb_msg->mutable_acceleration();
48 obj_acceleration->set_x(object_ptr->acceleration(0));
49 obj_acceleration->set_y(object_ptr->acceleration(1));
50 obj_acceleration->set_z(object_ptr->acceleration(2));
51
52 pb_msg->set_length(object_ptr->size(0));
53 pb_msg->set_width(object_ptr->size(1));
54 pb_msg->set_height(object_ptr->size(2));
55
56 for (size_t i = 0; i < object_ptr->polygon.size(); ++i) {
57 auto &pt = object_ptr->polygon.at(i);
58 apollo::common::Point3D *p = pb_msg->add_polygon_point();
59 p->set_x(pt.x);
60 p->set_y(pt.y);
61 p->set_z(pt.z);
62 }
63
64 for (auto &point : object_ptr->lidar_supplement.cloud.points()) {
65 pb_msg->add_point_cloud(point.x);
66 pb_msg->add_point_cloud(point.y);
67 pb_msg->add_point_cloud(point.z);
68 }
69
70 apollo::common::Point3D *obj_anchor_point = pb_msg->mutable_anchor_point();
71 obj_anchor_point->set_x(object_ptr->anchor_point(0));
72 obj_anchor_point->set_y(object_ptr->anchor_point(1));
73 obj_anchor_point->set_z(object_ptr->anchor_point(2));
74
75 BBox2D *obj_bbox2d = pb_msg->mutable_bbox2d();
76 const base::BBox2DF &box = object_ptr->camera_supplement.box;
77 obj_bbox2d->set_xmin(box.xmin);
78 obj_bbox2d->set_ymin(box.ymin);
79 obj_bbox2d->set_xmax(box.xmax);
80 obj_bbox2d->set_ymax(box.ymax);
81
82 for (size_t i = 0; i < 3; i++) {
83 for (size_t j = 0; j < 3; j++) {
84 pb_msg->add_position_covariance(object_ptr->center_uncertainty(i, j));
85 pb_msg->add_velocity_covariance(object_ptr->velocity_uncertainty(i, j));
86 pb_msg->add_acceleration_covariance(
87 object_ptr->acceleration_uncertainty(i, j));
88 }
89 }
90
91 pb_msg->set_tracking_time(object_ptr->tracking_time);
92 pb_msg->set_type(static_cast<PerceptionObstacle::Type>(object_ptr->type));
93 pb_msg->set_sub_type(
94 static_cast<PerceptionObstacle::SubType>(object_ptr->sub_type));
95 pb_msg->set_timestamp(object_ptr->latest_tracked_time); // in seconds.
96 pb_msg->set_semantic_type(static_cast<PerceptionObstacle::SemanticType>(
97 object_ptr->lidar_supplement.semantic_type));
98
99 constexpr float kFloatMax = std::numeric_limits<float>::max();
100 if (object_ptr->lidar_supplement.height_above_ground != kFloatMax) {
101 pb_msg->set_height_above_ground(
102 object_ptr->lidar_supplement.height_above_ground);
103 } else {
104 pb_msg->set_height_above_ground(std::numeric_limits<double>::quiet_NaN());
105 }
106
107 if (object_ptr->type == base::ObjectType::VEHICLE) {
108 LightStatus *light_status = pb_msg->mutable_light_status();
109 const base::CarLight &car_light = object_ptr->car_light;
110 light_status->set_brake_visible(car_light.brake_visible);
111 light_status->set_brake_switch_on(car_light.brake_switch_on);
112
113 light_status->set_left_turn_visible(car_light.left_turn_visible);
114 light_status->set_left_turn_switch_on(car_light.left_turn_switch_on);
115
116 light_status->set_right_turn_visible(car_light.right_turn_visible);
117 light_status->set_right_turn_switch_on(car_light.right_turn_switch_on);
118 }
119
120 if (object_ptr->fusion_supplement.on_use) {
121 for (const auto &measurement : object_ptr->fusion_supplement.measurements) {
122 SensorMeasurement *pb_measurement = pb_msg->add_measurements();
123 pb_measurement->set_sensor_id(measurement.sensor_id);
124 pb_measurement->set_id(measurement.track_id);
125
126 apollo::common::Point3D *pb_position = pb_measurement->mutable_position();
127 pb_position->set_x(measurement.center(0));
128 pb_position->set_y(measurement.center(1));
129 pb_position->set_z(measurement.center(2));
130
131 pb_measurement->set_theta(measurement.theta);
132 pb_measurement->set_length(measurement.size(0));
133 pb_measurement->set_width(measurement.size(1));
134 pb_measurement->set_height(measurement.size(2));
135
136 apollo::common::Point3D *pb_velocity = pb_measurement->mutable_velocity();
137 pb_velocity->set_x(measurement.velocity(0));
138 pb_velocity->set_y(measurement.velocity(1));
139 pb_velocity->set_z(measurement.velocity(2));
140
141 pb_measurement->set_type(
142 static_cast<PerceptionObstacle::Type>(measurement.type));
143 // pb_measurement->set_sub_type();
144 pb_measurement->set_timestamp(measurement.timestamp);
145
146 BBox2D *pb_box = pb_measurement->mutable_box();
147 pb_box->set_xmin(measurement.box.xmin);
148 pb_box->set_ymin(measurement.box.ymin);
149 pb_box->set_xmax(measurement.box.xmax);
150 pb_box->set_ymax(measurement.box.ymax);
151 }
152 }
153
154 return true;
155}

◆ ConvertSensorFrameMessage2Obstacles()

bool apollo::perception::ConvertSensorFrameMessage2Obstacles ( const std::shared_ptr< onboard::SensorFrameMessage > &  msg,
PerceptionObstacles obstacles 
)

在文件 convert.h57 行定义.

59 {
60 auto header = obstacles->mutable_header();
61 header->set_timestamp_sec(cyber::Clock::NowInSeconds());
62 header->set_module_name("perception_obstacle");
63 header->set_sequence_num(msg->seq_num_);
64 header->set_lidar_timestamp(msg->lidar_timestamp_);
65 header->set_camera_timestamp(0);
66 header->set_radar_timestamp(0);
67
68 obstacles->set_error_code(apollo::common::ErrorCode::OK);
69 if (msg != nullptr && msg->frame_ != nullptr) {
70 for (const auto &obj : msg->frame_->objects) {
71 PerceptionObstacle *obstacle = obstacles->add_perception_obstacle();
72 if (!ConvertObjectToPb(obj, obstacle)) {
73 AERROR << "ConvertObjectToPb failed, Object:" << obj->ToString();
74 return false;
75 }
76 }
77 }
78 return true;
79}

◆ DECLARE_bool() [1/7]

apollo::perception::DECLARE_bool ( collect_shape_info  )

◆ DECLARE_bool() [2/7]

apollo::perception::DECLARE_bool ( enable_base_object_pool  )

◆ DECLARE_bool() [3/7]

apollo::perception::DECLARE_bool ( need_judge_front_critical  )

◆ DECLARE_bool() [4/7]

apollo::perception::DECLARE_bool ( need_reserve_blind_cone  )

◆ DECLARE_bool() [5/7]

apollo::perception::DECLARE_bool ( use_calibration  )

◆ DECLARE_bool() [6/7]

apollo::perception::DECLARE_bool ( use_dynamicshape  )

◆ DECLARE_bool() [7/7]

apollo::perception::DECLARE_bool ( use_trt  )

◆ DECLARE_double() [1/9]

apollo::perception::DECLARE_double ( cone_reserve_time  )

◆ DECLARE_double() [2/9]

apollo::perception::DECLARE_double ( cone_x_back  )

◆ DECLARE_double() [3/9]

apollo::perception::DECLARE_double ( cone_x_front  )

◆ DECLARE_double() [4/9]

apollo::perception::DECLARE_double ( cone_y_back  )

◆ DECLARE_double() [5/9]

apollo::perception::DECLARE_double ( cone_y_front  )

◆ DECLARE_double() [6/9]

apollo::perception::DECLARE_double ( x_back  )

◆ DECLARE_double() [7/9]

apollo::perception::DECLARE_double ( x_front  )

◆ DECLARE_double() [8/9]

apollo::perception::DECLARE_double ( y_back  )

◆ DECLARE_double() [9/9]

apollo::perception::DECLARE_double ( y_front  )

◆ DECLARE_int32() [1/4]

apollo::perception::DECLARE_int32 ( hdmap_sample_step  )

◆ DECLARE_int32() [2/4]

apollo::perception::DECLARE_int32 ( num_classes  )

◆ DECLARE_int32() [3/4]

apollo::perception::DECLARE_int32 ( trt_precision  )

◆ DECLARE_int32() [4/4]

apollo::perception::DECLARE_int32 ( trt_use_static  )

◆ DECLARE_string() [1/15]

apollo::perception::DECLARE_string ( config_manager_path  )

◆ DECLARE_string() [2/15]

apollo::perception::DECLARE_string ( dynamic_shape_file  )

◆ DECLARE_string() [3/15]

apollo::perception::DECLARE_string ( ground_service_file  )

◆ DECLARE_string() [4/15]

apollo::perception::DECLARE_string ( lidar_sensor_name  )

◆ DECLARE_string() [5/15]

apollo::perception::DECLARE_string ( object_template_file  )

◆ DECLARE_string() [6/15]

apollo::perception::DECLARE_string ( obs_sensor_intrinsic_path  )

◆ DECLARE_string() [7/15]

apollo::perception::DECLARE_string ( obs_sensor_meta_file  )

◆ DECLARE_string() [8/15]

apollo::perception::DECLARE_string ( onnx_obstacle_detector_model  )

◆ DECLARE_string() [9/15]

apollo::perception::DECLARE_string ( onnx_prediction_image_path  )

◆ DECLARE_string() [10/15]

apollo::perception::DECLARE_string ( onnx_test_input_name_file  )

◆ DECLARE_string() [11/15]

apollo::perception::DECLARE_string ( onnx_test_input_path  )

◆ DECLARE_string() [12/15]

apollo::perception::DECLARE_string ( roi_service_file  )

◆ DECLARE_string() [13/15]

apollo::perception::DECLARE_string ( scene_manager_file  )

◆ DECLARE_string() [14/15]

apollo::perception::DECLARE_string ( torch_detector_model  )

◆ DECLARE_string() [15/15]

apollo::perception::DECLARE_string ( work_root  )

◆ DEFINE_bool() [1/7]

apollo::perception::DEFINE_bool ( collect_shape_info  ,
false  ,
"Whether to collect dynamic shape before using tensorrt"   
)

◆ DEFINE_bool() [2/7]

apollo::perception::DEFINE_bool ( enable_base_object_pool  ,
false  ,
"Enable base object pool."   
)

◆ DEFINE_bool() [3/7]

apollo::perception::DEFINE_bool ( need_judge_front_critical  ,
false  ,
"True if should short-miss-detection-but-track-output"   
)

◆ DEFINE_bool() [4/7]

apollo::perception::DEFINE_bool ( need_reserve_blind_cone  ,
false  ,
"True if reserve trafficCone when in host-car-blind-zone"   
)

◆ DEFINE_bool() [5/7]

apollo::perception::DEFINE_bool ( use_calibration  ,
true  ,
"Whether to use calibration table"   
)

◆ DEFINE_bool() [6/7]

apollo::perception::DEFINE_bool ( use_dynamicshape  ,
true  ,
"Whether to use dynamic shape when using tensorrt"   
)

◆ DEFINE_bool() [7/7]

apollo::perception::DEFINE_bool ( use_trt  ,
false  ,
"True if preprocess in CPU mode."   
)

◆ DEFINE_double() [1/9]

apollo::perception::DEFINE_double ( cone_reserve_time  ,
10000.  0,
"cone reserve time"   
)

◆ DEFINE_double() [2/9]

apollo::perception::DEFINE_double ( cone_x_back  ,
-2.  0,
"cone reserve range bigger than X"   
)

◆ DEFINE_double() [3/9]

apollo::perception::DEFINE_double ( cone_x_front  ,
2.  0,
"cone reserve range smaller than X"   
)

◆ DEFINE_double() [4/9]

apollo::perception::DEFINE_double ( cone_y_back  ,
0.  0,
"cone reserve range bigger than Y"   
)

◆ DEFINE_double() [5/9]

apollo::perception::DEFINE_double ( cone_y_front  ,
5.  0,
"cone reserve range smaller than Y"   
)

◆ DEFINE_double() [6/9]

apollo::perception::DEFINE_double ( x_back  ,
-3.  0,
"reserve range bigger than X"   
)

◆ DEFINE_double() [7/9]

apollo::perception::DEFINE_double ( x_front  ,
3.  0,
"reserve range smaller than X"   
)

◆ DEFINE_double() [8/9]

apollo::perception::DEFINE_double ( y_back  ,
0.  0,
"reserve range bigger than Y"   
)

◆ DEFINE_double() [9/9]

apollo::perception::DEFINE_double ( y_front  ,
8.  0,
"reserve range smaller than Y"   
)

◆ DEFINE_int32() [1/4]

apollo::perception::DEFINE_int32 ( hdmap_sample_step  ,
,
"hdmap sample step"   
)

◆ DEFINE_int32() [2/4]

apollo::perception::DEFINE_int32 ( num_classes  ,
80  ,
"number of classes for onnx inference"   
)

◆ DEFINE_int32() [3/4]

apollo::perception::DEFINE_int32 ( trt_precision  ,
,
"Precision type of  tensorrt,
0:kFloat32  ,
1:kInt8  ,
2:kHalf"   
)

◆ DEFINE_int32() [4/4]

apollo::perception::DEFINE_int32 ( trt_use_static  ,
,
"Whether to load the tensorrt graph optimization from a disk path"   
)

◆ DEFINE_string() [1/15]

apollo::perception::DEFINE_string ( config_manager_path  ,
"./"  ,
"The ModelConfig config paths."   
)

◆ DEFINE_string() [2/15]

apollo::perception::DEFINE_string ( dynamic_shape_file  ,
"modules/perception/data/models/" "center_point_paddle/collect_shape_info_3lidar_20.pbtxt"  ,
"Path of a dynamic shape file for tensorrt"   
)

◆ DEFINE_string() [3/15]

apollo::perception::DEFINE_string ( ground_service_file  ,
"ground_service.conf"  ,
"ground service config file"   
)

◆ DEFINE_string() [4/15]

apollo::perception::DEFINE_string ( lidar_sensor_name  ,
"velodyne128"  ,
"lidar sensor name"   
)

◆ DEFINE_string() [5/15]

apollo::perception::DEFINE_string ( object_template_file  ,
"object_template.pb.txt"  ,
"object template config file"   
)

◆ DEFINE_string() [6/15]

apollo::perception::DEFINE_string ( obs_sensor_intrinsic_path  ,
"modules/perception/data/params"  ,
"The intrinsics/extrinsics dir."   
)

◆ DEFINE_string() [7/15]

apollo::perception::DEFINE_string ( obs_sensor_meta_file  ,
"sensor_meta.pb.txt"  ,
"The SensorManager config file."   
)

◆ DEFINE_string() [8/15]

apollo::perception::DEFINE_string ( onnx_obstacle_detector_model  ,
"modules/perception/camera" "/lib/obstacle/detector/yolov4/model/yolov4_1_3_416_416.onnx"  ,
"The onnx model file for emergency detection"   
)

◆ DEFINE_string() [9/15]

apollo::perception::DEFINE_string ( onnx_prediction_image_path  ,
"modules/perception/inference" "/onnx/testdata/prediction.jpg"  ,
"The prediction output image file for onnx inference"   
)

◆ DEFINE_string() [10/15]

apollo::perception::DEFINE_string ( onnx_test_input_name_file  ,
"modules/perception/inference" "/onnx/testdata/coco.names"  ,
"The test input coco name file for onnx inference"   
)

◆ DEFINE_string() [11/15]

apollo::perception::DEFINE_string ( onnx_test_input_path  ,
"modules/perception/inference" "/onnx/testdata/dog.jpg"  ,
"The test input image file for onnx inference"   
)

◆ DEFINE_string() [12/15]

apollo::perception::DEFINE_string ( roi_service_file  ,
"roi_service.conf"  ,
"roi service config file"   
)

◆ DEFINE_string() [13/15]

apollo::perception::DEFINE_string ( scene_manager_file  ,
"scene_manager.conf"  ,
"scene manager config file"   
)

◆ DEFINE_string() [14/15]

apollo::perception::DEFINE_string ( torch_detector_model  ,
"modules/perception/camera" "/lib/obstacle/detector/yolov4/model/yolov4.pt"  ,
"The torch model file for emergency detection"   
)

◆ DEFINE_string() [15/15]

apollo::perception::DEFINE_string ( work_root  ,
"modules/perception"  ,
"Project work root direcotry."   
)

◆ GetCommonConfigFile()

std::string apollo::perception::GetCommonConfigFile ( const std::string &  config_file)

Get the perception common config path

参数
config_pathThe config file path, if path is relative, search from ${APOLLO_CONF_PATH}/modules/perception/data/conf
返回
std::string The common config path

在文件 util.cc28 行定义.

28 {
29 std::string actual_config_path = "";
30 std::string relative_config_path = config_file;
31 if (!apollo::cyber::common::PathIsAbsolute(config_file)) {
32 // If config_file is relative, then prepend "modules/" to it.
33 relative_config_path = "modules/perception/data/conf/" + config_file;
34 }
36 relative_config_path, "APOLLO_CONF_PATH", &actual_config_path)) {
37 AERROR << "Failed to get config path of " << config_file << " please check "
38 << "if config exists or `APOLLO_CONF_PATH` environment variable has "
39 << "been set correctly.";
40 }
41 return actual_config_path;
42}
bool GetFilePathWithEnv(const std::string &path, const std::string &env_var, std::string *file_path)
get file path, judgement priority:
Definition file.cc:436
bool PathIsAbsolute(const std::string &path)
Definition file.cc:200

◆ GetConfigFile()

std::string apollo::perception::GetConfigFile ( const std::string &  config_path,
const std::string &  config_file 
)

在文件 util.cc80 行定义.

81 {
82 std::string absolute_config_path = GetConfigPath(config_path);
83 std::string file_path =
84 cyber::common::GetAbsolutePath(absolute_config_path, config_file);
85 return file_path;
86}
std::string GetConfigPath(const std::string &config_path)
Get the config path
Definition util.cc:64

◆ GetConfigPath()

std::string apollo::perception::GetConfigPath ( const std::string &  config_path)

Get the config path

参数
config_pathThe config path, if path is relative, search from ${APOLLO_CONF_PATH}
返回
std::string The config path

在文件 util.cc64 行定义.

64 {
65 std::string actual_config_path = "";
66 std::string relative_config_path = config_path;
67 if (!apollo::cyber::common::PathIsAbsolute(config_path)) {
68 // If config_path is relative, then prepend "modules/" to it.
69 relative_config_path = "modules/" + config_path;
70 }
72 relative_config_path, "APOLLO_CONF_PATH", &actual_config_path)) {
73 AERROR << "Failed to get config path of " << config_path << " please check "
74 << "if config exists or `APOLLO_CONF_PATH` environment variable has "
75 << "been set correctly.";
76 }
77 return actual_config_path;
78}

◆ GetModelFile()

std::string apollo::perception::GetModelFile ( const std::string &  model_name,
const std::string &  file_name 
)

Get the model file path by model path and file name

参数
model_nameThe model name, use GetModelPath to get the model path
file_nameThe file name
返回
std::string The model file path

在文件 util.cc55 行定义.

56 {
57 std::string model_path = GetModelPath(model_name);
58 if (model_path.empty()) {
59 return "";
60 }
61 return model_path + "/" + file_name;
62}
std::string GetModelPath(const std::string &model_name)
Get the model path by model name, search from APOLLO_MODEL_PATH
Definition util.cc:44

◆ GetModelPath()

std::string apollo::perception::GetModelPath ( const std::string &  model_name)

Get the model path by model name, search from APOLLO_MODEL_PATH

参数
model_nameThe model name
返回
std::string The model path, empty for not found

在文件 util.cc44 行定义.

44 {
45 std::string model_path = "";
47 model_name, "APOLLO_MODEL_PATH", &model_path)) {
48 AERROR << "Failed to get model path of " << model_name << " please check "
49 << "if model has been installed or `APOLLO_MODEL_PATH` environment "
50 << "variable has been set correctly.";
51 }
52 return model_path;
53}

◆ IsTrainable()

bool apollo::perception::IsTrainable ( const Feature feature)

在文件 evaluator_manager.cc39 行定义.

39 {
40 if (feature.id() == FLAGS_ego_vehicle_id) {
41 return false;
42 }
43 if (feature.priority().priority() == ObstaclePriority::IGNORE ||
44 feature.is_still() || feature.type() != PerceptionObstacle::VEHICLE) {
45 return false;
46 }
47 return true;
48}
optional apollo::perception::PerceptionObstacle::Type type
optional ObstaclePriority priority

变量说明

◆ azure_color

cv::Scalar apollo::perception::azure_color = cv::Scalar(255, 255, 240)

在文件 colormap.h39 行定义.

◆ beige_color

cv::Scalar apollo::perception::beige_color = cv::Scalar(220, 245, 245)

在文件 colormap.h35 行定义.

◆ black_color

cv::Scalar apollo::perception::black_color = cv::Scalar(0, 0, 0)

在文件 colormap.h28 行定义.

◆ blue_color

cv::Scalar apollo::perception::blue_color = cv::Scalar(255, 0, 0)

在文件 colormap.h44 行定义.

◆ coral_color

cv::Scalar apollo::perception::coral_color = cv::Scalar(80, 127, 255)

在文件 colormap.h58 行定义.

◆ cyan_color

cv::Scalar apollo::perception::cyan_color = cv::Scalar(255, 255, 0)

在文件 colormap.h40 行定义.

◆ dark_blue_color

cv::Scalar apollo::perception::dark_blue_color = cv::Scalar(139, 0, 0)

在文件 colormap.h46 行定义.

◆ dark_gray_color

cv::Scalar apollo::perception::dark_gray_color = cv::Scalar(170, 170, 170)

在文件 colormap.h67 行定义.

◆ dark_green_color

cv::Scalar apollo::perception::dark_green_color = cv::Scalar(0, 100, 0)

在文件 colormap.h50 行定义.

◆ deep_sky_blue_color

cv::Scalar apollo::perception::deep_sky_blue_color = cv::Scalar(255, 191, 0)

在文件 colormap.h42 行定义.

◆ dodger_blue_color

cv::Scalar apollo::perception::dodger_blue_color = cv::Scalar(255, 144, 30)

在文件 colormap.h43 行定义.

◆ gray_color

cv::Scalar apollo::perception::gray_color = cv::Scalar(128, 128, 128)

在文件 colormap.h66 行定义.

◆ green_color

cv::Scalar apollo::perception::green_color = cv::Scalar(0, 128, 0)

在文件 colormap.h54 行定义.

◆ ivory_color

cv::Scalar apollo::perception::ivory_color = cv::Scalar(240, 255, 255)

在文件 colormap.h36 行定义.

◆ k45DegreeInRadian

constexpr float apollo::perception::k45DegreeInRadian = static_cast<float>(45.0f * M_PI) / 180.0f
constexpr

在文件 lane_object.h34 行定义.

◆ kAverageLaneWidthInMeter

constexpr float apollo::perception::kAverageLaneWidthInMeter = 3.7f
constexpr

在文件 lane_object.h39 行定义.

◆ kFloatEpsilon

constexpr float apollo::perception::kFloatEpsilon = 0.000001f
constexpr

在文件 lane_object.h32 行定义.

◆ kHalfVehicleWidthInMeter

constexpr float apollo::perception::kHalfVehicleWidthInMeter = kMaxVehicleWidthInMeter / 2.0f
constexpr

在文件 lane_object.h50 行定义.

◆ kLowestFloat

constexpr float apollo::perception::kLowestFloat = -std::numeric_limits<float>::max()
constexpr

在文件 lane_object.h30 行定义.

◆ kMarginVehicleToLane

constexpr float apollo::perception::kMarginVehicleToLane
constexpr
初始值:
=
constexpr float kMaxVehicleWidthInMeter
Definition lane_object.h:41
constexpr float kAverageLaneWidthInMeter
Definition lane_object.h:39

在文件 lane_object.h43 行定义.

◆ kMaxFloat

constexpr float apollo::perception::kMaxFloat = std::numeric_limits<float>::max()
constexpr

在文件 lane_object.h29 行定义.

◆ kMaxVehicleWidthInMeter

constexpr float apollo::perception::kMaxVehicleWidthInMeter = 1.87f
constexpr

在文件 lane_object.h41 行定义.

◆ kMinAngle

constexpr float apollo::perception::kMinAngle = kLowestFloat / 180.0f
constexpr

在文件 lane_object.h31 行定义.

◆ kMinLaneLineLengthForCIPV

constexpr uint32_t apollo::perception::kMinLaneLineLengthForCIPV = 2
constexpr

在文件 lane_object.h37 行定义.

◆ kSingleVirtualEgolaneWidthInMeter

constexpr float apollo::perception::kSingleVirtualEgolaneWidthInMeter
constexpr
初始值:

在文件 lane_object.h46 行定义.

◆ light_gray_color

cv::Scalar apollo::perception::light_gray_color = cv::Scalar(100, 100, 100)

在文件 colormap.h65 行定义.

◆ light_green_color

cv::Scalar apollo::perception::light_green_color = cv::Scalar(144, 238, 144)

在文件 colormap.h52 行定义.

◆ lime_color

cv::Scalar apollo::perception::lime_color = cv::Scalar(0, 255, 0)

在文件 colormap.h51 行定义.

◆ magenta_color

cv::Scalar apollo::perception::magenta_color = cv::Scalar(255, 0, 255)

在文件 colormap.h30 行定义.

◆ maroon_color

cv::Scalar apollo::perception::maroon_color = cv::Scalar(0, 0, 128)

在文件 colormap.h62 行定义.

◆ medium_blue_color

cv::Scalar apollo::perception::medium_blue_color = cv::Scalar(205, 0, 0)

在文件 colormap.h45 行定义.

◆ navy_color

cv::Scalar apollo::perception::navy_color = cv::Scalar(128, 0, 0)

在文件 colormap.h47 行定义.

◆ olive_color

cv::Scalar apollo::perception::olive_color = cv::Scalar(0, 128, 128)

在文件 colormap.h53 行定义.

◆ orange_color

cv::Scalar apollo::perception::orange_color = cv::Scalar(0, 165, 255)

在文件 colormap.h60 行定义.

◆ pink_color

cv::Scalar apollo::perception::pink_color = cv::Scalar(203, 192, 255)

在文件 colormap.h34 行定义.

◆ purple_color

cv::Scalar apollo::perception::purple_color = cv::Scalar(128, 0, 128)

在文件 colormap.h31 行定义.

◆ red_color

cv::Scalar apollo::perception::red_color = cv::Scalar(0, 0, 255)

在文件 colormap.h57 行定义.

◆ salmon_color

cv::Scalar apollo::perception::salmon_color = cv::Scalar(144, 128, 250)

在文件 colormap.h59 行定义.

◆ silver_color

cv::Scalar apollo::perception::silver_color = cv::Scalar(192, 192, 192)

在文件 colormap.h68 行定义.

◆ sky_blue_color

cv::Scalar apollo::perception::sky_blue_color = cv::Scalar(235, 206, 135)

在文件 colormap.h41 行定义.

◆ teal_color

cv::Scalar apollo::perception::teal_color = cv::Scalar(128, 128, 0)

在文件 colormap.h32 行定义.

◆ violet_color

cv::Scalar apollo::perception::violet_color = cv::Scalar(238, 130, 238)

在文件 colormap.h33 行定义.

◆ white_color

cv::Scalar apollo::perception::white_color = cv::Scalar(255, 255, 255)

在文件 colormap.h29 行定义.

◆ yellow_color

cv::Scalar apollo::perception::yellow_color = cv::Scalar(0, 255, 255)

在文件 colormap.h61 行定义.