Arbitrary-Oriented Scene Text Detection via Rotation Proposals

Inc Lomin's avatar
Jun 17, 2019
Arbitrary-Oriented Scene Text Detection via Rotation Proposals
Text detection은 주로 word 단위로 이루어지기 때문에 결과물이 한쪽으로 길쭉한 형태를 가지는 경우가 많습니다. 텍스트를 보는 각도에 따라 이미지에 사영된 bounding box는 여러 방향으로 달라지게 되는데, 이것을 포함하는 일반적인 horizontal box로 region proposal을 만들게 되면 텍스트 영역 외의 배경이 너무 많이 포함되게 됩니다. 이 논문에서는 이와 같이 일반적인 2-stage detection 방식을 따르는 대신 region proposal network (RPN)이 rotated proposal을 생성하도록 하는 방식을 제안합니다.
 

Introduction

Motivation

이전까지 대부분의 논문은 horizontal region만을 주로 대상으로 하였습니다. Arbitrary-oriented text detection을 위한 방법들도 몇몇 제안되었는데, 주로 fully convolutional network(FCN)을 사용하는 segmentation-based 방식들이었습니다. Segmentation을 하는 방식은 일반적으로 시간이 오래 걸리고 post-processing이 복잡하여 효율적이지 못한 단점이 있었습니다.

Summary

이 논문에서는 arbitrary-oriented text detection을 위한 rotation-based 접근법 - Rotation Region Proposal Networks (RRPN)을 제안합니다. RRPN은 text orientation과 함께 기울어진 proposal을 생성하도록 만들어졌습니다. 또한 Rotation Region-of-Interest (RRoI) pooling layer가 arbitrary-oriented proposal을 feature map으로 사영하도록 디자인되었습니다.
notion image
 

Proposed Method

notion image
 

Rotated Bounding Box Representation

학습 단계에서, ground-truth는 5개의 파라미터 (x, y, h, w, theta)를 가지는 rotated box로 표현됩니다. 여기서 x, y는 박스의 중심 좌표이고 theta는 x축과 박스의 긴 축이 이루는 각도입니다. Theta는 전체 각도의 절반 [-pi/4, 3*pi/4) 만을 커버합니다. 만약 원래 theta가 이 범위를 벗어난다면 theta + k * pi의 값이 이 범위에 들어오는 k를 찾아서 theta 값을 업데이트합니다.
만약 이미지를 alpha \in [0, 2pi) 만큼 회전하는 경우 anchor의 중심점은 다음과 같이 변환됩니다. 이 식은 data augmentation을 위해 사용되었습니다.
notion image
notion image
 

Rotation Anchors

notion image
Scale과 ratio만을 파라미터로 가지는 기존의 anchor 디자인은 text detection에 적합하지 않습니다. 여기서는 angle 파라미터를 추가로 가지는 anchor를 만들었습니다.
각도는 -pi/6, 0, pi/6, pi/3, pi/2, 2pi/3 까지 총 6개를 가집니다. 또 일반적으로 길쭉하게 생긴 텍스트 영역을 커버하기 위하여 종횡비를 2, 5, 8로 변경하였습니다. 스케일은 8, 16, 32로 사용합니다. 따라서 sliding window의 각 위치에서 R-anchor는 총 6x3x3=54개 생성됩니다.
 

Learning of Rotated Proposal

RPN에서 anchor와 target을 매칭하는 방식은 Faster R-CNN과 유사합니다. 차이점은 IOU 뿐만 아니라 anchor의 각도와 target의 각도까지 비교한다는 것입니다.
Positive R-anchor는 1) 가장 높은 IoU, 또는 0.7 이상의 IoU를 가지고 2) 각도의 차이가 pi/12 이하일 때
Negative R-anchor는 2) IoU가 0.3 미만이거나 2) IoU는 0.7 이상이지만 각도의 차이가 pi/12 이상일 때 선택됩니다. 이 조건에 맞지 않는 anchor는 학습에 사용되지 않습니다.
Loss function은 다음과 같이 multi-task loss로 정의됩니다. Faster R-CNN과 거의 같습니다.
notion image
 
차이는 역시 regression loss에서 theta를 고려한다는 점입니다.
notion image
Theta에 관한 term은 이 값이 특정 범위에 있도록 정수 k를 사용하여 정의됩니다.
notion image
notion image
 
아래 그림은 regression term 유무에 따른 anchor들의 orientation과 response를 시각화 한 것입니다. Regression term을 사용하였을 때 각도에 맞는 anchor들이 더 잘 response하고 있는 것을 볼 수 있습니다.
notion image
 
아래 그림은 네트워크가 실제로 orientation을 학습하고 있는 것인지 확인하기 위하여 학습 중간에 같은 방식으로 anchor의 orientation과 response를 시각화 한 것입니다.
notion image
 

Accurate Proposal Refinement

Skew IoU computation
돌아간 박스들 사이의 IoU를 계산하기 위하여 다음과 같은 알고리즘을 사용합니다.
먼저 두 박스가 교차하여 생기는 점들과 네 꼭지점 중 서로 다른 박스에 포함된 점들을 모두 모은 뒤 반시계방향으로 정렬하고, 이 넓이를 구하여 겹치는 영역의 넓이를 얻습니다. 이로부터 두 박스의 넓이를 사용하여 IoU를 계산할 수 있습니다. 겹치는 영역의 넓이는 triangulation으로 구합니다.
notion image
notion image
Skew Non-Maximum Suppression (Skew-NMS)
일반적인 NMS는 IoU만을 고려하는데, 이는 방향성을 가지는 박스들에 대해서는 적절치 않은 방식입니다. 예를 들어 종횡비가 1:8이고 각도의 차이가 15도만큼 나는 두 박스가 있다면 IoU는 0.31밖에 되지 않는데 실제로는 positive sample로 볼 수도 있기 때문입니다.
따라서 본 논문에서 제안하는 Skew-NMS는 두 phase로 이루어집니다. (해석?)
1) Keep the max IoU for proposals with an IoU larger than 0.7
2) If all proposals have an IoU in the range [0.3, 0.7], keep the proposal with the minimum angle difference with respect to the ground truth (the angle difference should be less than pi/12).
 

RRoI Pooling Layer

RoI pooling layer는 axis-aligned proposal만 다룰 수 있으므로, 여기서는 rotation RoI (RRoI) pooling layer를 제안합니다. RoI pooling 과 다른 점은 샘플링 그리드를 oriented box에 맞춰서 만든다는 점입니다. 나머지는 거의 같습니다. 논문에 적힌 알고리즘은 RRoI pooling을 하는 것이지만 최근 업데이트된 PyTorch 코드에서는 RoI Align을 응용한 RRoI Align을 사용하고 있습니다.
notion image
 
notion image
 

Experiment

Evaluation을 위하여 MSRA-TD500, ICDAR2015, ICDAR2013을 사용하였습니다.
R-anchor 덕분에 proposal이 6배나 많아졌지만, 간단한 필터링으로 스피드를 다시 비슷하게 만들 수 있었습니다. 여기서는 이미지 경계를 지나는 R-anchor들을 모두 제거하였습니다.
 
아래는 data augmentation을 위하여 rotation을 사용한 경우의 비교 실험과 Faster R-CNN 대비 속도 비교 실험의 결과입니다.
notion image
 

Ablation Study

TD500의 학습 데이터 300장으로 모델을 학습하여 비교하였습니다. 베이스라인 모델의 학습 결과
Faster R-CNN: precision=38.7%, recall=30.4%, F1 score=34.0%
RRPN: precision=57.4%, recall=54.5%, F1 score=55.9%
의 향상을 얻었습니다.
Rotated proposal을 사용하지 않은 경우(가운데)와 사용한 경우(오른쪽)을 비교한 그림입니다.
notion image
 
1) Context of the Text region
Contextual information을 사용하면 도움이 된다는 것은 general object detection에서 잘 알려진 사실입니다. 이 실험에서는 rotated bounding box의 중심과 방향을 고정하고 넓이와 높이를 1.X 배로 늘려보았습니다. 결과는 아래와 같습니다.
notion image
2) Training Dataset Enlargement
TD500의 학습 데이터 300장에 더하여 HUST-TR400 데이터셋을 추가로 사용하였습니다. F-measure가 55.9%에서 60.8%로 올랐습니다.
3) Border Padding
이미지를 회전시키거나 1)에서 설명한 방식으로 text region을 늘릴 때 이미지 경계와 만나게 되는 anchor가 더 많아지게 됩니다. 이들을 모두 제거하는 대신 이미지에 25%의 패딩을 주어, 5%의 계산량 증가로 F-measure를 63.3%까지 올릴 수 있었습니다.
4) Scale Jittering
이미지의 긴 축을 1300으로 조절하는 것이 다른 스케일에 비해 가장 성능이 높았는데, data augmentation을 위하여 긴 축을 1300보다 작은 범위에서 랜덤하게 변화시키면서 학습한 경우 이보다 더 높은 성능을 얻었습니다. (SJ: Scale Jittering)
notion image
 
모든 ablation study 결과를 정리한 표는 아래와 같습니다.
notion image
 

Performance on Benchmarks

MSRA-TD500 데이터셋은 긴 text line 전체를 하나의 box로 취급하는 경우가 많기 때문에 별도의 post processing을 통하여 text-linking을 해 주어야 했습니다. 알고리즘은 다음과 같이 모든 proposal들의 조합을 탐색하면서 일정 기준 이상으로 중심 간의 거리와 각도가 작은 것들을 greedy하게 합치는 방식을 사용합니다.
notion image
 
MSRA-TD500 결과 예시.
notion image
 
ICDAR 2015 테스트셋 결과.
notion image
 

More results

  • Comparison with State-of-the-art methods
notion image
  • Unreadable text instance를 학습 셋에서 제거한 비율에 따른 성능 비교.
notion image
 

Conclusions

이 논문에서는 oriented text를 효과적으로 검출하기 위한 rotated proposal 알고리즘을 제안하였습니다. 기본적인 구조는 Faster R-CNN과 유사하지만, anchor와 proposal이 항상 horizontal한 Faster R-CNN과는 달리 box들이 orientation 파라미터를 가지고 있다는 점이 다릅니다. 기존의 2-stage detector 알고리즘에서 제안된 여러 기법들과 적용하면 높은 성능 향상을 이루어 낼 수 있을 것으로 기대됩니다.
Share article