[Analyze]는 [Train]에서 학습한 결과를 확인할 수 있는 탭으로 [Database]에서 라벨링된 이미지에 대한 학습 결과의 성능을 보여줍니다. [Analyze]의 결과를 통해 실제 실험 데이터에 적용했을 때의 성능을 예측할 수 있습니다.
[Analyze]는 여러 개의 하위 탭으로 구성되며 각 탭에서는 하나의 학습 결과를 이용하여 이미지를 검사하거나 분석할 수 있습니다. [Train]에서 학습을 마치면 자동으로 [Analyze]로 화면이 전환됩니다. 완료된 학습 목록의 수에 따라 하위 탭이 생성되며 validation 그룹의 이미지가 기본적으로 이미지 목록에 로드됩니다.
한편 이미 완료한 학습 결과가 있다면 하위 탭을 자유롭게 추가하는 것도 가능합니다. 하위 탭을 추가하여 [
] 버튼을 클릭하면 Load Model 창이 나타나며 원하는 학습 결과를 선택할 수 있습니다. 이렇게 생성된 하위 탭에서는 [Database]에서 라벨링된 이미지를 불러와 검사를 수행할 수 있습니다. 또는 하위 탭을 추가한 후 [
] 버튼을 클릭하여 저장해 놓은 탭을 불러와 검사를 수행할 수도 있습니다.

이미지 목록 패널(Images)
성능 검증에 사용할 이미지들을 나타내는 목록으로 이미지 번호(No.), 이름(Name) 등 다음과 같이 모드에 따라 5-6 가지의 정보를 보여줍니다. 각각의 정보로 이미지들을 정렬할 수 있습니다.
분류(Classification)
- No.: 이미지 번호.
- Name: 이미지 이름.
- True: [Database]에서 라벨링한 해당 이미지의 결함 클래스 (실제 라벨).
- Predicted: 학습된 결과로 검출한 해당 이미지의 결함 클래스 (검출된 라벨).
- O/X: True 와 Predicted가 일치하면 O, 일치하지 않으면 X.
검출(Detection), 분할(Segmentation)
- No.: 이미지 번호
- Name: 이미지 이름
- True: [Database]에서 해당 이미지에 그려진 실제 라벨의 총 개수.
- Detected: 학습된 결과로 검출한 해당 이미지의 라벨 (검출된 라벨) 총 개수.
- Underkill(미검): 실제 라벨 중 검출된 라벨에 속하지 않는 라벨 총 개수 (학습된 결과가 놓친 실제 라벨의 총 개수).
- Overkill(과검): 검출된 라벨 중 실제 라벨에 속하지 않는 라벨 총 개수 (학습된 결과가 잘못 검출한 라벨의 총 개수).
: 클릭 시 아래와 같이 Edit Images 창이 열립니다. [Database]에서 라벨링한 이미지 중 검사해 보고 싶은 이미지를 자유롭게 불러올 수 있습니다.

: 클릭 시 좌측 Database에서 선택된 이미지를 우측 Analyze로 이동시킵니다.
: 클릭 시 우측 Analyze에서 선택된 이미지를 좌측 Database로 이동시킵니다.- OK를 누르면 우측 Analyze로 이동된 이미지들이 현재 [Analyze] 탭의 이미지 목록에 로드되며 해당 이미지들을 검사할 수 있습니다.
이미지 패널
분류(Classification)
Score


위 그림은 이미지 패널의 우 상단과 우 하단을 캡처한 이미지입니다. 우 상단의 삼각형의 위쪽 영역은 이미지의 실제 결함 클래스의 색을 나타내며 아래쪽 영역은 검출된 결함 클래스의 색을 나타냅니다. 두 삼각형의 색이 일치하면 결함 검출에 성공한 것이며 색이 다를 경우 검출에 실패한 것입니다. Score 옆의 체크박스 체크 시 이미지 패널 우 하단에 위 그림의 오른쪽 그림과 같이 결함 클래스의 점수 박스가 나타납니다. 결함 클래스의 색, 이름, 검사 점수가 나타납니다. 결함 클래스의 검사 점수가 높을수록 학습된 모델이 검사 이미지를 해당 클래스로 분류하려는 경향이 강하다는 것을 의미하며, 가장 점수가 높은 결함 클래스로 해당 이미지를 분류합니다.
검사 점수는 괄호 안의 식을 통해 계산됩니다. 괄호 안 첫 번째 값은 실제 모델이 검출한 검사 점수이며 두 번째 값은 검사 결과 조절 파라미터입니다. 검사 결과 조절 파라미터 값은 검사 결과 조절 패널에서 Add. Score를 통해 조절 가능합니다.
Class Activation Map

분류 모드에서는 이미지 패널 상단의
체크 시 검사 결과에 대한 Class activation map 기능을 제공합니다. 본 기능은 학습된 네트워크 모델이 각 이미지에서 어떤 부분을 집중적으로 학습하였는 지를 보여줍니다.
Thumbnail View
분류 모드에서는 이미지 패널 상단의 전환 버튼(
)을 클릭하여 thumbnail view로 전환 가능합니다.
![]()
: Thumbnail view 패널에 있는 이미지들이 정렬되는 기준입니다.
- All: 전체 이미지 리스트를 보여줍니다.
- By predicted class: 검출한 class 기준으로 이미지를 정렬하여 보여줍니다.
- By true class: 실제 class 기준으로 이미지를 정렬하여 보여줍니다.
- By correctness: 올바르게 검출하였는지 여부를 기준으로 이미지를 정렬하여 보여줍니다.
: Thumbnail view 패널에 있는 이미지들이 보이는 크기를 선택할 수 있습니다. Ctrl + 마우스 휠 다운/업으로 조작 가능합니다.
검출(Detection)

위 그림은 이미지 패널의 우 상단을 캡쳐 한 이미지입니다. 검출 모드의 이미지 패널은 선택된 이미지의 실제 라벨(True), 검출된 라벨(Detected), 삭제된 라벨(Removed)을 이미지와 함께 보여줍니다. 실제 라벨과 검출된 라벨의 색은 해당 라벨의 클래스 색을 따라가며 삭제된 라벨은 회색으로 표시됩니다. 체크 박스들의 체크 유무에 따라 이미지 패널 상에 해당 라벨의 표시 유무가 달라집니다.
- True: 해당 이미지의 실제 라벨([Database]에서 유저가 직접 그린 정답 라벨).
- Detected: 학습된 모델로 검출된 라벨 중 Score Threshold와 Area Threshold 조건을 만족하여 최종 검출된 라벨.
- Removed: 학습된 모델에서 검출은 되었으나 Score Threshold 또는 Area Threshold 조건을 만족하지 못해 삭제된 라벨.
분할(Segmentation)

위 그림은 이미지 패널의 우 상단을 캡쳐 한 이미지입니다. 분할 모드의 이미지 패널은 선택된 이미지의 실제 라벨(True), 검출된 라벨(Detected)을 이미지와 함께 보여줍니다. 보여지는 라벨의 색은 해당 클래스의 색을 따라갑니다. 체크 박스들의 체크 유무에 따라 이미지 패널 상에 해당 라벨의 표시 유무가 달라집니다.
- True: 해당 이미지의 실제 라벨([Database]에서 유저가 직접 그린 정답 라벨).
- Detected: 학습된 모델로 검출된 라벨.
모델 정보 패널(Model)
모델 정보 패널에서는 해당 [Analyze] 탭에서 지정된 학습 결과의 이름이 나타납니다. 정보 [
] 버튼 클릭 시 해당 학습 결과의 자세한 정보가 나타납니다.
전체 검사 결과 조절 패널(Overall Parameter)

검출(Detection), 분할(Segmentation)
Filter Objects 버튼을 클릭하여 object 를 필터링할 영역을 설정할 수 있습니다. 설정된 영역에 따라 검사 결과가 업데이트 되어 반영됩니다.
클래스별 검사 결과 조절 패널(Classes)
클래스별 검사 결과 조절 패널에서는 학습된 모델이 해당 이미지에 대해 검출한 결과 값에 적절한 변형을 가하여 미/과검 비율을 변화시키는 등 검사 결과를 클래스별로 세부 조정할 수 있습니다.
분류(Classification)
분류 모드의 검사 결과 조절 파라미터는 Add.(additional) score입니다. Add. Score는 각 결함 클래스 별로 독립적으로 조절할 수 있습니다. 이미지를 검사하면 학습된 모델은 검사 이미지가 각 결함 클래스에 어느 정도 부합하는지를 클래스 별 score값으로 나타내는 데 이 값에 Add. score값을 더 하게 됩니다. 최종적으로 모델의 score + Add. Score 값이 가장 높은 결함 클래스가 해당 이미지의 결함 클래스로 결정됩니다.
검출(Detection)
검출 모드의 검사 결과 조절 파라미터는 Score TH(Threshold)와 Area TH(Threshold)입니다. 두 파라미터 모두 각 결함 클래스 별로 독립적으로 조절할 수 있으며 Score TH의 기본값은 50, Area TH의 기본값은 0입니다.
학습된 모델이 검출한 결함 라벨들은 자신이 어느 결함 클래스에 속하는 지와 점수(Score)를 가지고 있습니다. 이때 각 라벨의 점수가 해당 클래스의 Score TH값을 넘을 경우에만 Detected Label로 분류되며 Score TH를 넘지 못할 경우 Removed Label로 분류됩니다. 따라서 Score TH값 조정을 통해 해당 클래스의 검출 score 기준을 조절할 수 있습니다. Score TH 값의 범위는 [0-100] 입니다.
Area TH는 검출된 결함 라벨 영역 크기(픽셀 수)의 기준값을 뜻합니다. Score TH와 마찬가지로 검출된 라벨 중 해당 클래스의 Area TH 값을 넘을 경우에만 Detected Label로 분류되며 넘지 못할 경우 Removed Label로 분류됩니다. Area TH 값의 범위는 [0-100000000] 입니다.
분할(Segmentation)
분할 모드의 검사 결과 조절 파라미터는 Score TH(Threshold), Area TH(Threshold)입니다. 두 파라미터 모두 각 결함 클래스 별로 독립적으로 조절할 수 있으며 Score TH의 기본값은 100, Area TH의 기본값은 0입니다.
Score Threshold의 기본 값은 100이며 조절 범위는 [0-255]입니다. 각 픽셀은 모든 클래스에 대한 score를 가지고 있으며 이 중 최대 score 값을 가지는 클래스가 해당 클래스의 Score Threshold를 넘는지를 판단하고 넘는 경우 해당 클래스로, 넘지 못하는 경우 background로 결정합니다.
예시
각 클래스들의 Score TH는 class1 TH: 40, class2 TH: 50, class3 TH: 5 로 설정되어 있다. 이 때 특정 픽셀 (x = 200, y = 100)이 검사를 통해 class1: 30, class2: 40, class3: 10의 점수를 얻은 경우, Class1-3의 점수 중 최대값은 class2 이고, 이 값이 class2 Th 값을 넘지 못했으므로 아무것도 검출되지 않는다(background로 결정된다).
Area TH는 검출의 Area TH와 동일합니다.
Object 별 검사 결과 패널(Object Results)
검출(Detection), 분할(Segmentation)
검출된 Object 의 정보 (위치, correct 여부, 넓이 등)를 보여줍니다.
클래스별 결과 패널(Classwise Results)
클래스별 결과 패널에서는 각 클래스에 대한 검사 결과를 그래프 및 표로 보여줍니다.
분류(Classification)

왼쪽 그림은 분류 모드의 클래스별 결과 패널의 예시이며 Confusion Matrix 라고 표현합니다. Confusion Matrix는 각 결함 클래스 별로 해당 클래스에 속하는 이미지들이 검사 결과 어떠한 클래스로 분류되었는 지를 표로 보여줍니다. Confusion Matrix 의 y축은 실제로 유저가 [Database]에서 라벨한 결함 클래스(True Class)를 의미하며 x축은 학습된 모델이 검출한 결함 클래스(Predicted Class)를 의미합니다. Confusion Matrix 안의 값은 해당 cell의 True Class에 속하는 이미지 수 중 Predicted Class 로 분류된 이미지 수의 비율입니다. 따라서 Confusion Matrix의 좌 상단에서 우 하단으로 이어지는 대각선 위에 있는 cell들의 값이 100%에 가까울수록 학습된 모델이 정확하다는 것을 의미합니다. cell들의 색깔은 1에 가까울수록 진한 주황색에 가까워집니다. 하단의 Average f-score 값은 각 클래스의 f-score 값(precision 과 recall 값의 조화 평균, 분류 모드에서는 정확도를 뜻함) 의 평균값을 나타냅니다.
Confusion Matrix 클릭 시 오른쪽 그림과 같이 Confusion Matrix와 이를 간략화 한 표를 보여주는 창이 나타납니다. 창의 중앙에 나타나는 표는 Confusion Matrix의 y축을 공유하며 x축은 correct, wrong을 나타냅니다. Confusion Matrix에서 좌 상단에서 우 하단으로 이어지는 대각선 위의 값들이 Correct에 나타나며 그에 해당하지 않는 cell들은 틀린 cell로 해당하는 y 축(True Class) 별로 더한 값이 Wrong에 나타납니다. 창의 오른쪽에 나타나는 표는 Confusion Matrix 의 y축을 공유하며 x축은 precision, recall, f-score를 나타냅니다. 각 클래스의 precision, recall, f-score 값을 이 표에서 확인할 수 있습니다.
모든 검사 결과 정보는 검사 결과 조절 패널과 연동되어 실시간으로 변화합니다.
검출(Detection), 분할(Segmentation)

검출 모드의 결과 패널에서는 각 클래스별 미검(Underkill) 비율과 과검(Overkill) 비율, F-score 값을 확인할 수 있습니다. 또한 제일 아래 행에 평균값이 보여집니다. 분할 모드의 결과 패널은 검출 모드와 유사하며, F-score 열 대신 IOU 열이 있습니다.
전체 결과 패널(Overall Results)
전체 결과 패널에서는 검사 결과를 그래프 및 텍스트로 보여줍니다.
분류(Classification)

분류 모드의 전체 결과 패널에서는 검사된 이미지의 수(Num. of inspected images), 검사된 이미지 중 학습된 모델이 알맞게 분류한 이미지 수(Num. of correct images)와 비율, 검사된 이미지 중 학습된 모델이 알맞게 분류하지 못한 이미지 수(Num. of incorrect images)와 비율을 보여줍니다.
검출(Detection), 분할(Segmentation)

검출과 분할 모드의 결과 패널에서는 전체 미검(Underkill)과 과검(Overkill) 비율 및 개수를 확인할 수 있습니다.
Inspect
[Inspect] 버튼 클릭 시 검사 진행 팝업 창이 뜨며, 이미지 목록 패널에 있는 이미지 중 검사되지 않은 이미지를 검사하면서 진행 정보를 확인할 수 있습니다.
분할(Segmentation)
분할 모드의 경우 최대 검사 크기(max inspection size)를 지정할 수 있는 옵션이 있습니다. 검사할 이미지의 크기가 최대 검사 크기보다 크면 이미지 비율은 유지한 채로 최대 검사 크기로 리사이즈한 후 검사를 진행합니다.
예시
최대 검사 크기가 1000 x 2000 이고 검사할 이미지 크기가 1200 x 1800 인 경우, 이미지는 1000 x 1500으로 리사이즈된 후 검사에 사용됩니다.
Export
Export 버튼 클릭 시 분석 결과를 각 모드 별로 다음과 같이 리포트합니다.
분류(Classification)
- 텍스트 파일: 설정된 파라미터 정보, confusion matrix를 포함하여 전체 결과 및 각 클래스에 대한 통계 등의 수치를 제공하는 파일입니다.
- Copy Classified Images:
- All inspected results as images: 실제 분류 정보와 분류된 결과에 따라 폴더 구조를 생성하여 분석에 사용한 모든 이미지를 복사하여 저장합니다.
- Sorted by correctness of the classification: 맞게 분류한 이미지, 틀리게 분류한 이미지를 따로 묶어서 폴더 구조를 생성하여 저장합니다.
- 이미지로 저장할 때 class activation map 결과를 같이 내보낼 지 여부를 선택할 수 있습니다. 폴더 명 끝에 ‘_Visualize’ 가 추가되어 폴더가 생성됩니다.
검출(Detection)
- 텍스트 파일: 설정된 파라미터 정보, 전체 미검 및 과검 값과 각 클래스별 미검, 과검 및 f-score 값을 확인할 수 있는 파일입니다.
- Overlayed Iamges:
- Sorted by with or without 'Detected' objects: 물체가 하나 이상 검출된 이미지와 하나도 검출되지 않은 이미지를 나눠서 폴더 구조를 생성하여 저장합니다.
- Sorted by with or without 'Underkilled' objects: 미검이 하나 이상 있는 이미지와 하나도 없는 이미지를 나눠서 폴더 구조를 생성하여 저장합니다. 이 때 정상 이미지로 라벨링된 이미지는 내보내지 않습니다.
- Sorted by with or without 'Overkilled' objects: 과검이 하나 이상 있는 이미지와 하나도 없는 이미지를 나눠서 폴더 구조를 생성하여 저장합니다.
분할(Segmentation)
- 텍스트 파일: 설정된 파라미터 정보, 전체 미검 및, 과검 값과 각 클래스별 미검, 과검 및 IOU값을 확인할 수 있는 파일입니다.
- Overlayed Images:
- Sorted by with or without 'Detected' objects: 물체가 하나 이상 검출된 이미지와 하나도 검출되지 않은 이미지를 나눠서 폴더 구조를 생성하여 저장합니다.
- Sorted by with or without 'Underkilled' objects: 미검이 하나 이상 있는 이미지와 하나도 없는 이미지를 나눠서 폴더 구조를 생성하여 저장합니다. 이 때 정상 이미지로 라벨링된 이미지는 내보내지 않습니다.
- Sorted by with or without 'Overkilled' objects: 과검이 하나 이상 있는 이미지와 하나도 없는 이미지를 나눠서 폴더 구조를 생성하여 저장합니다.
- Raw Data: 각 클래스에 대하여 클래스 이름으로 하위 폴더를 생성한 후, 검사한 모든 이미지에 대하여 각 픽셀 별 클래스의 검출 결과를 0-255 범위의 히트맵 형태로 제공합니다.
- Cropped Patches: 각 클래스에 대하여 클래스 이름으로 하위 폴더를 생성한 후, 검출된 물체를 포함하도록 이미지를 잘라 내어 각 클래스에 해당하는 하위 폴더에 저장합니다. 저장된 패치 이미지는 분류 모드를 이용한 후처리 등에 사용될 수 있습니다.
- Export OK patches: 검출된 물체와 겹치지 않는 영역에서 정상 패치 이미지를 잘라 내어 저장합니다. 텍스트 박스에 저장할 OK 패치 이미지 수를 지정할 수 있으며, 총 검출된 물체의 수가 기본값으로 입력됩니다.
- Crop size: 패치 이미지의 크기를 지정합니다.
- Large objects exceeding 'Crop size': 패치 이미지 크기보다 검출된 물체의 크기가 큰 경우 처리하는 방법을 지정합니다.
- Crop by object's size, and resize to 'Crop size': 검출된 물체를 포함하는 사각형의 가로, 세로 길이 중 긴 변의 길이에 마진 비율로 상하 또는 좌우에 여유 길이를 더한 길이의 정사각형으로 검출된 물체를 잘라 낸 후, 지정된 패치 이미지의 크기로 resize합니다.
예) 100 x 200 크기의 검출된 물체를 마진 10%로 자르는 경우, 240 x 240 (=200 x (1 + 2 x 10%)) 으로 검출된 물체를 잘라낸 후 리사이즈 - Crop by object's size: 검출된 물체를 포함하는 사각형의 가로, 세로 길이 중 긴 변의 길이에 마진 비율로 상하 또는 좌우에 여유 길이를 더한 길이의 정사각형으로 검출된 물체를 잘라냅니다.
예) 100 x 200 크기의 검출된 물체를 마진 10%로 자르는 경우, 240 x 240 (=200 x (1 + 2 x 10%)) 으로 검출된 물체를 잘라냄 - Crop center by 'Crop size': 검출된 물체의 중심을 기준으로 지정된 패치 이미지 크기의 정사각형으로 잘라냅니다.
- Crop by object's size, and resize to 'Crop size': 검출된 물체를 포함하는 사각형의 가로, 세로 길이 중 긴 변의 길이에 마진 비율로 상하 또는 좌우에 여유 길이를 더한 길이의 정사각형으로 검출된 물체를 잘라 낸 후, 지정된 패치 이미지의 크기로 resize합니다.
- Image format: 잘라 내어 저장할 패치의 이미지 형식을 .png, .jpeg, .bmp 중 하나로 지정합니다. 생성된 이미지(*.srImage)를 내보내는 경우 지정된 이미지 형식이 아닌 .srImage 형식으로 저장됩니다.
Tab 저장 및 불러오기
검사를 완료한 tab을 해당 tab의 우클릭 (
) 혹은 우측 상단 메뉴의 'Save Current Tab' 버튼을 클릭하여 .srAnalyzeTab 형식의 파일로 저장할 수 있습니다. 저장된 tab은 [Analyze]의 탭 추가 버튼 (
) 클릭 후 tab 불러오기 버튼 (
)을 클릭하여 불러올 수 있습니다.
