Tightness-aware Evaluation Protocol for Scene Text Detection

Inc Lomin's avatar
May 17, 2019
Tightness-aware Evaluation Protocol for Scene Text Detection
 

Introduction

Motivation

문자 인식 (detection) 평가를 위한 지표들은 보통 Pascal VOC 물체 인식에서 쓰이는 지표를 가져와서 쓰입니다. 하지만 문자 인식은 일반적인 물체 인식과는 조금 다른 특성을 갖습니다. 아래 그림을 보시면, 4개의 그림 모두에서 파란색 박스는 GT와의 IoU가 0.66입니다. 따라서 기존 metric을 이용한다면 모두 동일한 점수를 갖게 됩니다. 하지만 파란색 박스 이내의 영역을 recognition한다면 결과는 완전히 달라집니다.
notion image
(a)에서는 박스 바깥의 영역을 recognition할 수 없기 때문에 전혀 다른 글자로 인식하게 됩니다. (c)에서는 recognizer가 실제 target GT가 어떤 것인지 판단하기 어렵습니다. (d)는 (a)와 (c)의 문제를 복합적으로 가지고 있습니다. 이 중 (b)만 제대로 recognition이 이루어질 가능성이 있지만, recognizer 입장에서는 알 수가 없습니다. 만약 IoU threshold를 낮게 선정한다면, 이보다 더 부정확한 bounding box들이 포함될 것입니다. 그래서 정리하자면, 물체 인식에서 주로 쓰이는 IoU를 평가 지표로 사용할 경우 다음과 같은 문제들이 있습니다:
  • (a)와 (d)를 보면, 실제 recognition에 필요한 GT region이 잘려서 누락된 글자들이 생깁니다. 즉, text의 recall이 완전하지 않습니다.
  • (c)와 (d)를 보면 outlier-GT를 포함하고 있습니다. 혹은 (b)처럼 background noise를 너무 많이 포함하고 있는 경우도 있습니다.
  • 최근의 metric들은 마지막의 recall이나 precision을 계산하기 위해 binary results (0 or 100%)를 사용합니다.
 

Goal

이러한 단점들을 극복하여 Tightness-aware Intersect-over-Union (TIoU)라는 지표를 새롭게 정의합니다. 새로운 지표의 특징들은 다음과 같습니다.
  • Completeness: GT가 완전하게 recall되도록 합니다.
  • Compactness: Outlier-GT의 recall에 페널티를 줍니다.
  • Tightness-aware: Detection method간의 tightness에 따라 차등을 둡니다. 예를 들어 evaluation에서 0.9 IoU detection은 0.5 IoU detection에 비해 우위를 갖습니다.
 

ICDAR 2003 Evaluating Method

가장 매칭이 잘 된 것만을 골라 recall과 precision을 계산합니다.
notion image
notion image
이 지표는 다음과 같은 문제점들을 갖습니다:
  • 여러 개의 detection들이 하나의 GT에 동시에 매칭될 수 있습니다.
  • one-to-one (OO) match만을 고려하기 때문에 one-to-many (OM)이나 many-to-one (MO) match들은 recall과 precision이 0인 것으로 취급합니다.
 

ICDAR 2013 Evaluation Method: IC13, DetEval, IoU

IC13에서는 IC13, DetEval, IoU 이렇게 세 개의 메트릭을 사용합니다.
먼저 IC13에서는 ICDAR03과는 달리 best match가 아니라, 일정 threshold를 넘는 값을 가진 detection들을 모두 채택합니다. 때문에 가장 일치하는 것을 OO로, 다른 다수의 매칭들은 false positive로 간주합니다.
notion image
각 GT들과 detection들은 한번씩만 매칭될 수 있기 때문에, 매칭 순서에 따라 문제가 될 수 잇습니다. 예를 들어 IC13에서 매칭 순서는 OO→OM→MO 순으로 이루어지는데요, 예를 들어 다음 그림에서 파란색 detection은 이미 OO로 일치하는 GT가 있기 때문에 MO 매칭이 불가능합니다. 따라서 파란색 박스는 false positive로, 나머지 gt들은 recall 되지 않은 것으로 간주합니다.
notion image
그래서 DetEval에서는 이를 보완하기 위해 OM과 MO를 먼저 계산합니다. 하지만 당연하게도 여기에도 함정이 있는데요, 다음과 같은 경우에 OM에서 이미 빨간색 gt와 파란색 detection들이 매칭되었기 때문에, 후순위에 해당하는 OO의 살구색 gt들은 recall되지 않은 것으로 간주됩니다.
notion image
IoU metric에서는 detection들과 gt들을 매칭시킨 뒤, IoU를 계산함으로써 true/false positive 여부를 판별합니다. 가장 흔하게 쓰이지만, 여전히 도입부에서 소개한 것과 같은 문제점을 안고 있습니다.
 

AP-Based Evaluation Method

그 밖에도 interpolated average precision 등의 metric을 사용하기도 합니다. 이 또한 기본적으로 IoU를 이용해서 ap를 계산합니다.
 

Proposed Metric

앞서 언급한 문제들이 발생하지 않도록 하기 위해서, 기본적으로 우리가 gt annotation을 할 때 고려해야 할 점이 무엇인지 다시 생각해볼 필요가 있습니다.
  • Annotation은 글자 instance들을 자르거나 분할해서는 안됩니다.
  • Annotation은 background noise나 outlier text instances를 최대한 적게 포함해야 합니다.
  • Annotation은 가능한 한 text instance와 완벽하게 매칭되어야 합니다.
이러한 점들을 보완하기 위해 TIoU에서는 GT에서 detection이 차지하는 비율과 outlier-GT들이 차지하는 비율의 값들을 수치화하여 도입합니다.
 

TIoU Recall

위의 규칙들 중 첫번째 규칙을 위반하지 않기 위해서 TIoU recall을 정의합니다. 먼저 다음과 같이 i번째 gt 중에서 j번째 detection에 의해 recall되지 않은 영역을 정의합니다. (A()는 해당 영역의 면적을 뜻합니다.)
notion image
그러면 이 중 gt 영역 내에서 recall된 영역의 비율은 다음과 같이 나타내고,
notion image
TIoU recall은 이렇게 정의합니다.
notion image
이를 사용하면, 위 그림에서 (a)와 (b)는 각각 0.424, 0.66의 값을 갖습니다. 즉 놓친 글자가 있을 경우에 더 작은 recall 점수를 갖게 됩니다.
 

TIoU Precision

Detection box 내부에 outlier-GT가 포함된 경우에 penalty를 주기 위해 다음과 같이 모든 outlier-GT들의 union을 계산합니다. 식이 엄청 길어보이지만, outlier-GT와 현재 detection의 공통 영역에서 target GT에 해당하는 부분을 제외한 것들의 합집합입니다.
notion image
Detection 중 위의 outliter-GT로 계산한 부분이 차지하는 비유을 뺀 것을 f(O_t)로 나타냅니다.
notion image
이를 IoU에 곱해서 TIoU precision으로 정의합니다.
notion image
 

Tightness-aware Metric

원래의 지표에서 recall과 precision의 정의는 다음과 같습니다.
notion image
notion image
IC13, 15에서는 매칭 박스에 대해 binary 결과를 적용하기 때문에, threshold만 넘기면 그 박스가 얼마나 일치하는지는 고려하지 않습니다. 이는 detection tightness를 전혀 반영하지 못하기 때문에, binary가 아니라 연속적인 값으로 바꿔줄 필요가 있습니다. 따라서 매칭할 때 유사 정도를 바로 사용하는 IC03의 아이디어를 차용하여 다음과 같이 Score IoU를 정의합니다.
notion image
또한 TIoU 값을 score로 사용하면 앞에서 제안한 바와 같이 cutting이나 outlier 문제들을 해결할 수 있습니다.
 

OM/MO Metrics

Annotation에는 객관적인 기준이나 규칙이 없기 때문에, 데이터셋 안에서도 일관성이 많이 떨어집니다. 특히 word-level annotation을 채택한 데이터셋임에도, 하나의 박스 내에 여러 개의 instance들이 포함되어 있는 경우나, 하나의 단어를 여러 개의 박스로 나누어 annotation한 경우들이 흔하게 있습니다. 이러한 경우에는 OM/MO matching이 발생하기 쉽기 때문에, evaluation 시 다음과 같은 처리를 해줍니다.
  • gt에서 두 개 이상의 word-level annotation이 포함된 text-line annotation을 생성합니다. (manually...)
  • word-level annotation에 사용되는 metric을 이용해서 각 text-line annotation에 대해 evaluation합니다. Detection이 text-line gt랑 일치하는 경우, TIoU precision을 계산합니다. 그 후에 해당 text-line에서 word-level로 매칭되는 detection들은 무시합니다.
  • word-level annotation과 recall을 이용해서 해당 text-line gt 내에 있는 word-level gt가 충분히 recall되었는지 판별합니다. 충분히 되었다면 text-line의 TIoU recall은 다음과 같은 값을 갖습니다.
notion image
  • 그 후에 word-level annotation에 대해 evaluation을 진행합니다. 이 단계에서 text-line에서 recall된 Gt는 don't care로 취급합니다.
 

Experiment

이 논문은 평가 지표를 제안한 논문이기 때문에, 다른 detection 방법들과의 결과 값 자체를 비교한 것이 아니라, 여러 detection 방법들을 이용해서 evaluation을 진행한 뒤 그 결과를 qualitative하게 비교하고 있습니다. 특히 실제 detection에서의 결과가 기존의 지표로는 잘 반영되지 않는 경우가 있는데, 이러한 경우들을 사례 사진들을 보면서 확인하고 있습니다.
IC13과 IC15 데이터셋을 이용해서 결과를 산출한 논문들 중 좋은 결과를 내어 흔히 인용되는 방법들을 평가 대상으로 합니다. 특히 이 중에서 code나 test model이 공개되어 있어서 이 논문의 저자들이 직접 재생산이 가능한 방법들을 비교해보았다고 하는데요. 추가적으로 detection 후에 CRNN, RARE를 이용해서 얻은 end-to-end 결과까지 제시하고 있습니다.
 

IC13

notion image
  • TIoU 값들은 e2e 결과와 유사한 양상을 보입니다. 예를 들어, Faster RCNN과 SSD를 비교해보면 IoU에서는 전자가 5퍼센트정도 앞섭니다. 하지만 recognition 결과는 오히려 SSD가 더 좋은 편이며, TIoU는 이 사실을 잘 반영합니다. 각 detection 방법들의 metric 추세와 상관관계를 살펴보면 다음 그림과 같습니다.
notion image
  • TIoU는 detection이 compact/complete한지, detection과 target이 tight한지를 잘 반영합니다.
notion image
  • 그럼에도 불구하고 text detection은 여전히 어려운 task입니다. 기존의 metric들과 비교해보았을 때, TIoU metric에서는 거의 대부분의 결과에서 10% 이상 안 좋은 결과를 보입니다. 이는 text detection의 결과가 아직 충분히 좋지 못하다는걸 뜻합니다.
 

IC15

notion image
  • TIoU는 방향이 있는 글자들이 포함된 데이터셋에서도 tightness를 잘 반영해내는 것을 확인할 수 있습니다. 예를 들어, PixelLink, RRD는 IoU metric에서 EAST보다 좋은 결과를 보이지만 SIoU를 보면 그 차이는 줄어듭니다. 게다가 TIoU metric을 보면, EAST가 RRD보다 좋은 결과를 보입니다. 이는 회전된 사각형으로 detection을 하는 RRD가 기존의 IoU 기준은 잘 만족하지만, '타이트'하지 않기 때문에 TIoU에서 높은 점수를 받지 못하기 때문입니다. 사각형을 회전해서 이용하는 방식들보다 quadrangle을 이용하는 방식들에서 더 높은 TIoU 값이 나오게 됩니다.
notion image
  • Text-line들이 포함된 경우에도 모두 false positive 처리하는 일 없이 공정하게(?) 평가합니다. 예를 들어 TextBox++ 같은 경우에는 PixelLink보다 2.4% 앞서 있지만, joint text-line annotation을 이용하면 오히려 0.2% 뒤지는 결과가 나옵니다.
위의 그림을 보면 원래의 metric에서는 PixelLink의 detection들이 false positive입니다. 이러한 이유 때문에 0.823로 TextBox++(0.847)보다 성능이 낮은 것으로 표시됩니다. 하지만 text-line solution을 이용하면 이러한 detection들도 잘 평가할 수 있고, TIoU metric에서 0.605로 TextBox++의 0.603을 근소하게 앞서는 결과를 보입니다.
위의 그림을 보면 원래의 metric에서는 PixelLink의 detection들이 false positive입니다. 이러한 이유 때문에 0.823로 TextBox++(0.847)보다 성능이 낮은 것으로 표시됩니다. 하지만 text-line solution을 이용하면 이러한 detection들도 잘 평가할 수 있고, TIoU metric에서 0.605로 TextBox++의 0.603을 근소하게 앞서는 결과를 보입니다.

Qualitative Evaluation

Threshold를 넘는지 여부만 판단 한 뒤 binary로 점수를 매기는 기존의 metric을 이용한다면 아래의 예시들은 모두 100% precision and recall에 해당합니다. 하지만 육안으로 보기에도 100%의 점수를 주면 안될 것 같고, 특히 recognition 결과는 아예 딴판으로 나온 detection들도 있습니다. TIoU를 이용한 evaluation은 이렇게 recognition의 결과가 좋지 않은 detection들을 사전에 거르는 역할을 할 수 있을 것으로 보입니다.
notion image
notion image
 

Conclusions

Text detection의 목적에 부합하는 새로운 metric을 제안하였고, 해당 metric으로 기존 text detector들의 결과를 다시 evaluation해 보았습니다. 그 결과, detection의 metric임에도 불구하고 end-to-end 결과와 일치하는 추세를 보였으며, 타이트니스를 더 잘 반영할 수 있었습니다. 또한 one-to-many 혹은 many-to-one 발생할 수 있는 문제들을 해결했습니다.
추가적으로 이 지표를 학습하거나, 혹은 반지도학습에 이용할 예정이라고 합니다. 반지도학습에 이용할 경우에는 detection을 새로운 gt로 사용할 수 있는지를 판별하는데 좋은 기준이 될 것이라고 합니다.
 
Share article