22#include "modules/perception/traffic_light_recognition/proto/traffic_light_recognition_component.pb.h"
26namespace trafficlight {
31 AERROR <<
"TrafficLightRecognComponent InitConfig failed.";
36 AERROR <<
"TrafficLightRecognComponent InitAlgorithmPlugin failed.";
39 AINFO <<
"Successfully init traffic light recognition component.";
45 auto time_imags = std::to_string(message->timestamp_);
46 AINFO <<
"Enter recognition component, message timestamp: " << time_imags;
48 bool status = InternalProc(message);
50 writer_->Write(message);
51 AINFO <<
"Send trafficlight recognition output message.";
56int TrafficLightRecognComponent::InitConfig() {
59 AINFO <<
"load trafficlights recognition component proto param failed";
64 tl_recognitor_name_ = plugin_param.
name();
68 gpu_id_ = traffic_light_param.
gpu_id();
69 AINFO <<
"tl_recognitor_name: " << tl_recognitor_name_ <<
" config_path: " << config_path_
70 <<
" config_file: " << config_file_ <<
" gpu_id: " << gpu_id_;
77bool TrafficLightRecognComponent::InitAlgorithmPlugin() {
78 trafficlight::BaseTrafficLightRecognitor* recognitor
79 = trafficlight::BaseTrafficLightRecognitorRegisterer::GetInstanceByName(tl_recognitor_name_);
80 CHECK_NOTNULL(recognitor);
81 recognitor_.reset(recognitor);
82 ACHECK(recognitor_ !=
nullptr);
83 recognitor_init_options_.
gpu_id = gpu_id_;
84 recognitor_init_options_.
config_path = config_path_;
85 recognitor_init_options_.
config_file = config_file_;
87 if (!recognitor_->Init(recognitor_init_options_)) {
88 AERROR <<
"Trafficlight recognitor init failed";
95bool TrafficLightRecognComponent::InternalProc(
const std::shared_ptr<TrafficDetectMessage const>& message) {
97 bool status = recognitor_->Detect(message->traffic_light_frame_.get());
bool GetProtoConfig(T *config) const
std::shared_ptr< Node > node_
bool Proc(const std::shared_ptr< TrafficDetectMessage > &message) override
Trigger the recognition process based on the traffic detect message.
bool Init() override
Initialize configuration files, algorithm plug-ins.
#define PERF_FUNCTION(...)
optional string config_file
optional string config_path
optional perception::PluginParam plugin_param
optional string recognition_output_channel_name