반응형

1. 개념

이전에 객체 인식 문제는 객체의 위치와 클래스를 분류하는 문제였다면, 문자 인식은 1개의 클래스(텍스트)로 구분된 여러 객체들을 인식하는 문제입니다. 흔하게 Optical Characer Recognition(OCR)으로 불리며, 다양한 소스(스캔 파일, 문서 이미지 등)에서 다양한 방식으로 입력(수기, 프린팅 등)된 텍스트를 변환하는 것 입니다. 

 

문자 인식 문제는 환경에 따라 아래와 같이 크게 2가지로 분류할 수 있습니다. 전통적인 문서 형태에서 인식을 하는 것과 일상적인 이미지에서 문자를 인식(예를 들어, 도시 이미지에서 간판 인식)하는 문제 입니다. 후자는 Scene Text Recognition (STR)로도 불리며, 배경이나 문자의 형태가 더욱 복잡하기 때문에 문서보다 어렵다고 여겨집니다.

 

2. 주요 특징 

OCR은 객체 탐지와 비슷한 것 같지만, 그것만이 갖고 있는 고유의 특징들이 있습니다. 먼저 클래스의 분류가 텍스트로만 분류된다는 점입니다. 일반 객체 탐지는 해당 객체가 무엇인지 분류해야 하는 작업이 존재하지만, 글자 검축은 텍스트라는 단일 클래스이기 때문에 위치만 예측하는 문제 입니다.

 

OCR의 대상에 따라 다양한 특성이 나타납니다. 논문과 같이 문자가 많은 경우는 매우 높은 객체 밀도를 보이기도 하고, 문장 형태로 된 데이터는 극단적으로 긴 종횡비가 나타나기도 합니다. 글자가 놓여있는 형태에 따라서 가로, 세로 쓰기에 따라 가로가 길거나 세로가 더 길 수 있습니다. 

 

글의 목적에 따라서 글의 배치 형태(가로,세로 뿐 아니라 휘어진 형태까지), 크기, 심지어 폰트까지 달라지기도 합니다. 그리고 한글처럼 띄어쓰기에 따라 의미가 달라질 수 있는 언어의 경우 문자의 박스 형태가 모호하게 설정될 수도 있습니다. OCR 문제 해결을 위해서는 이러한 특징들을 고려해서 판단할 필요가 있습니다. 

 

3. OCR 문제 해결 

앞서 이야기한 것처럼 OCR은 글자 객체를 찾고(Text Detection), 글자를 인식(Text Recognition)하는 과정으로 이뤄져 있습니다. 이러한 과정을 모듈화해서 살펴볼 수 있는데, Text Detector / Text Recognizer / Serializer / Text Parser로  크게 4가지 구분할 수 있습니다.

3.1. Text Detector

Text Detector는 글자의 위치만 반환하는 역할을 수행합니다. 이미지를 입력으로 받아서 각 글자의 영역별 위치정보를 반환하게 됩니다. 이 때 반환하는 위치 정보는 (x, y, w, h)가 될 수도 있고, 각 점의 좌표를 반환할 수도 있습니다. 

3.2. Text Recognizer

Text Recognizer는 Text Detector에서 나온 글자 영역 정보를 바탕으로 영역 내의 글자 인식을 수행합니다. 이미지 전체를 대상으로 판단하지는 않고 해당 영역만을 참고합니다. 이 task는 컴퓨터 비전과 자연어 처리를 모두 해야하는 작업으로 최근에 각광을 받는 Multi-modal의 성격을 띈다고도 볼 수 있습니다. Text Recognizer를 통과하게 되면 해당 영역의 글자 값을 반환하게 됩니다.

3.3. Serializer

Serializer는 해당 영역에서 인식한 글자를 자연어 처리를 할 수 있도록 정렬을 수행합니다. 예를 들어, 한글은 좌상단에서 우하단 방향으로 일반적으로 읽습니다. 그리고 단락별로 구분이 되어있기도 하죠. 이러한 규칙을 바탕으로 자연어를 처리할 수 있게끔 정렬을 수행합니다. 

3.4. Text Parser

Text Parser는 앞서 정리된 텍스트들에서 의미를 부여하는 역할을 수행합니다. 많이 사용하는 방법 중 하나는 이미 정의된 key-value에서 글자 영역별 의미를 추출합니다. BIO Tagging을 통해 문장에서 정의된 개체에 대한 값을 추출하는 방법이 있습니다. BIO 태깅은 Begin(개체가 시작하는 부분), Inside(개체의 내부), Outside(개체가 아닌 부분)으로 나눠서 태그를 진행하는 방식입니다. 태그가 완료된 이후에는 개체인 B와 I에 대해서만 사용하는 방식입니다. [2]

 

4. 참고자료

[1] 유하늘. "3. OCR Tasks". 부스트캠프 ai tech

[2] 12-04 개체명 인식의 BIO 표현 이해하기 - 딥 러닝을 이용한 자연어 처리 입문

 

반응형