고영민mandu05.com

둘러보기

  • 홈
  • 글
  • 프로젝트
  • 지식 그래프
  • 이력서
본문으로 건너뛰기
  1. 고영민
  2. /
  3. 글
고영민/글
© 2023-2026 Youngmin. All rights reserved.
rhdudals0505@naver.comGitHubLinkedIn
이 사이트는 Next.js로 만들었습니다.갱신 2026.09.26
글/AI · 머신러닝 공부 · 컴퓨터 비전 · OCR

부스트코스 수학 공식 OCR 수강 후기

2025-06-15·3분 읽기
Computer VisionOCRDeep LearningLaTeXMathematics

수학의 신이라는 개인 프로젝트를 진행하고 있다. AI가 수학 문제를 이해하고 풀어내는 게 최종 목표인데, 이미지로 된 수학 문제를 어떻게 읽게 만드냐가 문제였다.

솔직히 처음엔 그냥 OCR 갖다 쓰면 되지 않나? 싶었다. 근데 막상 찾아보니까 수식 OCR은 일반 텍스트 OCR이랑 완전히 다른 문제라는 걸 알게 됐다. 그래서 네이버 커넥트재단 부스트코스의 수학 공식을 이해하는 딥러닝 모델(OCR) 심화 과정을 수강했다.

왜 수학 공식 OCR은 특별한가?

일반 OCR은 글자를 왼쪽에서 오른쪽으로 차례대로 읽는다. 수식은 그렇게 읽히지 않는다.

2차원 공간 구조: 분수는 위아래로, 첨자는 대각선 위아래로 배치된다.

문맥적 의미: 같은 기호라도 위치에 따라 의미가 달라진다 (e.g., x²와 x₂).

구조화된 출력: 단순 텍스트가 아니라 수식의 구조 전체를 표현하는 LaTeX 같은 형식으로 변환해야 한다.

결국 수학 공식 OCR은 이미지의 공간적 특징을 읽는 Computer Vision과, 그 구조를 순차 언어로 바꾸는 NLP가 같이 맞물려야 풀리는 문제였다.

강의 핵심 리뷰: 모델 아키텍처 파헤치기

강의는 이 문제를 해결하는 표준적인 모델 아키텍처를 깊이 다룬다. 나는 이 구조를 '눈', '뇌', '연결고리' 세 부분으로 나눠서 이해했다.

눈 (Eyes) - CNN 기반 Encoder

모델의 '눈' 역할은 CNN 기반 인코더가 담당한다. ResNet이나 VGG 같은 이미지 인식 모델로 수식 이미지에서 시각적 특징들을 뽑아낸다. 각 기호의 형태, 상대적 위치 같은 정보가 담긴 고차원 특징 맵이 결과물로 나온다.

뇌 (Brain) - Transformer 기반 Decoder

'뇌' 역할은 Transformer 기반 디코더가 맡는다. 인코더가 뽑은 이미지 특징 맵을 받아서 LaTeX 문자열 토큰을 하나씩 만들어낸다. 여기서 중요한 건 단순히 기호를 나열하는 게 아니라, 분수 기호 다음엔 분자가 와야 한다는 문법적, 구조적 관계를 학습해서 전체 수식을 논리적으로 재구성한다는 점이다.

연결고리 (Connection) - Attention Mechanism

'눈'과 '뇌'를 이어주는 핵심이 어텐션 메커니즘이다. 디코더가 LaTeX 토큰을 하나씩 생성할 때마다, 어텐션이 이미지의 어느 부분을 집중해서 봐야 할지 알려준다. 분자를 생성할 땐 이미지 위쪽에, 분모를 생성할 땐 아래쪽에 더 높은 주의를 기울이는 식이다. 복잡한 2차원 구조를 순차적 언어로 풀어내는 핵심 열쇠다.

프로젝트에 적용할 아이디어

강의를 듣고 나서 내 프로젝트 다음 단계가 꽤 구체적으로 정리됐다.

합성 데이터 생성 (Data Augmentation): 실제 수식 이미지 데이터는 구하기 어렵다. 다양한 LaTeX 수식을 무작위로 생성해서 이미지로 렌더링하고, 거기에 폰트, 노이즈, 회전 같은 변형을 가해 학습 데이터를 대량으로 만들 계획이다.

맞춤형 토크나이저 (Custom Tokenizer): 고등학교 미적분 같은 특정 도메인에 맞는 LaTeX 토크나이저를 따로 만들어야 한다는 걸 깨달았다. 이게 모델 학습 효율과 성능에 직결된다.

인식을 넘어 해석으로: OCR 모델이 LaTeX 문자열을 뱉는 건 '수학의 신' 프로젝트의 첫 단계일 뿐이다. 그다음은 이 LaTeX를 파싱해서 실제 연산 가능한 심볼릭 표현이나 연산 트리로 변환하는 모듈을 만드는 것이다.

마치며

강의 들으면서 수식 OCR이 일반 텍스트 인식이랑 완전히 다른 문제라는 걸 알게 됐고, 구조를 이해하고 나서야 내 프로젝트에서 뭐가 부족한지 눈에 들어왔다. 막연하게 AI로 수학 문제 풀기라고만 생각했던 게 CNN 인코더 → Transformer 디코더 → 심볼릭 파서라는 구체적인 세 단계로 쪼개진 것만으로도 수강료 값어치는 충분히 했다.

← 이전 글 머신러닝 두 번째: 예측과 분류 다음 글 →SAP 소프트웨어 엔지니어(CI/CD) 최종 면접 탈락 복기

댓글 불러오는 중…

← 글

목차

  • 왜 수학 공식 OCR은 특별한가?
  • 강의 핵심 리뷰: 모델 아키텍처 파헤치기
  • 눈 (Eyes) - CNN 기반 Encoder
  • 뇌 (Brain) - Transformer 기반 Decoder
  • 연결고리 (Connection) - Attention Mechanism
  • 프로젝트에 적용할 아이디어
  • 마치며