Learn And Earn

CRAFT (Character Region Awareness for Text Detection) 본문

딥러닝/OCR

CRAFT (Character Region Awareness for Text Detection)

Determined 2024. 11. 25. 21:52
반응형

TL;DR

그림 1. CRAFT는 문자단위 인식을 통하여 결과적으로 다양한 배치의 문자열 이미지를 강건하게 인식 가능

  • Text Detection 모델을 훈련 할 때 char 단위 bounding box label 활용 <-> 일렬로 배열된 문자열이 아니면 오작동
  • 한계점을 "방법론"을 적용해서 "극복"
  • 방법론의 개괄 설명
    • 워드 단위 인식 : 텍스트의 각 문자를 감지하여 워드 또는 텍스트 인스턴스를 bottom-up으로 결합함
    • Affinity Score 도입 : "문자간 연결 가능성" 표현한 수치. 이를 기준으로 텍스트 형상을 정확히 표현
    • Weakly-Supervised Learning 활용 : 문자 수준 어노테이션 부족 문제를 해결하기 위해 합성 이미지에서의 문자 어노테이션을 활용하고
  • "극복"의 해석
    • 정량적 평가 : 다양한 시나리오의 데이터셋에서 Recall, Precision, F1 score 측면에서 우수한 성능을 보임 (표1, 2, 3)
    • 정성적 평가 (그림 1 참고)

Recipe만 뽑아보기!

CRAFT는 왜 잘 작동할까? CRAFT가 성공적으로 작동하는 핵심 요소만 골라서 살펴보자.

문자 단위 인식? 문자 단위 annotation!

왜 문자 단위로 인식을 해야 할까? 문자 워드 단위 인식을 위해서는 문자별로 bbox annotation을 해주면 된다. 문제는 워드가 bbox의 모양인 직사각형이 아닐 때이다. 워드가 S형태로 놓여있든, 나선형으로 놓여있든, 각 문자에 대해서는  annotation이 가능하다. 

 

당연한 거지만, 문자 단위 인식을 위해서는 문자 단위 annotation이 필요하다. 문제는 구부러진 문자열 내의 문자는 x, y축과 평행한 bbox로 annotate할 수 없다는 것이다. 이를 해결하기 위해서 object detection 문제가 아닌, 저자는 pixel별 regression의 문제로 치환했다.픽셀 별 확률을 GT로 하여 회귀를 수행하는 것이다.

 

그림 2. 공개된 합성데이터셋인 GT 생성 방법

 

Affinity Score의 정의와 활용

  • Affinity Score  := 해당 픽셀이 AFFN BOX의 무게 중심일 확률
  • Region Score := 해당 픽셀이 속해있는 CHAR BOX의 무게중심일 확률

Weakly Supervised Learning

대다수의 실제 데이터셋은 단어 단위로 annotation이 됨. 문자 수준 annotation이 가용한 합성 데이터셋에서는 그림 2.와 같은 GT 생성이 가능했지만, 실제 데이터에서는 그렇지 않음. Synthetic 데이터셋에 어느정도 fitting된 모델 기반 pseudo GT를 생성, 활용한다. 그림3, 그림4 참고.

그림 3. synthetic dataset의 데이터 포인트에는 지도학습, 실제 데이터 포인트에는 weakly self-supervised Learning 적용

 

그림 4. 그림3.의 character splitting 디테일


Reference

[1] Baek, Y., Lee, B., Han, D., Yun, S., & Lee, H. (2019). Character region awareness for text detection. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition (pp. 9365-9374).

반응형
Comments