Semantic Segmentation DL

목차

  1. 개요
  2. 사용 방법
  3. 필수 옵션
  4. 선택 옵션
  5. 결과 출력
  6. GUI

1 개요

Source
Result
Source Result

2 Semantic Segmentation DL 사용 방법

1 데이터 셋 준비

  1. Figure를 이용하여 라벨링이 된 Flif 형식의 학습 이미지
    • 이미지에 Figure를 삽입하여 학습 이미지를 생성할 수 있습니다. Figure에는 반드시 이름이 들어가야 하며 "클래스 번호 (클래스 이름)" 형식이거나 "클래스 번호" 형식이여야 합니다.
    • FLImaging에서 지원하는 모든 형식의 Figure로 라벨링할 수 있습니다. (라벨링 방법)
    • 클래스 번호는 1번부터 시작해야 합니다.


DataSet(With Figure)

Fig. 이미지의 이름이 있는 Figure를 삽입하여 만든 학습 데이터 샘플입니다.

  1. 원본 이미지 + 마스크 이미지
    • 원본 이미지와 라벨 번호가 담긴 마스크 이미지로 학습 데이터 셋을 준비할 수 있습니다.
    • 마스크 이미지의 경우 1채널 이여야 하며 클래스 번호는 1번부터 시작해야 합니다.


DataSet(Mask Image)

Fig. 원본 이미지와 마스크 이미지로 구성된 학습 데이터 샘플입니다.(좌 : 원본 이미지, 중간 : 마스크 이미지, 우 : 마스크 이미지 확대)

2.2 학습

  1. 학습 이미지 설정
  2. 검증 이미지 설정(선택)
    1. 검증 지표
      1. Pixel Accuracy
        1. 픽셀 정확도입니다. 각 픽셀별로 클래스의 정답 유무로 계산합니다.
        2. 계산 수식
          1. 맞춘 픽셀 개수 / 총 픽셀 개수
        3. 범위는 0~1이며 1로 갈수록 높은 성능을 의미합니다.
      2. Pixel Accuracy(Zero Exeception)
        1. 0번 클래스를 제외하고 Pixel Accuracy를 계산한 지표 값입니다. 0번은 배경에 대한 클래스 번호입니다.
      3. mean IoU
        1. IoU의 평균입니다. Semgentation에서 주로 사용되는 지표입니다. 클래스 별로 IoU를 구하고 평균을 구합니다.
        2. 예측 영역 ∩ 실제 영역 / 예측 영역 ∪ 실제 영역
          IoU
        3. 범위는 0~1이며 1로 갈수록 높은 성능을 의미합니다.
      4. mean IoU(ZE)
        1. 0번 클래스를 제외하고 mIoU를 계산한 지표 값입니다. 0번은 배경에 대한 클래스 번호입니다.
  3. 모델 설정
  4. 옵티 마이저 설정
  5. Augmentation 설정(선택)
  6. 학습 수행
    1. Semantic Segmentation 의 경우 모든 픽셀에 대해 맞춰야 하므로 mIoU(ZE)가 1이 나오기는 어렵습니다.
    2. Semantic Segmentaiton 의 경우 종료 조건은 mIoU(ZE) 0.95 정도로 설정 하는 게 적절합니다.
    3. 추천 종료 조건
      1. mIoU(ZE) >= 0.95
  7. 조건 식
    1. 종료 조건자동 저장에서 사용 가능한 조건 식 입니다.
    2. Common Conditional Expression
    3. Semantic Segmentation DL Expression
      1. mIoU
        1. 클래스별 IoU의 평균 지표입니다. 0 ~ 1 범위를 가지며 1로 갈수록 좋은 결과를 나타냅니다.
      2. mIoU.ZE
        1. 클래스별 IoU의 평균 지표입니다. 0 ~ 1 범위를 가지며 1로 갈수록 좋은 결과를 나타냅니다.
        2. ZE는 Zero Exception의 약자로 배경클래스인 0번을 제외하고 계산합니다. 배경이 중요하지 않은 경우 사용합니다.
      3. accuracy
        1. 픽셀 정확도입니다. 픽셀별 클래스 맞춘개수 / 픽셀 개수 로 계산되어집니다.
      4. accuracy.ze
        1. 픽셀 정확도입니다. 픽셀별 클래스 맞춘개수 / 픽셀 개수 로 계산되어집니다.
        2. ze는 Zero Exception의 약자로 배경클래스인 0번을 제외하고 계산합니다. 배경이 중요하지 않은 경우 사용합니다.
      5. metric
        1. mIoU가 metric으로 사용됩니다.
      6. metric.ze
        1. mIoU.ze가 metric으로 사용됩니다.
      7. validation
        1. accuracy가 validation으로 사용됩니다.
      8. validation.ze
        1. accuracy.ze가 validation으로 사용됩니다.
    4. 사용 예시
      1. 종료 조건 식 설정
        1. cost <= 0 | validation >= 1 | metric >= 1 | validation.ze >= 1 | metric.ze >= 1
        Graph View Result

        Fig. GUI에서 종료 조건 설정
      2. 자동 저장 조건 식설정
        1. epoch >= 10 && (metric > max('metric') || metric.ze > max('metric.ze'))
        Graph View Result

        Fig. GUI에서 자동 저장 조건 설정

2.3 추론

  1. 추론 이미지 & 결과 이미지 설정
  2. 추론 수행
  3. 추론 결과 옵션 설정

2.4 Save/Load

  1. Save/Load
    • 모델파일을 저장하거나 불러옵니다.
    • 확장자는 .flss입니다.

3 필수 옵션

3.1 학습 필수 옵션

  1. Learn 이미지 설정

  2. 모델 설정

    • 지원 모델

      • FL Seg Net(V1 128 B1~B4/V1 256 B1~B4/V1 512 B1~B4/V1 512 B1~B4)
        • 포스로직만의 효율적인 최신 AI 모델 설계 구조를 바탕으로 구현된 빠른 속도, 정밀한 결과 및 낮은 메모리 사용을 갖춘 최고의 이미지 탐지 모델입니다.
        • 추천 버전은 V1 512 B3입니다.
      • Deep Lab(V1 512)
      • PSP Net(V3)
    • API

      • SetModel(EModel eModel = EModel_FLSegNet)
        • eModel : 학습에 사용할 모델을 설정합니다.
      • SetModelVersion(EModelVersion eModelVersion = EModelVersion_FLSegNet_V1_512_B3)
        • eModelVersion : 학습에 사용할 모델의 버전을 설정합니다.
    • 예제 코드

      CResult res;
      CSemanticSegmentationDL segDL;
      
      if(IsFail(res = segDL.SetModel(CSemanticSegmentationDL::EModel_FLSegNet)))
          break;
      if(IsFail(res = segDL.SetModelVersion(CSemanticSegmentationDL::EModelVersion_FLSegNet_V1_512_B3)))
          break;
      
      CResult res = new CResult();
      CSemanticSegmentationDL segDL = new CSemanticSegmentationDL();
      
      if((res = segDL.SetModel(CSemanticSegmentationDL.EModel.FLSegNet)).IsFail())
      	break;
      if((res = segDL.SetModelVersion(CSemanticSegmentationDL.EModelVersion.FLSegNet_V1_512_B3)).IsFail())
      	break;
      
      segDL = CSemanticSegmentationDL()
      
      segDL.SetModel(CSemanticSegmentationDL.EModel.FLSegNet)
      segDL.SetModelVersion(CSemanticSegmentationDL.EModelVersion.FLSegNet_V1_512_B3)
      
    • GUI에서 설정 방법


    Seg_ModelSelect

Fig. GUI에서 사용할 모델을 설정하는 Dropdown List


Seg_ModelSelect
Fig. GUI에서 사용한 모델 확인(학습 현황 다이얼로그)

3.2 추론 필수 옵션

  1. Inference & Inference Result Image 설정

4 선택 옵션

4.1 학습 선택 옵션

  1. 마스크 이미지 설정
    • Figure를 대신하여 1Ch 이미지를 정답 라벨로사용합니다. Figure가 담긴 이미지 대신 원본 이미지 + 마스크 이미지로 학습할 때 설정합니다.

    • API

      • Learning Mask Image 모드 활성화 API
        • EnableLearningMaskImage(bool bEnable)
      • Learning Mask Image 입력 API
        • SetLearningMaskLabelImage(const Base::CFLImage& fliMaskImage)
        • SetLearningMaskLabelImage(const Base::CFLImage*)
      • Learning Validation Mask Image 모드 활성화 API
        • EnableLearningValidationMaskImage(bool bEnable)
      • Learning Validation Mask Image 입력 API
        • SetLearningValidationMaskLabelImage(const Base::CFLImage& fliValidationMaskImage)
        • SetLearningValidationMaskLabelImage(const Base::CFLImage* pFliValidationMaskImage)
    • 예제 코드

      CFLImage fliLearnMaskImage;
      CFLImage fliLearnValidationMaskImage;
      CSemanticSegmentationDL semanticSegmentation;
      
      if(semanticSegmentation.EnableLearningMaskImage(true).IsFail())
          break;
      if(semanticSegmentation.SetLearningMaskLabelImage(fliLearnMaskImage).IsFail())
      	break;
      if(semanticSegmentation.EnableLearningValidationMaskImage(true).IsFail())
          break;
      if(semanticSegmentation.SetLearningValidationMaskLabelImage(fliLearnValidationMaskImage).IsFail())
      	break;
      
      CSemanticSegmentationDL semanticSegmentation = new CSemanticSegmentationDL();
      CFLImage fliLearnMaskImage = new CFLImage();
      CFLImage fliLearnValidationMaskImage = new CFLImage();
      
      if(semanticSegmentation.EnableLearningMaskImage(true).IsFail())
      	break;
      if(semanticSegmentation.SetLearningMaskLabelImage(ref fliLearnMaskImage).IsFail())
      	break;
      if(semanticSegmentation.EnableLearningValidationMaskImage(true).IsFail())
      	break;
      if(semanticSegmentation.SetLearningValidationMaskLabelImage(ref fliLearnValidationMaskImage).IsFail())
      	break;
      
      semanticSegmentation = CSemanticSegmentationDL()
      fliLearnMaskImage = CFLImage()
      fliLearnValidationMaskImage = CFLImage()
      
      semanticSegmentation.EnableLearningMaskImage(True)
      semanticSegmentation.SetLearningMaskLabelImage(fliLearnMaskImage)
      semanticSegmentation.EnableLearningValidationMaskImage(True)
      semanticSegmentation.SetLearningValidationMaskLabelImage(fliLearnValidationMaskImage)
      
    • GUI에서 설정 방법


      Seg_ModelSelect

Fig. GUI에서 마스크 이미지 설정 방법

  1. 검증 이미지 설정
    • 검증 이미지를 설정합니다. 검증 이미지는 라벨링이 되어있어야 합니다. 검증지표는 accuracy와, mIoU입니다.
  2. 옵티 마이저 설정
  3. Augmentation 설정
  4. 타일링 설정
  5. 이미지 전처리 설정
  6. 종료 조건 설정
  7. 자동 저장 조건 설정
  8. Class Equalization 설정
  9. Optimal Learning State Preservation 설정
  10. Pretrained Model 사용

4.2 추론 선택 옵션

  1. 추론 결과 옵션 설정

    • 추론 결과를 어떤 형태로 받을지 결정합니다. 라벨 번호 값이 담긴 이미지로 받거나 Figure형태로 받을 수 있습니다.

    • 추론 결과는 설정 된 ResultImage에 Figure로 출력 되게됩니다.

    • API

      • EnableInferenceResultIncludingRegionFigures(bool bEnable)
        • True인 경우 결과 정보에 Figure를 포함하여 출력합니다.(기본값)
      • SetInferenceResultItemSettings(CSemanticSegmentationDL::EInferenceResultItemSettings eSetting)
        • 출력 정보를 선택 합니다. IncludingRegionFigures flag가 true인 경우에만 표시됩니다.
        • 출력 정보로는 Class Num, Class Name, Confidence Score를 선택할 수 있습니다.
        • 기본 값으로 세 항목 모두 출력합니다.
          • 기본 값 EInferenceResultItemSettings_ClassNum_ClassName_ConfidenceScore_RegionType_Contour
      • EnableInferenceResultLabelImage(bool bEnable)
        • True인 경우 결과 이미지를 Mask Label 이미지로 출력하도록 설정합니다.
        • False인 경우 원본 이미지로 출력합니다.
      • EnableInferenceResultConfidenceMapCreated(bool bEnable)
        • True인 경우 ConfidenceMap을 출력합니다.
      • SetInferenceMinimumConfidenceScore(double f64MinConfidenceScore = .5)
        • 추론 결과를 출력할 최소 점수를 설정합니다.
        • ConfidenceMapCreated가 활성화 되어있어야 합니다.
      • SetInferenceResultConfidenceMapImage(Base::CFLImage& fliInferenceResultConfidenceMapImage)
        • ConfidenceMap결과를 받을 이미지를 설정합니다.
    • 예제 코드

      CSemanticSegmentationDL semanticSegmentation;
      if(semanticSegmentation.EnableInferenceResultIncludingRegionFigures(true).IsFail())
          break;
      if(semanticSegmentation.SetInferenceResultItemSettings(CSemanticSegmentationDL::EInferenceResultItemSettings_ClassName).IsFail())
          break;
      if(semanticSegmentation.EnableInferenceResultLabelImage(true).IsFail())
          break;
      if(semanticSegmentation.EnableInferenceResultConfidenceMapCreated(false).IsFail())
          break;
      if(semanticSegmentation.SetInferenceMinimumConfidenceScore(.5).IsFail())
          break;
      
      CSemanticSegmentationDL semanticSegmentation = new CSemanticSegmentationDL();
      
      if(semanticSegmentation.EnableInferenceResultIncludingRegionFigures(true).IsFail())
      	break;
      if(semanticSegmentation.SetInferenceResultItemSettings(CSemanticSegmentationDL.EInferenceResultItemSettings.ClassName).IsFail())
      	break;
      if(semanticSegmentation.EnableInferenceResultLabelImage(true).IsFail())
      	break;
      if(semanticSegmentation.EnableInferenceResultConfidenceMapCreated(false).IsFail())
      	break;
      if(semanticSegmentation.SetInferenceMinimumConfidenceScore(.5).IsFail())
      	break;
      
      
      semanticSegmentation = CSemanticSegmentationDL()
      
      semanticSegmentation.EnableInferenceResultIncludingRegionFigures(True)
      semanticSegmentation.SetInferenceResultItemSettings(CSemanticSegmentationDL.EInferenceResultItemSettings.ClassName)
      
      semanticSegmentation.EnableInferenceResultLabelImage(True)
      semanticSegmentation.EnableInferenceResultConfidenceMapCreated(False)
      semanticSegmentation.SetInferenceMinimumConfidenceScore(.5)
      
      
    • GUI에서 사용 방법
      Seg_ModelSelect

      Fig. GUI에서 추론 옵션 설정하는 법

  2. 배치 프로세싱 설정

5 결과 출력

  1. Inference 결과 출력
    • Inference & Inference Result Image 설정을 통해 설정한 Result Image에 추론 결과가 출력 되어집니다.
    • 옵션에 따라 라벨 값으로 이루어진 이미지 또는 찾은 영역의 Figure가 포함되게 됩니다.
  2. 학습 정보
    • 학습 중 또는 학습이 완료된 마지막 결과를 얻어옵니다.

    • API

      • GetLearningResultLastAccuracy()
        • 마지막 픽셀 정확도 결과
      • GetLearningResultLastMeanIoU()
        • 마지막 mIoU(검증 Metric) 결과
      • GetLearningResultLastMeanIoUZE()
        • 배경을 제외한 마지막 mIoU 결과
      • GetLearningResultMaximumAccuracy()
        • 마지막 최대 픽셀 정확도 결과
      • GetLearningResultMaximumMeanIoU()
        • 마지막 최대 mIoU 결과
      • GetLearningResultMaximumAccuracyCumulativeEpoch()
        • 마지막 최대 정확도의 Epoch
      • GetLearningResultMaximumMeanIoUCumulativeEpoch()
        • 마지막 최대 mIoU의 Epoch
      • GetLearningResultMaximumMeanIoUCumulativeEpochZE()
        • 배경을 제외한 마지막 최대 mIoU의 Epoch
      • GetLearningResultAllHistory(Base::CFLArray<float>&, Base::CFLArray<float>&, Base::CFLArray<float>&, Base::CFLArray<float>&, Base::CFLArray<float>&, Base::CFLArray<int32_t>&)
        • 마지막 학습의 모든 결과
        • Cost, Accuracy, mIoU, ZE Accuracy, ZE mIoU, Validation Epoch
    • 예제 코드

      CSemanticSegmentationDL semanticSegmentation;
      int32_t i32ResultClassCount;
      Base::CFLArray<Base::CFLString<wchar_t>> flaClassNames;
      float f32ResultLastAccuracy;
      float f32ResultLastAccuracyZE;
      float f32ResultLastMeanIOU;
      float f32ResultLastMeanIOUZE;
      float f32ResultMaximumAccuracy;
      float f32ResultMaximumAccuracyZE;
      float f32ResultMaximumMeanIoU;
      float f32ResultMaximumMeanIoUZE;
      int32_t i32ResultMaximumAccuracyCumulativeEpoch;
      int32_t i32ResultMaximumMeanIoUCumulativeEpochZE;
      Base::CFLArray<float> flaMeanIoUHistory;
      Base::CFLArray<float> flaMeanIoUZEHistory;
      Base::CFLArray<float> flaCostHistory;
      Base::CFLArray<float> flaValidationHistory;
      Base::CFLArray<float> flaValidationZEHistory;
      Base::CFLArray<int32_t> flaValidationEpochHistory;
      
      if(semanticSegmentation.GetLearningResultClassNames(0, flaClassNames).IsFail())
      	break;
      
      i32ResultClassCount = semanticSegmentation.GetLearningResultClassCount();
      
      f32ResultLastAccuracy = semanticSegmentation.GetLearningResultLastAccuracy();
      f32ResultLastAccuracyZE = semanticSegmentation.GetLearningResultLastAccuracyZE();
      
      f32ResultLastMeanIOU = semanticSegmentation.GetLearningResultLastMeanIoU();
      f32ResultLastMeanIOUZE = semanticSegmentation.GetLearningResultLastMeanIoUZE();
      
      f32ResultMaximumAccuracy = semanticSegmentation.GetLearningResultMaximumAccuracy();
      f32ResultMaximumAccuracyZE = semanticSegmentation.GetLearningResultMaximumAccuracy();
      
      f32ResultMaximumMeanIoU = semanticSegmentation.GetLearningResultMaximumMeanIoU();
      f32ResultMaximumMeanIoUZE = semanticSegmentation.GetLearningResultMaximumMeanIoUZE();
      
      i32ResultMaximumAccuracyCumulativeEpoch = semanticSegmentation.GetLearningResultMaximumAccuracyCumulativeEpoch();
      
      i32ResultMaximumMeanIoUCumulativeEpochZE = semanticSegmentation.GetLearningResultMaximumMeanIoUCumulativeEpochZE();
      
      if(semanticSegmentation.GetLearningResultMeanIoUHistory(flaMeanIoUHistory).IsFail())
      	break;
      
      if(semanticSegmentation.GetLearningResultMeanIoUZEHistory(flaMeanIoUZEHistory).IsFail())
      	break;
      
      if(semanticSegmentation.GetLearningResultAllHistory(flaCostHistory, flaValidationHistory, flaMeanIoUHistory, flaValidationZEHistory, flaMeanIoUZEHistory, flaValidationEpochHistory).IsFail())
      	break;
      
      CSemanticSegmentationDL semanticSegmentation = new CSemanticSegmentationDL();
      int i32ResultClassCount;
      List<String> flaClassNames = new List<String>();
      float f32ResultLastAccuracy;
      float f32ResultLastAccuracyZE;
      float f32ResultLastMeanIOU;
      float f32ResultLastMeanIOUZE;
      float f32ResultMaximumAccuracy;
      float f32ResultMaximumAccuracyZE;
      float f32ResultMaximumMeanIoU;
      float f32ResultMaximumMeanIoUZE;
      int i32ResultMaximumAccuracyCumulativeEpoch;
      int i32ResultMaximumMeanIoUCumulativeEpochZE;
      List<float> flaMeanIoUHistory = new List<float>();
      List<float> flaMeanIoUZEHistory = new List<float>();
      List<float> flaCostHistory = new List<float>();
      List<float> flaValidationHistory = new List<float>();
      List<float> flaValidationZEHistory = new List<float>();
      List<int> flaValidationEpochHistory = new List<int>();
      
      String flsModelFilePath = "../../ExampleImages/SemanticSegmentation/SemanticSegmentation.flss";
      
      if(semanticSegmentation.Load(flsModelFilePath).IsFail())
      	break;
      
      if(semanticSegmentation.GetLearningResultClassNames(0, ref flaClassNames).IsFail())
          break;
      
      i32ResultClassCount = semanticSegmentation.GetLearningResultClassCount();
      
      f32ResultLastAccuracy = semanticSegmentation.GetLearningResultLastAccuracy();
      f32ResultLastAccuracyZE = semanticSegmentation.GetLearningResultLastAccuracyZE();
      
      f32ResultLastMeanIOU = semanticSegmentation.GetLearningResultLastMeanIoU();
      f32ResultLastMeanIOUZE = semanticSegmentation.GetLearningResultLastMeanIoUZE();
      
      f32ResultMaximumAccuracy = semanticSegmentation.GetLearningResultMaximumAccuracy();
      f32ResultMaximumAccuracyZE = semanticSegmentation.GetLearningResultMaximumAccuracy();
      
      f32ResultMaximumMeanIoU = semanticSegmentation.GetLearningResultMaximumMeanIoU();
      f32ResultMaximumMeanIoUZE = semanticSegmentation.GetLearningResultMaximumMeanIoUZE();
      
      i32ResultMaximumAccuracyCumulativeEpoch = semanticSegmentation.GetLearningResultMaximumAccuracyCumulativeEpoch();
      
      i32ResultMaximumMeanIoUCumulativeEpochZE = semanticSegmentation.GetLearningResultMaximumMeanIoUCumulativeEpochZE();
      
      if(semanticSegmentation.GetLearningResultMeanIoUHistory(ref flaMeanIoUHistory).IsFail())
          break;
      
      if(semanticSegmentation.GetLearningResultMeanIoUZEHistory(ref flaMeanIoUZEHistory).IsFail())
          break;
      
      if(semanticSegmentation.GetLearningResultAllHistory(ref flaCostHistory, ref flaValidationHistory, ref flaMeanIoUHistory, ref flaValidationZEHistory, ref flaMeanIoUZEHistory, ref flaValidationEpochHistory).IsFail())
          break;
      
      semanticSegmentation = CSemanticSegmentationDL()
      flaClassNames = List[String]()
      flaMeanIoUHistory = List[Single]()
      flaMeanIoUZEHistory = List[Single]()
      flaCostHistory = List[Single]()
      flaValidationHistory = List[Single]()
      flaValidationZEHistory = List[Single]()
      flaValidationEpochHistory = List[int]()
      
      flsModelFilePath = "../../ExampleImages/SemanticSegmentation/SemanticSegmentation.flss"
      
      semanticSegmentation.Load(flsModelFilePath)
      semanticSegmentation.GetLearningResultClassNames(0, flaClassNames)
      
      i32ResultClassCount = semanticSegmentation.GetLearningResultClassCount()
      
      f32ResultLastAccuracy = semanticSegmentation.GetLearningResultLastAccuracy()
      f32ResultLastAccuracyZE = semanticSegmentation.GetLearningResultLastAccuracyZE()
      
      f32ResultLastMeanIOU = semanticSegmentation.GetLearningResultLastMeanIoU()
      f32ResultLastMeanIOUZE = semanticSegmentation.GetLearningResultLastMeanIoUZE()
      
      f32ResultMaximumAccuracy = semanticSegmentation.GetLearningResultMaximumAccuracy()
      f32ResultMaximumAccuracyZE = semanticSegmentation.GetLearningResultMaximumAccuracy()
      
      f32ResultMaximumMeanIoU = semanticSegmentation.GetLearningResultMaximumMeanIoU()
      f32ResultMaximumMeanIoUZE = semanticSegmentation.GetLearningResultMaximumMeanIoUZE()
      
      i32ResultMaximumAccuracyCumulativeEpoch = semanticSegmentation.GetLearningResultMaximumAccuracyCumulativeEpoch()
      
      i32ResultMaximumMeanIoUCumulativeEpochZE = semanticSegmentation.GetLearningResultMaximumMeanIoUCumulativeEpochZE()
      
      semanticSegmentation.GetLearningResultMeanIoUHistory(flaMeanIoUHistory)
      semanticSegmentation.GetLearningResultMeanIoUZEHistory(flaMeanIoUZEHistory)
      semanticSegmentation.GetLearningResultAllHistory(flaCostHistory, flaValidationHistory, flaMeanIoUHistory, flaValidationZEHistory, flaMeanIoUZEHistory, flaValidationEpochHistory)
      
      
    • GUI에서 확인 방법
      Seg_ModelSelect

      Fig. GUI 프로퍼티에서 결과 확인(Epoch, Cost, Validation)


      Seg_ModelSelect

      Fig. 학습 다이얼로그에서 현황 확인(Epoch, Average Cost, Validation)


      Seg_ModelSelect

      Fig. 그래프 뷰에서 현황 확인(Cost, Average Cost, Validation)

6 GUI 설명

GUI Part 1 GUI Part 2 GUI Part 3
PointArray Ellipse BezierCubicCurve
  1. Button
    • 모델 기능을 수행하는 버튼입니다.
      Seg_Button
      1. Learn
      2. Execute
      3. Save
      4. Augmentation Preview
        • Augmentation 결과를 미리 볼수 있는 기능을 수행합니다. Augmentation View가 설정되어있어야 합니다.
      5. Show Learned Labels
        • 모델이 학습한 데이터 셋의 라벨 정보를 확인합니다.
      6. Clear Learned Data
      7. Load
      8. Make Pretrained Model
  2. Image
  3. Parameters
  4. Learned Model Information
    • 모델의 학습된 정보를 확인합니다.
      Seg_Parameters
      1. Pretrain
        1. Pretrained 모델이 적용 되었는지 나타내는 플래그입니다.
      2. Reset
      3. Labels
        1. 학습한 이미지의 정보를 확인합니다.
      4. Cost
        1. 모델의 Cost 값을 합니다.
      5. Validation
        1. 모델의 검증 값을 확인합니다.
      6. Time
        1. 모델의 학습 소요시간을 확인합니다.