매일 전 세계 수백만의 무슬림들이 식품을 집어 들어 뒤집은 다음, 뒷면에 인쇄된 작은 성분 목록을 가까이서 살펴봅니다. 그 텍스트는 종종 좁은 패널에 빼곡히 들어차 있고, 곡면을 따라 감싸져 있으며, 대비가 낮게 인쇄되어 있고, 때로는 접힘, 반사광, 손상으로 부분적으로 가려져 있습니다. 사람에게도 이 라벨을 읽는 것은 이미 도전입니다. 기계에게 — HalalLens의 OCR 파이프라인에게 — 그것은 우리가 아직 승리하지 못한 전장입니다.
이 글은 우리의 현재 위치를 솔직하게 살펴봅니다. 우리는 식품 라벨을 스캔하고, 텍스트를 추출하며, 개별 성분을 식별하고, 그 할랄 상태를 판단할 수 있는 시스템을 구축했습니다 — 이 모든 것이 몇 초 만에 이루어집니다. 이 시스템은 깨끗하고 평평하며 조명이 좋은 라벨에서는 놀라울 정도로 잘 작동합니다. 하지만 현실 세계의 포장재는 깨끗하고 평평하며 조명이 좋은 경우가 거의 없습니다. 실험실 수준의 정확도와 주방 카운터 위의 현실 사이의 간격이 바로 우리가 아직 해결하지 못한 가장 어려운 문제들이 있는 곳이며, 우리는 사용자들이 그 문제들이 정확히 무엇인지 알 권리가 있다고 생각합니다.
식품 포장이 OCR에 특히 어려운 이유
광학 문자 인식(OCR) 기술은 많은 발전을 이루었습니다. 현대 OCR 엔진은 인쇄된 문서를 거의 완벽한 정확도로 읽을 수 있습니다. 하지만 식품 라벨은 문서가 아닙니다. 그것은 통제되지 않은 조건에서 임의의 각도로 들린 휴대폰 카메라로 촬영된 3차원 물체입니다. 텍스트는 반짝이는 금속 포장재 위에 4포인트 글꼴로 인쇄되어 있을 수 있으며, 성분 목록은 물리적으로 단일 사진으로 담을 수 없는 모서리를 돌아가며 계속 이어질 수 있습니다.
일반적인 초콜릿 바를 생각해 보세요. 성분 목록은 다음과 같이 읽힐 수 있습니다: "설탕, 코코아 버터, 전지분유, 코코아 매스, 유화제 (E471), 천연 향료, 시트르산." 종이 위에서는 간단합니다. 하지만 곡선을 이루고 반사되는 포장재 위에서 형광등이 비추는 슈퍼마켓 조명 아래 촬영되면, OCR 엔진은 다음과 같이 반환할 수 있습니다: "Sugar, coc0a butt3r, whol€ milk powdr, cocoa ma55, emulsifi€r (E47I), natural f1avors, citr1c ac1d." 왜곡된 모든 단일 문자는 잠재적인 오식별입니다 — 그리고 할랄 검증에서 오식별은 제품이 안전하다고 표시되는지 의심스럽다고 표시되는지의 차이를 의미할 수 있습니다.
| 도전 과제 | 발생 현상 | 할랄 확인에 미치는 영향 |
|---|---|---|
| 곡면 | 텍스트가 왜곡되고, 가장자리에서 문자가 늘어나고 흐려짐 | 성분 이름이 잘리거나 합쳐짐 |
| 낮은 대비 인쇄 | 흰색 바탕에 연한 회색 텍스트, 또는 어두운 배경에 어두운 텍스트 | 성분 섹션 전체가 누락됨 |
| 반사광과 눈부심 | 카메라 플래시가 광택 포장재에 하얗게 타는 영역 생성 | 중요 성분이 반사광 아래 숨겨짐 |
| 다국어 라벨 | 동일 라벨에 3-6개 언어 텍스트가 종종 섞여 있음 | OCR이 언어를 혼합하여 하이브리드 단어 생성 |
| 아주 작은 글꼴 크기 | 법적으로 요구되는 텍스트가 최소 크기로 인쇄됨 | 문자가 모호해짐: I vs l vs 1 |
정제 문제: 원시 OCR에서 사용 가능한 성분으로
우리의 OCR 엔진이 라벨에서 텍스트를 성공적으로 추출하더라도, 원시 출력은 할랄 분석에 바로 사용될 수 있는 경우가 거의 없습니다. 텍스트는 "정제"되어야 합니다 — 엄청나게 복잡한 과정을 가리키는, 간단해 보이지만 속임수가 있는 단어입니다. 정제는 영양 정보, 알레르기 경고, 마케팅 문구 같은 주변 텍스트에서 성분 목록을 분리하는 것을 의미합니다. 그것은 긴 쉼표로 구분된 문자열을 개별 성분으로 분할하는 것을 의미합니다. 그것은 "E471"과 "유화제 (E471)" 그리고 "지방산의 모노- 및 디글리세리드"가 모두 동일한 물질을 가리킨다는 것을 인식하는 것을 의미합니다.
여기서 정말 어려운 부분이 시작됩니다. 식품 라벨은 보편적인 형식을 따르지 않습니다. 유럽에서는 성분이 일반적으로 무게 순으로 내림차순 나열되며, 쉼표로 구분되고, 알레르기 유발 물질은 굵게 표시됩니다. 미국에서는 형식은 비슷하지만 알레르기 표시 규칙이 다릅니다. 동남아시아에서는 같은 포장지에 말레이어, 인도네시아어, 아랍어, 영어로 라벨이 표시될 수 있습니다. 스칸디나비아 국가에서는 노르웨이어, 스웨덴어, 덴마크어, 핀란드어 성분 목록이 서로 겹쳐져 있고, E-번호가 일관되지 않게 사용되는 것을 발견할 수 있습니다.
우리의 파이프라인은 현재 규칙 기반 파싱과 LLM 지원 추출의 조합을 사용합니다. 규칙 기반 시스템은 잘 형식화된 라벨을 안정적으로 처리합니다: "성분:"을 찾고, 쉼표로 분할하고, 각 항목을 정규화합니다. 하지만 예외적인 경우에는 실패합니다 — 그리고 현실 세계에서는 예외적인 경우가 대부분입니다. "초콜릿 코팅 (설탕, 코코아 버터, 젤라틴, 글리세린)"과 같은 중첩된 괄호 안의 성분은 젤라틴과 글리세린이 코팅의 하위 성분이며 독립된 항목이 아니라는 것을 식별하기 위해 올바르게 파싱되어야 합니다. 괄호 중첩을 올바르게 처리하는 것은 놀랍도록 취약합니다.
| 원시 OCR 출력 | 기대되는 정제 결과 | 일반적인 실패 |
|---|---|---|
| sugar, palm 0il, whey p0wder | sugar, palm oil, whey powder | "palm 0il"이 팜 오일로 인식되지 않음 |
| E47l (mono-and diglycer1des) | E471 (mono- and diglycerides) | "E47l"이 알 수 없는 코드로 파싱됨 |
| ge1atin (bovlne) | gelatin (bovine) | "ge1atin"이 할랄-중요 플래그 누락 |
| Ingredienser: Sukker, melk... | [노르웨이어] Sugar, milk... | 언어 감지 실패, 영어로 된 횡설수설로 파싱됨 |
다국어 미로
HalalLens는 스칸디나비아, 동남아시아, 중동 및 서유럽 전역의 사용자들에게 서비스를 제공합니다. 노르웨이 식료품점에서 스캔한 단일 제품의 성분 표시는 노르웨이어, 스웨덴어, 덴마크어, 핀란드어로 기재되어 있을 수 있으며, 때로는 아랍어나 영어 섹션도 함께 포함됩니다. 우리의 OCR 엔진은 텍스트를 정확히 읽어내는 것뿐만 아니라 어떤 언어를 보고 있는지도 판단해야 합니다. 왜냐하면 동일한 물리적 단어가 다른 언어에서 다른 의미를 가질 수 있기 때문입니다.
진정한 악몽은 OCR 오류가 다국어 구문 분석과 상호작용할 때 시작됩니다. 엔진이 노르웨이어 "ø"를 "o"로 잘못 읽으면, 그 단어가 우연히 다른 언어에서는 유효한 단어가 될 수 있지만 완전히 다른 의미를 가지게 됩니다. 우리의 NLP 정제 파이프라인은 먼저 원본 언어를 감지한 다음 언어별 정규화 규칙을 적용하려고 시도하지만, 이 감지 작업 자체가 OCR 텍스트가 왜곡되었을 때는 신뢰할 수 없습니다. 이는 순환 문제가 됩니다: 언어를 감지하려면 깨끗한 텍스트가 필요하지만, 텍스트를 정제하려면 언어 정보가 필요합니다.
우리는 여러 접근법을 실험해 왔습니다: 명시적인 언어 힌트를 사용하여 OCR을 실행하는 방법, 가장 가능성 높은 판독 결과에 투표하는 앙상블 모델을 사용하는 방법, 그리고 왜곡된 단어가 '아마도' 무엇이었을지 추론할 수 있는 LLM으로 후처리를 하는 방법 등입니다. 각 접근법은 정확도를 점진적으로 향상시키지만, 근본적인 문제를 해결한 것은 없습니다. E120(카민)과 같은 제품은 동일한 라벨에 노르웨이어로 "karmin", 핀란드어로 "karmiini", 영어로 "cochineal"이라고 표기될 수 있으며, 이 모두가 동일한 핼랄 중요 성분으로 인식되어야 합니다.
현재 우리의 위치 — 그리고 다음 단계
우리는 현재의 정확도에 대해 투명하게 알리고자 합니다. 조명이 좋고 평평하며 대비가 뚜렷한 영어 라벨에서는 우리의 파이프라인이 강력한 결과를 달성합니다 — 대부분의 성분을 정확히 식별하고 분류합니다. 다국어로 되어 있거나 곡면이 있거나 손상된 포장에서는 정확도가 눈에 띄게 떨어집니다. 우리는 신뢰도 점수로 이를 보완합니다: 시스템이 OCR 판독 결과나 성분 식별에 대해 확신이 없을 때는 결과에 플래그를 표시하고 사용자가 수동으로 다시 확인하도록 권장합니다.
| 조건 | 성분 추출 | 핼랄 분류 |
|---|---|---|
| 깨끗하고 평평한 영어 라벨 | 높음 | 높음 |
| 다국어 유럽 라벨 | 보통 | 보통 |
| 곡면/반사 포장 | 보통 | 보통 |
| 손상됨, 매우 작음, 또는 낮은 대비 | 낮음 | 낮음 |
OCR 정제를 개선하기 위한 우리의 로드맵에는 몇 가지 유망한 방향이 포함되어 있습니다. 첫째, 비전-언어 모델을 탐구하고 있습니다 — 개별 문자뿐만 아니라 원본 이미지를 보고 맥락을 이해할 수 있는 AI 시스템입니다. "ge1atin"을 읽고 나중에 수정하려고 시도하는 대신, 비전-언어 모델은 시각적 맥락으로부터 이것이 성분 목록이며 그 단어가 거의 확실히 "gelatin"이라는 것을 인식할 수 있습니다. 둘째, 알려진 OCR 오독 데이터베이스를 구축 중입니다 — 수천 번의 스캔에서 본 패턴을 기반으로 "E47l"과 같은 일반적인 오류를 "E471"로 매핑하는 퍼지 매칭 레이어입니다. 셋째, 사용자 피드백 루프에 투자하고 있으며, 커뮤니티가 OCR 오류를 수정하면 시스템이 훈련되어 미래에 비슷한 실수를 피할 수 있도록 합니다.
이 해결책들 중 어느 것도 완벽하지 않을 것입니다. 휴대폰 카메라 사진에서 작고, 곡면이며, 다국어로 된 텍스트를 읽는 근본적인 문제는 결코 완전히 해결되지 않을 수 있습니다 — 이는 광학, 타이포그래피, 언어학 및 문화적 변이의 교차점에 있는 문제로, 현재 기술의 한계에 부딪히고 있습니다. 하지만 우리는 이러한 한계에 대한 정직한 소통과 꾸준한 점진적 개선이 올바른 접근법이라고 믿습니다. 우리가 처리하는 모든 왜곡된 라벨은 우리 시스템에 새로운 것을 가르칩니다. 모든 사용자 수정은 다음 스캔을 더 정확하게 만듭니다.
핵심 요약
- ✓ 실제 식품 포장은 곡면, 눈부심, 작은 글꼴, 다국어 텍스트와 같은 도전 과제를 제시하며, 이는 OCR을 평평한 문서 스캔보다 훨씬 어렵게 만듭니다.
- ✓ "ge1atin"이나 "E47l"과 같은 OCR 오류는 중요한 핼랄 성분이 잘못 식별되거나 완전히 누락되는 결과를 초래할 수 있습니다.
- ✓ 다국어 라벨은 순환 문제를 만듭니다: 언어를 감지하려면 깨끗한 텍스트가 필요하지만, 텍스트를 정제하려면 언어 감지가 필요합니다.
- ✓ HalalLens는 신뢰도 점수를 사용하여 불확실한 결과에 플래그를 표시하고, OCR 품질이 낮을 때 사용자가 수동으로 확인하도록 권장합니다.
- ✓ 비전-언어 모델, 퍼지 매칭 데이터베이스, 커뮤니티 피드백 루프가 가장 유망한 발전 방향입니다.
HalalLens 사용해 보기 — 우리가 더 나아지는 데 도움 주기
여러분이 하는 모든 스캔은 우리 시스템이 학습하는 데 도움이 됩니다. HalalLens를 사용하여 핼랄 상태를 즉시 확인해 보세요. 그리고 우리 OCR이 실수할 때, 여러분의 수정 사항은 다음 스캔을 모든 사람에게 더 정확하게 만듭니다.
HalalLens 무료로 사용해보기면책 조항: 본 문서는 교육 목적을 위한 것이며, 2026년 2월 기준 당사 기술의 현재 상태를 반영합니다. HalalLens는 AI 지원 핼랄 검증을 확정적인 종교적 판결이 아닌 유용한 도구로 제공합니다. 핼랄 식이 문제에 대한 권위 있는 지침은 항상 자격을 갖춘 이슬람 학자들과 상담하십시오.