LabelRenamer DL
1 개요
- Label Renamer DL은 FLImaging® 이미지 포맷인 FLIF로 이루어진 딥러닝 데이터 셋에서 특정한 이름을 가진 라벨들을 사용자가 설정한 이름으로 치환하는 알고리즘입니다. 이 알고리즘을 통해 편리하게 같은 항목에 있는 라벨들의 이름을 손쉽게 바꿀 수 있습니다.
- 정규식 모드를 지원합니다.
- 정규식 모드가 아니라면, Text mode와 Label mode 선택이 가능합니다.
- Text mode는 Original Name과 일치하는 부분을 Substitute Name으로 치환합니다.
- Label mode를 사용하면 hyphen(-), under-bar(_), period(.), 괄호쌍을 기준으로 파싱하여 클래스 번호와 이름이 일치한 경우 입력한 Substitute Label Name으로 변경됩니다.
- (ex)'1 OK'를 Original Label Name으로 입력하면 '1(OK)', '1{OK}', '1[OK]', '1.OK', '1_OK', '1-OK'이 Name인 라벨들도 변경 대상임
- Label 모드에서 클래스 번호는 int32_t 범위 내의 정수여야만 합니다.
- Label 모드에서 클래스 번호 혹은 클래스 이름만 비교할 수 있습니다.
Source | |
---|---|
Result | |
![]() |
![]() |
Fig. LabelRenamerDL 동작 수행 결과
2 API
EnableRegularExpression(bool bRegex = false)
bRegex
: 정규식 사용 여부
EnableMatchCase(bool bMatchCase = false)
bMatchCase
: 대/소문자 비교 모드 활성화/비활성화
EnablePathMode(bool bMode = false)
bMode
: 이미지 경로 모드 사용 여부
SetCompareMode(ECompareMode eMode = CLabelRenamerDL::ECompareMode_TextMode)
eMode
: 비교 모드
SetCompareItem(ECompareItem eItem = CLabelRenamerDL::ECompareItem_Both)
eItem
: 비교 아이템(Label 모드일 경우)
SetOriginalName(const Base::CFLString<wchar_t>& flsName)
flsName
: 교체하려는 이름을 설정합니다.
SetSubstituteName(const Base::CFLString<wchar_t>& flsName)
flsName
: 교체되는 이름을 설정합니다.
SetFilePath(const Base::CFLString<wchar_t>& flsPath, bool bRecursive = false)
flsPath
: 파일 경로(Path mode인 경우)bRecursive
: 재귀적인 로드 사용 여부
3 예제 코드:
CResult res;
CFLImage fliSourceImage;
CFLImage fliResultImage;
CLabelRenamerDL labelRenamerDL;
if(IsFail(res = fliSourceImage.Load(L"Source.flif")))
break;
labelRenamerDL.SetSourceImage(fliSourceImage);
labelRenamerDL.SetDestinationImage(fliResultImage);
labelRenamerDL.EnableRegularExpression(false);
labelRenamerDL.EnableMatchCase(false);
labelRenamerDL.SetCompareMode(CLabelRenamerDL::ECompareMode_TextMode);
labelRenamerDL.SetOriginalName(L"1(OK)");
labelRenamerDL.SetSubstituteName(L"1(Pass)");
if(IsFail(res = labelRenamerDL.Execute()))
break;
if(IsFail(res = fliResultImage.Save(L"Result.flif")))
break;