Developer - [Database]



Developer – [Database]에서는 학습을 위해 사용될 데이터를 준비하는 기능이 제공됩니다. 이미지 목록 패널에 학습할 이미지를 로드하고, 이미지를 라벨링하는 [Label] 탭(좌측 상단의 [ tab_label ] 버튼 클릭) 과 Training/Validation 그룹을 나누어 주는 [Split] 탭(좌측 상단의 [ tab_split ] 버튼 클릭)에서 각각의 작업을 수행하게 됩니다. [Label] 탭과 [Split] 탭에서 작업한 정보들은 항상 동기화 되지만, 기본적으로 [Label] → [Split] 순서로 작업을 진행하는 것을 권장합니다.

주의
각 결함 class에 이미지 개수(분류 기능) 혹은 라벨 개수(검출, 분할 기능)가 1개 이상 지정되어 있어야 학습이 가능합니다.

아래는 각 탭 별 상세 기능 및 구조에 대한 설명입니다.

[Label] 탭

view_database_label

이미지 목록 패널(Images)

작업할 이미지들을 불러올 수 있으며, 불러온 이미지들의 번호(No.), 이름(Name), 라벨 개수(Labels) 혹은 라벨 클래스(Label)에 대한 정보들이 특정 기준에 따라 정렬되어 나타납니다. 분류의 경우에는 Label 컬럼에 해당 이미지가 어떤 클래스로 라벨되었는지 나타나며 검출과 분할의 경우에는 Label 컬럼 대신 Labels 컬럼에 해당 이미지에 라벨된 결함의 개수가 나타납니다.

view_image_list_cls view_image_list_det_seg

  • tool_picture: 클릭 시 지정한 이미지들을 불러옵니다.

  • tool_folder: 클릭 시 지정한 폴더 내의 모든 이미지들을 불러옵니다.

  • tool_proj: 클릭 시 기존에 라벨링 작업을 수행한 *.srproj 파일에서 라벨 정보를 불러오거나 [Analyze], [Inspect] 탭에서 검사 결과를 내보낸 *.srAnalyzeTab, *.srInspectTab 파일로부터 검사 결과를 읽어서 라벨 정보로 불러올 수 있습니다. 분류 모드에서는 분류 타입의 파일을, 검출 모드에서는 검출, 분할, 이미지 생성 타입의 파일을, 분할 모드에서는 분할, 이미지 생성 타입의 파일을 불러올 수 있습니다. 파일 선택 후, 중복되는 이미지에 대해서 기존 프로젝트에서 설정된 라벨 정보를 그대로 사용하거나 (Existing project), 불러오는 파일의 라벨 정보로 대체할 (Loaded project or tab file) 수 있습니다. 또한, 불러오는 파일에서 사용된 클래스를 기존 프로젝트의 어느 클래스에 할당할지 또는 새 클래스로 생성할지 선택할 수 있습니다.
    view_load_proj_or_tab

  • tool_remove: 이미지 목록 패널에서 하나 혹은 다수의 이미지를 선택한 후 해당 아이콘 클릭 시 선택된 이미지들이 이미지 목록 패널에서 제거됩니다.

  • view_image_list_combo
    : 이미지 목록 패널에 있는 이미지들이 Labeled/Not labeled, Train/Validation/Not split, Sort by folder, Real/Generated, class 종류 중 하나의 기준으로 정렬됩니다.

  • view_image_list_filter: 이미지 파일 이름으로 목록 내의 이미지를 검색합니다.

클래스 목록 패널(Classes)

결함 유형(class)을 새로 만들고 수정할 수 있으며, 생성된 모든 결함 유형의 번호(No.), 이름(Name), 색상(Color), 라벨 개수(Labels)에 대한 정보들이 나타납니다. 분류 모드의 경우 정상 이미지에 해당하는 class를 추가하여 정상 이미지를 해당 class로 라벨 해주어야 합니다.

검출과 분할 모드의 경우 정상 이미지는 따로 class를 생성해줄 필요 없이 tool_ok_label 버튼을 통해 정상 이미지로 라벨 할 수 있습니다.

  • tool_edit: 클릭 시 검출하고 싶은 결함 유형을 추가 및 수정할 수 있는 Edit Class 창이 열립니다.

view_edit_class

  • tool_class_add: 클릭 시 새로운 유형의 결함을 추가합니다.
  • tool_remove: 결함 유형 (다중) 선택 후 클릭 시 선택된 결함 유형이 제거됩니다.
  • tool_class_merge: 결함 유형 다중 선택 후 클릭 시 해당 결함 유형들이 하나의 결함 유형으로 병합됩니다. 번호, 이름, 색상은 선택된 결함 유형 중 가장 상단에 위치한 결함 유형의 속성을 유지합니다.
  • tool_up / tool_down: 결함 유형 선택 후 클릭 시 해당 결함 유형의 번호(No.)와 위치가 변경됩니다.
  • 결함 유형 선택 후 F2 키를 누르거나 이름 더블 클릭 시 해당 결함 유형의 이름을 수정할 수 있습니다.
  • 결함 유형의 Color 선택 시 해당 결함 유형의 색상을 수정할 수 있습니다.

라벨링 작업 패널

이미지 목록 패널에서 선택된 이미지에 대한 라벨링 작업을 할 수 있습니다.

분류(Classification)

  • tool_label: 현재 이미지를 클래스 목록 패널에서 선택된 클래스로 분류합니다.
  • tool_unlabel: 현재 이미지가 특정 클래스로 분류되어 있다면 해당 이미지는 Not labeled 상태로 변경됩니다.

검출(Detection)

  • tool_draw_rect: 클릭 시 아이콘이 활성화 상태로 변경됩니다. 활성화 상태에서 이미지에 마우스 커서를 드래그 하여 박스 형태의 라벨을 그릴 수 있습니다. 이때 그려지는 라벨은 클래스 목록 패널에서 선택된 결함 유형을 따릅니다.
  • tool_eraser: 클릭 시 아이콘이 활성화 상태로 변경됩니다. 활성화 상태에서 이미지에 마우스 커서를 드래그하여 결함 라벨을 지울 수 있습니다. tool_dropdown 버튼 클릭 시 지우개의 굵기를 조절할 수 있습니다.
  • tool_choose: 클릭 시 아이콘이 활성화 상태로 변경됩니다. 마우스 드래그를 통해 결함 라벨들을 (다중) 선택할 수 있습니다.
  • tool_change: 현재 (다중) 선택된 결함 라벨들을 클래스 목록 패널에서 선택된 결함 유형으로 변경합니다.
  • tool_ok_label: 현재 이미지에 그려진 결함 라벨 정보들이 모두 삭제되며 해당 이미지는 정상 이미지로 지정됩니다.
  • tool_unlabel: 현재 이미지가 정상 이미지로 지정되어 있을 경우 해당 이미지는 Not labeled 상태로 변경됩니다.

분할(Segmentation)

  • tool_pencil: 클릭 시 아이콘이 활성화 상태로 변경됩니다. 활성화 상태에서 이미지에 마우스 커서를 드래그 하여 임의의 곡선 형태의 라벨을 그릴 수 있습니다. 이때 그려지는 라벨은 클래스 목록 패널에서 선택된 결함 유형을 따릅니다. tool_dropdown 버튼 클릭 시 펜의 굵기를 조절할 수 있습니다.
  • tool_closed_pencil: 클릭 시 아이콘이 활성화 상태로 변경됩니다. 펜 기능( tool_pencil )과 동일하게 작동하나 해당 기능 사용 시 그려진 라벨 내부 영역이 채워집니다.
  • tool_polygon: 클릭 시 아이콘이 활성화 상태로 변경됩니다. 활성화 상태에서 이미지에 여러 번의 클릭을 통해 임의의 다각형 모양의 라벨을 그릴 수 있습니다. 이때 그려지는 라벨은 클래스 목록 패널에서 선택된 결함 유형을 따릅니다.
  • tool_line: 클릭 시 아이콘이 활성화 상태로 변경됩니다. 사용자가 지정하는 두 점을 잇는 직선 형태로 라벨이 그려집니다. tool_dropdown 버튼 클릭 시 직선의 굵기를 조절할 수 있습니다.
  • tool_eraser: 클릭 시 아이콘이 활성화 상태로 변경됩니다. tool_dropdown 버튼 클릭 시 펜의 굵기를 조절할 수 있고, Object 타입과 Pixel 타입 중 하나를 선택할 수 있습니다. Object 타입을 선택하는 경우 지우개 도구로 그려진 영역과 겹치는 영역이 존재하는 라벨을 모두 삭제합니다. Pixel 타입을 선택하는 경우 지우개 도구로 그려진 영역만 라벨에서 삭제됩니다.
  • tool_choose, tool_change, tool_ok_label, tool_unlabel: 검출 모드와 동일.

관심 영역(ROI) 작업 패널

이미지 목록 패널에서 선택된 이미지에 대한 Region of Interest (ROI 혹은 관심영역) 설정 작업을 할 수 있습니다. 관심 영역(ROI) 작업은 이미지 내에서 관심 영역을 설정하여 특정 영역만을 검사하거나 미관심 영역(Blind)을 설정하여 검사하고 싶지 않은 영역을 설정하는 기능입니다.

  • tool_toggle_off: 클릭 시 활성화 상태( tool_toggle_on )로 변경되며, 다시 한번 클릭 시 비활성화 상태( tool_toggle_off )로 돌아갑니다. 활성화 상태에서는 이미지 패널에 보이는 모든 이미지들에 지정된 관심 및 미관심 영역이 적용되어 나타납니다.

SaigeVision은 단순 ROI 지정(Set Simple ROI)과 고급 ROI 지정(Set Advanced ROI) 두 가지 기능을 제공합니다.

단순 ROI 지정(Set Simple ROI)

단순 ROI 지정은 이미지들이 잘 정렬되어 있어 관심 영역이나 미관심 영역이 항상 비슷한 위치에 비슷한 크기로 나타날 때 유용합니다. tool_simple_roi 버튼 클릭 시 단순 ROI 지정 창으로 들어갑니다.

view_simple_roi

  • tool_roi_set: 클릭 시 버튼이 활성화되며 좌측 이미지 상에서 관심 영역을 지정할 수 있습니다. 관심 영역은 사각형(Rectangle)과 타원형(Ellipse) 두 가지 형태로 지정할 수 있습니다. 지정된 관심 영역은 모든 이미지에 대해 같은 비율로 크기와 위치가 적용됩니다. 예를 들어, 관심 영역의 가로 축을 이미지 너비의 20% 지점부터 70% 지점까지 설정했다면 다른 이미지에 대해서도 해당 이미지의 크기에 비례하여 이미지 너비의 20% 지점부터 70% 지점까지 설정됩니다. 즉, 이미지의 크기가 다양한 경우에는 단순 ROI 지정 보다 고급 ROI 지정이 적합할 수 있습니다.
  • tool_roi_blind: 클릭 시 버튼이 활성화되며 좌측 이미지 상에서 마우스 드래그를 통해 해당 영역을 결함 검사에서 제외시킬 수 있습니다(미관심 영역). 미관심 영역은 사각형(Rectangle)과 타원형(Ellipse) 두 가지 형태로 지정할 수 있습니다. 지정된 미관심 영역은 모든 이미지의 관심 영역에 대해 같은 비율로 크기와 위치가 적용됩니다.
  • tool_roi_choose: 클릭 시 버튼이 활성화되며 좌측 이미지 상에서 마우스 드래그를 통해 미관심 영역을 (다중) 선택할 수 있습니다.
  • tool_roi_remove: 선택된 미관심 영역들이 해제됩니다.
  • tool_prev, tool_next: 클릭 시 이전 또는 다음 이미지에 반영된 ROI영역을 확인할 수 있습니다.

고급 ROI 지정(Set Advanced ROI)

고급 ROI 작업은 이미지상에서 관심 영역의 크기나 위치가 일정하지 않을 때 유용합니다. tool_advanced_roi 버튼 클릭 시 고급 ROI 지정 창으로 들어갑니다.

view_advanced_roi

A 영역에는 선택된 원본 이미지, B 영역에는 Intensity/Expansion/Inversion 설정 값에 의해 필터링된 이미지, C 영역에는 최종 ROI 정보가 반영된 이미지가 나타납니다.

  • Intensity: 우측의 두 개의 바를 조절하여 이미지 픽셀 intensity 값(gray scale 값)의 최대, 최소 값을 지정해 줍니다. 최대, 최소 기준을 만족하는 픽셀은 하얀색, 나머지는 검은색으로 필터링 된 이미지가 B영역에 나타나게 됩니다.
  • Expansion: 우측의 바를 조절하여 Expansion 값을 지정합니다. 0 보다 클 경우 필터링 된 이미지상의 하얀색 영역이 확장되며 0보다 작을 경우 축소됩니다.
  • Inversion: 필터링 된 이미지의 흑/백을 반전시킵니다.

H offset과 V offset 값들이 모두 초기값으로 지정되어 있을 시, C 영역에 표시되는 최종 ROI는 필터링 된 이미지(B 영역)내의 가장 큰 햐얀색 영역을 감싸는 박스로 지정됩니다.

  • H offset: left/right 우측의 바를 조절하여 Intensity/Expansion/Inversion을 통하여 지정된 ROI 영역을 기준으로 좌/우 offset을 추가로 설정할 수 있습니다.
  • V offset: top/bottom 우측의 바를 조절하여 Intensity/Expansion/Inversion을 통하여 지정된 ROI 영역을 기준으로 상/하 offset을 추가로 설정할 수 있습니다.
  • tool_roi_blind, tool_roi_choose, tool_roi_remove, tool_prev, tool_next: 단순 ROI지정과 동일합니다.

라벨 목록 패널(Labels)

분류(Classification)

이미지 목록 패널에 로드된 이미지의 총 개수(Num. of images), 라벨된 이미지 개수(Num. of labeled images), 라벨되지 않은 이미지 개수(Num. of unlabeled images)가 나타납니다.

검출(Detection), 분할(Segmentation)

이미지 목록 패널에서 선택된 이미지에 그려진 라벨들의 번호(No.), 클래스 이름(Name), 색상(Color), 표시 유무(View)에 대한 정보들이 나타납니다. View 체크 박스의 선택 유무에 따라 선택된 이미지 상에서 해당 라벨의 표시 유무가 변경됩니다.

[Split] 탭

view_database_split

이미지 목록 패널(Images)

[Label] 탭의 이미지리스트와 동일.

데이터 분류 패널(Labeled Images)

이미지 목록 패널에 있는 이미지들을 세 가지 그룹(Training/Validation/Not split)으로 분류합니다. 이미지들의 번호(No.), 이름(Name), 라벨 개수(Labels) 혹은 라벨 클래스(Label)에 대한 정보들이 나타납니다.

  • tool_manual_split : 데이터 분류 패널의 이미지들을 (다중) 선택 후 클릭 시 아래 그림과 같은 창이 나타납니다. Training/Validation/Not split 중 하나를 선택하여, 해당 그룹으로 선택된 이미지들을 분류합니다. tool_manual_split_menu
  • tool_auto_split: 클릭 시 Not split 그룹에 속해있는 데이터들을 해당 버튼 좌측 바에 지정된 비율(Tr. (Training 그룹) : Val. (Validation 그룹))로 자동으로 분류합니다.
  • tool_proj: 클릭 시 모드에 무관하게 srproj 파일을 불러올 수 있으며, 각 이미지에 대하여 불러오는 srproj 파일에 설정된 그룹으로 분류합니다. 기존 srproj에서 구분한 split 정보만 불러오고 싶을 때 사용합니다.

클래스 분류 목록 패널(Current Label State)

각 결함 유형별 이름(Name), 색상(Color) 그리고 각각의 그룹(Training/Validation/Not split)에 속한 총 라벨 개수 및 비율에 대한 정보들이 나타납니다.

ROI 작업 패널

[Label] 탭의 관심 영역(ROI) 작업과 동일.