Confusion Matrix

Confusion Matrix는 ground truth와 도구의 예측을 시각적으로 표현한 것입니다. Red 분석 도구의 Confusion Matrix는 도구의 프로세싱 결과에 대한 비교 표이며, 실계 값과 예측 값 아이의 관계를 보여줍니다. Confusion Matrix와 그 성능 통계값(confusion matrix의 Precision, Recall, F1 score)은 Red 분석 지도 도구(Red 분석 도구 Focused 지도 모드, Red 분석 도구 High Detail 모드)와 Red 분석 도구 Focused 비지도 모드 모두에서 제공되며 자세한 내용은 아래 설명을 참조하십시오.

 

 

Confusion Matrix의 숫자 계산

이 표를 표시하는 4가지 방법이 있으며, 이는 카운트 드롭다운 옵션으로 설정할 수 있습니다: 뷰, 트레이닝되지 않은 뷰, 영역, 트레이닝되지 않은 영역. 이 옵션은 ‘점수’ 그래프를 그릴때도 사용됩니다. (점수 분포 그래프)

  • 뷰: 각 뷰에 대해 라벨과 마킹이 설정됩니다.

  • 학습되지 않은 뷰: 트레이닝 셋에 속하지 않는 각 뷰에 대해 라벨과 마킹이 설정됩니다.

  • 영역: 뷰의 각 영역에 대해 라벨과 마킹이 설정됩니다. 영역은 결함 영역(불량)과 배경(양호)로 나뉘고, 그에 따라 라벨과 마킹이 설정됩니다.

  • 학습되지 않은 영역: 트레이닝 셋에 속하지 않는 뷰의 각 영역에 대해 라벨과 마킹이 설정됩니다. 영역은 결함 영역(불량)과 배경(양호)로 나뉘고, 그에 따라 라벨과 마킹이 설정됩니다.

Note:
Red 분석 도구에는 두 종류의 라벨 지정 방식이 있습니다: 픽셀 단위 라벨링과 뷰 단위 라벨링입니다.
  • 픽셀 단위 라벨링: 이미지 표시 영역에서 우클릭 → “영역 편집” 선택 → 결함 영역을 그리고 ‘적용’ 버튼 클릭

  • 뷰 단위 라벨링: 뷰 브라우저의 뷰에서 우클릭 → “뷰 라벨링” 선택 → “불량” 선택

뷰 전체를 “불량”(뷰 단위)로 라벨을 지정하면, 이 뷰 단위 라벨링은 뷰/학습되지 않은 뷰에 사용됩니다. 하지만 한 개 이상의 픽셀을 불량(픽셀 단위)로 라벨을 지정하면, 그 픽셀 단위 라벨링은 영역/학습되지 않은 영역에 사용됩니다.

영역/학습되지 않은 영역에 대해, 라벨이 전혀 지정되지 않은 픽셀은 “양호”(배경)으로 간주됩니다. 마킹은 픽셀의 결함 확률이 T1 값을 넘는지를 확인하여 이 픽셀이 결함 픽셀인지 아닌지 여부를 예측한 결과입니다. 픽셀 단위 결함 라벨을 가진 뷰는 뷰 단위에서는 자동으로 ‘불량’ 라벨로 지정됨을 주의하십시오.

 

Confusion Matrix의 숫자 계산- 뷰/학습되지 않은 뷰

Red 분석 도구에서 Confusion Matrix는 영역 혹은 뷰를 기준으로 계산될 수 있습니다. 어떤 기준을 선택하는지에 따라 Confusion Matrix의 값은 확연히 달라집니다.

뷰 기준일 때, 각 영역이 아닌 각 뷰에 대해서 마킹이 이루어집니다. 한 개의 뷰에서, 만일 이 뷰에 T2 임계치 이상의 점수를 갖는 결함 픽셀이 있다면 그 뷰는 “불량’으로 예측되고, 그렇지 않을 경우 ‘양호” 혹은 중간으로 예측됩니다.

뷰를 “불량”으로 마킹하기 위해서, 가장 높은 결함 확률(점수)를 갖는 픽셀은 뷰의 어느 위치에나 있을 수 있으며, 반드시 라벨된 결함 영역 위에 있을 필요는 없습니다.

뷰 기준일 때, 각 영역이 아닌 각 뷰에 라벨이 이루어집니다. 만일 뷰를 ‘불량’으로 라벨 지정했다면, 이는 불량으로 라벨된 것이고, 그렇지 않을 경우 ‘양호’입니다.

 

‘실제’ 개수를 계산하는 방법 – 뷰/학습되지 않은 뷰

  • 뷰에 ‘양호’ 라벨이 지정된 경우,
    → 1 개의 실제 ‘양호’.

  • 뷰에 ‘불량’으로 라벨이 지정된 경우,
    → 1 개의 실제 ‘불량’

 

“예측” 개수를 계산하는 방법 – 뷰/학습되지 않은 뷰

뷰 기준인 경우, 예측은 위에서 설명한 각 ‘실제’ 뷰에 대해 수행됩니다. 예측은 T1, T2와 실제 뷰의 대표 점수로부터 계산됩니다.

뷰의 대표 점수는 뷰의 픽셀들의 점수 중 가장 높은 점수입니다. 각 점수는 결함 각 픽셀의 결함일 확률입니다. 예를 들어, 만일 뷰에 T2 임계치 이상의 점수를 가지는 결함 픽셀이 있다면, 그 뷰는 ‘불량’으로 예측되고, 아닐 경우 ‘양호’ 혹은 ‘중간’으로 예측됩니다.

 

  • 뷰의 모든 픽셀에서 가장 높은 점수가 T1보다 작을 때,
    → 1 개의 예측 “양호”

  • 뷰의 모든 픽셀에서 가장 높은 점수가 T2보다 클 때,
    → 1 개의 예측 “불량”

  • 그 외의 경우,
    → 1 개의 예측 “중간”


Tip: ‘실제’ 개수 계산법 요약 – 뷰/학습되지 않은 뷰
1개의 “양호”로 라벨된 뷰 → 1개의 실제 “양호” 뷰,
1 개의 “불량”으로 라벨된 뷰 → 1개의 실제 “불량” 뷰
Tip: “예측” 개수 계산법 요약 – 뷰/학습되지 않은 뷰
뷰의 모든 픽셀의 최고 점수< T1 → 1 개의 예측 “양호” 뷰,
뷰의 모든 픽셀의 최고 점수> T2 → 1 개의 예측 “불량” 뷰,
그 외, 1 개의 예측 “중간” 뷰

 

Confusion Matrix의 숫자 계산- 영역/학습되지 않은 영역

Red 분석 도구에서 Confusion Matrix는 영역 혹은 뷰를 기준으로 계산될 수 있습니다. 어떤 기준을 선택하는지에 따라 Confusion Matrix의 값은 확연히 달라집니다.

영역 기준일 때, 각 뷰가 아닌 각 영역에 대해서 마킹과 라벨링이 이루어집니다. 이는 뷰에서 복수의 마킹된 영역(‘마킹된 영역’은 T1과 T2에 의해 “결함”으로 표시된 픽셀의 집합을 나타냄)이 Confusion Matrix 계산에 포함된다는 것을 의미합니다. 즉, 뷰/학습되지 않은 뷰의 Confusion Matrix 표에서는 단일 뷰가 1개의 카운트만 생성할 수 있는 반면, 영역/학습되지 않은 영역의 Confusion Matrix에서는 단일 뷰가 복수의 카운트(실제 – 예측 쌍)를 생성할 수 있습니다.


“실제” 개수를 계산하는 방법 – 영역/학습되지 않은 영역

 

뷰/학습되지 않은 뷰와 비교했을 때, 영역/학습되지 않은 영역의 Confusion Matrix의 ‘실제’ 개수를 계산할 때는 다른 규칙을 적용합니다.

 

  • 양호”로 라벨 지정된 뷰가 있을 때,
    → 1개의 실제 “양호” 영역
    (뷰 전체가 배경(background) 영역으로 간주됨).

  • 불량”으로 라벨 지정되었고, N개의 픽셀 단위로 라벨된 결함 영역이 있는 뷰인 경우,
    → 뷰의 픽셀 단위로 라벨된 결함 영역에 대응되는 N개의 실제 “불량” (N개의 실제 “불량” 영역).
    → 뷰의 모든 배경(background) 픽셀에 대응되는 1개의 실제 “양호” 영역.

  • “불량”으로 라벨 지정되었고, 픽셀 단위로 라벨된 결함 영역이 없는
    뷰인 경우,→ 1 개의 실제 ‘불량’

 

“예측” 개수를 계산하는 방법 – 영역/학습되지 않은 영역

 

영역/학습되지 않은 영역의 Confusion Matrix에서, 예측은 바로 위 섹션에서 설명한 각 “실제” 영역에 대해 수행됩니다. 예측은 T1, T2와 실제 영역의 대표 점수로부터 계산됩니다.

실제 영역의 대표 점수는 “실제” 영역의 픽셀들의 점수 중 가장 높은 점수입니다. 이는 뷰의 대표 점수가 뷰의 픽셀들의 점수 중 가장 높은 점수인 것과 동일합니다. 각 점수는 결함 각 픽셀의 결함일 확률입니다.

예를 들어, 만일 뷰에 T2 임계치 이상의 점수를 가지는 결함 픽셀이 있다면, 그 뷰는 ‘불량’으로 예측되고, 아닐 경우 ‘양호’ 혹은 ‘중간’으로 예측됩니다. 영역 혹은 학습되지 않은 영역의 Confusion Matrix에서, 예측된 결과는 T1, T2와 실제 영역의 점수에 의해 결정됩니다:

  • 실제 영역의 점수 < T1,
    → 1 개의 예측 “양호”

  • T1 < 실제 영역의 점수 < T2,
    → 1 개의 예측 "중간"

  • 실제 영역의 점수 > T2,
    → 1 개의 예측 "불량"

 

영역/학습되지 않은 영역에서 실제-예측 쌍 계산의 예시

아래의 예시를 더 명확하게 하기 위해, 여기서 실제 영역 중에서 가장 높은 점수가 T2보다 높다고 가정합니다.

  • 픽셀 단위로 라벨된 결함이 없고 뷰 자체가 “양호”로 라벨된 뷰에서, N개의 마킹된 영역이 배경(양호로 라벨된 픽셀)에 나타나는 경우:
    → 1 개의 (실제) 양호 - (예측) 불량 쌍
    (N개의 마킹된 영역은 1개의 마킹된 영역으로 간주됨)

     

    픽셀 단위로 라벨된 결함이 없고 “양호”로 라벨된 뷰 배경에 3개의 마킹된 영역이 나타난 예시:

     

  • 픽셀 단위로 라벨된 결함이 없지만 전체 뷰 자체는 “불량”으로 라벨된 뷰에서, N개의 마킹된 영역이 배경(양호로 라벨된 픽셀)에 나타난 경우:
    → 1개의 (실제) 불량 - (예측) 불량 쌍
    (N개의 마킹된 영역은 1개의 마킹된 영역으로 간주됨)

     

    픽셀 단위로 라벨된 결함이 없고 “불량”으로 라벨된 뷰에서 4개의 마킹된 영역이 배경에 나타난 예시:

     

  • 픽셀 단위로 라벨된 결함 영역에 마킹된 영역이 나타난 경우:
    이때 결과를 결정하는데 중요한 것은, 총 몇 개의 마킹된 영역이 픽셀 단위로 라벨된 결함 영역과 겹치는가 입니다:

    • <사례 1>

      1 개의 픽셀 단위로 라벨된 영역,
      1 개의 마킹된 영역 (픽셀 단위로 라벨된 영역과 겹침),
      1개의 마킹된 영역 (픽셀 단위로 라벨된 영역과 겹치지 않고 배경에 나타남):

      1개의 (실제) 불량 – (예측) 불량 쌍 (겹침),
      1개의 (실제) 양호 – (예측) 불량 쌍 (겹치지 않음),

      Note: 뷰에 한 개 이상의 픽셀 단위로 라벨된 결함 영역이 있는 경우, 라벨된 영역을 제외한 모든 픽셀의 묶음 전체는 “배경”으로 간주되고, 1개의 실제 “양호” 영역으로 계산됩니다. 이는 대부분의 경우에 적용되지만, 뷰에 픽셀 단위로 라벨된 영역이 없지만 뷰 자체는 ‘불량’으로 라벨된 경우에는 적용되지 않습니다.

       

      뷰 자체는 ‘불량’으로 라벨되었고 한 개 이상의 픽셀 단위로 라벨된 결함이 있는 뷰에서, 1개의 마킹된 영역이 배경에 나타나고 다른 마킹된 영역은 픽셀 단위로 라벨된 영역에 나타난(겹친) 예시:

       

    • <사례 2>

      5 개의 픽셀 단위로 라벨된 영역,
      3 개의 마킹된 영역 (각 마킹된 영역은 서로 다른 픽셀 단위로 라벨된 영역과 겹침),
      2개의 마킹된 영역 (어떤 픽셀 단위로 라벨된 영역과도 겹치지 않고 배경에 나타남):

      3 개의 (실제) 불량 – (예측) 불량 쌍 (겹침),
      2 개의 (실제) 불량 – (예측) 양호 쌍 (겹치지 않음),
      1 개의 (실제) 양호 – (예측) 불량

      Note: 배경에 표시된 2개의 마킹된 영역은 1개의 마킹된 영역으로 간주되며, 1개의 예측 “불량”으로 계산됩니다. 이는 또한 N개의 마킹된 영역의 사례로도 확장됩니다.

       

    • <사례 3>

      3 개의 픽셀 단위로 라벨된 영역 (A, B, C),
      3 개의 마킹된 영역 (2개는 A와 겹쳐지고 1개는 B와 겹쳐짐)
      1개의 마킹된 영역 (겹치지 않음 = 배경에 나타남):

      1 개의 (실제) 불량 – (예측) 불량 쌍 (A와 겹친 2개),
      1 개의 (실제) 불량 – (예측) 불량 쌍 (B와 겹친 1개),
      1 개의 (실제) 양호 – (예측) 불량 쌍 (배경에 나타남),
      1개의 (실제) 불량 – (예측) 양호 쌍 (C)

Tip: “실제” 개수 계산법 요약 – 영역/학습되지 않은 영역:
1 개의 “양호”로 라벨된 뷰 → 1개의 실제 “양호” 영역,
픽셀 단위로 라벨된 영역은 없는 “불량”으로 라벨된 1 개의 뷰,
1 개의 N개의 픽셀 단위로 라벨된 영역을 가진 “불량”으로 라벨된 뷰,
→ 1개의 실제 “양호” 영역 + N 개의 실제 “불량” 영역
(N은 실제로 사용자가 그린 결함 영역의 개수)
Tip: Tip: “예측” 개수 계산법 요약 – 영역/학습되지 않은 영역:
라벨된 영역의 최고 점수 < T1 → 1개의 예측 “양호” 영역,
라벨된 영역의 최고 점수 > T2 → 1 개의 예측 “불량” 영역,
그 외, →1개의 예측 “중간” 영역

 

F1 점수 계산

Confusion Matrix의 F1 점수는 precision과 recall의 조합으로, 세분화 성능에 대한 포괄적인 메트릭으로서 제공됩니다. Recall(재현율)은 신경망이 라벨이 있는 결함 영역의 구역과 얼마나 잘 일치하는지를 나타내고, precision(정밀도)은 신경망이 이미지의 다른 구역과 혼동되는걸 얼마나 잘 억제하는지를 나타냅니다. Confusion Matrix의 F1 점수를 얻기 위해서는 precision과 recall이 반드시 먼저 계산되어야 합니다. 여기서의 Precision, recall, F1 점수는 픽셀 단위로 계산되는 Region Area Metrics의 Precision, Recall, F1 점수와는 다른 방식으로 계산됩니다.

confusion matrix의 F1 점수는 카운트 드롭다운 옵션에 따라 달라집니다. 이는 현재 confusion matrix에서 계산된 Precision과 Recall의 조화 평균입니다. 뷰 또는 영역이 “중간”으로 예측되는 경우, precision, recall, F1 점수 계산에서 “불량”으로 계산됩니다.

  • (실제 양호, 예측 중간) → (실제 양호, 예측 불량)

  • (실제 불량, 예측 중간) → (실제 불량, 예측 불량)

Note: 도구가 지도 모드 (High Detail과 Focused 지도 모드)일 경우, 결함 여역에 대한 정보를 나타나는 region area metric을 포함합니다.

 

계산법을 소개하기 전에, 계산을 위해서 알아야할 사항은 다음과 같습니다:

“양호” 클래스를 예측하기 위해:

  • 1개의 “실제 양호 – 예측 양호”쌍은 1개의 “True Positive (TP)”를 나타냅니다.

  • 1 개의 "실제 불량 – 예측 양호” 쌍은 1개의 “False Positive (FP)”를 나타냅니다.

  • 1 개의 “실제 불량 – 예측 불량” 쌍은 1개의 “True Negative (TN)”을 나타냅니다.

  • 1 개의 “실제 양호 – 예측 불량” 쌍은 1개의 “False Negative (FN)”을 나타냅니다.

“불량” 클래스를 예측하기 위해:

  • 1 개의 “실제 불량 – 예측 불량” 쌍은 1개의 “True Positive (TP)”를 나타냅니다.

  • 1개의 “실제 양호 – 예측 불량” 쌍은 1개의 “False Positive (FP)”를 나타냅니다.

  • 1개의 “실제 양호 – 예측 양호” 쌍은 1개의 “True Negative (TN)”를 나타냅니다.

  • 1개의 “실제 불량 – 실제 양호” 쌍은 1개의 “False Negative (FN)”을 나타냅니다.

 

이 설정에서 “양호” 클래스에 대한 Confusion Matrix의 precision, recall, F1 점수 계산은 아래와 같이 수행됩니다:

  • Precision = TP / (TP + FP) = 495/(495+23) = 0.956

  • Recall = TP / (TP + FN) = 495/(495+0) = 1

  • F-score = 2 * Recall * Precision / (Recall+Precision) = 2 * 0.956 * 1 / 1.956 = 0.978

 

“불량” 클래스에 대한 Confusion Matrix의precision, recall, and F1 점수 계산은 아래와 같이 수행됩니다:

  • Precision = TP/(TP+FP) = 57/(57+0) = 1

  • Recall = TP/(TP+FN) = 57/(57+23) = 0.713

  • F-score = 2 * Recall * Precision / (Recall + Precision) = 2 * 1 * 0.713 / 1.713= 0.832

 

그러면, Confusion Matrix의 F1 점수는 아래와 같습니다:

  • 0.5 * (양호 클래스의 F-점수) + 0.5 * (불량 클래스의 F-점수) = 0.5 * 0.978 + 0.5 * 0.832 = 0.90

 

양호한 성능

불량한 성능