vitis::ai::RoadLine - 1.2 Japanese

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

Document ID
UG1354
Release Date
2020-07-21
Version
1.2 Japanese
イメージ (cv::Mat) から車線を検出するためのベース クラス。

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

出力は、車線のタイプと点でマーキングされた車線です。

サンプル コード:

注記: 入力イメージ サイズは 640x480。
auto det = vitis::ai::RoadLine::create("vpgnet_pruned_0_99");
auto image = cv::imread("sample_lanedetect.jpg");
//    Mat image;
//    resize(img, image, Size(640, 480));
if (image.empty()) {
  cerr << "cannot load " << argv[1] << endl;
  abort();
}

vector<int> color1 = {0, 255, 0, 0, 100, 255};
vector<int> color2 = {0, 0, 255, 0, 100, 255};
vector<int> color3 = {0, 0, 0, 255, 100, 255};

RoadLineResult results = det->run(image);
for (auto &line : results.lines) {
  vector<Point> points_poly = line.points_cluster;
  // for (auto &p : points_poly) {
  //  std::cout << p.x << " " << (int)p.y << std::endl;
  //}
  int type = line.type < 5 ? line.type : 5;
  if (type == 2 && points_poly[0].x < image.rows * 0.5)
    continue;
  cv::polylines(image, points_poly, false,
                Scalar(color1[type], color2[type], color3[type]), 3, CV_AA,
                0);
}

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

図 1. 結果イメージ
Image sample_lanedetect_result.jpg

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

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

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