Apollo  6.0
Open source self driving car software
Classes | Typedefs | Functions | Variables
apollo::perception::inference Namespace Reference

Classes

class  ArgMax1Plugin
 
class  BatchStream
 
class  CaffeNet
 
struct  ConvParam
 
class  CudaUtil
 
class  DFMBPSROIAlignPlugin
 
class  GPUL2Norm
 
class  Inference
 
class  Layer
 
class  Logger
 
class  ObstacleDetector
 
class  OnnxObstacleDetector
 
class  RCNNProposalPlugin
 
class  ReLUPlugin
 
class  ROIPoolingLayer
 
class  RPNProposalSSDPlugin
 
class  RTNet
 
class  SLICEPlugin
 
class  SoftmaxPlugin
 
class  TorchDet
 
class  TorchNet
 

Typedefs

using BlobPtr = std::shared_ptr< apollo::perception::base::Blob< float > >
 
typedef std::map< std::string, std::shared_ptr< apollo::perception::base::Blob< float > > > BlobMap
 
typedef std::map< std::string, std::vector< nvinfer1::Weights > > WeightMap
 
typedef std::map< std::string, nvinfer1::ITensor * > TensorMap
 
typedef std::map< std::string, nvinfer1::DimsCHW > TensorDimsMap
 
typedef std::map< std::string, std::string > TensorModifyMap
 

Functions

InferenceCreateInferenceByName (const std::string &name, 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="")
 
void bbox_transform_inv_cuda (int block_size, int thread_size, int shared_mem, cudaStream_t stream, const int nthreads, const float *boxes, const float *deltas, const int num_box, const int num_channel, float *out_boxes)
 
void clip_boxes_cuda (int block_size, int thread_size, int shared_mem, cudaStream_t stream, const int nthreads, float *boxes, const float height, const float width)
 
void filter_boxes_cuda (int block_size, int thread_size, int shared_mem, cudaStream_t stream, const int nthreads, const float *boxes, const float *scores, const float *all_probs, const int num_box, const int num_channel, const int num_class, const int num_prob, const int filter_channel, const int filter_class, const int min_size_mode, const float min_size_h, const float min_size_w, const float threshold_score, float *filtered_boxes, float *filtered_scores, float *filtered_all_probs, int *filtered_count)
 
void keep_topN_boxes_cuda (int block_size, int thread_size, int shared_mem, cudaStream_t stream, const int nthreads, const float *boxes, const float *scores, const float *all_probs, const int *indexes, const int *count, const bool keep_score, const int num_box, const int num_prob, const int topN, float *out_boxes, float *out_scores, float *out_all_probs)
 
void repeatedly_add_cuda (int block_size, int thread_size, int shared_mem, cudaStream_t stream, const int nthreads, const float *in_data, float *out_data, const float *add_vec, int add_vec_size)
 
void repeatedly_mul_cuda (int block_size, int thread_size, int shared_mem, cudaStream_t stream, const int nthreads, const float *in_data, float *out_data, const float *mul_vec, int mul_vec_size)
 
void slice2d_cuda (int block_size, int thread_size, int shared_mem, cudaStream_t stream, const int nthreads, const float *in_data, float *out_data, const int *slice_axises, int slice_axis_num, int input_axis_size)
 
void NmsForward (bool rpn_proposal_output_score, int host_filter_count, int num_box_corners, float nms_overlap_threshold, int num_candidate, int top_n, int batch_id, int num_prob, float *dev_sorted_box_for_nms, float *scores, float *all_probs, float *out_boxes, int *acc_box_num, cudaStream_t stream)
 GPU Non-Maximum Suppresion for network output. More...
 
nvinfer1::DimsCHW ReshapeDims (const nvinfer1::DimsCHW &dims, const nvinfer1::DimsCHW &inputDims)
 
void ParseNetParam (const NetParameter &net_param, TensorDimsMap *tensor_dims_map, std::map< std::string, std::string > *tensor_modify_map, std::vector< LayerParameter > *order)
 
bool modify_pool_param (PoolingParameter *pool_param)
 
bool ParserConvParam (const ConvolutionParameter &conv, ConvParam *param)
 
nvinfer1::DimsCHW getCHW (const nvinfer1::Dims &d)
 
bool ReadProtoFromTextFile (const std::string &filename, google::protobuf::Message *proto)
 
bool ReadProtoFromBinaryFile (const std::string &filename, google::protobuf::Message *proto)
 
bool loadNetParams (const std::string &param_file, NetParameter *param)
 
std::string locateFile (const std::string &path, const std::string &input)
 
size_t BinaryReadString (FILE *fp, char *name)
 
size_t BinaryWriteString (FILE *fp, const std::string &str)
 
template<typename Dtype >
std::shared_ptr< base::Blob< Dtype > > BinaryReadBlob (FILE *fp)
 
template<typename Dtype >
void BinaryWriteBlob (FILE *fp, const base::Blob< Dtype > &blob)
 
template<typename Dtype >
std::map< std::string, std::shared_ptr< base::Blob< Dtype > > > BinaryReadFile (const char *file_path)
 
template<typename Btype >
bool BinaryWriteFile (const char *file_path, const std::map< std::string, Btype > &data_dict)
 
void GPUGemmFloat (const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const float alpha, const float *A, const float *B, const float beta, float *C)
 
void GPUMultiFloat (const int n, const float *a, const float *b, float *result)
 
void GPUMSetFloat (const int n, const float alpha, float *result)
 
bool ResizeGPU (const base::Image8U &src, std::shared_ptr< apollo::perception::base::Blob< float >> dst, int stepwidth, int start_axis)
 
bool ResizeGPU (const apollo::perception::base::Blob< uint8_t > &src_gpu, std::shared_ptr< apollo::perception::base::Blob< float >> dst, int stepwidth, int start_axis, int mean_b, int mean_g, int mean_r, bool channel_axis, float scale)
 
bool ResizeGPU (const base::Image8U &src, std::shared_ptr< apollo::perception::base::Blob< float >> dst, int stepwidth, int start_axis, float mean_b, float mean_g, float mean_r, bool channel_axis, float scale)
 
template<typename T >
void load_data (const std::string &filename, std::vector< T > *outputs)
 
std::shared_ptr< float > load_binary_data (const std::string &filename)
 
bool write_result (const std::string &out_path, const std::vector< float > &results)
 
bool write_result (const std::string &out_path, const std::map< std::string, std::vector< float >> &results)
 

Variables

const std::map< EltwiseParameter::EltwiseOp, nvinfer1::ElementWiseOperation > eltwise_map
 
const std::map< std::string, nvinfer1::ActivationType > active_map
 
const std::vector< std::string > _gpu_checklist
 
constexpr size_t kMaxStrLen = 64
 
constexpr int kMinDim = 1
 
constexpr int kMaxDim = std::numeric_limits<int>::max()
 

Typedef Documentation

◆ BlobMap

typedef std::map<std::string, std::shared_ptr<apollo::perception::base::Blob<float> > > apollo::perception::inference::BlobMap

◆ BlobPtr

◆ TensorDimsMap

typedef std::map< std::string, nvinfer1::DimsCHW > apollo::perception::inference::TensorDimsMap

◆ TensorMap

typedef std::map< std::string, nvinfer1::ITensor * > apollo::perception::inference::TensorMap

◆ TensorModifyMap

typedef std::map<std::string, std::string> apollo::perception::inference::TensorModifyMap

◆ WeightMap

typedef std::map< std::string, std::vector< nvinfer1::Weights > > apollo::perception::inference::WeightMap

Function Documentation

◆ bbox_transform_inv_cuda()

void apollo::perception::inference::bbox_transform_inv_cuda ( int  block_size,
int  thread_size,
int  shared_mem,
cudaStream_t  stream,
const int  nthreads,
const float *  boxes,
const float *  deltas,
const int  num_box,
const int  num_channel,
float *  out_boxes 
)

◆ BinaryReadBlob()

template<typename Dtype >
std::shared_ptr<base::Blob<Dtype> > apollo::perception::inference::BinaryReadBlob ( FILE *  fp)

◆ BinaryReadFile()

template<typename Dtype >
std::map<std::string, std::shared_ptr<base::Blob<Dtype> > > apollo::perception::inference::BinaryReadFile ( const char *  file_path)

◆ BinaryReadString()

size_t apollo::perception::inference::BinaryReadString ( FILE *  fp,
char *  name 
)

◆ BinaryWriteBlob()

template<typename Dtype >
void apollo::perception::inference::BinaryWriteBlob ( FILE *  fp,
const base::Blob< Dtype > &  blob 
)

◆ BinaryWriteFile()

template<typename Btype >
bool apollo::perception::inference::BinaryWriteFile ( const char *  file_path,
const std::map< std::string, Btype > &  data_dict 
)

◆ BinaryWriteString()

size_t apollo::perception::inference::BinaryWriteString ( FILE *  fp,
const std::string &  str 
)

◆ clip_boxes_cuda()

void apollo::perception::inference::clip_boxes_cuda ( int  block_size,
int  thread_size,
int  shared_mem,
cudaStream_t  stream,
const int  nthreads,
float *  boxes,
const float  height,
const float  width 
)

◆ CreateInferenceByName()

Inference* apollo::perception::inference::CreateInferenceByName ( const std::string &  name,
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 = "" 
)

◆ filter_boxes_cuda()

void apollo::perception::inference::filter_boxes_cuda ( int  block_size,
int  thread_size,
int  shared_mem,
cudaStream_t  stream,
const int  nthreads,
const float *  boxes,
const float *  scores,
const float *  all_probs,
const int  num_box,
const int  num_channel,
const int  num_class,
const int  num_prob,
const int  filter_channel,
const int  filter_class,
const int  min_size_mode,
const float  min_size_h,
const float  min_size_w,
const float  threshold_score,
float *  filtered_boxes,
float *  filtered_scores,
float *  filtered_all_probs,
int *  filtered_count 
)

◆ getCHW()

nvinfer1::DimsCHW apollo::perception::inference::getCHW ( const nvinfer1::Dims &  d)
inline

◆ GPUGemmFloat()

void apollo::perception::inference::GPUGemmFloat ( const CBLAS_TRANSPOSE  TransA,
const CBLAS_TRANSPOSE  TransB,
const int  M,
const int  N,
const int  K,
const float  alpha,
const float *  A,
const float *  B,
const float  beta,
float *  C 
)

◆ GPUMSetFloat()

void apollo::perception::inference::GPUMSetFloat ( const int  n,
const float  alpha,
float *  result 
)

◆ GPUMultiFloat()

void apollo::perception::inference::GPUMultiFloat ( const int  n,
const float *  a,
const float *  b,
float *  result 
)

◆ keep_topN_boxes_cuda()

void apollo::perception::inference::keep_topN_boxes_cuda ( int  block_size,
int  thread_size,
int  shared_mem,
cudaStream_t  stream,
const int  nthreads,
const float *  boxes,
const float *  scores,
const float *  all_probs,
const int *  indexes,
const int *  count,
const bool  keep_score,
const int  num_box,
const int  num_prob,
const int  topN,
float *  out_boxes,
float *  out_scores,
float *  out_all_probs 
)

◆ load_binary_data()

std::shared_ptr<float> apollo::perception::inference::load_binary_data ( const std::string &  filename)

◆ load_data()

template<typename T >
void apollo::perception::inference::load_data ( const std::string &  filename,
std::vector< T > *  outputs 
)

◆ loadNetParams()

bool apollo::perception::inference::loadNetParams ( const std::string &  param_file,
NetParameter *  param 
)

◆ locateFile()

std::string apollo::perception::inference::locateFile ( const std::string &  path,
const std::string &  input 
)

◆ modify_pool_param()

bool apollo::perception::inference::modify_pool_param ( PoolingParameter *  pool_param)

◆ NmsForward()

void apollo::perception::inference::NmsForward ( bool  rpn_proposal_output_score,
int  host_filter_count,
int  num_box_corners,
float  nms_overlap_threshold,
int  num_candidate,
int  top_n,
int  batch_id,
int  num_prob,
float *  dev_sorted_box_for_nms,
float *  scores,
float *  all_probs,
float *  out_boxes,
int *  acc_box_num,
cudaStream_t  stream 
)

GPU Non-Maximum Suppresion for network output.

Parameters
[in]rpn_proposal_output_scoreWhether to output scores
[in]host_filter_countNumber of filtered output
[in]num_box_cornersNumber of corners for 2D box
[in]nms_overlap_thresholdIOU threshold for NMS
[in]num_candidatePre-defined maximum number of candidates
[in]top_nPre-defined maximum number of output boxes
[in]batch_idId of current batch instance
[in]num_probNumber of probs
[in]dev_sorted_box_for_nmsBounding box output sorted by score
[in]scoresScores of boxes
[in]all_probsProbs of boxes for all classes and objectness
[in]out_boxesOutput boxes
[in]acc_box_numAccumulated box num

NMS in GPU and postprocessing for selecting box in CPU

◆ ParseNetParam()

void apollo::perception::inference::ParseNetParam ( const NetParameter &  net_param,
TensorDimsMap tensor_dims_map,
std::map< std::string, std::string > *  tensor_modify_map,
std::vector< LayerParameter > *  order 
)

◆ ParserConvParam()

bool apollo::perception::inference::ParserConvParam ( const ConvolutionParameter &  conv,
ConvParam param 
)

◆ ReadProtoFromBinaryFile()

bool apollo::perception::inference::ReadProtoFromBinaryFile ( const std::string &  filename,
google::protobuf::Message *  proto 
)

◆ ReadProtoFromTextFile()

bool apollo::perception::inference::ReadProtoFromTextFile ( const std::string &  filename,
google::protobuf::Message *  proto 
)

◆ repeatedly_add_cuda()

void apollo::perception::inference::repeatedly_add_cuda ( int  block_size,
int  thread_size,
int  shared_mem,
cudaStream_t  stream,
const int  nthreads,
const float *  in_data,
float *  out_data,
const float *  add_vec,
int  add_vec_size 
)

◆ repeatedly_mul_cuda()

void apollo::perception::inference::repeatedly_mul_cuda ( int  block_size,
int  thread_size,
int  shared_mem,
cudaStream_t  stream,
const int  nthreads,
const float *  in_data,
float *  out_data,
const float *  mul_vec,
int  mul_vec_size 
)

◆ ReshapeDims()

nvinfer1::DimsCHW apollo::perception::inference::ReshapeDims ( const nvinfer1::DimsCHW &  dims,
const nvinfer1::DimsCHW &  inputDims 
)

◆ ResizeGPU() [1/3]

bool apollo::perception::inference::ResizeGPU ( const base::Image8U src,
std::shared_ptr< apollo::perception::base::Blob< float >>  dst,
int  stepwidth,
int  start_axis 
)

◆ ResizeGPU() [2/3]

bool apollo::perception::inference::ResizeGPU ( const apollo::perception::base::Blob< uint8_t > &  src_gpu,
std::shared_ptr< apollo::perception::base::Blob< float >>  dst,
int  stepwidth,
int  start_axis,
int  mean_b,
int  mean_g,
int  mean_r,
bool  channel_axis,
float  scale 
)

◆ ResizeGPU() [3/3]

bool apollo::perception::inference::ResizeGPU ( const base::Image8U src,
std::shared_ptr< apollo::perception::base::Blob< float >>  dst,
int  stepwidth,
int  start_axis,
float  mean_b,
float  mean_g,
float  mean_r,
bool  channel_axis,
float  scale 
)

◆ slice2d_cuda()

void apollo::perception::inference::slice2d_cuda ( int  block_size,
int  thread_size,
int  shared_mem,
cudaStream_t  stream,
const int  nthreads,
const float *  in_data,
float *  out_data,
const int *  slice_axises,
int  slice_axis_num,
int  input_axis_size 
)

◆ write_result() [1/2]

bool apollo::perception::inference::write_result ( const std::string &  out_path,
const std::vector< float > &  results 
)

◆ write_result() [2/2]

bool apollo::perception::inference::write_result ( const std::string &  out_path,
const std::map< std::string, std::vector< float >> &  results 
)

Variable Documentation

◆ _gpu_checklist

const std::vector<std::string> apollo::perception::inference::_gpu_checklist
Initial value:
{
"GeForce GTX 1080", "GeForce GTX 1080 Ti", "Tesla P4",
"Tesla P40", "GeForce GTX 1070", "GeForce GTX 1060",
"Tesla V100-SXM2-16GB"}

◆ active_map

const std::map<std::string, nvinfer1::ActivationType> apollo::perception::inference::active_map
Initial value:
{
{"Sigmoid", nvinfer1::ActivationType::kSIGMOID},
{"TanH", nvinfer1::ActivationType::kTANH},
{"ReLU", nvinfer1::ActivationType::kRELU}}

◆ eltwise_map

const std::map<EltwiseParameter::EltwiseOp, nvinfer1::ElementWiseOperation> apollo::perception::inference::eltwise_map
Initial value:
{
{EltwiseParameter_EltwiseOp_PROD,
nvinfer1::ElementWiseOperation::kPROD},
{EltwiseParameter_EltwiseOp_SUM, nvinfer1::ElementWiseOperation::kSUM},
{EltwiseParameter_EltwiseOp_MAX, nvinfer1::ElementWiseOperation::kMAX}}

◆ kMaxDim

constexpr int apollo::perception::inference::kMaxDim = std::numeric_limits<int>::max()

◆ kMaxStrLen

constexpr size_t apollo::perception::inference::kMaxStrLen = 64

◆ kMinDim

constexpr int apollo::perception::inference::kMinDim = 1