레스토랑 및 식품팀 전용

모든 메뉴 사진을 구조화된 데이터 테이블로 변환 — 섹션 헤더가 요리 행이 되지 않도록

메뉴는 데이터 추출이 아닌 시각적 매력을 위해 디자인됩니다. 가격은 일관된 정렬 없이 요리 옆에 배치되고, 설명은 여러 불규칙한 줄바꿈으로 나뉩니다. '에피타이저', '메인', '디저트' 같은 섹션 헤더는 카테고리를 시각적으로 구분하지만, 기존 OCR로 읽으면 유령 데이터 행이 됩니다. 이 도구는 시각적 계층 구조를 읽습니다. 섹션 라벨은 '카테고리' 열에, 요리명과 가격은 각각의 열에 정확히 배치됩니다. 인쇄된 메뉴, 코팅 메뉴, 손글씨 칠판 메뉴, 또는 여러 페이지 PDF 등 어떤 형식이든 추출된 모든 필드는 제자리에 들어갑니다.

레스토랑 운영자 · 메뉴 디지털화 팀 · 경쟁사 리서치 분석가

JPG / PNG / PDF
모든 메뉴 레이아웃
XLSX / CSV / JSON
일괄 처리

메뉴 사진에서 추출할 수 있는 정보

필요한 열 이름을 입력하세요. AI는 페이지 내 위치가 아닌 의미를 이해하여 각 메뉴에서 해당 값을 찾아냅니다. 손글씨 칠판 스페셜 메뉴판과 PDF로 된 고급 다이닝 메뉴 모두 동일한 열로 구조화된 결과를 제공합니다.

핵심 요리 데이터

메뉴명
설명
가격
카테고리 / 섹션

식이·영양·운영 속성

식이 태그 (V, GF, NF)
매운맛 단계
칼로리 (표시된 경우)
품목 코드

이것이 전부는 아닙니다. 메뉴에 포함된 모든 필드명을 자유롭게 입력하세요. 알레르기 경고, 와인 페어링, 원산지 표시 등에도 동일한 추출 로직이 적용됩니다.

기존 OCR이 메뉴를 깨진 텍스트로 만드는 이유 — Visual AI가 구조를 읽는 방법

메뉴는 디자인이 계층 구조를 전달하는 유일한 비즈니스 문서입니다. 굵게 중앙 정렬된 '메인 요리'는 데이터 행이 아니라 카테고리 지시입니다. 기존 OCR은 읽기 순서대로 텍스트를 읽고 시각적 구조를 단일 텍스트 스트림으로 평탄화합니다. 요리 이름과 섹션 헤더의 차이는 완전히 사라집니다.

문제점

01 가격이 요리 옆에 일관된 정렬 없이 떠 있고, OCR이 잘못된 항목에 붙여버립니다

메뉴는 그리드가 아닙니다. 가격은 설명 줄 끝에 탭 같은 간격을 두고 위치할 수 있습니다. 열에서 오른쪽 정렬되어 왼쪽의 요리명과 공백 및 리더 점으로 시각적으로 연결될 수도 있습니다. 요리명 바로 뒤에 아무 구분자 없이 인라인으로 있을 수도 있습니다. 기존 OCR 엔진은 페이지를 위에서 아래로, 왼쪽에서 오른쪽으로 읽어 "그릴드 연어 — 레몬 버터 소스와 제철 야채 곁들임 — 28.00 — 팬 시어드 립아이 — 12oz 초지 쇠고기와 트러플 프라이 — 34.50"이 하나의 구분되지 않은 블록이 됩니다. $28.00 가격은 연어 설명에 붙고, $34.50 가격은 립아이에서 완전히 분리됩니다. 이후 수동 정리에 몇 시간이 소요됩니다. 그리고 이는 여러 섹션에 걸친 메뉴를 다루기 전 이야기입니다.

02 설명이 불규칙한 줄바꿈으로 이어지고, 파서가 각 조각을 별도 필드로 처리합니다

"수제 파스타, 저속 조리 양고기 라구, 페코리노 로마노, 신선한 바질" 같은 요리 설명은 칼럼 너비와 글꼴 크기에 따라 두세 줄로 나뉠 수 있습니다. 기존 OCR은 각 줄바꿈을 데이터 경계로 읽어 설명을 세 조각으로 나누고 각각을 별도 행에 할당하거나, 조각을 합치되 2, 3행을 유령 요리에 귀속시킵니다. 한편 해당 요리의 실제 가격인 $26.00은 1행의 맨 오른쪽 공간에 고립됩니다. 결과는 하나의 요리가 세 개의 불완전한 행을 생성하고, 그중 어느 것도 완전한 설명과 올바른 가격을 모두 갖추지 못한 스프레드시트입니다. 네 섹션에 40개 요리가 있는 메뉴의 경우 수동 수정 작업량이 급증합니다. 레스토랑 운영 포럼 사용자들은 일관되게 보고합니다. 특화 도구 없이 메뉴를 디지털화하는 데 메뉴당 60-90분이 소요된다고.

03 섹션 제목이 표 구조를 깨는 이유: OCR이 제목과 요리명을 구분하지 못하기 때문

"스타터", "메인", "디저트", "사이드" — 이 섹션 레이블은 요리명과 동일한 타이포그래피(굵은 글씨, 큰 크기, 눈에 띄는 배치)를 사용합니다. 기존 파서는 "스타터"를 읽고 1행의 요리로 처리한 뒤, "트러플 시저 샐러드 | $16.50"를 2행에 할당합니다. 결과적으로 카테고리 레이블이 빈 가격 열을 가진 데이터 행으로 나타나고, 모든 요리는 섹션 맥락을 잃으며, 40개 항목 메뉴가 8개의 가상 행을 가진 48행짜리 스프레드시트로 변환됩니다. 이러한 출력물로 디지털 메뉴 데이터베이스를 구축하려는 레스토랑 운영자는 섹션 제목 행을 삭제하고 카테고리를 수동으로 재할당하는 데 데이터를 처음부터 입력하는 것만큼 많은 시간을 소비합니다.

맞춤형 열 추출이 해결하는 방법

01 시각적 근접성을 읽고, 선형적 텍스트 순서는 무시 — 가격이 해당 요리와 함께 유지됨

Custom Column Extraction — ImageToTable.ai의 핵심 기술 — 은 텍스트를 순차적으로 읽지 않습니다. "Item Name", "Description", "Price" 같은 열 이름을 입력하면, AI는 페이지 전체에서 각 값을 의미론적으로 이해하고 시각적으로 속한 위치를 파악하여 찾아냅니다. 요리 이름 오른쪽에 정렬된 가격은 같은 텍스트 줄에 있기 때문이 아니라 시각적 근접성을 공유하기 때문에 해당 요리에 속한 것으로 이해됩니다. 두 줄에 걸쳐 있는 설명은 별도 조각이 아닌 하나의 연속된 텍스트 블록으로 읽힙니다. 즉, 리더 점 뒤에 오른쪽 정렬된 가격, 두 줄 레이아웃에서 요리 이름 아래에 쌓인 가격, 설명 뒤에 인라인으로 있는 가격 등 메뉴 디자이너가 선택한 어떤 정렬 방식이든 각 요리 행의 Price 열에 올바른 가격이 깔끔하게 출력됩니다.

02 섹션 헤더는 데이터가 아닌 구조로 인식 — Category 열이 생성됨

AI가 굵은 가운데 정렬 텍스트와 위쪽 여백이 있는 "Appetizers"를 만나면, 이를 요리 이름으로 추출하지 않습니다. 전체 시각적 맥락을 읽습니다. "Appetizers" 레이블 뒤에 고유한 이름, 설명, 가격을 가진 여러 요리가 이어집니다. AI는 "Appetizers"가 메뉴 항목이 아닌 카테고리 지정임을 이해하고, 그 아래 모든 요리를 Category 열에 "Appetizers" 또는 "Starters"로 할당합니다. 다음 섹션 헤더인 "Mains"가 나타나면 Category 할당이 그에 따라 변경됩니다. 출력 결과는 각 행에 Category 필드가 채워져 있고, 섹션 헤더가 가짜 요리 행으로 나타나지 않는 깔끔한 테이블입니다. 카테고리가 2페이지 하단에서 3페이지 상단까지 이어질 수 있는 다중 페이지 메뉴의 경우, AI는 페이지 나누기 전반에 걸쳐 섹션 컨텍스트를 계속 추적하므로 카테고리 없이 고립된 요리가 발생하지 않습니다.

03 속성 필드(식이 태그, 매운 정도, 칼로리 등)는 패턴 매칭이 아닌 의미 인식을 통해 추출됩니다

메뉴는 식이 및 영양 정보를 일관되지 않은 방식으로 전달합니다. 채식 표시는 "V" 아이콘, 녹색 잎 기호, "Vegan"이라는 단어 또는 "(v)"일 수 있습니다. 매운 정도는 1~5개의 고추 아이콘, "mild/medium/hot"이라는 단어 또는 매운 척도의 숫자로 표시될 수 있습니다. 칼로리는 설명 뒤에 "(450 cal)"로 인라인으로 인쇄되거나 자체 헤더가 있는 별도의 "Cal" 열로 인쇄될 수 있습니다. 기존 OCR은 "V", "450 cal", "🌶️🌶️"와 같은 문자를 읽을 수 있지만, 이것이 무엇을 의미하는지 또는 어떤 요리에 속하는지 해석할 수 없습니다. AI는 이러한 속성을 의미론적으로 읽습니다. 즉, 요리 이름 옆의 "(v)"가 채식 태그를 나타내고, "🔥🔥🔥"가 3/5의 매운 정도를 나타내며, 각각을 올바른 요리 행과 출력의 올바른 열에 할당합니다. 메뉴에 텍스트 라벨 없이 아이콘만 사용하는 경우(숫자 없는 고추 이모지), 매운 정도 열을 정의하면 AI가 아이콘 개수를 매운 정도로 해석할 수 있습니다.

메뉴 사진에서 구조화된 스프레드시트로: 워크플로우 살펴보기

온라인 주문 플랫폼용 메뉴를 디지털화하거나, 레스토랑 지점 간 경쟁력 있는 가격 데이터베이스를 구축하거나, 요리 연구 프로젝트를 위해 역사적 메뉴를 아카이빙하는 경우, 이 도구가 메뉴별 설정 없이 사진을 구조화된 데이터로 변환하는 방법을 소개합니다.

1

메뉴 사진 업로드 — 형식, 레이아웃, 출처 무관

스마트폰으로 찍은 칠판 특선 메뉴, 라미네이트된 매장 메뉴의 스캔 PDF, QR코드 디지털 메뉴 스크린샷, 여러 페이지로 된 포장 메뉴 등 모든 출처의 메뉴 이미지나 PDF를 드래그하여 업로드하세요. JPG, PNG, WebP, PDF 형식을 지원합니다. 여러 지점을 운영하는 레스토랑 그룹의 경우 일괄 처리 기능을 사용하세요: 모든 지점의 메뉴를 한 번에 업로드하면 각 요리가 하나의 행으로 구성되고 위치 식별자가 포함된 통합 스프레드시트가 생성됩니다. 지점별로 별도 작업이 필요 없습니다. 프랜차이즈, 현장 조사자, 협력 업체 등 외부 기여자로부터 메뉴를 수집해야 한다면 수집 링크를 생성하세요: 누구나 계정이나 로그인 없이 짧은 인증 코드 입력만으로 메뉴 사진을 처리 대기열에 직접 업로드할 수 있는 공유 URL입니다.

2

열 이름을 한 번만 지정하면 모든 메뉴가 동일한 필드 목록으로 처리됩니다

원하는 열을 입력하세요: "메뉴명", "설명", "가격", "카테고리", "식이 태그", "매운 정도", "칼로리", "메뉴 코드". 동일한 열 정의가 배치 내 모든 메뉴에 적용됩니다 — 라미네이트된 고급 레스토랑 PDF와 손글씨 칠판 사진 모두 동일한 구조화된 형식으로 출력됩니다. 칼로리 추출의 경우 열 이름을 "칼로리(표시된 경우)"로 입력하세요 — AI가 메뉴에 칼로리 값이 표시된 경우에만 추출하고 없으면 셀을 비워둡니다. 따라서 누락된 데이터로 인한 행 손실 없이 완전한 데이터셋을 얻을 수 있습니다. 정기적인 메뉴 업데이트 주기(레스토랑 그룹의 분기별 메뉴 변경)의 경우 로그인하여 열 구성을 템플릿으로 저장하세요: 새 배치마다 필드 이름을 다시 입력할 필요 없이 재사용할 수 있습니다. 계산 열 기능을 사용하면 추출 중에 실행되는 계산을 정의할 수 있습니다: 예를 들어 "USD 가격(통화가 USD인 경우 가격 × 1.0)" 열은 여러 통화 메뉴를 단일 출력 열로 정규화합니다.

3

구조화된 스프레드시트 다운로드 — 요리당 한 행, 모든 필드는 올바른 열에

각 요리는 출력에서 한 행이 됩니다. 네 개 섹션으로 구성된 45개 항목 메뉴는 45개의 행을 생성하며, 삭제해야 할 4개의 섹션 헤더 행이 포함된 49개가 아닙니다. 요리 이름은 항목명 열에, 설명은 설명 열에, 가격은 가격 열에 입력되며, 각 행의 섹션 헤더는 카테고리 열에 채워집니다. 식이 태그, 매운맛 수준, 칼로리 데이터는 메뉴에 포함된 경우 각각의 열에 표시됩니다. Excel에서 메뉴 데이터베이스 관리를 위해 XLSX로, POS 시스템이나 온라인 주문 플랫폼으로 가져오기 위해 CSV로, 또는 직접 API 통합을 위해 JSON으로 내보낼 수 있습니다. 수작업 데이터 입력에 하루 종일 걸리던 10개 지점 메뉴 배치가 몇 분 만에 완료되며, 각 메뉴 디자인이 아무리 달라도 모든 지점에서 출력 형식이 일관됩니다.

메뉴 추출이 가장 효과적인 경우 — 그리고 점검이 도움이 되는 경우

가장 효과적인 경우

모든 레이아웃 또는 열 구성의 표준 인쇄 메뉴. 단일 열, 두 열, 여러 섹션 메뉴에서 요리명과 가격 관계가 명확하면 안정적으로 추출됩니다. 가격이 설명 옆, 오른쪽 열, 또는 요리명 아래에 있어도 AI가 시각적 근접성을 읽어 각 가격을 올바른 요리에 할당합니다. 지점별로 일관된 메뉴 형식을 가진 레스토랑 체인은 거의 완벽한 일괄 출력을 제공합니다.

좋은 조명에서 정면으로 촬영한 손글씨 칠판 및 오늘의 특선 메뉴. AI는 다양한 필체(블록체, 표준 필기체, 칠판 마커)를 읽고 요리명, 설명, 가격을 추출합니다. 정면 사진과 고른 조명이 최상의 결과를 냅니다. 코팅지나 칠판 반사로 인한 눈부심은 문자를 가릴 수 있으므로 카메라 각도를 약간 기울여 반사를 줄이세요.

에피타이저, 메인, 디저트 등 카테고리 헤더가 있는 여러 섹션 메뉴. 섹션 레이블은 구조 레이블로 인식되어 그 아래 모든 요리의 카테고리 열에 할당됩니다. 6개 섹션 메뉴는 각 요리 행에 올바른 카테고리가 채워져 추출 후 수동 태깅이 필요 없습니다. 여러 페이지 메뉴에서 섹션이 페이지 나누기에 걸쳐 있어도 카테고리 컨텍스트가 연속적으로 유지됩니다.

주의가 필요한 경우

장식적인 캘리그래피나 화려한 디스플레이 폰트. 세리프 장식, 극단적인 합자, 'g'가 일반 높이의 세 배까지 내려가는 손글씨 등 양식화된 글자는 문자 인식 오류를 유발할 수 있습니다. 캘리그래피 스타일이 강한 요리명은 "Caesar Salad" 대신 "Caesat Sa[ad"로 인식될 수 있습니다. 깔끔한 세리프 또는 산세리프 폰트를 사용한 메뉴는 크기가 커도 안정적으로 추출됩니다. 메뉴에서 캘리그래퍼가 디자인한 헤더 폰트를 요리명에 사용했다면, 출력 결과에서 해당 항목을 반드시 확인하세요.

비라틴 문자 메뉴 (중국어, 일본어, 아랍어, 한국어, 태국어). 이 도구는 모든 문자 체계의 메뉴에서 요리명과 구조를 추출합니다. 언어와 관계없이 동일한 시각적 계층 인식 방식이 적용됩니다. 다만, 새로운 문자 체계를 사용하는 메뉴의 첫 몇 항목은 정확도를 확인하세요. 비라틴 문자 체계의 문자 인식 정확도는 폰트의 선명도와 문자 밀도에 따라 달라집니다. 선명한 활자체의 인쇄된 중국어 및 일본어 메뉴는 잘 추출되지만, 빽빽한 손글씨 한자나 장식적인 아랍어 캘리그래피는 정확도가 낮을 수 있습니다.

비스듬히 찍거나 접히거나 그림자가 진 사진, 가격이 없는 메뉴. 급한 각도로 촬영한 사진은 텍스트 기하학을 왜곡하여 추출 정확도를 떨어뜨립니다. 중앙에 접힌 자국이 있는 메뉴 사진은 접힌 선을 따라 문자가 손실될 수 있습니다. 가격이 인쇄되지 않은 메뉴(테이스팅 메뉴, 정찬 코스, "서버에게 문의")는 요리명과 설명은 올바르게 추출되며, 가격 열은 비어 있습니다. AI는 원본 이미지에 가격이 없을 경우 가격을 임의로 생성하지 않습니다.

자주 묻는 질문

이 도구가 "에피타이저" 같은 섹션 제목과 실제 요리 이름을 구분할 수 있나요?

네, 이것이 핵심 기능입니다. 기존 OCR은 텍스트를 선형으로 읽어 "에피타이저"를 데이터 행으로 처리합니다. 하지만 이 도구는 시각적 레이아웃과 의미적 맥락을 읽어 섹션 제목을 구조 레이블로 인식하고, 그 아래 모든 요리를 카테고리 열에 할당합니다. 결과적으로 각 요리 행에 올바른 카테고리가 입력되며, 섹션 제목이 가격이 없는 유령 요리로 나타나지 않습니다. 인쇄된 메뉴, 손글씨 칠판, 여러 페이지 PDF에서도 작동합니다.

메뉴 사진에서 채식, 글루텐 프리, 견과류 프리 같은 식이 태그를 추출할 수 있나요?

네. "식이 태그" 열을 정의하면 AI가 텍스트 라벨(V, VG, GF, NF, DF), 아이콘 기반 표시(잎 기호, 밀 줄표 아이콘), 또는 요리 설명 내 약어(예: 설명 끝의 "(v)" 또는 "(gf)") 등 모든 형식의 식이 표시를 읽습니다. AI는 각 표시를 해당 요리의 맥락에서 읽습니다. "파스타 프리마베라" 옆의 "GF" 라벨은 해당 요리 행의 식이 태그 열에만 입력됩니다. 메뉴가 텍스트 없이 아이콘만 사용하는 경우, 옵션을 포함한 열을 정의하세요(예: "식이 태그 (옵션: 채식, 비건, 글루텐 프리, 견과류 프리, 유제품 프리)"). AI가 아이콘을 해석하여 지정된 카테고리에 매핑합니다.

메뉴에 칼로리가 인쇄되지 않으면 모든 행이 실패하거나 도구가 열을 건너뛰나요?

둘 다 아닙니다. 열 이름을 "칼로리(인쇄된 경우)"로 입력하면 AI는 메뉴에 표시된 칼로리 값만 추출하고, 칼로리 정보가 없는 요리는 셀을 비워둡니다. 45개 항목 메뉴에서 15개 요리만 칼로리 데이터가 있는 경우, 45개 행 모두 완전한 요리 이름, 설명, 가격이 포함되고, 15개 행에 칼로리 값이 입력되며, 30개 행의 칼로리 셀은 비어 있습니다. 결과는 행이 삭제되거나 데이터가 조작되지 않은 완전한 데이터셋입니다. 모든 메뉴에 없을 수 있는 매운맛 수준 표시, 항목 코드, 또는 일부 항목에만 있는 식이 태그 등 모든 필드에 동일한 로직이 적용됩니다.

여러 레스토랑 지점의 메뉴를 한 번에 일괄 처리하고 각 지점 데이터를 분리할 수 있나요?

네. 모든 지점의 메뉴 사진을 한 번에 업로드하세요. 지점별로 데이터를 분리하려면 필드 목록에 "지점" 또는 "레스토랑 이름" 열을 포함하세요. AI는 메뉴 자체에서 이를 추출하지 않지만(메뉴가 모든 페이지에 레스토랑 이름을 인쇄하는 경우는 드뭅니다), 일괄 업로드 파일명을 사용할 수 있습니다. 업로드 전 각 파일에 지점 식별자를 이름에 포함하면 출력 스프레드시트에 지점 키 역할을 하는 파일명 열이 생성됩니다. 또는 각 지점의 메뉴를 별도의 일괄 작업으로 업로드하세요. 열 구성은 동일하게 유지되며 각 작업은 자체 출력 파일을 생성합니다. 20개 이상 지점에서 분기별로 메뉴를 업데이트하는 레스토랑 그룹의 경우, 추출 템플릿을 한 번 저장하고 각 분기 업데이트 배치에 대해 실행하세요.

손글씨 메뉴(분필이나 마커로 쓴 오늘의 특선 게시판 등)도 인식이 되나요?

네, 가능하지만 정확도에 영향을 주는 조건이 있습니다. AI는 블록체, 혼합 대소문자 인쇄체, 일반 필기체 등 다양한 손글씨를 학습했습니다. 칠판 특선 메뉴를 정면에서 균일하고 확산된 조명 아래 촬영하면 메뉴 이름, 가격, 간단한 설명이 안정적으로 추출됩니다. 손글씨 정확도에 가장 큰 영향을 미치는 세 가지 요소는 조명(곡면 칠판 표면의 그림자가 글자를 가림), 각도(비스듬히 찍은 사진은 글자 형태를 왜곡함), 글자체 양식(장식적인 필기체는 글자 단위 정확도를 낮춤)입니다. 최상의 결과를 얻으려면: 게시판을 정면에서 자연광이나 균일한 인공 조명 아래 촬영하고, 메뉴 영역이 프레임을 가득 채우도록 하며, 글자에 그림자가 지지 않도록 확인하세요. 몇 글자가 잘못 인식되더라도(예: "Tomato" 대신 "TomatO") 오류는 대개 경미하며 출력 스프레드시트에서 쉽게 확인할 수 있습니다.

📮 contact email: [email protected]