chullhwan-song/Reading-Paper

Character Region Awareness for Text Detection

chullhwan-song opened this issue · 1 comments

Abstract

  • CVPR 2019
  • Scene text detection
  • word 레벨이 아닌 char 레벨로 검출하고 word로 확장하는 방법인듯~> 최종적으로는 word 단위로 detection
    • to effectively detect text area by exploring each character and affinity between characters
  • 그러나, 실제로 제대로 하려면 학습셋, 즉, char단위의 annotation 셋이 있어야함.
  • 하지만, 이런 데이터는 얼마 없음. 만들기도 어려움.
  • 이를 위해 합성 데이터와 몇개 존재하는 benchmark set을 이용. > learned interim model
  • affinity ? > char는 정면/정각으로 안되어 있으니..이를 char로 단위로 되어 있으면 affine matrix를 구할 수 있어서 이를 이용한다는 의미인듯.. > 학습셋 구성에 있어서..?
    image

Methodology

  • natural image에서 개별적인 char단위를 정확하게 localize하는게 이논문의 목적

Architecture

image

  • U-Net 기반의 encoder를 VGG base로 한듯.
  • EAST등의 최근 나온 논문과 기본 구조/개념은 거의 유사하다고 봄.
  • 다만, 맨 나중에 prediction layer에서, 두개의 region score & affinity score 를 예측함. ?

Training

  • 앗.. 벌써..학습방법을... > 이 논문에서 가장 중요한 chapter가 아닐까.? 어떻게 학습을 했는지가..
  • network 의 output
    • region score는 주어진 pixel이 char의 중심일 확률를 의미.
    • affinity score는 인접한 char 사이의 공간에서의 중심 확률을 의미 ? > 어라..몬뜻인지. 글자와 글자사이의 중심확률로..번역이.. > char와 char사이의 중간위치를 중심으로 표현한것같음.
  • 이러한 확률들은 Gaussian 확률기반( Gaussian heatmap)으로 나타내진다. > 이러한 방법은 이전 연구에서도 사용되어짐.
    • Gaussian 확률로 smooth하게 weakly 정보를 보안하려는듯~
    • 내기억엔 CPM에서도 비슷한...
      image
    • char box는 주어진 정보고, affiny box는 두 char box를 이용하여 두개를 연결하는 의미.
      • 이때, char box에서 char box rectangle 각 위치와과 그 중심 사이를 연결하면, 총 4개의 triangle를 생성하는데, 그 중 상하 두개를 선택함여 그 사각형의 Center(꼭지점의 합)를 구함. 그러면 인접까지 4개의 사각형의 중심을 이어주면, 최종적으로 char와 char사이를 이어주는 사각형을 형성하여 이를 이용한다는 의미.
      • 아래 Fig.4에서 두 개의 hitmap을 예측(동그란 단위?)하는데, 하나는 char 단위, 하나는 char와 char사이의 중심 단위, 주의) 두개다 문자같은데.. 세어보면 앎음.
    • 그림상으로 char 자체를 Gaussian 처리한다면 위치 정보를 이용하여 affine transformation한것으로 보이고, 두 개(인접 char)를 붙혀 보이게 하는것이 affiny하게 되는가 본데..실제적으로 char도..
    • 그림에서 명확해지는듯함 - 위에서 언급했듯이 affinity score는 두 char 사이의 center 위치에 대한 prob임.

Weakly-Supervised Learning

  • 합성 데이터가 아닌 real images > benchmark 데이터.
  • 일단 합성 이미지는 그대로 진행 = 5:1인듯.
  • word 레벨 traninset은 word 정보만 있지만, 이전 학습된 모델로 char를 predication하여 word안에 prediction한 정보를 라벨링정보로 이용한다는 의미인듯.. > 이렇게 하는게 있나? > pseudo-ground truths
  • 다음 그림들을 보면 좀더 명확
    image
    image
  • 그리고, 잘못된 annotation된 정보를 word length 를 이용하여 제거 > paper 참조
    image

Inference

  • IOU
  • binary map
  • Connected Component Labeling (CCL)
  • QuadBox
  • OpenCV - connectedComponents & minAreaRect
  • curved texts 에 대해서
    image

중간 정리

  • U-Net등의 용어가 나오는걸 힌트, 사실 그렇게 그림들이 노골적으로 보이진 않지만, 기본적으로 FCN 방법으로 접근하는것같다.
  • 즉, Segmentation으로 char/word를 binary image 형태(확률 정보를 포함하고 있는 이미지임)의 output를 만들고, hand-craft한 후처리를 통해, 비젼처리(opencv 함수이용)를 통해 localization한다.
  • 즉, EAST나, Faster R-CNN등과 같이 net안에 localization layer가 없다는 의미.
  • 개인적으론 결과가 꽤~ 좋지 않나..싶다. 그러니 ICCADAR최상위에 랭크되어 있지 않나..싶다.. 그동안 어떤 알고리즘이길래 궁금하기도 했꼬.
  • 궁금한것은 밑의 결과에서 보듯이..char 레벨할때, caffe란 글자가 char단위로 볼때 붙어있는데, 서로 거의 분리되어 predict하는 것(대부분 분리..)을 알수 있다.. 가능하나?ㅎ 저정도까지 학습되려면 몬가 특별한...방법이..^^; > 위의 training 장을 좀더 디테일하게 읽어봐야겠다. ㅎ

Experiment

image
image
image
image