Optical Character Recognition
사람이 글자를 읽을 때
따라서, OCR도 글자를 찾는 모듈과 글자를 인식하는 모듈로 이루어져 있다.
글자를 읽는다 = 글자 영역 찾기 + 영역 내 글자 인식 = OCR
단일 객체 검출
다중 객체 검출
글자 영역 검출
이를 객체 검출에 비유하면 글자 영역 다수 객체 검출이 된다.
이는 단순히 글자 영역이냐 아니냐의 여부이기 때문에 단일 class 문제이며, 여러 글자 영역에 대해서 예측하는 task이다.
일반 객체 검출과의 차이점
글자의 특성 상 영역 표시를 할 때 가로 세로의 비율이 굉장히 다르다.
또한, 글자이기 때문에 일반 객체 검출보다 밀집도가 상당히 크다.
글자 인식기에서 나타난 결과는 어느 위치에 어느 글자가 있다는 정보만을 가지고 있다.
이를 글자로 출력하기 위해서는 일렬로 정렬해주어 시퀀스한 형태로 만들어주어야 하는데, 이 역할을 Serializer가 한다.
이 부분은 AI로 구현하지 않고 일일히 rule을 생각해서 구현한다.
이렇게 하는 이유는 뒤에 자연어 처리 모듈을 붙이기 위해서 이다.
마지막으로 자연어 처리 모듈을 붙이는데 이 때 쓰이는 상업적으로 많이 쓰는 자연어 처리 module은 key들에 대한 value를 추출하는 것이다.
이미 정보들이 정의되어 있고, 이 중 표현하고 싶은 정보가 뭔지 key를 이용해 추출한다.
명함 이미지에서 뽑고 싶은 정보는 사람의 이름, 연락처, 이메일 등의 정보를 추출하고 싶을 것이고, 이를 AI가 자동으로 뽑아준다.
Parser 의 동작
BIO 태깅을 활용하여 개체명을 인식
- 문장에서 기 정의된 개체에 대한 값 추출
- 이미 정의된 개체에 대해 이에 해당하는 것이 무엇인지를 추출
Copy & Paste
Search
Matching
금칙어 처리
번역
Key-value extractor