Character Region Awareness for Text Detection
chullhwan-song opened this issue · 1 comments
chullhwan-song commented
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를 구할 수 있어서 이를 이용한다는 의미인듯.. > 학습셋 구성에 있어서..?
Methodology
- natural image에서 개별적인 char단위를 정확하게 localize하는게 이논문의 목적
Architecture
- 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에서도 비슷한...
- 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
- 다음 그림들을 보면 좀더 명확
- 그리고, 잘못된 annotation된 정보를 word length 를 이용하여 제거 > paper 참조
Inference
- IOU
- binary map
- Connected Component Labeling (CCL)
- QuadBox
- OpenCV - connectedComponents & minAreaRect
- curved texts 에 대해서
중간 정리
- 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 장을 좀더 디테일하게 읽어봐야겠다. ㅎ