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.";
44 const std::shared_ptr<TrafficDetectMessage>& message) {
46 auto time_imags = std::to_string(message->timestamp_);
47 AINFO <<
"Enter recognition component, message timestamp: " << time_imags;
49 bool status = InternalProc(message);
51 writer_->Write(message);
52 AINFO <<
"Send trafficlight recognition output message.";
57int TrafficLightRecognComponent::InitConfig() {
60 AINFO <<
"load trafficlights recognition component proto param failed";
65 tl_recognitor_name_ = plugin_param.
name();
69 gpu_id_ = traffic_light_param.
gpu_id();
70 AINFO <<
"tl_recognitor_name: " << tl_recognitor_name_
71 <<
" config_path: " << config_path_ <<
" config_file: " << config_file_
72 <<
" gpu_id: " << gpu_id_;
74 writer_ =
node_->CreateWriter<TrafficDetectMessage>(
80bool TrafficLightRecognComponent::InitAlgorithmPlugin() {
81 trafficlight::BaseTrafficLightRecognitor* recognitor =
82 trafficlight::BaseTrafficLightRecognitorRegisterer::GetInstanceByName(
84 CHECK_NOTNULL(recognitor);
85 recognitor_.reset(recognitor);
86 ACHECK(recognitor_ !=
nullptr);
87 recognitor_init_options_.
gpu_id = gpu_id_;
88 recognitor_init_options_.
config_path = config_path_;
89 recognitor_init_options_.
config_file = config_file_;
91 if (!recognitor_->Init(recognitor_init_options_)) {
92 AERROR <<
"Trafficlight recognitor init failed";
99bool TrafficLightRecognComponent::InternalProc(
100 const std::shared_ptr<TrafficDetectMessage const>& message) {
102 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