본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
Computer Vision

[2025-1] 황징아이 - Convolutional Character Networks

by yujacs 2025. 5. 31.

논문 : https://arxiv.org/abs/1910.07954

 

Convolutional Character Networks

Recent progress has been made on developing a unified framework for joint text detection and recognition in natural images, but existing joint models were mostly built on two-stage framework by involving ROI pooling, which can degrade the performance on re

arxiv.org

 

1. Introduction

기존 Text Reading 모델은 2단계를 거친다

  • 텍스트 검출 (Text Detection) : 이미지에서 텍스트 인스턴스(단어 등)의 위치를 박스로 탐지
  • 텍스트 인식(Text Recognition) : 탐지된 박스 안의 텍스트 내용을 순차적으로 인식

기존 방식은 텍스트 검출과 인식 단계를 독립적으로 학습하는 구조적 한계가 있다. 대부분의 모델은 RNN 기반의 word-level 인식 방식을 사용하기 때문에 탐색 공간이 넓고 학습이 어렵다는 단점이 있다.

 

이러한 문제를 해결하기 위해 최근에는 Detection과 Recognition을 통합하려는 연구가 활발하게 진행되고 있다. 대표적으로 RNN 브랜치를 Detection 모델에 추가하는 two-stage 방식이다. 성능은 좋지만

  • RNN 모델은 학습이 복잡하고 많은 데이터가 필요
  • RoI Pooling을 거치면 곡선이나 회전된 텍스트에서 정확한 특징 추출이 어려움

2. Related Works

  • Text Detection : 최근에 Text Detection은 General Object Detector를 기반으로 다양한 텍스트 형식에 맞게 수정.
    • CTPN [Tian et al.], EAST [Zhou et al.], SSTD [Huang et al.]
  • Text Recognition : 음성 인식에서 영감을 받아 sequence to sequence RNN 그리고 Attention을 사용하는 연구들이 많다.
    • [He et al.], [Shi et al.], [Cheng et al.]
  • End-to-End 통합 모델 : detection + recognition을 함께 수행하지만 대부분 two-stage 구조이다.
    • [Li et al.], [He et al.], [Lyu et al.]

 

CharNet은 기존 방식과 비교해 다음과 같은 차별성을 지님 :

  • 최초의 one-stage 문자 기반 E2E 모델로, RoI pooling이 필요 없음.
  • 문자 단위 바운딩 박스와 라벨을 직접 출력 → 약한 지도 학습(weak supervision) 
    -> char-level annotation 없이도 실제 이미지 학습 가능 (iterative character detection 이용).
  • 기존 SOTA 모델(Mask TextSpotter 등)보다 좋은 성능을 보여줌

3. Convolutional Character Networks

 

CharNet은 최초로 One-Stage 구조에서 텍스트 인식과 검출을 동시에 수행한 모델이다. 두 개의 브랜치로 구성이 되었다. 두 브랜치는 병렬로 동작하고 전체 모델은 end-to-end로 학습 가능한 구조이다.

  • Character Branch : 문자를 검출하고 인식
  • Text detection branch: 텍스트 인스턴스(단어/문장)의 바운딩 박스를 예측

학습

  • 학습 단계에서 instance-level과 char-level 바운딩 박스, 문자 라벨을 입력으로 사용 (문자 라벨은 weak supervision technique통해 생성).
  • 추론 단계에서는 한 번의 패스로 단어와 문자 위치, 문자 라벨을 동시에 출력

Backbone

백본은 ResNet-50 & Hourglass 모듈을 사용.

  • ResNet-50 : 기존 연구를 따라서 4배 down-sampling을 해서 작은 크기의 text instance도 구별할 수 있게함.
  • Hourglass : Hourglass-88과 Hourglass-57를 사용. 최종 특징맵은 입력 이미지의 1/4해상도로 업샘플링.
    • Hourglass-88 : 기존 Hourglass-104구조에서 다운샘플링 단계를 두 개 제거하고 각 모듈의 마지막 단계 layer 수를 절반으로 줄인 구조
    • Hourglass-57 : 모든 단계에서 layer 수를 절반으로 줄인 구조

Character Branch

기존 word-level RNN 방식보다 char-level attention이 성능이 더 좋다는 점을 참고하여 저자는 문자 단위로 검출 과 인식을 동시에 수행하는 Character Branch를 설계했습니다. 입력 이미지의 1/4 해상도를 갖는 백본 네트워크의 최종 feature map을 입력으로 사용한다. 모델의 탐색 공간을 줄이고 성능을 높였다. 

구성 (3개의 Sub-Branch) :

  1. Text Instance Segmentation: 텍스트 영역인지 아닌지 분류 (2채널)
  2. Character Detection: 캐릭터 바운딩 박스를 5개 파라미터 (top/bottom/left/right/angle)로 예측
  3. Character Recognition: 68개 클래스(26 알파벳 + 10 숫자 + 32 특수문자) 중 하나로 분류

모든 sub-branch의 출력결과는 동일하게 이미지의 1/4 해상도에서 예측이 되고 신뢰도(confidence) 0.95 이상인 바운딩 박스만 사용. 각 바운딩 박스는 해당 위치의 softmax 결과를 기반으로 가장 확률이 높은 문자 라벨이 할당하게된다.

하지만 Character Branch를 학습시키려면 문자 단위의 바운딩 박스와 라벨이 필요 → annotation 부담을 줄이기 위해 저자는 반복 기반 문자 검출(iterative character detection) 기법을 도입 (뒤에서 자세히)

 

Text Detection Branch

텍스트 인스턴스를 인식하고, 주변 문자들을 묶는 역할을 수행합니다. 두 가지 경우로 나눈다.

  1. 다중 방향 텍스트 (Multi-Orientation Text)
    • 기존 EAST Detector를 수정해서 사용 (FCN을 변형한 구조로 각 픽셀이 단어 영역 내에 있을 확률인 score map과 단어 box를 추정한 후 거리정보와 회전 각도 정보등을 출력) 
    • 두개의 서브 브랜치로 구성 : text instance segmentation & IoU Loss를 사용하는 instance-level bounding box regression
    • Output : 2 Channel (text or non-text확률) + 5 Channel (4 Scalar box + orientation angle)
    • confidence 0.95이상인 박스만 사용
  2. 곡선 텍스트 (Curved Text)
    • TextField을 수정해서 사용
    • 텍스트 바깥 방향을 가리키는 방향필드를 예축해 인접한 텍스트 인스턴스를 분리
    • text detection branch과 character branch와 병렬한 별도의 브랜치를 추가하여 direction field를 예측할 수 있음 (two 3x3 conv and one 1x1 conv)

→ Predicted Instance Level Bounding Box는 Character를 Text Instance로 그룹핑

→ 0보다 큰 IoU(character bounding box과 instance level bounding box가 겹친 면적) : 예측한 캐릭터 바운딩박스와 인스턴스 캐릭터 박스가 겹치면 해당 character를 text instance로 분류

 

 

CharNet의 최종 출력값은 3개 : text instance의 바운딩 박스, character의 바운딩 박스, 그리고 문자 라벨

 

Iterative Character Detection

문제: 실제 데이터에 char-level 라벨이 거의 없음. 문자 라벨은 만들기 어렵고 비용이 큼.
→ 합성 데이터(Synth800K)로 먼저 학습하고 실제 데이터에 적용하는 반복 학습 방식 제안

 

반복 학습 과정

실제 라벨 없이도 모델이 스스로 정답 문자를 학습하게 된 weakly supervision 방식 : 합성 데이터로 초기 모델 학습 →실제 이미지에 적용 → 예측된 문자 수와 정답 단어 길이가 정확히 일치하는 경우만 “정답”으로 사용. 과정을 반복하면서 점점 더 많은 정확한 문자 박스를 확보.

Table 1에서도 확인할 수 있듯 실제 이미지로 학습하지 않은 경우에는 F-measure가 약 65% 수준에 불과했지만 iterative detection을 적용하자 최대 90.97%까지 상승. 

 

반복할수록 빨간 박스(정확한 문자 예측이) 점점 늘어나는 걸 확인할 수 있다.

4. Experiments, Results, and Comparisons

CharNet은 3개의 벤치마크로 평가된다.

  • ICDAR 2015: Google Glass로 촬영된 1,500장 이미지 (작고 다양한 방향의 텍스트 포함)
  • Total-Text: 1,555장 이미지로 구성, 곡선·수평·다중 방향 텍스트 포함
  • ICDAR MLT 2017: 9개 언어 포함 다국어 대규모 텍스트 데이터셋 (총 18,000장 이상)

Implementation Details

  • 4 Iterative Steps
  • Synthetic Data로 Synth800k를 5 epoch
  • GPU당 4 image, mini-batch : 32 이미지
  • learning rate = 0.0002
  • learning rate decay : $\operatorname{lr}_{\text{base}} \times \left(1 - \frac{\text{iter}}{\text{max\_iter}}\right)^{\text{power}}$
  • power = 0.9
  • simple augmentation 진행 : Fots [Liu et al.] & OHEM [ Shrivastava et al.]

Results On Iterative Character Detection (weak supervision 라벨생성) 

  • 1단계만으로도 성능이 급상승, 반복할수록 안정적으로 향상됨
    최종적으로 4단계 반복만으로도 모델이 스스로 충분한 수준의 문자 어노테이션을 생성할 수 있게 되어, SOTA 수준의 성능 달성 가능

 

Results on Text Detection

  • FOTS[25]와 동일한 ResNet-50을 백본으로 사용하여 비교한 결과
    Text Recognition를 제외한 경우, CharNet과 FOTS는 유사한 성능을 보였다.
    하지만 Text recognition branch와 함께 학습한 경우 CharNet은 F-Measure가 85.57%에서 89.7%로 향상

 

 

Results on End-to-End Text Recognition

E2E Text Recognition Task를 SOTA (ICDAR 2015, Total-Text)와 비교했을 때 CharNet은 single-scale으로도 기존 SOTA모델들 보다 좋은 성능을 보였다.

  • CharNet은 기존 곡선 텍스트 전용 모델들(Mask TextSpotter, TextNet, TextField 등)을 모두 능가
  • 실제 이미지에 대한 문자 Annotation을 사용하는 Mask TextSpotter와 비교할 때 CharNet은 추가적인 수작업 없이도 Mask TextSpotter와 유사한 성능을 기록
  • No lexicon 환경에서도 높은 정확도 유지 → 실제 응용에 유리

Multi Scale inference??에대한정보없음

 

4. 결론

CharNet은 Text Detection과 Character Recognition을 하나의 모델에서 동시에 처리하는 최초의 one-stage 합성곱 기반 모델.

기존에는 RNN을 추가한 two-stage 방식이 주류였지만, CharNet은 RNN 없이도 성능을 크게 향상시켰다.

기여

  • Character Branch를 새롭게 도입하여 문자 인식을 직접 수행
  • Detection + Recognition을 동시에 학습할 수 있는 효율적인 구조 설계
  • iterative character detection을 통해 weakly supervised한 방식으로 합성 데이터 학습 → 실제 이미지에 적용
  • 모델 크기도 작고 파라미터 수도 적음 : Generalizability가 높아 복잡한 형태의 텍스트에서 좋은 성능
  • ICDAR 2015, ICDAR MLT 2017, Total-Text 등 여러 벤치마크에서 기존 SOTA보다 좋은 성능을 기록