반응형

1. OCR 모델의 평가 

OCR은 객체 탐지의 세부 영역으로 볼 수 있기 때문에 이전에 다뤄진 객체 탐지의 지표들을 참고해볼 수 있습니다. 

 

참고자료:

2024.11.02 - [노트/Computer Vision] - [OCR] 광학 문자 인식(OCR) 문제와 특징

2024.10.02 - [노트/Computer Vision] - [OD] 객체 탐지(Object Detection) 성능 판단 지표 정리 | IOU, mAP, FPS, FLOPS

 

OCR 모델들의 평가는 추론을 진행한 결과와 정답(Ground Truth, GT) 간 비교를 하고, 매칭 및 점수를 매기는 과정(Scoring)을 통해 평가합니다. 여기서 살펴봐야 할 것은 추론 결과와 GT가 어떻게 매칭되는지 판단하고, 그 매칭한 정도에서 어떻게 점수를 계산할 것인지에 대한 방법론입니다. 

 

2. 어떻게 매칭할 것인가

2.1. 기본 개념

두 영역 간 매칭 여부를 판단하고, 그에 따라 매칭 행렬을 계산합니다. 매칭 행렬을 계산하기 위해 알아야 할 기본 개념은 아래와 같습니다. 

 

  • Area Recall : 정답과 예측의 교집합 넓이 / 정답 넓이
  • Area Precision : 정답과 예측의 교집합 넓이 / 예측 넓이  

또한, 매칭의 방식에 대해서도 구분할 수 있는데, 정확히 하나씩 매칭되는 경우(One-to-One) / 하나의 정답에 여러 개를 매칭하는 경우(One-to-Many, Split Case), 여러 정답에 하나의 예측을 하는 경우(Many-to-One, Merge Case)가 있습니다.

 

2.2. DetEval 

DetEval은 아래 조건을 모두 충족하면 1, 아니면 0으로 해서 매칭 행렬을 설정합니다.

  • area recall >= 0.8
  • area precision >= 0.4

그리고 one-to-one, many-to-one은 1을 그대로 유지, one-to-many는 0~1 사이 값(예를 들어, 0.8)으로 페널티를 줍니다. 이렇게 하고 각각의 예측 영역 기준의 평균 값이 Precision과 정답 영역 기준의 평균 값인 Recall을 계산해 둘의 조화평균을 구합니다. 이 숫자가 이미지에 대한 최종 점수입니다.

 

2.3. IoU와 TIoU

IoU는 이전 정리 글(링크)에서 다룬 것처럼 예측과 정답의 교집합 영역이 일정 기준(보통 0.5) 이상이 넘은 경우에만 매칭 행렬 값을 1로 두는 방법입니다. 하지만, 이 방법에서 맹점은 예측에서 부족하거나 넘치는 영역에 대해서는 반영되지 않는다는 점인데요. 이를 보완하기 위해 등장한 것이 Tightness-aware IoU, 즉 TIoU가 등장합니다.

 

TIoU는 부족하거나 초과된 영역 크기에 비례해서 IoU 점수에 페널티를 주는 방식입니다. 각각 Recall과 Precision은 아래와 같이 계산할 수 있습니다. 앞서 얘기한 것처럼 두가지 케이스(부족/초과)가 존재할 수 있는데, 부족 영역의 경우 페널티를 주기 위해서는 정답 영역 기준이므로 Recall로 들어가게 되고 반대로 초과 영역은 페널티를 주기 위해서는 분모에 예측 영역이 되어야 하기 때문에 Precision으로 간주합니다. 

 

  • Recall = IoU * (1-penalty)  where penalty = 부족 영영 / 정답 영역
  • Precision = IoU * (1-penalty)  where penalty = 초과 영역 / 예측 영역 

이렇게 계산된 recall과 precision의 조화평균을 취해주면 최종 점수를 계산할 수 있습니다.

 

2.4. CLEval 

Character-Level Evaluation(CLEval)은 기존에 영역 기준만으로 측정하는 지표들의 한계를 극복하기 위해 등장했습니다. 즉, 얼마나 맣은 글자를 맞추고 틀렸느냐를 평가하기 위해 등장한 지표인데, 글자 영역을 글자 수만큼 등분하고, 등분한 영역에서 센터를 Pseudo Character Centers(PCCs)를 계산합니다.

 

텍스트의 기준점 잡기 [2]

 

위 이미지는 텍스트의 기준점을 잡는 방법에 대한 것으로 PCC는 이미지의 좌측에 한 글자에 해당하는 이미지에서 m-m 을 기준으로 한다고 이해하면 될 것 같습니다. 이렇게 영역에 PCC가 몇개나 있는지 계산합니다.

 

점수는 정답 기준과 예측 기준으로 두가지를 구해 조화평균하여 산출합니다. 각각의 점수는 다음 식을 사용해서 계산하는데, 각 표시가 기준마다 의미하는 바가 다르므로 그 아래의 표를 참고해주시기 바랍니다.

 

- ( Correct Number - Granual Penalty ) / Total Number

구분 정답 기준 (Recall) 예측 기준 (Precision)
Correct Number 정답 영역 내 PCC 중 예측 영역에 속한 PCC 숫자 예측 영역 PCC별 예측 영역의 개수를 나눈 것들의 합
Granual Penalty 정답 영역 내 PCC를 포함한 예측 영역의 개수 -1 예측 영역과 관련된 정답 영역의 개수 - 1
Total Number 정답 영역 내 PCC 개수 정답 영역 내 PCC 개수 

 

참고자료

[1] 유하늘. "(7강) OCR 성능 평가". Boost Camp

[2] https://pillow.readthedocs.io/en/stable/handbook/text-anchors.html#text-anchors

반응형