ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CRAFT: Character-Region Awareness For Text detection
    공부/논문읽기 2019. 11. 7. 00:02

    * 이 글은 현재 참여하고 있는 스터디 모임에서 발표한 내용으로, 여기에 직접 게시한 글을 옮겨 수정하면서 등록하였습니다.

     

    논문 : Link

    코드 : Link(pytorch)

     

     

     2019년 봄, Naver Clova 팀에서 공개한 OCR 영역의 글자 영역 검출 방법을 다룬 논문이다. 논문에서는 OCR 분야에서 Localization에 대해 다루며, 글자가 Curve / Arbitrary shape / Extremely long 등 다양하고 복잡한 상황에서도 글자 영역을 강건하게 찾아낼 수 있는 방법을 제안하였다.

     

    CRAFT 모델의 Text Detection 결과 : 원본 / Region Score / Affinity Score / Bounding Box

     

    어려운 환경에서 CRAFT 모델의 인식 결과

     

    1. Introduction

     기존에 수행되었던 많은 OCR 분야의 Localization 방법들은 Word-Level의 Bounding Box(이하 BB)의 위치를 찾기 위해 네트워크를 활용하였는데, 텍스트의 형태가 Curve이거나 변형(deformed), 또는 극단적으로 긴(extremely long) 상황에서는 위치를 찾아내기가 어렵다.

     본 논문에서 제안하는 Character-Level의 인식 방법은 각 문자들을 연결(Linking)함으로써, Word 영역을 찾아낼 수 있다는 이점이 있다. 기존의 방법에서는 Word-Level에서 영역을 찾아내고자 하였기 때문에, 큰 영역(긴 words)을 찾고자 할 경우에는 Receptive Field 영역이 제한되는 어려움이 있었다. 제안하는 방법에서는 Character-Level의 영역을 우선 찾기 때문에 이러한 한계를 극복할 수 있다.

     

     CRAFT(Character Region Awareness for Text detection)는 각 글자의 위치와 관련된 Region Score와 글자 간의 밀접성(?)에 관련된 Affinity Score를 출력한다. Region Score는 글자 각각의 위치를 찾는데 사용되며, Affinity Score는 각 글자 들을 Grouping하여 하나의 객체를 만드는데 사용된다.

     

     논문의 방법은 Charater Level의 방법인데, 일반적인 OCR 관련 데이터셋은 대부분 Word Level의 Annotation만이 제공되기 때문에, Charater Level의 데이터셋이 필요하다. 이를 위해 저자는 Weakly Supervised Learning방법을 통해 Character Level의 GT(Ground Truth)를 생성하는 방법을 제안한다.

     

    2. Related Work

    생략..

     

    3. Methodology

    CRAFT network architecture

    3.1. Architecture

     제안하는 네트워크 구조는 FCN(Fully Convolutional Network)이다. 입력된 영상은 VGG-16 BN 네트워크를 통과하고, U-Net 구조의 Upsampling과 Skip-Connection이 적용된 네트워크 구조를 통과하여, 최종적으로 각 픽셀별 Region Score와 Affinity Score를 생성하게 된다.

     

    3.2. Training

     

    Region Score GT와 Affinity Score GT를 생성하는 과정

    3.2.1. Ground Truth Label Generation

     Character Level의 데이터셋이 없기 때문에, 별도로 Character Level의 GT를 생성해야 한다. GT는 주어진 영상에 대응하는 각 픽셀마다 Gegion Score와 Affinity Score GT가 필요하다. 이때, Region Score는 각 픽셀이 글자의 중심 픽셀일 확률을 의미하며, Affinity Score는 각 픽셀이 인접한 두 글자 중심 픽셀일 확률을 나타내는 값이다.

     

     일반적인 Binary Segmentation 문제 영역과 다르게, 이 논문에서는 각 픽셀들을 Gaussian Heatmap을 통해 확률을 Mapping하였다. (Figure 3의 히트맵 참조)

     

     Affinity Box 생성 방법

    1) Character Box의 대각선의 교점을 Character Box의 중심으로 설정한다.

    2) 두 대각선을 통해 생성되는 상 삼각형(Upper triangle)과 하 삼각형(Lower triangle)의 중심점 설정한다.

    3) 인접한 두 Character Box의 각 상/하 삼각형 중심점들을 연결한 사각형이 Affinity Box이다.  (Figure 3 참고)

     

     히트맵 생성 절차 (Region score / Affinity score 동일)

    1) 2D Gaussian 분포를 정사각 형태로 생성한다.

    2) 2D Gaussian 분포 영역의 4 Point를 Character Box의 네 점에 맞게 변환하는 Perspective Transform 관계를 계산한다. (Homography)

    3) 찾아진 Perspective Transform 관계를 토대로, 2D Gaussian 분포의 값을 투영(Warping)한다.

     

     위 절차를 토대로 생성된 GT는 Charater Level의 영역을 나타내며, 각 Character 간의 밀접성(Affinity)를 나타내기 때문에, 작은 Receptive field 만으로도 긴 Word를 찾는 것이 가능해진다.

     

     중요한 것은, 위 방식으로 GT를 생성하고자 할 때 Character Box가 정확해야 Score Mapping도 잘 될 것인데, 아직까지는 Character Level의 Box 정보가 없다. 즉, Character Level의 Box를 생성하기 위해 저자는 Weakly-Supervised Learning을 통해 해결하였다.

     

     

    '공부 > 논문읽기' 카테고리의 다른 글

    Variational Auto Encoder와 ELBO(Evidence Lower Bound)  (1) 2019.10.30
Designed by Tistory.