[논문 full 번역 + 이해를 위한 추가설명] CRAFT, Character Region Awareness for Text Detection
+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.
- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,
- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc
- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.
+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.
[] 안에는 의미를 명확히 하고자 원문 영어 표현이,
() 안에는 원문에서 작성된 부연 설명이,
<> 안에는 이해를 돕기 위해 번역자가 추가한 부연 설명이 작성되었습니다.
더 나은 표현 및 코멘트를 위해 계속 업데이트 합니다. 최종 수정 2022 09 30 Fri
Abstract
Neural network에 기반한 scene text detection 방법들은 최근에 도입되었는데, 그 성능이 좋다. 단어 단위의 bounding box로 훈련된 이전의 방법들은 임의의 모양을 가지는 text 영역을 표현할 때 한계가 있었다. 이 CRAFT 연구에서, 우리는 각 문자와 문자들 사이의 affinity를 활용하여 효율적으로 text를 감지할 수 있는 새로운 scene text detection 방법을 제안한다. 문자 단위의 labeling dataset이 적은 문제를 극복하기 위하여, 우리의 제안된 framework는 합성 image dataset으로부터의 문자 단위의 labeling와 훈련된 모형을 사용하여 실제 image에서 예측된 문자단위의 ground-truth 모두를 활용한다. 문자 사이의 affinity를 예측하기 위하여, affinity를 위해 새롭게 제안된 representation을 통해 network는 훈련되었다. 실제 이미지에서 포함된 상당히 curved된 text들을 내포하는 TotalText 및 CTW-1500 dataset을 포함하여 여섯개의 benchmarks를 활용한 광범위한 실험들은 우리의 문자 단위의 text detection이 state-of-the-art detector들의 성능을 뛰어넘는다는 것을 입증한다. 결과에 따르면, 우리의 방법은 임의의 각도로 회전하고 휘어있고 왜곡된 형태를 띄는 복잡한 scene text image에서 text 를 감지할 때, 높은 유연성을 보장한다.
1. Introduction
Scene text detection <이미지 내에서 text의 위치를 bounding box로 표시하는 기술> 은 instant translation, image retrieval, scene parsing, geo-location, blind-navigation 과 같은 기술로 다양하게 활용가능하여 computer vision 분야에서 많은 주목을 받고 있다. 최근, deep learning 기반의 scene text detector는 좋은 성능을 보여주고 있다. 이러한 방법들은 주로 단어 단위의 bounding box에 기반하여 network를 훈련한다. 하지만, 위와 같은 방법은 text가 휘어있거나, 왜곡되었거나 아주 긴 경우에 어려움을 겪을 수 있는데, 하나의 bounding box로는 이와 같은 형태의 text를 제대로 감지할 수 없기 때문이다. 위와 같은 다양한 모양의 text를 다룰 때, 단어 단위의 인식 방법의 대안으로, text를 문자 단위로 인식하는 것은 많은 장점이 있는데, 문자 단위로 인식한 뒤, 연속된 문자들을 연결시켜주면 되기 때문이다. 불행히도, 대부분의 text dataset들은 문자단위의 labeling을 제공하지 않으며, 문자 단위의 bounding box labeling을 하는 것은 큰 비용이 든다.
이 연구에서, 우리는 개별적인 문자 영역을 특정하고 감지된 문자들을 하나의 text instance로 연결하는 새로운 방식의 text detector 방법을 제안한다. CRAFT (Character Region Awareness For Text detection)라고 명명된 우리의 방법은 문자 region score와 affinity score를 산출하기 위하여 convolutional neural network를 사용한다
Region score는 이미지 내 개별 문자들을 특정하기 위해 사용되며, affinity score는 각 문자를 하나의 text instance로 묶을 때 사용한다. <apple이라는 단어가 있으면, region score 로 각 문자를 인식한 뒤, affinity score (두 문자가 인접하면 값이 높음) 를 통해 인식된 각 문자를 묶어서 apple 를 인식한다는 의미> 문자 단위의 labeling이 부족한 상황을 보완하기 위하여, 단어 단위의 dataset에 있는 이미지에서 문자 단위의 ground truth를 예측하고 이를 훈련에 활용하는 weakly supervised learning 방법 또한 제안한다.
Figure. 1은 다양한 형태의 text에서 산출된 CRAFT의 결과를 보여준다. 인지된 문자 단위의 영역을 활용함으로써, 다양한 형태의 text는 detection된 후 수월하게 표현 가능하다. CRAFT를 검증하기 위해 ICDAR dataset에서의 실험하였고, 실험결과는 CRAFT 방법이 현재 text detector에서의 state-of-the-art를 성능에서 능가한다는 것을 보여주었다. 나아가, MSRATD500, CTW-1500, TotalText dataset에서의 실험결과는 CRAFT 방법은 길고, 휘어있고, 임의의 모양을 가지는 복잡한 case들에서도 높은 유연성을 가진다는 것을 보여주었다.
2. Related Work
deep learning 등장 이전에 scene text detection에서 추세는 수작업으로 처리된 feature들이 주로 사용되는 bottom-up [상향식] 이었으며, MSER 이나 SWT같은 것들이 있다. 최근, SSD, Faster R-CNN, FCN과 같은 인기있는 object detection, object segmentation방법들을 사용하는 deep learning 기반의 text detector는 제안되었다
Regression-based text detectors
인기있는 object detector방법에서 유래하는 box regression을 사용하는 다양한 text detector 방법이 제안되었다. Image 내에서 보여지는 물체와는 다르게, text는 다양한 비율과 불규칙한 모양을 보일때가 많다. 이러한 문제를 해결하기 위하여, TextBoxes는 다양한 text 모양을 인식할 수 있도록 convolutional kernels와 anchor boxes를 더 효율적으로 변경하였다. 나아가, DMPNet은 이러한 문제를 줄이기 위해 사변형 sliding window를 도입하였다. 최근에는, 능동적으로 convolutional filters를 회전하여 rotation-invariant features를 사용하는 Rotation-Sensitive Regression Detector (RSDD) 방법이 제안되었다. 하지만, 실제 image에서 나타나는 모든 가능한 모양을 감지하는 것은 이러한 접근으로는 구조적 한계가 있다.
Segmentation-based text detectors
다른 접근법으로는 픽셀 단위로 text 영역을 인식하는 segmentation 기반의 방법이있다. Segmentation 방법을 기반으로 단어 bounding box 영역을 추정함으로써 text를 감지하는 Multi-scale FCN, Holistic-prediction, PixelLink 방법들이 제안되었다. SSTD 방법은 feature level 에서 배경의 간섭을 줄여서 text와 관련있는 영역을 더 잘 감지할 수 있게 만드는 attention mechanism 사용함으로써 regression과 segmentation 모두에서 이점을 취하는 방식이다. 최근, 기하학적 특성에 기반하여 text 영역과 중심선을 같이 예측하여 text instances를 감지하는 TextSnake 방법이 제안되었다.
End-to-end text detectors
End-to-end 접근법은 detection과 recognition 모듈들을 동시에 훈련하며, 따라서, recognition 결과를 활용할 수 있기 때문에 detection accuracy가 향상된다. FOTS와 EAA는 인기있는 detection 및 recognition 방법들을 연결하고, end-to-end 방식으로 그것들을 훈련한다. Mask TextSpotter는 semantic segmentation 문제로 정의된 recogntion 작업을 다루기 위해 통합된 모형의 장점을 활용한다. Recognition 모듈과 같이 훈련하는 것은 text같은 배경부분에 대해 text detector가 더욱 robust해지는 도움을 준다. 대부분의 방법들은 text를 단어단위로 detect하지만, detection을 위해 단어의 정도 (범위)를 정의하는 것은 간단하지 않은데, 단어들은 의미, 공백, 색상 등 다양한 기준으로 구분될 수 있기 때문이다. 게다가, word segmentation의 경계는 엄밀히 정의될 수 없고, 따라서, word segment 자체는 distinct semantic의 의미가 없다. Word annotation에서 이러한 모호성은 regression과 segmentation 접근 모두에서 ground truth의 의미를 퇴색시킨다.
Figure 2. CRAFT network 대략적 구조
Character-level text detectors
Zhang 등은 MSER에 영향을 받아 text block 후보들을 사용하는 character level detector를 제안했다. 개별 문자들을 식별하는 MSER 방식을 사용하기 때문에 낮은 contrast, 휘어짐, 빛 반사를 포함하는 이미지의 몇몇 상황들에서 detection robustness에 제한점이 있을 수 있다. Yao 등은 text word 영역들의 map과 함께 문자들에 대한 예측 map을 사용하여 문자 단위 annotation에 필요한 orientation들을 연결했다. 명시적인 문자 단위 예측 대신, Seglink는 text grids (partial text segments)를 찾고 추가적인 link 예측이 적용된 segments를 관련시킨다. Mask TextSpotter는 문자 단위의 확률 map을 예측하기는 하지만, 개별 문자의 위치를 특정하는 것이 아니라 text recognition에 사용되었다.
이 연구는 문자 단위 detector를 훈련하기 위해 weakly supervised 방식을 사용하는 WordSup의 idea에서 영감을 얻었다. 그러나, WordSup은 문자 표현 [character representation]을 사각형의 anchor들로 형성하기때문에, 변화하는 camera viewpoints에 의해 발생하는 문자들의 원근 왜곡 [perspective deformation]에 취약한 단점이 있다. 게다가, 이 방법이 사용하는 backbone 구조 자체의 성능문제에 영향받는다. 예를 들어, SSD를 사용하면, anchor box의 개수 및 크기에 제한이 있다.
Figure 3. 우리의 방법에서 ground truth를 생성하는 절차를 보여주는 illustration. 우리는 문자 단위의 annotation을 가지는 합성 image로 부터 ground truth를 생성헀다.
3. Methodology
우리 연구의 주 목표는 natural image 내의 각 개별 문자의 위치를 정확하게 예측하는 것이다. 이를 위해, 우리는 문자 영역들과 문자들 사이의 affinity를 예측할 수 있는 deep neural network를 훈련했다. 이용가능한 공개된 문자 단위 dataset이 없으므로, model은 weakly supervised 방식으로 훈련되었다.
3.1. Architecture
Batch normalization이 적용된 VGG-16 기반의 fully convolutional network 구조가 우리의 backbone으로 채택되었다. 우리의 model은 decoding 부분에 skip connections을 가지며, 전체적 구조가 low-level features를 통합하는 U-net과 비슷하다고 할 수 있다. 최종 출력은 score map으로서 다음의 두 채널을 가진다 : region score 와 affinity score. Network 구조는 Fig. 2에 대략적으로 그림을 통해 표현되었다.
3.2. Training
3.2.1 Ground Truth Label Generation
각 훈련 image에 대하여, 우리는 문자 단위의 boundng box와 함께 region score와 affinity score로 이루어진 ground truth label을 생성한다. Region score는 주어진 pixel이 문자의 중심일 확률을 표현하며, affinity score는 주어진 pixel이 인접 문자들 사이영역의 중심일 확률을 표현한다.
각 pixel을 이산적으로 labeling 하는 binary segmentation map과 다르게, 우리는 문자의 중심이 될 확률값들을 Gaussian heatmap으로 encoding 한다. 이러한 heatmap representation은 pose estimation 연구와 같은 다른 application들에서 사용되었는데, 이 방식은 엄밀하지 않게 테두리되지 않은 ground truth 영역들을 다룰 때 높은 유연성을 가지기 때문이다. 우리는 region score와 affinity score를 학습하기 위해 heatmap representation을 사용하였다.
Fig. 3는 합성 image를 위해 label을 생성하는 과정을 요약한다. bounding box내의 각 pixel에서 Gaussian distribution 값을 직접 계산하는 것은 시간 소모가 크다. Image 상의 문자 bounding boxes는 원근 투영 [perspective projections]으로 인해 일반적으로 왜곡되어있기 때문에, region score와 affinity score에 대한 ground truth를 근사하여 생성하기 위해 우리는 다음의 단계를 사용했다. 1) 2차원의 isotropic Gaussian map을 준비한다. 2) Gaussian map 영역과 각 문자 box 사이의 원근 변환 [perspective transform]을 계산한다. 3) Gaussian map을 box 영역으로 warping 한다.
Affinity score에 대한 ground truths를 위하여, Fig. 3에 보여지는 것 처럼, 인접한 문자들 사이에 위치하는 affinity boxes가 정의되었다. 먼저, 각 문자 box에서 반대편 corner들을 연결하는 대각선을 그리면, 두개의 삼각형이 생성되며, 이를 위쪽 문자 삼각형과 아래쪽 문자 삼각형으로 칭할 것이다. 그런 뒤, 각 인접 문자들의 문자 box 쌍에 대하여, 위쪽 문자 삼각형과 아래쪽 문자 삼각형의 중심을 corner로 하는 affinity box가 생성되었다.
제안된 ground truth 정의는, 작은 receptive fields를 사용하더라도, model이 크고 긴 text instance를 충분히 detect 할 수 있게 한다. 반면, box regression과 같은 이전의 접근법들은 그러한 cases에서 큰 receptive field를 필요로 한다. 우리의 문자 단위의 detection은 convolutional filters가 전체 text instance에 집중하기보다, 문자와 문자들 사이의 영역에 집중하게 한다.
3.2.2 Weakly-Supervised Learning
합성 image dataset과 달리, 실제 images로 이루어진 datasets은 단어 단위의 annotations를 갖는다. 이 연구에서, 우리는 weakly supervised 방식을 사용하여 각 단어 단위의 annotaton에서 문자 boxes를 생성하며, 이 과정은 Fig. 4에 요약되어있다. 단어 단위의 annotations가 있는 실제 image가 주어졌을 때, 학습된 중간 model은 cropped된 단어 이미지로 부터 character region score를 예측해서, 단어 단위의 boundng boxes를 생성한다. 중간 model 예측에 대한 신뢰성을 보장하기 위하여, 각 단어 box 에 대한 confidence map이 계산 되며, 이것은 detected된 문자들의 개수를 ground truth 문자들의 개수로 나눈 값에 비례한다. <예측된 문자 box가 5개이고, ground truth 문자가 5개이면, 나눈 값은 1이며 confidence 로서 최대값이다> 이 confidence map은 학습 시 weight로 사용된다.
Figure 4. 제안된 방법에서 전체적인 훈련 흐름에 대한 모식도. 훈련은 weakly-supervised 방법을 통해 실제 및 합성 images로 수행된다.
Fig. 6는 문자들을 분할하는 전체 절차를 보여준다. 첫째로, 단어 단위 images는 원본 image에서 cropped된다. 둘째로, 훈련된 model은 cropped된 image를 받아들여서 region score를 예측한다. 셋째로, 문자 문자 영역을 테두리로 감싸는 bounding boxes를 만드는 데 사용되는 watershed algorithm을 적용하여 문자영역들을 분리한다. 마지막으로, 문자 boxes의 좌표들은 원본 이미지 좌표형태로 변환되며, 이 때, cropping 과정에서 사용된 변환의 역변환이 사용된다. region score와 affinity score에 대한 pseudo-ground truths (pseudoGTs)는 획득된 사변형의 문자 단위 bounding boxes를 사용하여 Fig. 3에서 설명된 방식으로 생성된다.
Model이 weak-supervision 방식으로 <pseudoGT로 훈련됨> 훈련 될 때, model은 불완전한 pseudo-GT로 훈련될 수 있다. model이 부정확한 region scores로 훈련된다면, 문자 영역들 내에서 출력은 blurred해 질 것이다. 이러한 부작용을 예방하기 위하여, 우리는 mode에 의해 생성된 각 pseudo-GTs의 quality을 측정했다. 이러한 quality 측정을 위해서, text annotation에는 단어 길이라는 강한 힌트가 있다. 대부분의 datasets에는 단어들의 transcription이 제공되기 때문에, 단어의 길이가 pseudoGTs의 confidence를 평가하는데 사용될 수 있다.
훈련 data에서 단어 단위로 annotated된 sample w에 대하여, $$$R(w)$$$와 $$$l(w)$$$를 sample w의 bounding box region과 단어 길이로 정의한다.
Through the character splitting process, we can obtain the estimated character bounding boxes and their corresponding length of characters lc(w).
문자 분할 과정을 통해, 우리는 예측된 문자 bounding boxes와 그에 상응하는 문자들의 길이인$$$l^c(w)$$$를 얻을 수 있다.
Sample w에 대한 confidence score $$$s_{conf}(w)$$$는 아래처럼 계산된다.
$$$$s_{conf}(w) = \dfrac{l(w)-\min(l(w),|l(w)-l^c(w))|)}{l(w)} \;\;\;\;\; (1)$$$$
그리고 image에 대한 pixel-wise confidence map $$$S_c$$$는 아래와 같이 계산된다.
$$$$S_c(p)= \begin{cases} s_{conf}(w) & p\in R(w), \\ 1 & \text{otherwise} \end{cases} \;\;\;\;\; (2)$$$$
p는 영역 $$$R(w)$$$에서 pixel을 의미한다. 목적함수 L은 아래와 같이 정의된다.
$$$$L=\sum\limits_{p} S_c(p)\cdot (||S_r(p)-S_r^*(p)||_2^2 + ||S_a(p)-S_a^*(p)||_2^2)\;\;\;\;\;(3)$$$$
$$$S_r^*(p)$$$와 $$$S_a^*(p)$$$는 pseudo-ground truth region score와 affinity map을 가리킨다. $$$S_r(p)$$$와 $$$S_a(p)$$$는 예측된 region score와 affinity score를 가리킨다. 합성 image data로 훈련할 때, 실제 ground truth를 얻을 수 있고, 따라서, confidence인 $$$S_c(p)$$$은 1로 설정된다.
훈련이 진행됨에 따라, CRAFT model은 문자들을 더 정확히 예측할 수 있고, confidence $$$score s_{conf}(w)$$$ 또한 점차 상승한다. At the early stages of training, the region scores are relatively low for unfamiliar text in natural images. Fig. 5는 훈련 동안의 character region score map을 보여준다. 훈련 초기에는, natural images 내의 익숙하지 않은 text에 대한 region scores는 상대적으로 낮다. Model은 불규칙한 fonts와 다른 data 분포를 갖는 합성된 texts와 같은 새로운 모습의 texts를 배운다
Confidence score $$$s_{conf}(w)$$$가 0.5이하라면, 예측된 문자 bounding boxes <PseudoGT를 만들기 위해 예측된 문자 boxes>는 무시되어야하는데 왜냐하면 model을 훈련할 때 부정적 영향을 주기 때문이다. 이러한 case에서, 우리는 개별 문자들의 폭은 일정하다고 간주하고, 단어 영역 $$$R(w)$$$를 문자의 개수 $$$l(w)$$$로 나누어서 문자 단위 예측을 계산한다. 그런 뒤, 아직 보지 못한 texts의 모습을 배우기위해 $$$s_{conf}(w)$$$는 0.5로 설정된다.
Figure 6. 단어 단위 annotation으로 부터 문자 단위 annotation을 위한 문자 분할 절차 : 1) 단어 단위 image를 crop한다. 2) region score를 예측한다. 3) watershed algorithm을 적용한다. 4) 문자 bounding boxes를 얻는다. 5) 문자 bounding boxes를 unwarping한다.
3.3. Inference
Inference 단계에서는, 최종 출력은 단어 boxes, 문자 boxes, 나아가 polygons 형태와 같이 다양한 형태로 생성될 수 있다. ICDAR datasets과 같은 data에서는, 평가 방식은 단어 단위의 intersection-over-union (IoU)이며, 따라서, 예측된 $$$S_r$$$과 $$$S_a$$$로 부터 간단하지만 효과적인 post-processing 과정을 통해 단어 단위의 bounding boxes QuadBox를 방법을 설명할 것이다.
Bounding boxes를 찾기 위한 post-processing 방법은 다음과 같다. 첫째로, image를 cover하는 binary map M을 0으로 초기화한다. 만약 $$$S_r(p)>\tau_r$$$ 이거나 $$$S_a(p)>\tau_a$$$이면 $$$M(p)$$$가 1로 입력된다. $$$\tau_r$$$은 region threshold이며 $$$\tau_a$$$는 affinity threshold이다. 둘째로, M에 대하여 Connected Component Labeling (CCL)을 적용한다. 마지막으로, 각 label에 대한 요소를 둘러싸는 최소 영역을 갖는 회전된 사각형을 찾음으로서 QuadBox가 얻어진다. 이 작업을 위해, OpenCV에서 제공되는 connectedComponents와 minAreaRect 함수들이 사용되었다.
CRAFT의 장점은 이것이 Non-Maximum Suppression (NMS)과 같은 post-processing이 필요하지 않다는 점이다. 우리는 CCL에 의해 분리된 word regions를 같은 image를 가질 수 있고, 단어에 대한 bounding box는 하나의 폐사각형으로 정의된다. 추가적으로, 명시적으로 찾아진 text components의 관계에 기반하여 문자들을 연결하는 이전의 방법들과 다르게, 우리가 사용하는 문자들을 연결하는 과정은 pixel 단위로 수행된다.
Figure 7. 임의의 모양을 갖는 texts를 위한 polygon 생성.
추가적으로, curved texts를 효과적으로 다루기 위해 전체 문자 영역 주변에 polygon을 생성했다. Polygon을 생성하는 절차는 Fig. 7에 설명되었다. 첫번째 과정은 scanning direction을 따라서 문자 영역에서의 local maxima line (파란색 화살표)을 찾는 것이다. Local maxima lines의 길이에서 최대값이 사용된 이유는 최종 polygon 결과가 불규칙해 지는 것을 방지하고자 함이다. Local maxima의 중심점을 연결한 것을 center line이라고 부르고, 노란색으로 표시되었다. 그런 뒤, local maxima lines은 center line에 수직이 되도록 회전되었고 (빨간색 화살표로 표시), 이는 문자들이 기울어진 각도를 반영한다. 회전된 local maxima lines의 끝점은 text polygon의 control points로서의 후보들이 된다. text region을 전체적으로 cover하기 위해서, 두개의 양 끝쪽에 있는 회전된 local maxima lines는 local maxima center line을 따라 바깥쪽으로 이동되었으며, 최종 control ponts가 생성되었다 (녹색 점으로 표시).
Table 1. ICDAR, MSRA-TD500와 같은 사변형 유형의 datasets에서의 결과. *는 multi-scale tests에 기반한 결과를 의미한다. Italic으로 표시된 Method는 쌍 비교를 위한 end-to-end models 방식의 detection으로부터의 결과이다. R, P, H는 각각 recall, precision, H-mean을 의미한다. best score는 굵게 표시되었다. FPS는 실험 환경이 다를 것이므로 단순 참고용이다. 여기서는 이전의 각 논문에서 보고된 가장 좋은 FPSs 를 표시했다
4. Experiment
4.1. Datasets
ICDAR2013 (IC13)은 ICDAR 2013 Robust Reading Competition for focused scene text detection 이라는 competition을 위해 공개된 데이터이며, 영어 text가 포함된 229장의 훈련 이미지, 233장의 테스트 이미지로 구성된다. Annotation은 단어 단위의 사각형 boxes로 되었다.
ICDAR2015 (IC15)은 ICDAR 2015 Robust Reading Competition for incidental scene text detection 이라는 competition을 위해 공개된 데이터이며, 영어 text가 포함된 1000장의 훈련 이미지, 500장의 테스트 이미지로 구성된다. Annotation은 단어 단위의 사변형 boxes로 되었다.
ICDAR2017 (IC17)은 multi-lingual scene text detection 목적으로 만들어 졌으며, 9종의 언어로 작성된 texts가 표시된 7200장의 훈련 이미지, 1800장의 검증 이미지, and 9000장의 테스트 이미지를 포함한다. IC15와 유사하게, IC17에서도 text regions는 4개의 점으로 구성된 사변형 box로 annotation 되었다.
MSRA-TD500 (TD500)는 실내 및 실외에서 pocket camera로 촬영된 300장의 훈련 이미지, 200장의 테스트 이미지로 구성된다. 영어와 중국어 text가 image에 포함되었다. Text regions는 회전된 사각형으로 annotation 되었다.
TotalText (TotalText)는 최근에 ICDAR 2017에서 공개되었다. 1255장의 훈련 이미지, 300장의 테스트 이미지를 포함한다. Curved texts를 포함하며 polygons와 단어 단위의 transcriptions으로 annotation되었다.
CTW-1500 (CTW) 는 1000장의 훈련 이미지, 500장의 테스트 이미지로 구성된다. 모든 image는 14개의 점으로 이루어진 polygons으로 annotation된 curved text instances를 갖는다.
4.2. Training strategy
훈련 절차는 두 단계를 포함한다. 우리는 먼저 SynthText dataset으로 50k회 반복하여 network를 훈련했고, model을 fine-tune 하기 위해서, 각 benchmark dataset이 적용되었다. ICDAR 2015과 ICDAR 2017 datasets에서 "DO NOT CARE" 라고 annotation 된 text regions는 $$$s_{conf}(w)$$$를 0으로 설정함으로써 훈련과정에서 무시되었다. 모든 훈련 과정에서 ADAM optimizer가 사용되었다. For multi-GPU training, the training and supervision GPUs are separated, and pseudo-GTs generated by the supervision GPUs are stored in the memory. Fine-tuning 할 때, SynthText dataset 또한 1:5 비율로 사용되었는데 <SynthText가 1 비율>, 이는 문자 영역이 더 잘 분리될 수 있도록 훈련하기 위함이다. natural scenes에서 texture와 같은 texts를 제외시키기 위하여, 1:3 비율로 On-line Hard Negative Mining이 적용되었다. Crop, rotatio, color variations와 같은 기본적인 data augmentation 기술이 적용되었다.
Weakly-supervised training은 다음 두 종류의 data를 요구한다 : 단어 images를 cropping 하기 위한 사변형 annotations과 단어의 길이를 구하기 위한 단어 transcription. 이러한 조건을 만족하는 datasets은 IC13, IC15, IC17 이다. MSRA-TD500, TotalText, CTW-1500과 같은 datasets은 이러한 요구를 만족하지 않는다. MSRA-TD500은 단어 transcriptions을 제공하지 않고, TotalText과 CTW-1500는 polygon annotations만 제공한다. 따라서, 우리는 CRAFT를 ICDAR datasets으로 훈련하고 다른 datasets에서는 fine-tuning없이 테스트를 하였다. ICDAR datasets으로 두개의 다른 models가 훈련되었다. 첫번째 model은 IC15로 훈련되고, IC15로만 평가되었다. 두번째 model은 IC13과 IC17으로 훈련되고 다른 5개의 datasets으로 검증되었다. 훈련에 다른 images은 사용되지 않았다. fine-tuning을 위한 반복횟수는 25k로 설정되었다.
4.3. Experimental Results
Quadrilateral-type datasets (ICDARs, and MSRATD500) 모든 실험들은 하나의 image 해상도로 수행되었다. IC13, IC15, IC17, MSRA-TD500에서 image의 긴면이 각각 960, 2240, 2560, 1600가 되도록 resize하였다. Table 1은 ICDAR과 MSRA-TD500 datasets에 대하여, 다양한 방법들의 h-mean scores를 보여준다. End-to-end 방식들과 공정한 비교를 하기 위하여, original paper를 참조하여 그들의 detection-only 결과들을 포함하였다. 우리의 방법은 모든 datasets에서 state-of-the-art 성능을 달성하였다. 게다가, CRAFT는 IC13 dataset에서 8.6 FPS의 빠른 동작속도를 보였는데, 이는 간단하고 효과적인 post-processing으로 인한 것이다.
MSRA-TD500에 대해서는, annotations는 line-level로 제공되며, 박스 안에서 단어들 사이 공간을 포함한다. 따라서, 단어 boxes를 합치는 post-processing 단계가 적용되었다. 하나의 box에서 오른쪽 부분과 다른 box의 왼쪽 부분이 충분히 가깝다면, 두 boxes는 하나로 통합되었다. TD500 훈련 data로 fine-tuning이 수행되지 않았음에도, Table 1에서 보여지는대로, CRAFT는 모든 다른 방법들의 성능보다 뛰어났다.
Polygon-type datasets (TotalText, CTW-1500) Model을 TotalText과 CTW1500 datasets으로 직접 훈련하는 것은 어려운데, 왜냐하면, 그들의 annotations가 polygonal 모양이기 때문이며, 따라서, weakly-supervised 훈련에서 문자 boxes을 분할하기위해 text area을 cropping하는것이 복잡하기 때문이다. 결과적으로, 우리는 IC13과 IC17의 훈련 images를 사용하였고, TotalText과 CTW1500의 훈련 images를 학습하기 위한 fine-tuning은 진행하지 않았다. Inference 단계에서, 해당 datasets에서 제공되는 polygon-type annotations과 비교하기 위해, 우리는 region score로 부터 polygon을 생성하는 post-processing을 사용했다.
이러한 datasets에서 실험 역시, 하나의 image 해상도로 진행되었다. TotalText와 CTW-1500에서 images의 긴 면이 각각 1280, 1024가 되도록 resize를 했다. Polygon type datasets을 가지고 진행한 실험 결과는 Table 2에 표시했다. 개별 문자의 위치를 특정하는 CRAFT의 능력은 임의의 texts 모양을 감지함으로써 다른 이전의 방법들보다 더 robust하고 월등한 성능을 가능하게 했다. 특히, TotalText dataset은 Fig. 8에서 보여지는 것 처럼 curved texts와 같은 다양한 왜곡을 가지며, 사변형 기반의 text detectors에 의해서는 적절한 inference가 어렵다. 따라서, 제한된 몇개의 방법만이 이러한 datasets을 평가할 수 있다.
CTW-1500 dataset의 case에서는, 두개의 어려운 특성이 공존하는데, 제공된 annotations이 line-level이며, 임의의 polygons으로 annotation되었다는 점이다. 그러한 cases에서 CRAFT를 돕기위해, LinkRefiner라고 불리는 작은 link refinement network가 사용되었다. LinkRefiner의 입력은 region score, affinity score, CRAFT에서 산출된 중간 feature map이 연결된 것이다. 출력은 긴 texts를 위한 조정된 refined affinity score이다. 문자들을 연결하기위해, refined affinity score가 original affinity score 대신 사용되었고, 이후, TotalText에서 수행된것과 동일한 방식으로 polygon 생성이 수행되었다. CRAFT는 고정한 채로, LinkRefinersms만 CTW-1500 dataset로 훈련되었다. LinkRefiner의 상세한 구현는 supplementary materials에서 설명되었다. Table 2에서 보여지는것과 같이, 제안된 방법은 state-of-the-art 성능을 달성하였다.
Table 2. TotalText와 CTW-1500와 같은 polygon-type datasets에서의 결과들. R, P, H는 각각 recall, precision, H-mean을 의미한다. Best score는 bold로 되었다.
Table 3. End-to-end 방법들과 H-mean 비교. 우리의 방법은 end-to-end 방식으로 훈련되지 않았지만, 좋은 결과를 보였고, 심지어 인기있는 방법들을 성능에서 능가했다.
4.4. Discussions
Robustness to Scale Variance
모든 datasets에 대하여 texts의 크기가 꽤 다양했지만 single scale로 실험들을 진행했다. 이점은 scale variance 문제를 다루기 위해, multi-scale 실험에 의존하는 다른 대다수의 방법과 다른점이다. 이러한 장점은 전체의 text가 아니라 각 문자들의 위치를 특정하는 우리의 방법적 특성에서 기인한다. 큰 이미지에서 하나의 문자를 cover하는 것은 상대적으로 작은 receptive field로도 충분했으며, 이러한 점은 scale variant texts를 감지할 때 CRAFT를 robust하게 만들었다.
Multi-language issue
IC17 dataset은 synthetic text dataset에 포함되어있지 않은 Bangla와 Arabic 문자들도 가진다. 이 두 언어들에서 모든 문자들은 cursively하게 작성되기 때문에 문자들을 개별적으로 분리하기 어렵다. 따라서, 우리의 model은 Bangla와 Arabic 문자들을 구별할 수 없었으며, Latin, Korean, Chinese, Japanese 언어도 마찬가지였다. 동아시아 문자들 cases에서, 그들의 문자들은 일정한 폭을 가지기 때문에 분리되기 쉬웠고, 이러한 특성은 weakly-supervision 방법으로 model을 훈련하여 높은 성능을 내는데 도움을 주었다.
Comparison with End-to-end methods
우리의 방법은 detection 목적만으로 ground truth boxes로 훈련되었지만, Table. 3에서 보여지듯이 다른 end-to-end 방법만큼 잘 동작했다. 실패 cases에 대한 분석을 통해, 특히 ground truth 단어들이 visual cues보다는 semantics에 의해 분리되었을 때, 우리의 model이 recognition 결과들로 부터 이득을 취할 수 있을 것으로 예측하였다.
Generalization ability
우리의 방법은 추가적인 fine-tuning없이 3개의 다른 datasets에서 state-of-the-art 성능을 달성했다. 우리의 model은 특정 dataset에 overfitting 되기 보다는 texts의 일반적인 특성들을 추출할 수 있다는 것을 입증한다.
5. Conclusion
우리는 CRAFT라고 명명된 참신한 text detector 를 제안하였는데, 문자 단위 annotations가 주어지지 않아도 개별적 문자들을 detect할 수 있는 model이다. 상향식 [bottom-up] 방식으로 다양한 text 모양들을 다루기 위해, 제안된 방법은 문자 region score와 문자 affinity score를 예측한다. 문자 단위로 annotation이 있는 실제 (비합성) datasets은 드물기 때문에, 중간 model로 pseudo-ground truthes를 생성하여 활용하는 weakly supervised learning 방법을 제안하였다. CRAFT 대부분의 공개 datasets에서 state-of-the-art 성능을 보였고, fine-tuning 없는 케이스에서도 높은 성능을 보였기 때문에 일반화 능력을 입증했다. 추후 연구에서, CRAFT의 성능, 강건함 그리고 일반화능력이 일반적인 환경에서도 적용가능하며 더 나은 scene text spotting system이 될 수 있는지 보기위하여, 우리의 model을 end-to-end 방식으로 recognition model과 함께 훈련하기를 희망한다.
+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.
- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,
- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc
- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.
+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.
댓글
댓글 쓰기