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

#include <recognition.h>

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

Public 成员函数

 TrafficLightRecognition ()=default
 Construct a new Traffic Light Recognition object
 
 ~TrafficLightRecognition ()=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)
 

详细描述

在文件 recognition.h 第 32 行定义.

构造及析构函数说明

◆ TrafficLightRecognition()

apollo::perception::trafficlight::TrafficLightRecognition::TrafficLightRecognition ( )
default

Construct a new Traffic Light Recognition object

◆ ~TrafficLightRecognition()

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

Destroy the Traffic Light Recognition object

成员函数说明

◆ Detect()

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

recogn traffic_light from image.

参数
frame
返回
true
false

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

在文件 recognition.cc 第 45 行定义.

45 {
46 std::vector<base::TrafficLightPtr> candidate(1);
47
48 for (base::TrafficLightPtr light : frame->traffic_lights) {
49 if (light->region.is_detected) {
50 candidate[0] = light;
51 if (light->region.detect_class_id == base::TLDetectionClass::TL_QUADRATE_CLASS) {
52 AINFO << "Recognize Use Quadrate Model!";
53 classify_quadrate_->Perform(frame, &candidate);
54 } else if (light->region.detect_class_id == base::TLDetectionClass::TL_VERTICAL_CLASS) {
55 AINFO << "Recognize Use Vertical Model!";
56 classify_vertical_->Perform(frame, &candidate);
57 } else if (light->region.detect_class_id == base::TLDetectionClass::TL_HORIZONTAL_CLASS) {
58 AINFO << "Recognize Use Horizonal Model!";
59 classify_horizontal_->Perform(frame, &candidate);
60 } else {
61 return false;
62 }
63 } else {
64 light->status.color = base::TLColor::TL_UNKNOWN_COLOR;
65 light->status.confidence = 0;
66 }
67 }
68
69 return true;
70}
#define AINFO
Definition log.h:42
std::shared_ptr< TrafficLight > TrafficLightPtr

◆ Init()

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

Initialize traffic light recognitor parameters.

参数
options
返回
true
false

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

在文件 recognition.cc 第 26 行定义.

26 {
27 std::string config_file = GetConfigFile(options.config_path, options.config_file);
28
29 if (!cyber::common::GetProtoFromFile(config_file, &recognize_param_)) {
30 AINFO << "load proto param failed, root dir: " << config_file;
31 return false;
32 }
33
34 classify_quadrate_.reset(new ClassifyBySimple);
35 classify_vertical_.reset(new ClassifyBySimple);
36 classify_horizontal_.reset(new ClassifyBySimple);
37
38 classify_quadrate_->Init(recognize_param_.quadrate_model(), options.gpu_id);
39 classify_vertical_->Init(recognize_param_.vertical_model(), options.gpu_id);
40 classify_horizontal_->Init(recognize_param_.horizontal_model(), options.gpu_id);
41
42 return true;
43}
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

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