Apollo 11.0
自动驾驶开放平台
apollo::perception::camera::BaseObstacleDetector类 参考abstract

#include <base_obstacle_detector.h>

类 apollo::perception::camera::BaseObstacleDetector 继承关系图:
apollo::perception::camera::BaseObstacleDetector 的协作图:

Public 成员函数

 BaseObstacleDetector ()=default
 
virtual ~BaseObstacleDetector ()=default
 
virtual bool Init (const ObstacleDetectorInitOptions &options)=0
 Interface for loading obstacle detector config files
 
virtual bool Detect (CameraFrame *frame)=0
 Interface for obstacle detector main part
 
virtual std::string Name () const =0
 Interface for obstacle detector name
 
virtual bool InitNetwork (const common::ModelInfo &model_info, const std::string &model_root)
 Interface for network initialization
 
 BaseObstacleDetector ()=default
 
virtual ~BaseObstacleDetector ()=default
 
virtual bool Init (const ObstacleDetectorInitOptions &options)=0
 Interface for loading obstacle detector config files
 
virtual bool Detect (onboard::CameraFrame *frame)=0
 Interface for obstacle detector main part
 
virtual std::string Name () const =0
 Interface for obstacle detector name
 
virtual bool InitNetwork (const common::ModelInfo &model_info, const std::string &model_root)
 Interface for network initialization
 

Protected 成员函数

 DISALLOW_COPY_AND_ASSIGN (BaseObstacleDetector)
 
 DISALLOW_COPY_AND_ASSIGN (BaseObstacleDetector)
 

Protected 属性

int gpu_id_ = 0
 
std::shared_ptr< inference::Inference > net_
 

详细描述

在文件 base_obstacle_detector.h 第 41 行定义.

构造及析构函数说明

◆ BaseObstacleDetector() [1/2]

apollo::perception::camera::BaseObstacleDetector::BaseObstacleDetector ( )
default

◆ ~BaseObstacleDetector() [1/2]

virtual apollo::perception::camera::BaseObstacleDetector::~BaseObstacleDetector ( )
virtualdefault

◆ BaseObstacleDetector() [2/2]

apollo::perception::camera::BaseObstacleDetector::BaseObstacleDetector ( )
default

◆ ~BaseObstacleDetector() [2/2]

virtual apollo::perception::camera::BaseObstacleDetector::~BaseObstacleDetector ( )
virtualdefault

成员函数说明

◆ Detect() [1/2]

virtual bool apollo::perception::camera::BaseObstacleDetector::Detect ( CameraFrame *  frame)
pure virtual

Interface for obstacle detector main part

参数
frameobstacle type and 2D bbox should be filled, required, 3D information of obstacle can be filled, optional.
返回
true
false

在 apollo::perception::camera::BEVObstacleDetector 内被实现.

◆ Detect() [2/2]

virtual bool apollo::perception::camera::BaseObstacleDetector::Detect ( onboard::CameraFrame *  frame)
pure virtual

Interface for obstacle detector main part

参数
frameobstacle type and 2D bbox should be filled, required, 3D information of obstacle can be filled, optional.
返回
true
false

在 apollo::perception::camera::YoloObstacleDetector, apollo::perception::camera::Yolox3DObstacleDetector, apollo::perception::camera::CaddnObstacleDetector , 以及 apollo::perception::camera::SmokeObstacleDetector 内被实现.

◆ DISALLOW_COPY_AND_ASSIGN() [1/2]

apollo::perception::camera::BaseObstacleDetector::DISALLOW_COPY_AND_ASSIGN ( BaseObstacleDetector  )
protected

◆ DISALLOW_COPY_AND_ASSIGN() [2/2]

apollo::perception::camera::BaseObstacleDetector::DISALLOW_COPY_AND_ASSIGN ( BaseObstacleDetector  )
protected

◆ Init() [1/2]

virtual bool apollo::perception::camera::BaseObstacleDetector::Init ( const ObstacleDetectorInitOptions &  options)
pure virtual

◆ Init() [2/2]

virtual bool apollo::perception::camera::BaseObstacleDetector::Init ( const ObstacleDetectorInitOptions &  options)
pure virtual

◆ InitNetwork() [1/2]

bool apollo::perception::camera::BaseObstacleDetector::InitNetwork ( const common::ModelInfo &  model_info,
const std::string &  model_root 
)
virtual

Interface for network initialization

参数
model_infonetwork config
model_rootroot path of network model
返回
true
false

在文件 base_obstacle_detector.cc 第 30 行定义.

31 {
32 // Network files
33 std::string proto_file = cyber::common::GetAbsolutePath(
34 model_root, model_info.proto_file().file());
35 std::string weight_file = cyber::common::GetAbsolutePath(
36 model_root, model_info.weight_file().file());
37
38 // Network input and output names
39 std::vector<std::string> input_names =
40 inference::GetBlobNames(model_info.inputs());
41 std::vector<std::string> output_names =
42 inference::GetBlobNames(model_info.outputs());
43
44 // Network type
45 const auto& framework = model_info.framework();
46 std::string plugin_name = model_info.infer_plugin();
47 static const std::string class_namespace = "apollo::perception::inference::";
48 if (model_info.has_infer_plugin() && !plugin_name.empty()) {
49 plugin_name = class_namespace + plugin_name;
51 ->CreateInstance<inference::Inference>(plugin_name);
52 net_->set_model_info(proto_file, input_names, output_names);
53 AINFO << "net load plugin success: " << plugin_name;
54 } else {
55 net_.reset(inference::CreateInferenceByName(framework, proto_file,
56 weight_file, output_names,
57 input_names, model_root));
58 }
59
60 ACHECK(net_ != nullptr);
61 net_->set_gpu_id(gpu_id_);
62
63 std::map<std::string, std::vector<int>> shape_map;
64 inference::AddShape(&shape_map, model_info.inputs());
65 inference::AddShape(&shape_map, model_info.outputs());
66
67 if (!net_->Init(shape_map)) {
68 AERROR << model_info.name() << "init failed!";
69 return false;
70 }
71 return true;
72}
static PluginManager * Instance()
get singleton instance of PluginManager
std::shared_ptr< Base > CreateInstance(const std::string &derived_class)
create plugin instance of derived class based on Base
std::shared_ptr< inference::Inference > net_
#define ACHECK(cond)
Definition log.h:80
#define AERROR
Definition log.h:44
#define AINFO
Definition log.h:42
std::string GetAbsolutePath(const std::string &prefix, const std::string &relative_path)
Get absolute path by concatenating prefix and relative_path.
Definition file.cc:179
std::vector< std::string > GetBlobNames(const google::protobuf::RepeatedPtrField< common::ModelBlob > &model_blobs)
Definition model_util.cc:23
void AddShape(std::map< std::string, std::vector< int > > *shape_map, const google::protobuf::RepeatedPtrField< common::ModelBlob > &model_blobs)
Definition model_util.cc:32
Inference * CreateInferenceByName(const std::string &frame_work, const std::string &proto_file, const std::string &weight_file, const std::vector< std::string > &outputs, const std::vector< std::string > &inputs, const std::string &model_root)

◆ InitNetwork() [2/2]

virtual bool apollo::perception::camera::BaseObstacleDetector::InitNetwork ( const common::ModelInfo &  model_info,
const std::string &  model_root 
)
virtual

Interface for network initialization

参数
model_infonetwork config
model_rootroot path of network model
返回
true
false

◆ Name() [1/2]

virtual std::string apollo::perception::camera::BaseObstacleDetector::Name ( ) const
pure virtual

◆ Name() [2/2]

virtual std::string apollo::perception::camera::BaseObstacleDetector::Name ( ) const
pure virtual

类成员变量说明

◆ gpu_id_

int apollo::perception::camera::BaseObstacleDetector::gpu_id_ = 0
protected

在文件 base_obstacle_detector.h 第 81 行定义.

◆ net_

std::shared_ptr< inference::Inference > apollo::perception::camera::BaseObstacleDetector::net_
protected

在文件 base_obstacle_detector.h 第 82 行定义.


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