Validation Image Extractor DL

1 개요

Source Result(Learn) Result(Validation)
Source Result(Learn) Result(Validation)
Fig. ValidationImageExtractorDL 동작 수행 결과. 184장의 데이터 셋을 Validation 이미지 비율 0.2로 설정하여 148장의 Learn 셋과 36장의 Validation 셋으로 분리

2 API

3 예제 코드:

// Semantic Segmentation Dataset Extract
CResult res;
CFLImage fliSource;
CFLImage fliLearn;
CFLImage fliValidation;

float f32ValidationRatio = 0.25f;
CValidationImageExtractorDL::EDatasetType eDatasetType = CValidationImageExtractorDL::EDatasetType_SemanticSegmentation;
int32_t i32MinimumClassesIncluded = -1;

if(IsFail(res = fliSource.Load(L"../../ExampleImages/SemanticSegmentation/Train.flif"))) // 지정된 경로에서 파일을 로드
	break;

CValidationImageExtractorDL validationImageExtractor;

validationImageExtractor.SetSourceImage(fliSource);
validationImageExtractor.SetResultLearningImage(fliLearn);
validationImageExtractor.SetResultValidationImage(fliValidation);
validationImageExtractor.SetDatasetType(eDatasetType);
validationImageExtractor.SetValidationRatio(f32ValidationRatio);
validationImageExtractor.SetMinimumClassesIncluded(i32MinimumClassesIncluded);

if(IsFail(res = validationImageExtractor.Execute())) // 알고리즘 수행
	break;

if(IsFail(res = fliLearn.Save(L"../../ExampleImages/SemanticSegmentation/Learn.flif"))) // 결과로 나온 Learn dataset을 지정된 경로에 저장
	break;

if(IsFail(res = fliValidation.Save(L"../../ExampleImages/SemanticSegmentation/Validation.flif"))) // 결과로 나온 Validation dataset을 지정된 경로에 저장
	break;
// Semantic Segmentation Dataset Extract
CResult res = new CResult();

CFLImage fliSource = new CFLImage();
CFLImage fliLearn = new CFLImage();
CFLImage fliValidation = new CFLImage();

float f32ValidationRatio = 0.25f;
CValidationImageExtractorDL.EDatasetType eDatasetType = CValidationImageExtractorDL.EDatasetType.SemanticSegmentation;
int i32MinimumClassesIncluded = -1;

if((res = fliSource.Load("../../ExampleImages/SemanticSegmentation/Train.flif")).IsFail()) // 지정된 경로에서 파일을 로드
	break;

CValidationImageExtractorDL validationImageExtractor = new CValidationImageExtractorDL();

validationImageExtractor.SetSourceImage(ref fliSource);
validationImageExtractor.SetResultLearningImage(ref fliLearn);
validationImageExtractor.SetResultValidationImage(ref fliValidation);
validationImageExtractor.SetDatasetType(eDatasetType);
validationImageExtractor.SetValidationRatio(f32ValidationRatio);
validationImageExtractor.SetMinimumClassesIncluded(i32MinimumClassesIncluded);

if((res = validationImageExtractor.Execute()).IsFail()) // 알고리즘 수행
	break;

if((res = fliLearn.Save("../../ExampleImages/SemanticSegmentation/Learn.flif")).IsFail()) // 결과로 나온 Learn dataset을 지정된 경로에 저장
	break;

if((res = fliValidation.Save("../../ExampleImages/SemanticSegmentation/Validation.flif")).IsFail()) // 결과로 나온 Validation dataset을 지정된 경로에 저장
	break;
# Semantic Segmentation Dataset Extract
fliSource = CFLImage()
fliLearn = CFLImage()
fliValidation = CFLImage()

f32ValidationRatio = 0.25
eDatasetType = CValidationImageExtractorDL.EDatasetType.SemanticSegmentation
i32MinimumClassesIncluded = -1

fliSource.Load("../../ExampleImages/SemanticSegmentation/Train.flif") # 지정된 경로에서 파일을 로드

validationImageExtractor = CValidationImageExtractorDL()

validationImageExtractor.SetSourceImage(fliSource)
validationImageExtractor.SetResultLearningImage(fliLearn)
validationImageExtractor.SetResultValidationImage(fliValidation)
validationImageExtractor.SetDatasetType(eDatasetType)
validationImageExtractor.SetValidationRatio(f32ValidationRatio)
validationImageExtractor.SetMinimumClassesIncluded(i32MinimumClassesIncluded)

validationImageExtractor.Execute() # 알고리즘 수행

fliLearn.Save("../../ExampleImages/SemanticSegmentation/Learn.flif") # 결과로 나온 Learn dataset을 지정된 경로에 저장
fliValidation.Save("../../ExampleImages/SemanticSegmentation/Validation.flif") # 결과로 나온 Validation dataset을 지정된 경로에 저장

// Classifier Dataset Extract
CResult res;
CFLImage fliSource;
CFLImage fliLearn;
CFLImage fliValidation;

float f32ValidationRatio = 0.50f;
CValidationImageExtractorDL::EDatasetType eDatasetType = CValidationImageExtractorDL::EDatasetType_Classifier;
int32_t i32MinimumClassesIncluded = -1;

if(IsFail(res = fliSource.Load(L"../../ExampleImages/SemanticSegmentation/Train.flif"))) // 지정된 경로에서 파일을 로드
	break;

CValidationImageExtractorDL validationImageExtractor;

validationImageExtractor.SetSourceImage(fliSource);
validationImageExtractor.SetResultLearningImage(fliLearn);
validationImageExtractor.SetResultValidationImage(fliValidation);
validationImageExtractor.SetDatasetType(eDatasetType);
validationImageExtractor.SetValidationRatio(f32ValidationRatio);
validationImageExtractor.SetMinimumClassesIncluded(i32MinimumClassesIncluded);

if(IsFail(res = validationImageExtractor.Execute())) // 알고리즘 수행
	break;

if(IsFail(res = fliLearn.Save(L"../../ExampleImages/SemanticSegmentation/Learn.flif"))) // 결과로 나온 Learn dataset을 지정된 경로에 저장
	break;

if(IsFail(res = fliValidation.Save(L"../../ExampleImages/SemanticSegmentation/Validation.flif"))) // 결과로 나온 Validation dataset을 지정된 경로에 저장
	break;
// Classifier Dataset Extract
CResult res = new CResult();

CFLImage fliSource = new CFLImage();
CFLImage fliLearn = new CFLImage();
CFLImage fliValidation = new CFLImage();

float f32ValidationRatio = 0.25f;
CValidationImageExtractorDL.EDatasetType eDatasetType = CValidationImageExtractorDL.EDatasetType.Classifier;
int i32MinimumClassesIncluded = -1;

if((res = fliSource.Load("../../ExampleImages/SemanticSegmentation/Train.flif")).IsFail()) // 지정된 경로에서 파일을 로드
	break;

CValidationImageExtractorDL validationImageExtractor = new CValidationImageExtractorDL();

validationImageExtractor.SetSourceImage(ref fliSource);
validationImageExtractor.SetResultLearningImage(fliLearn);
validationImageExtractor.SetResultValidationImage(ref fliValidation);
validationImageExtractor.SetDatasetType(eDatasetType);
validationImageExtractor.SetValidationRatio(f32ValidationRatio);
validationImageExtractor.SetMinimumClassesIncluded(i32MinimumClassesIncluded);

if((res = validationImageExtractor.Execute()).IsFail()) // 알고리즘 수행
	break;

if((res = fliLearn.Save("../../ExampleImages/SemanticSegmentation/Learn.flif")).IsFail()) // 결과로 나온 Learn dataset을 지정된 경로에 저장
	break;

if((res = fliValidation.Save("../../ExampleImages/SemanticSegmentation/Validation.flif")).IsFail()) // 결과로 나온 Validation dataset을 지정된 경로에 저장
	break;
# Classifier Dataset Extract
fliSource = CFLImage()
fliLearn = CFLImage()
fliValidation = CFLImage()

f32ValidationRatio = 0.25
eDatasetType = CValidationImageExtractorDL.EDatasetType.Classifier
i32MinimumClassesIncluded = -1

# 지정된 경로에서 파일을 로드
fliSource.Load("../../ExampleImages/SemanticSegmentation/Train.flif") 

validationImageExtractor = CValidationImageExtractorDL()

validationImageExtractor.SetSourceImage(fliSource)
validationImageExtractor.SetResultLearningImage(fliLearn)
validationImageExtractor.SetResultValidationImage(fliValidation)
validationImageExtractor.SetDatasetType(eDatasetType)
validationImageExtractor.SetValidationRatio(f32ValidationRatio)
validationImageExtractor.SetMinimumClassesIncluded(i32MinimumClassesIncluded)

validationImageExtractor.Execute()

fliLearn.Save("../../ExampleImages/SemanticSegmentation/Learn.flif")
fliValidation.Save("../../ExampleImages/SemanticSegmentation/Validation.flif")