가이드 · 2026년 11월 4일

악보 인식(OMR)은 어떻게 동작하나요

악보 사진을 음악 데이터로 바꾸는 기술을 광학 음악 인식(OMR, Optical Music Recognition)이라고 합니다. 글자를 읽는 OCR과 이름이 비슷하지만 훨씬 어려운 문제입니다. 악보 연주기가 악보를 읽는 방식과, 어디서 틀리기 쉬운지 설명합니다.

왜 글자 인식(OCR)으로는 안 되나요?

글자는 왼쪽에서 오른쪽으로 한 줄씩 읽고, 모양만 보면 무슨 글자인지 정해집니다. 악보는 다릅니다.

그래서 Tesseract 같은 글자 인식기에 악보를 넣으면 제목이나 빠르기말 같은 글자만 읽고 음표는 읽지 못합니다. 악보에는 전용 인식기가 필요합니다.

악보 연주기가 읽는 순서

악보 연주기는 오픈소스 악보 인식기 homr를 브라우저 안에서 그대로 실행합니다.

  1. 다듬기: 종이 바깥 배경을 잘라 내고 폭을 일정하게 맞춘 뒤, 밝기 대비를 고르게 합니다.
  2. 그림 분석: 첫 번째 AI 모델이 그림의 픽셀마다 오선, 음표 머리, 기둥·쉼표, 음자리표·조표, 그 밖의 기호 중 무엇인지 나눕니다.
  3. 오선과 마디 찾기: 오선 조각을 이어 다섯 줄 오선을 찾고, 세로줄로 마디를 나눕니다. 굽은 오선은 반듯하게 펴고, 피아노처럼 묶인 두 줄 오선을 알아봅니다.
  4. 줄마다 읽기: 오선 한 줄씩 잘라 두 번째·세 번째 AI 모델(트랜스포머)에 넣습니다. 이 모델이 그림을 보고 "4분음표 솔, 8분음표 라…"처럼 기호를 차례로 적어 냅니다.
  5. 악보로 묶기: 읽은 기호를 마디와 성부로 정리해 MusicXML 악보로 만듭니다.

이 모든 과정이 이용자의 브라우저 안에서 일어납니다. 파이썬으로 된 homr를 브라우저용 파이썬 실행기(Pyodide)에서 돌리고, AI 모델은 ONNX Runtime Web으로 실행합니다. 처음에 약 130MB를 받는 것은 이 실행기와 모델 때문입니다.

자주 틀리는 곳

마디 안 음표 길이의 합이 박자표와 맞지 않는 마디를 노란색으로 표시하는 것은 위와 같은 오류를 찾기 쉽게 하기 위해서입니다. 다만 음 높이만 틀리고 길이는 맞는 오류는 표시되지 않으므로, 원본과 비교하며 들어 보는 것이 가장 확실합니다.

정확도는 어느 정도인가요?

컴퓨터로 만든 깨끗한 악보에서는 대부분의 마디를 맞게 읽습니다. 예를 들어 시험해 본 52마디짜리 가요 리드 시트 사진에서는 49~50마디가 박자까지 정확했고, 틀린 곳은 셋잇단음표와 두 성부가 겹친 마디였습니다. 사진 상태가 나쁘거나 음표가 빽빽한 곡일수록 정확도는 떨어집니다. 사진을 잘 찍는 요령은 악보를 잘 인식시키는 사진 찍는 법을 보세요.

악보 연주하러 가기

함께 보면 좋은 글