Segmentation
のベース クラス。宣言
Segmentation
。segmentation クラスのネットワーク番号。ラベル 0 の名前: "unlabeled" ラベル 1 の名前: "ego vehicle" ラベル 2 の名前: "rectification border" ラベル 3 の名前: "out of roi" ラベル 4 の名前: "static" ラベル 5 の名前: "dynamic" ラベル 6 の名前: "ground" ラベル 7 の名前: "road" ラベル 8 の名前: "sidewalk" ラベル 9 の名前: "parking" ラベル 10 の名前: "rail track" ラベル 11 の名前: "building" ラベル 12 の名前: "wall" ラベル 13 の名前: "fence" ラベル 14 の名前: "guard rail" ラベル 15 の名前: "bridge" ラベル 16 の名前: "tunnel" ラベル 17 の名前: "pole"
入力はイメージ (cv:Mat) です。
出力は
Segmentation
ネットワークの実行結果です。
サンプル コード:
auto det =vitis::ai::Segmentation::create
("fpn", true);
auto img= cv::imread("sample_segmentation.jpg");
int width = det->getInputWidth();
int height = det->getInputHeight();
cv::Mat image;
cv::resize(img, image, cv::Size(width, height), 0, 0,
cv::INTER_LINEAR);
auto result = det->run_8UC1(image);
for (auto y = 0; y < result.segmentation.rows; y++) {
for (auto x = 0; x < result.segmentation.cols; x++) {
result.segmentation.at<uchar>(y,x) *= 10;
}
}
cv::imwrite("segres.jpg",result.segmentation);
auto resultshow = det->run_8UC3(image);
resize(resultshow.segmentation, resultshow.segmentation,
cv::Size(resultshow.cols * 2, resultshow.rows * 2));
cv::imwrite("sample_segmentation_result.jpg",resultshow.segmentation);
図 1. セグメンテーションによる視覚化の結果イメージ
関数クイック リファレンス
次の表に、vitis::ai::Segmentation
クラスに定義されているすべての関数を示します。
タイプ | メンバー | 引数 |
---|---|---|
std::unique_ptr<
Segmentation
> |
create |
|
int | getInputWidth |
|
int | getInputHeight |
|
size_t | get_input_batch |
|
SegmentationResult
|
run_8UC1 |
|
std::vector<
SegmentationResult
> |
run_8UC1 |
|
SegmentationResult
|
run_8UC3 |
|
std::vector<
SegmentationResult
> |
run_8UC3 |
|