2019년도에 AAAI에 발표된 Real-time Scene Text Detection with Differentiable Binarization 논문[1]에 대한 리뷰입니다. 발표된지 꽤 지났지만 아직도 많이 쓰이고 있는 Text Detection 모델중 하나입니다. Differentiable Binarization 이라는 모듈을 사용하여 DB 라고도 불립니다.

Real-time Scene Text Detection with Differentiable Binarization 논문은 segmentation 기반으로 text detection task에 적용하여 휘어진 글자도 잡을 수 있고, 속도도 빠른 편에 속합니다.
Related Works
Regression-based method
text instance의 bounding box를 regression 하는 모델입니다. regression-based 방법으로는 TextBoxes, TextBoxes++, SSTD, EAST 등이 있습니다. 일반적으로 non-maximum suppression과 같은 간단한 post-processing algorithm을 사용합니다. 하지만 곡선 모양과 같은 불규칙한 모양에 대한 정확한 bounding box를 나타내는데 한계가 있습니다.
Segmentation-based method
Segmentation-based 방법은 bounding box를 얻기 위해서 pixel-level prediction과 post-processing 알고리즘을 결합합니다. Segmentation-based 방법으로는 Mask TextSpotter, PSENet , SAE 등이 있습니다. 보통 segmentation-based 방법은 regression-based 방법에 비해 느린 경우가 많은데 PSENet과 SAE는 분할 결과에 대한 새로운 post-processing 알고리즘을 제안하여 추론 속도를 낮췄습니다. 하지만 속도를 높이는 연구는 curved text와 같은 불규칙한 모양의 text를 잘잡지 못하는 단점이 있습니다.
Fast scene text detection method
속도와 정확도 모두 중점을 두고 개발한 방법으로 TextBoxes, TextBoxes++, SegLink, RRD 및 EAST 등이 있습니다. 속도와 정확도 둘다 신경쓰다보니 곡선처럼 불규칙한 모양의 text instance를 잘 잡아내기가 힘들었는데 본 논문(Differentiable Binarization)에서는 빠르고 불규칙한 모양의 text instance를 잘 검출할 수 있다고 합니다.
Methodology
논문에서 제안하는 모델의 아키텍처는 다음과 같습니다.

여기서 "pred"는 3×3 컨볼루션 연산자와 스트라이드 2를 가진 두 개의 deconvolution 연산자로 구성됩니다. "1/2", "1/4", ... 및 "1/32"는 각각 입력 영상과 비교한 스케일 비율을 나타냅니다.
Differentiable Binarization 모델은 대략적으로 다음과 같은 과정을 거치게 됩니다.
(1) 먼저 이미지를 Feature-pyramid backbone에 넣어서 Feature를 추출합니다.
(2) 추출된 Pyramid feature를 up-sampling해서 다시 같은 Scale로 만들고 Concat하여 Feature F를 만듭니다.
(3) Feature F를 이용하여 Probability map과 Threshold map을 예측합니다.
(4) Probability map과 Threshold map을 사용해서 Approximate binary map을 계산합니다.
(5) 추론 단계에서 bounding box는 box formulation module에 의해 approximate binary map이나 probability map에서 구할 수 있습니다.
probability map에서 approximate binary map을 계산할 때 Differentiable binarization 방법을 사용하게 되는데 일반적인 Standard binarization과는 차이가 있습니다. 다음 식은 Standard binarization 방법입니다.

여기서 i, j는 좌표를 나타내고 t는 사전에 정의한 임계값을 나타냅니다. 이 논문에서 제안하는 Differentiable binarization 방법은 아래와 같습니다.

t는 predefined threshold, T는 adaptive threshold, K는 amplifying factor, B hat은 approximate binary map을 나타냅니다. 기존의 Standard binarization은 미분이 불가능하기 때문에 학습할 때에 넣어 Optimize 할 수 없습니다. 그래서 이 논문에서는 고정된 숫자에서 0과 1을 나누는 것이 아니라, 학습된 값을 기준으로 나누도록 Differetiable binarization을 적용합니다.

위 사진에서 파란 선은 기존의 전통적인 방법이고, 빨간 선이 본 논문의 방법입니다. Threshold Map은 Text instance의 경계를 나타내고 있는 것처럼 보입니다. 기존의 방법에서는 binarization map을 만들기위해 고정된 treshold를 적용하고, 그런 다음 휴리스틱 방법을 적용해서 픽셀을 클러스터링하여 text instance로 그룹화합니다. 하지만 본 논문에서는 binarization operation을 segmentation network에 넣어 optimization을 진행합니다. 이 방법에서 threshold 값은 adaptive하게 예측되고, 그렇게하여 foreground 객체와 background를 잘 구별할 수 있습니다.

위 사진은 각각 (a) 입력 이미지. (b) probability map. (c) threshold map without supervision. (d) threshold map with supervision 입니다. text border는 text instance를 분할하는 데 사용되며 treshold map은 binarization를 위한 임계값으로 제공됩니다. threshold map with/without supervision의 경우 얼핏보면 이미지에서 모양이 비슷해보일 수도 있지만 threshold map with supervision이 아래 표와 같은 더 높은 성능을 달성했다고 합니다.

논문에서 backbone은 ResNet-18과 ResNet-50을 사용했습니다. ResNet18과 ResNet50 backbone에서 conv3, conv4 및 conv5 단계의 모든 3 × 3 convolutional layer에 Deformable convolution을 사용했다고 합니다. Deformable convolution은 모델에 대한 flexible한 receptive field가 적용됩니다. 특히 Deformable convolution은 극단적인 종횡비의 text instance에 유용합니다.
Optimization
본 논문에서의 loss function L은 다음과 같습니다. Ls는 probability map의 loss이고, Lb는 binary map의 loss, Lt는 threshold map에 대한 loss값입니다. α와 β는 각각 1.0과 10으로 설정하여 각 loss들의 weighted sum을 구하여 최종 Loss로 사용합니다.

여기서 Ls와 Lb는 binary cross-entropy (BCE) loss function을 적용합니다. text detection 모델에서는 해당 픽셀이 글자인지 아닌지에 대한 확률값을 표현해야 하므로 확률 모델링을 용이하게 하기위해서 binary cross entropy loss function을 사용합니다. 만약 확률을 예측하는 것이 아니라 박스 위치를 regression 하는 task에서는 MSE, l1, l2등의 loss function을 주로 사용합니다. 아래는 Ls와 Lb에 적용된 binary cross-entropy (BCE) loss function입니다.

Lt 같은 경우에는 예측값과 ground truth의 L1 distance에 대한 합(sum)을 통해서 구해집니다.

마지막으로 box 형성 formation은 세 단계로 구성됩니다.
(1) probability map과 approximate binary map은 binari map을 얻기 위해 먼저 일정한 임계값(0.2)으로 binarization됩니다.
(2) binary map으로부터 connected region(축소된 text 영역)을 얻습니다
(3) 축소된 text 영역은 Vatti 클리핑 알고리즘을 통해서 offset D0로 확장됩니다. offset D0은 다음과 같이 구할 수 있습니다.

여기서 A'는 축소된 polygon의 면적, L'는 축소된 polygon의 둘레입니다. r'은 실험적으로 1.5로 설정됩니다.
Dataset
본 논문에서 사용된 데이터셋은 다음과 같습니다.
SynthText : 8,000개의 background로부터 합성된 800,000장의 이미지. pre-training 용도로 사용
MLT-2017 : 7,200장의 학습용 이미지, 1,800장의 validation 이미지, 9,000 장 test 이미지
ICDAR 2015 : 1000장의 학습용 이미지, 500장의 test 이미지
MSRA-TD500 : 300장의 학습용 이미지, 200장의 test 이미지
CTW1500 : 1000장의 학습용 이미지, 500장의 test 이미지
Total-Text : 1255장 학습용 이미지, 300장 test 이미지
Limitation
이 논문의 Limitation으로는 text instance 안에 또 다른 text가 있는 경우에는 검출할 수가 없습니다. 이것은 segmentation-based Text Detector의 일반적인 Limitation이라고 보시면 됩니다.
'Computer Vision' 카테고리의 다른 글
| 컴퓨터비전에서의 Attention Mechanism에 대한 개요 (0) | 2023.06.20 |
|---|---|
| Deformable Convolutional Networks (DCN) 리뷰 (0) | 2023.06.13 |
| Semantic Segmentation 개요:개체 영역 식별에 대한 소개 및 주요 문제 (0) | 2023.06.08 |
| MatCha - 차트 vision-language 추론 모델 (0) | 2023.05.30 |
| Image Detection Transformer (DETR) (0) | 2023.05.26 |