vitis::ai::MedicalDetection

Base class for detecting five objects of Endoscopy Disease Detection and Segmentation database (EDD2020) .

Input is an image (cv:Mat).

Output is a struct of detection results, named MedicalDetectionResult.

Sample code :

Mat img = cv::imread("sample_medicaldetection.jpg");
auto medicaldetection = vitis::ai::MedicalDetection::create("RefineDet-Medical_EDD_tf",true);
auto results = medicaldetection->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 height = 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_medicaldetection_result.jpg

Quick Function Reference

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

Table 1. Quick Function Reference
TypeNameArguments
std::unique_ptr< MedicalDetection >create
  • const std::string & model_name
  • bool need_preprocess
vitis::ai::MedicalDetectionResultrun
  • const cv::Mat & img
std::vector< vitis::ai::MedicalDetectionResult >run
  • const std::vector< cv::Mat > & imgs
intgetInputWidth
  • void
intgetInputHeight
  • void
size_tget_input_batch
  • void

create

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

Prototype

std::unique_ptr< MedicalDetection > 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 MedicalDetection class.

run

Function of get result of the MedicalDetection neuron network.

Prototype


            vitis::ai::MedicalDetectionResult run(const cv::Mat &img)=0;

Parameters

The following table lists the run function arguments.

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

Returns

MedicalDetectionResult.

run

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

Prototype

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

Parameters

The following table lists the run function arguments.

Table 4. run Arguments
Type Name Description
const std::vector< cv::Mat > & imgs 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 MedicalDetectionResult.

getInputWidth

Function to get InputWidth of the MedicalDetection network (input image cols).

Prototype

int getInputWidth() const =0;

Returns

InputWidth of the MedicalDetection network.

getInputHeight

Function to get InputHeight of the MedicalDetection network (input image rows).

Prototype

int getInputHeight() const =0;

Returns

InputHeight of the MedicalDetection network.

get_input_batch

Function to get the number of images processed by the DPU at one time.

Note: Different DPU core the batch size may be different. This depends on the IP used.

Prototype

size_t get_input_batch() const =0;

Returns

Batch size.