vitis::ai::YOLOv3 - 1.2 Japanese

Vitis AI ライブラリ ユーザー ガイド (UG1354)

Document ID
UG1354
Release Date
2020-07-21
Version
1.2 Japanese
入力イメージ (cv::Mat) 内の物体を検出するためのベース クラス。

入力はイメージ (cv::Mat)。

出力は、入力イメージ内の歩行者の位置です。

サンプル コード:

   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);

モデル結果を次に表示します。

図 1. 出力イメージ
Image sample_yolov3_result.jpg

関数クイック リファレンス

次の表に、vitis::ai::YOLOv3 クラスに定義されているすべての関数を示します。

表 1. 関数クイック リファレンス
タイプ 名前 引数
std::unique_ptr< YOLOv3 > create
  • const std::string & model_name
  • bool need_preprocess
int getInputWidth
  • void
int getInputHeight
  • void
YOLOv3Result run
  • const cv::Mat & image
std::vector< YOLOv3Result > run
  • images
size_t get_input_batch
  • void