vitis::ai::SSD

Base class for detecting position of vehicle, pedestrian, and so on.

Input is an image (cv:Mat).

Output is a struct of detection results, named SSDResult.

Sample code :

  Mat img = cv::imread("sample_ssd.jpg");
  auto ssd = vitis::ai::SSD::create("ssd_traffic_pruned_0_9",true);
  auto results = ssd->run(img);
  for(const auto &r : results.bboxes){
     auto label = r.label;
     auto x = r.x * img.cols;
     auto y = r.y * img.rows;
     auto width = r.width * img.cols;
     auto heigth = r.height * img.rows;
     auto score = r.score;
     std::cout << "RESULT: " << label << "\t" << x << "\t" << y << "\t" <<
width
        << "\t" << height << "\t" << score << std::endl;
  }

Display of the model results:

Figure 1: detection result

Image sample_ssd_result.jpg

Quick Function Reference

The following table lists all the functions defined in the vitis::ai::SSD class:

Table 1. Quick Function Reference
TypeNameArguments
std::unique_ptr< SSD >create
  • const std::string & model_name
  • bool need_preprocess
std::unique_ptr< SSD >create
  • void
vitis::ai::SSDResultrun
  • const cv::Mat & image
std::vector< vitis::ai::SSDResult >run
  • const std::vector< cv::Mat > & images
std::vector< vitis::ai::SSDResult >run
  • const std::vector< vart::xrt_bo_t > & input_bos

create

Factory function to get an instance of derived classes of class SSD.

Prototype

std::unique_ptr< SSD > create(const std::string &model_name, bool need_preprocess=true);

Parameters

The following table lists the create function arguments.

Table 2. create Arguments
Type Name Description
const std::string & model_name Model name
bool need_preprocess Normalize with mean/scale or not, default value is true.

Returns

An instance of SSD class.

create

Prototype

std::unique_ptr< SSD > create(const std::string &model_name, xir::Attrs *attrs, bool need_preprocess=true);

run

Function to get running results of the SSD neuron network.

Prototype


            vitis::ai::SSDResult run(const cv::Mat &image)=0;

Parameters

The following table lists the run function arguments.

Table 3. run Arguments
Type Name Description
const cv::Mat & image Input data of input image (cv::Mat).

Returns

SSDResult.

run

Function to get running results of the SSD neuron network in batch mode.

Prototype

std::vector< vitis::ai::SSDResult > run(const std::vector< cv::Mat > &images)=0;

Parameters

The following table lists the run function arguments.

Table 4. run Arguments
Type Name Description
const std::vector< cv::Mat > & images Input data of input images (vector<cv::Mat>).The size of input images equals batch size obtained by get_input_batch.

Returns

The vector of SSDResult.

run

Function to get running results of the SSD neuron network in batch mode, used to receive user's xrt_bo to support zero copy.

Prototype

std::vector< vitis::ai::SSDResult > run(const std::vector< vart::xrt_bo_t > &input_bos)=0;

Parameters

The following table lists the run function arguments.

Table 5. run Arguments
Type Name Description
const std::vector< vart::xrt_bo_t > & input_bos The vector of vart::xrt_bo_t.

Returns

The vector of SSDResult.