이번에 발표할 논문은 ABCNet: Real-time Scene Text Spotting with Adaptive Bezier-Curve Network 으로, 올해 6월에 열리는 CVPR 2020에 accept된 논문입니다.(Oral representation) arXiv에는 2020년 2월에 공개되었으며 FCOS를 쓴 호주 Adelaide 대학교 Chunhua Shen 교수 연구실에서 쓴 논문입니다.
Introduction
최근 OCR모델에서 많은 end-to-end model이 개발이 되었습니다. 하지만 대부분 모델들은 Mask R-CNN을 base로 하고있는 모델이기 때문에, end-to-end에서의 pipeline이 복잡하고 inference 속도가 느립니다. 또한 일부 모델들은 상대적으로 비싼 character-level annotation을 필요로 합니다.
본 논문에서는 이러한 문제점을 해결하기 위해서, simple하면서도 inference 속도가 빠른 OCR end-to-end 모델인 ABCNet을 제시합니다. 제시하는 ABCNet은 end-to-end로 동작하며, curved를 포함한 복잡한 shape의 text이미지에 대해서도 detection과 recognition을 진행해줍니다.
Proposed Method
Preliminary
해당 논문을 이해하기 위해 필요한 2가지에 대해 먼저 설명하고 넘어가겠습니다.
- Bezier Curve
Bezier curve는 (n+1)개의 점을 통하여 결정되는 n차 다항함수입니다. (n+1)개의 점이 b_0, b_1, ..., b_n 인 경우, n+1개의 점을 통해 결정되는 n차 다항 함수 bezier curve( c(t) )는 다음 수식을 따르게 됩니다. 이때 Bezier curve를 결정짓는 (n+1)개의 점을 control point라고 합니다.
이러한 수식을 그림을 통해 조금 더알아본다면 밑의 그림과 같습니다.
- FCOS: Fully Convolutional One-Stage Object Detection
ICCV 2019에 발표된 논문으로, mask r-cnn 기반의 2-stage detection 알고리즘과 달리 1-stage로 진행됩니다. 1-stage로 진행되기때문에 계산량이 2-stage 알고리즘에 비해 줄어들게 됩니다. 게다가 FCOS는 2-stage 알고리즘들에 비해 성능도 뛰어나다는것을 실험으로 보였습니다. 하지만 FCOS는 mask를 segmentation해주지 않고, rectangle 형태의 bounding box만을 detect해주기 때문에 curve text가 자주 등장하는 scene text detection에는 적절하지 못합니다.
Proposed Method
해당 논문에서 제시하는 방법은 크게 2가지로 구성되어있습니다. 첫번째는 Bezier curve detection으로, detection에서의 연산량을 줄이기 위해 two-stage 방식이 아닌 anchor box를 사용하지 않는 single-stage(single-shot)방식으로 진행됩니다. 두번째는 detection에서 찾은 feature를 align해주고, recognition 해주는 Bezier- Align and recognition branch 입니다.
Bezier Curve Detection
기존 OCR 모델들 대부분은 arbitrary shape 텍스트를 detect하기 위해서, mask r-cnn처럼 텍스트의 mask를 찾아내는 방법을 사용합니다. 하지만 본 논문에서는 mask가 아닌, bezier curve를 찾는 방법을 사용했습니다.
본 논문에서 주장하는 바에 따르면, bezier curve를 3차함수로 모델링하면 실제 텍스트 모양을 대부분 커버할수있다고 합니다. 그렇기 때문에 3차 Bezier curve를 사용한다면, 8개의 점(위쪽 curve를 위한 4개의점, 아래쪽 curve를 위한 4개의 점)을 통하여 text의 boundary를 modeling할 수 있습니다.
Bezier curve detection의 구조는 FCOS를 기반으로 하고있습니다. FCOS는 single-shot으로 동작하기 때문에 mask r-cnn 기반 모델보다 계산량이 적습니다. FCOS와 bezier curve detection 모듈과의 차이는 bezier curve의 control point를 regression해주는 네트워크가 head에 있냐 없냐 정도입니다. FCOS의 경우, bounding box만을 detect해주는 모델이기 때문에 bezier curve를 detect하는 regression을 추가하여 curved text에 대하여 대응하도록 했습니다.
하지만 문제가 있습니다. 우리가 가지고 있는 데이터들은 bezier curve의 control point로 annotation이 되어있는것이 없습니다. 그렇기 때문에 본 논문에서는 우리가 가지고 있는 데이터들의 annotation을 bezier curve의 control point로 바꿔주는 작업을 진행합니다. Polygonal annotation을 이용하여 변환을 해주게 됩니다. Polygonal annotation과 가장 잘 fit하는 bezier curve을 least square method를 통해 구하고, 해당 bezier curve의 control point를 GT로 사용합니다.
Bezier Align & Recognition branch
Bezier align은 Bezier curve detection에서 찾은 curved text를 recognition에서 사용하기 위해서 rectangle로 align을 해주는 과정입니다.
Bezier align에서는 bezier curve가 0<t<1 범위에 있는 매개변수를 이용하여 나타나진다는것을 활용합니다. Output feature map의 사이즈가 h_out x w_out 이고, output feature 에서 (g_iw, g_ih)점을 구하는 예시를 들어보겠습니다. 일단 Bezier curve에서 t 값으로 mapping 시켜주기 위해서 x축 좌표를 0과 1사이의 값으로 normalize해줍니다.
위 식을 통해 구한 t값을 이용하여, 위쪽 bezier curve에서의 좌표값과 아래쪽 bezier curve에서 좌표값을 구할수 있습니다. 위쪽 bezier curve에서의 좌표값을 tp, 아래쪽 bezier curve에서의 좌표값을 bp라고 했을때 sampling point인 op는 다음과 같이 구합니다.
Recognition network의 경우, 빠른 inference를 위해 상대적으로 가벼운 네트워크를 사용했습니다. Loss는 CTC loss를 사용했고, 자세한 네트워크 구조는 아래와 같습니다.
Experiment
해당 논문에서 사용한 benchmark는 Total-text와 CTW1500입니다. 일단 네트워크를 Syntext, COCO-text, ICDAR MLT data를 이용해 학습을 시킨후 각각 벤치마크에 대하여 fine-tuning을 시켰습니다. Syntext의 경우, 공개되어있는 방법을 modify하여 다양한 corpus, font등을 가지는 학습데이터를 생성했다고 합니다.
Total-text에 대한 실험결과를 살펴보면, 제시한 ABCNet-MS이 다른 모델에 비해서 성능이 제일 뛰어난것을 알 수 있습니다. ABCNet-MS의 경우, Multi-scale testing을 적용한것 입니다. ABCNet-F의 경우, 빠른 inference를 위해 small size input을 사용한것 입니다.
Qualitative Results
왼쪽 그림은 End-to-end에 대한 qualitative result 입니다. 논문에서 inference 결과를 작게 표시하여 확대하여야 잘 보이는데, 숫자는 confidence를 의미합니다. 오른쪽 그림은 text recognition에서의 qualitative result 입니다. Quadrilateral warping을 했을때 보다, Bezier warping을 하면 recognition을 하기 좋게 warping이 되는것을 알 수 있습니다.
Conclusions
Mask R-CNN 기반의 모델의 경우, 계산이 복잡하여 inference speed가 늦은 반면 본 논문에서 제시한 모델은 one stage model인 FCOS를 활용하여 inference speed를 높이면서 성능은 S.O.T.A 모델과 비슷한 수준을 유지하였다. FCOS based model을 OCR에 활용하기 위하w여 Bezier curve를 활용했고 해당 curve의 성질을 이용하여 align방법까지 제시하였다.
Share article