[MathMatch] 수식 OCR 성능 개선 기법 정리

yoonene·2022년 8월 27일
0

Math Match

목록 보기
2/2

성능 향상을 위해 사용한 기법들

1. Hybrid Architecture

CNN feature map(ResNetV2) 적용

그냥 이미지 패치들을 사용하는 것 대신 Input sequence는 CNN의 feature map으로 사용할 수도 있는데, 이 하이브리드 모델에서 패치 임베딩 projection EE는 CNN feature map으로부터 뽑아낸 패치들에 적용된다.

2. Tokenizer 변경

WordLevel -> BPE
이전에는 단순히 WordLevel Tokenizer를 사용해 white space를 기준으로 latex를 토큰화하였다. latex는 띄어쓰기를 하지 않아도 인식이 되기 때문에 이는 적합하지 않은 방법이라 판단하였다. 따라서 BPE를 통해 tokenizer를 학습하였다.

3. 사이즈 별 batch화

기존에는 사이즈 상관없이 순서대로 batch_size 만큼 잘라서 batch를 만들지만, 같은 height와 width의 이미지끼리 묶어 batch화하였다. NLP에서 자주 볼 수 있는 Bucketing 기법과 유사하다.

4. Augmentation

  • Albumentation 을 활용하여 각종 augmentation을 적용하였다.
  • 랜덤하게 픽셀이 255가 아닌 픽셀은 다 0으로 변환하였다. (흰색이 아닌 부분 다 완전 까맣게 변환)

+) 새로 수집한 5만개의 추가 데이터 활용

5. Resizer 모델 활용

  • 실제 사용자가 해당 서비스를 사용할 때, 컴퓨터에서 캡쳐도구를 활용할 수도 있고, 핸드폰으로 촬영할 수도 있다. 다양한 방법으로 이미지가 생성되기 때문에 다양한 해상도의 이미지가 입력으로 들어오게 된다.
  • 이를 해결하기 위해 inference 시 input image의 해상도를 모델에 적합한 해상도로 이미지를 resize 해주는 모델을 사용한다.
  • 수식 이미지 입력 → resizer 모델 → ocr 모델 -> latex 반환
profile
NLP Researcher / Information Retrieval / Search

0개의 댓글