Apollo 10.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 (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)
 
 DISALLOW_COPY_AND_ASSIGN (BaseObstacleDetector)
 

Protected 属性

int gpu_id_ = 0
 
std::shared_ptr< inference::Inferencenet_
 

详细描述

在文件 base_obstacle_detector.h41 行定义.

构造及析构函数说明

◆ BaseObstacleDetector() [1/3]

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

◆ ~BaseObstacleDetector() [1/3]

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

◆ BaseObstacleDetector() [2/3]

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

◆ ~BaseObstacleDetector() [2/3]

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

◆ BaseObstacleDetector() [3/3]

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

◆ ~BaseObstacleDetector() [3/3]

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

成员函数说明

◆ Detect() [1/3]

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 , 以及 apollo::perception::camera::BEVFORMERObstacleDetector 内被实现.

◆ Detect() [2/3]

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 , 以及 apollo::perception::camera::BEVFORMERObstacleDetector 内被实现.

◆ Detect() [3/3]

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/3]

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

◆ DISALLOW_COPY_AND_ASSIGN() [2/3]

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

◆ DISALLOW_COPY_AND_ASSIGN() [3/3]

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

◆ Init() [1/3]

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

◆ Init() [2/3]

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

◆ Init() [3/3]

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

◆ InitNetwork() [1/3]

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.cc30 行定义.

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/3]

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

◆ InitNetwork() [3/3]

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/3]

◆ Name() [2/3]

◆ Name() [3/3]

类成员变量说明

◆ gpu_id_

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

在文件 base_obstacle_detector.h81 行定义.

◆ net_

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

在文件 base_obstacle_detector.h82 行定义.


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