SaigeVision C/C++ 1.5.0
SaigeVision API document for C/C++
 
Loading...
Searching...
No Matches
Segmentation

Navigate back: sr-modules

What is Segmentation?

seg 은 이미지를 픽셀들의 집합으로 나눕니다. 먼저 각 픽셀들은 주어진 클래스들(배경, class1, class2, ...)로 분류합니다.
그 후 같은 클래스를 가지면서 서로 붙어있는 픽셀들을 하나의 객체(SR_SegmentedObject)로 모아 사용자에게 전달합니다.
seg_ex1

자세한 처리 과정은 아래 그림에 설명되어 있습니다.
seg_ex2

  1. 학습된 인공지능 알고리즘이 raw heat map을 예측합니다.
    • 모양: (클래스 개수 + 1) x height x width.
    • i번째 채널, j번째 행, k번째 열: 이미지에서 j번째 행, k번째 열에 위치한 픽셀이 i번째 클래스에 속할 확률을 0~255 사이의 값으로 나타낸 점수. 만약 i가 0이면 배경에 속할 확률을 의미합니다.
  2. raw heat map에 Segmentation's score threshold 를 적용합니다.
  3. 각 픽셀별로 가장 높은 값을 가지는 채널의 점수만 살아남으며 해당 채널이 그 픽셀의 클래스가 됩니다.
  4. 최종 결과를 위한 후처리 과정

    1. 배경 채널을 제거합니다.
      • 본 문서에서는 배경 채널이 제거된 후의 데이터를 score matrix 라고 부릅니다.
    2. step 3 이후 각 픽셀은 모두 해당하는 클래스 번호를 부여받습니다. 이를 통해 같은 클래스 번호를 가지며 서로 인접한 픽셀들을 하나의 객체(SR_SegmentedObject)로 모을 수 있습니다.

    See Segmentation's inspection results.

Workflow for Detection

seg 의 사용 방법은 sr-modules 에 설명된 Common workflow 와 크게 다르지 않습니다. 이번 세션에서는 기본 사용법에서 seg 에 특화된 부분만 설명하므로 Common workflow 을 먼저 숙지하고 오시기 바랍니다.

  1. Segmentation's handle construction 를 통해 모델 파일과 검사 결과를 관장하는 핸들을 생성합니다.
  2. (Optional) Segmentation's class information 을 확인합니다.
  3. (Optional) Inspection options 을 확인하고 필요시 수정합니다.
  4. Memory-allocation functions 을 통해 메모리를 GPU 및 CPU에 할당합니다.
  5. Segmentation's inspection functions 을 통해 검사를 수행합니다.
  6. Segmentation's inspection results 를 통하여 검사결과를 받아옵니다.
  7. Segmentation's handle destruction 를 통해 생성된 모델 파일 및 검사 결과 핸들을 파괴합니다.

Examples