본문 바로가기

AIFFEL/GoingDeeper-CV

[AIFFEL/GoingDeeper] OCR - Text detection

728x90

딥러닝기반의 OCR에 대해 정리해보려 한다. 

OCR = Optical Character Recognition , 이미지 내의 글자를 자동으로 인식하는 인공지능 기술


✔ OCR = Text detection(문자의 영역 검출) + Text recognition(검출된 영역의 문자 인식)

Text detection

: 일반적인 Object detection 태스크를 문자 찾아내기로 확장한 버전이라고 생각.

  Text detection은 단순히 Object detection 기법뿐 아니라 Segmentation 기법도 동원되며, 문자가 가지는 특성도 고려

Text recognition

: 검출된 영역의 문자가 무엇인지를 인식해내는 과정

 


📍 Text detection

- 문자는 몇 개가 모여서 단어 혹은 문장을 이루고 있어서 이미지 내에서 문자를 검출해낼 때엔 검출하기 위한 최소 단위를 정해야 한다

 

https://arxiv.org/pdf/1704.03155v2.pdf

- 위 그림은 https://arxiv.org/pdf/1704.03155v2.pdf 논문에서 소개된 다양한 Text detection 기법을 정리한 것

- 가로 방향(Horizontal)으로만 텍스트 박스를 구하는 방식이나 기울어지거나 세로 방향 등의 여러 방향(Multi-oriented)의 텍스트 박스를 구하는 방식이 다양하게 소개되고 있다

- 이미지 속에서 문장 단위로 위치를 찾을수도 혹은 단어나 글자 단위로 위치를 찾을 수도 있다

    - 단어 단위의 탐지 : Object detection의 Regression 기반의 Detection 방법

    - 글자 단위의 탐지 : Bounding box regression을 사용하는 대신 글자 영역을 Segmentation하는 방법으로 접근

    - 두 가지 방법을 모두 활용한 방법도 있다

 


✔ 1. Regression

https://arxiv.org/pdf/1611.06779.pdf

  • TextBoxes는 2017년 AAAI에 공개된 논문
  • 이미지 내에서 문자를 찾아내려는 방법에는 다양한 기법들이 활용
  • 네트워크의 기본구조는 SSD ( 참고 : https://yeomko.tistory.com/20 )
 

갈아먹는 Object Detection [6] SSD: SIngle Shot Multibox Detector

지난 글 갈아먹는 Object Detection [1] R-CNN 갈아먹는 Object Detection [2] Spatial Pyramid Pooling Network 갈아먹는 Object Detection [3] Fast R-CNN 갈아먹는 Object Detection [4] Faster R-CNN 갈아..

yeomko.tistory.com

 

  • 일반적으로 단어들은 가로로 길기 때문에 Aspect ratio(종횡비)가 크다. 이에 따라 몇 가지 변형을 준다. SSD에서는 Regression을 위한 Convolution layer에서 3x3 크기의 kernel을 갖는다
  • 하지만 여기서는 긴 단어의 Feature를 활용하기 위해서 1x5로 convolution filter를 정의하여 사용
  • Anchor box의 aspect ratio를 1, 2, 3, 5, 7로 만들고, 이에 vertical offset을 적용하여 세로 방향으로 촘촘한 단어의 배열에 대응하도록

 

종횡비(Aspect ratio) : 종횡비는 가로와 세로 길이의 비를 의미하며, 가로세로비, 영상비, 화면비 등으로 부르기도 한다. 일반적으로 16:9와 같이 '가로:세로'의 형태로 표현. 

offset : 일반적인 의미의 Offset이란 특정한 값에서 차이가 나는 값 또는 차이를 의미.  offset과 오차가 다르다. offset은 차이가 목적에 의해 만들어진 것과 상황에 따라 자연스럽게 발생된 것을 모두 포함

https://arxiv.org/pdf/1611.06779.pdf

-> Grid cell의 중앙을 기점으로 생성할 경우를 예로 든 것이 파란색(aspect ratio:1) 그리고 검은색 박스(aspect ratio:5).
그리고 이를 수직방향으로 옮겨서 촘촘하게 만들어준 것이 빨간색과 녹색. 수직방향으로 Anchor box의 중앙을 하나 더 둠으로써 세로로 촘촘하게 Anchor box를 배치할 수 있게 된다.

 

 


 

✔ 2. Segmentation

https://arxiv.org/pdf/1801.01315.pdf

  • Text 영역을 찾아내는 segmentation과 함께, 글자가 어느 방향으로 연결되는지를 같이 학습하여 Text 영역 간의 분리 및 연결을 할 수 있는 정보를 추가적으로 활용

  • PixelLink의 전체적인 구조는 U-Net과 유사
  • 그러나 output으로 총 9가지의 정보를 얻는다
  • output 중 하나는 Text/non-text Prediction을 위한 class segmentation map으로 해당 영역이 Text인지 Non-text인지 예측값을 의미하는 2개의 커널을 가진다
  • 나머지 8가지는 글자의 Pixel을 중심으로 인접한 8개의 Pixel에 대한 연결 여부를 의미하는 16개의 커널로 이루어진 Link Prediction map
  • conv 1X1, 2(16) 형태의 레이어가 U-Net 구조로 연결되어, 인접 pixel간 연결 구조가 지속적으로 유지되도록 하는 모델 구조
  • 이를 통해서 인접한 pixel이 중심 pixel과 단어 단위로 연결된 pixel인지, 아니면 분리된 pixel인지 알 수 있으므로, 문자 영역이 단어 단위로 분리된 Instance segmentation이 가능

✔ 3. 최근의 방법들

3.1. CRAFT

- CRAFT는 문자(Character) 단위로 문자의 위치를 찾아낸 뒤, 이를 연결하는 방식을 Segmentation 기반으로 구현한 방법

- 문자의 영역을 boundary로 명확히 구분하지 않고, 가우시안 분포를 따르는 원형의 score map을 만들어서 배치시키는 방법으로 문자의 영역을 학습

- 문자 단위 라벨을 가진 데이터셋이 많지 않기 때문에, 단어 단위의 정보만 있는 데이터셋에 대해 단어의 영역에 Inference를 한 후, 얻어진 문자 단위의 위치를 다시 학습에 활용하는 Weakly supervised learning을 활용

 

https://arxiv.org/abs/1904.01941

 

Character Region Awareness for Text Detection

Scene text detection methods based on neural networks have emerged recently and have shown promising results. Previous methods trained with rigid word-level bounding boxes exhibit limitations in representing the text region in an arbitrary shape. In this p

arxiv.org

3.2. Pyramid Mask Text Detector

- PMTD(Pyramid Mask Text Detector)는 Mask-RCNN의 구조를 활용하여 먼저 Text영역을 Region proposal network로 찾아낸다

- 그다음 Box head에서 더 정확하게 regression 및 classification을 하고 Mask head에서 Instance의 Segmentation을 하는 과정을 거친다

 

https://arxiv.org/pdf/1903.11800.pdf

 


 

Text recognition은 이어서...

https://journeysnote.tistory.com/51

 

[AIFFEL/GoingDeeper] OCR - Text recognition

https://journeysnote.tistory.com/50 [AIFFEL/GoingDeeper] OCR - Text detection 딥러닝기반의 OCR에 대해 정리해보려 한다. OCR = Optical Character Recognition , 이미지 내의 글자를 자동으로 인식하는 인공..

journeysnote.tistory.com