vitis::ai::YOLOv3
Input is an image (cv::Mat).
Output is the position of the pedestrians in the input image.
Sample code:
auto yolo =
vitis::ai::YOLOv3::create("yolov3_adas_pruned_0_9", true);
Mat img = cv::imread("sample_yolov3.jpg");
auto results = yolo->run(img);
for(auto &box : results.bboxes){
int label = box.label;
float xmin = box.x * img.cols + 1;
float ymin = box.y * img.rows + 1;
float xmax = xmin + box.width * img.cols;
float ymax = ymin + box.height * img.rows;
if(xmin < 0.) xmin = 1.;
if(ymin < 0.) ymin = 1.;
if(xmax > img.cols) xmax = img.cols;
if(ymax > img.rows) ymax = img.rows;
float confidence = box.score;
cout << "RESULT: " << label << "\t" << xmin << "\t" << ymin << "\t"
<< xmax << "\t" << ymax << "\t" << confidence << "\n";
if (label == 0) {
rectangle(img, Point(xmin, ymin), Point(xmax, ymax), Scalar(0, 255, 0),
1, 1, 0);
} else if (label == 1) {
rectangle(img, Point(xmin, ymin), Point(xmax, ymax), Scalar(255, 0, 0),
1, 1, 0);
} else if (label == 2) {
rectangle(img, Point(xmin, ymin), Point(xmax, ymax), Scalar(0, 0, 255),
1, 1, 0);
} else if (label == 3) {
rectangle(img, Point(xmin, ymin), Point(xmax, ymax),
Scalar(0, 255, 255), 1, 1, 0);
}
}
imwrite("sample_yolov3_result.jpg", img);
Display of the model results:
Quick Function Reference
The following table lists all the functions defined in the vitis::ai::YOLOv3
class:
Type | Name | Arguments |
---|---|---|
std::unique_ptr< YOLOv3 > | create |
|
YOLOv3Result | run |
|
std::vector< YOLOv3Result > | run |
|
std::vector< YOLOv3Result > | run |
|
create
Factory function to get an instance of derived classes of class YOLOv3
.
Prototype
std::unique_ptr< YOLOv3
> create(const std::string &model_name, bool need_preprocess=true);
Parameters
The following table lists the create
function 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 ofYOLOv3
class. run
Function to get running result of the YOLOv3
neuron network.
Prototype
YOLOv3Result
run(const cv::Mat &image)=0;
Parameters
The following table lists the run
function arguments.
Type | Name | Description |
---|---|---|
const cv::Mat & | image | Input data of input image (cv::Mat). |
Returns
YOLOv3Result
. run
Function to get running result of the YOLOv3
neuron network in batch mode.
Prototype
std::vector< YOLOv3Result
> run(const std::vector< cv::Mat > &images)=0;
Parameters
The following table lists the run
function arguments.
Type | Name | Description |
---|---|---|
const std::vector< cv::Mat > & | images | Input data of input images (std:vector<cv::Mat>). The size of input images equals batch size obtained by get_input_batch. |
Returns
The vector ofYOLOv3Result
. run
Function to get running result of the YOLOv3
neuron network in batch mode, used to receive user's xrt_bo to support zero copy.
Prototype
std::vector< YOLOv3Result
> run(const std::vector< vart::xrt_bo_t > &input_bos)=0;
Parameters
The following table lists the run
function arguments.
Type | Name | Description |
---|---|---|
const std::vector< vart::xrt_bo_t > & | input_bos | The vector of vart::xrt_bo_t. |
Returns
The vector ofYOLOv3Result
.