Scene Text Detection을 수행하는 Arbitrary Shape Text Detection via Boundary Transformer [1](TextBPN++)에 대한 논문 리뷰이다. 이 모델은 그림 1과 같이 Arbitrary shape 글자에 대해서도 비교적 잘잡는 모습을 보여준다.
회전되거나 휘어진 글자 영역을 정확히 잡는 일은 쉽지 않은 작업이다. 특히 정확한 글자 영역을 잡기 위해서 복잡한 Post-Processing 방법이 적용되는 경우가 많은데 이 논문은 그런 post-processing 과정 없이 글자의 boundary를 학습해서 잡는 방법을 제안한다. 논문의 핵심 키포인트는 coarse-to-fine 방식으로 반복적으로 boundary를 잡는 transformer를 적용해서 글자의 경계를 알아낸다.
Related work
기존 연구의 text detection 방법은 크게 다음과 같이 나눌 수 있다. TextBPN++는 Transformer를 이용한 regression 방법이라고 볼 수 있다.
Regression-based 방법
: 일반적인 Object Detection 방법을 개량하여 text detection하는 방법이다. anchor를 사용하는것과 anchor-free 방법으로 나눠진다. box를 이루는 point를 regression해서 위치를 찾아내는데, 이 방법은 휘어진 글자를 잘 잡지 못하는데 휘어진 글자를 잡기위해 임의의 종횡비의 anchor를 사용하거나 offsets from boundaries을 regress하기도했지만 대체적으로 arbitrary text를 잘 검출하지는 못한다.
Connected component based 방법
: 일반적으로 개별 text 부분이나 문자를 먼저 감지한 다음 link 또는 group 후처리 절차를 수행해서 최종 text 영역을 생성하는 방법이다. arbitrary text 검출에 괜찮지만 일반적으로 검출 성능과 효율성 측면에서 text 구성요소 클러스터링을 위한 복잡한 후처리를 잘해야된다는 단점이 있다.
Segmentation based 방법
: Segmentation을 이용한 방법. segmentation 결과가 정확해야하는데 검출된 경계가 segmentation 품질이 높지않은 경우 조금 애매하게 검출한다는 단점이 있다.
Contour based 방법
: arbitrary text를 검출하기 위해 text 경계를 직접 모델링한다(curve modeling). segmentation 기반 방법과 비교했을때 detection 성능과 속도에 대한 이슈가 있어서 확실히 좋다고 볼 수는 없다.
TextBPN++ 개요
TextBPN++는 크게 다음 세 가지 과정으로 나눠진다.
(1) feature extraction : cnn backbone을 이용한 feature 추출
(2) generating coarse boundary : 대략적인 경계영역을 찾기위한 boundary proposal module 처리
- boundary proposal module에서는 prior information (classification map, distance field, direction field 계산)
(3) refining text boundary : 정확한 글자 영역을 찾기위해 transformer 기반으로 반복적으로 boundary를 최적화
(1) Feature Extraction
feature extraction은 그림 3과 같이 수행된다. spatial resolution 정보를 보존하고 multi-level 정보를 취하기 위해 FPN과 비슷하게 multi-level feature fusion strategy를 사용한다. 그림 3에서 Fs는
shared features를 나타내고, Fp는 prior information(i.e., classification map,
distance field, and direction field)을 나타낸다.
(2) Boundary Proposal
Boundary Proposal module은 multi-layer dilated convolutions과 1x1 convolution layer로 구성된다. feature extraction 단계에서 추출된 shared feature는 classification map, distance field map, direction field map을 만든다. classification map은 각 pixel이 text/non-text인지에 대한 classification score를 나타내고, direction field map은 각 text 픽셀이 경계에 가장 가까운 픽셀로의 방향을 나타내는 2차원의 벡터로 구성된다. boundary proposal을 생성하는 방법은 그림 4와 같다. 먼저 distance field를 threshold 기반으로 이진화해서 boundary proposal 후보 영역을 만들고, 다음으로 classification map을 사용해서 낮은 confidence를 가지는 영역을 제거한다.
(3) Boundary Transformer
이전 과정까지 수행하면 대략적인 boundary proposals이 나온다. 여기서 Transformer를 사용해서 정확한 글자 영역을 검출한다. Transformer는 글자의 boundary를 가르키는 per-vertex offset 예측을 학습한다.
'Computer Vision' 카테고리의 다른 글
Semantic Segmentation 개요:개체 영역 식별에 대한 소개 및 주요 문제 (0) | 2023.06.08 |
---|---|
MatCha - 차트 vision-language 추론 모델 (0) | 2023.05.30 |
Image Detection Transformer (DETR) (0) | 2023.05.26 |
Vision Transformer (0) | 2023.05.23 |
딥러닝 모델 경량화 방법 (0) | 2023.05.15 |