Apollo 11.0
自动驾驶开放平台
apollo::perception::trafficlight::EfficientNetRecognition类 参考final

#include <efficient_net.h>

类 apollo::perception::trafficlight::EfficientNetRecognition 继承关系图:
apollo::perception::trafficlight::EfficientNetRecognition 的协作图:

Public 成员函数

 EfficientNetRecognition ()=default
 Construct a new Traffic Light Recognition object
 
 ~EfficientNetRecognition ()=default
 Destroy the Traffic Light Recognition object
 
bool Init (const TrafficLightRecognitorInitOptions &options) override
 Initialize traffic light recognitor parameters.
 
bool Detect (camera::TrafficLightFrame *frame) override
 recogn traffic_light from image.
 
- Public 成员函数 继承自 apollo::perception::trafficlight::BaseTrafficLightRecognitor
 BaseTrafficLightRecognitor ()=default
 Construct a new base traffic light recognitor object.
 
virtual ~BaseTrafficLightRecognitor ()=default
 Destroy the base traffic light recognitor object.
 
 DISALLOW_COPY_AND_ASSIGN (BaseTrafficLightRecognitor)
 

详细描述

在文件 efficient_net.h 第 33 行定义.

构造及析构函数说明

◆ EfficientNetRecognition()

apollo::perception::trafficlight::EfficientNetRecognition::EfficientNetRecognition ( )
default

Construct a new Traffic Light Recognition object

◆ ~EfficientNetRecognition()

apollo::perception::trafficlight::EfficientNetRecognition::~EfficientNetRecognition ( )
default

Destroy the Traffic Light Recognition object

成员函数说明

◆ Detect()

bool apollo::perception::trafficlight::EfficientNetRecognition::Detect ( camera::TrafficLightFrame *  frame)
overridevirtual

recogn traffic_light from image.

参数
frame
返回
true
false

实现了 apollo::perception::trafficlight::BaseTrafficLightRecognitor.

在文件 efficient_net.cc 第 112 行定义.

112 {
113 if (frame->traffic_lights.size() <= 0) {
114 AINFO << "No recognizable traffic lights";
115 return true;
116 }
117 std::vector<base::TrafficLightPtr> candidate;
118 candidate.reserve(frame->traffic_lights.size());
119 // get traffic light region
120 for (base::TrafficLightPtr light : frame->traffic_lights) {
121 if (light->region.is_detected) {
122 candidate.push_back(light);
123 } else {
124 light->status.color = base::TLColor::TL_UNKNOWN_COLOR;
125 light->status.confidence = 0;
126 }
127 }
128 // classify color
129 Perform(frame, &candidate);
130
131 return true;
132}
#define AINFO
Definition log.h:42
std::shared_ptr< TrafficLight > TrafficLightPtr

◆ Init()

bool apollo::perception::trafficlight::EfficientNetRecognition::Init ( const TrafficLightRecognitorInitOptions &  options)
overridevirtual

Initialize traffic light recognitor parameters.

参数
options
返回
true
false

实现了 apollo::perception::trafficlight::BaseTrafficLightRecognitor.

在文件 efficient_net.cc 第 32 行定义.

32 {
33 gpu_id_ = options.gpu_id;
34 BASE_GPU_CHECK(cudaSetDevice(gpu_id_));
35 BASE_GPU_CHECK(cudaStreamCreate(&stream_));
36
37 std::string config_file = GetConfigFile(options.config_path, options.config_file);
38 ACHECK(apollo::cyber::common::GetProtoFromFile(config_file, &model_param_));
39 resize_height_ = model_param_.classify_resize_height();
40 resize_width_ = model_param_.classify_resize_width();
41 unknown_threshold_ = model_param_.classify_threshold();
42 scale_ = model_param_.scale();
43 mean_.reset(new base::Blob<float>(1, 3, 1, 1));
44 float* p = mean_->mutable_cpu_data();
45 if (model_param_.is_bgr()) {
46 data_provider_image_option_.target_color = base::Color::BGR;
47 p[0] = model_param_.mean_b();
48 p[1] = model_param_.mean_g();
49 p[2] = model_param_.mean_r();
50 } else {
51 data_provider_image_option_.target_color = base::Color::RGB;
52 p[0] = model_param_.mean_r();
53 p[1] = model_param_.mean_g();
54 p[2] = model_param_.mean_b();
55 }
56 std::vector<int> shape = {1, 3, resize_height_, resize_width_};
57 mean_buffer_.reset(new base::Blob<float>(shape));
58
59 // Init model
60 if (!InitModel()) {
61 AERROR << "Init model error.";
62 return false;
63 }
64 // image data
65 image_.reset(new base::Image8U(resize_height_, resize_width_, base::Color::BGR));
66
67 return true;
68}
#define ACHECK(cond)
Definition log.h:80
#define AERROR
Definition log.h:44
bool GetProtoFromFile(const std::string &file_name, google::protobuf::Message *message)
Parses the content of the file specified by the file_name as a representation of protobufs,...
Definition file.cc:132
std::string GetConfigFile(const std::string &config_path, const std::string &config_file)
Definition util.cc:80

该类的文档由以下文件生成: