경농(주)이 스마트팜 앱 '파밍노트'에서 농약 제품 이미지를 촬영하면 자동으로 제품 정보를 찾아주는 AI 인식 시스템을 구축한 과정을 다룬다. 약 4,000종의 유사한 농약 제품명을 흐릿한 사진·오타·디자인 폰트에서도 정확히 식별하기 위해 Vision LLM + TypoCorrector + 계층적 Fallback 검색 + LLM Reranker 4단계 파이프라인을 설계했다.
핵심 포인트- Vision LLM(Claude Haiku 4.5)으로 라벨에서 텍스트를 추출하되, temperature 0.0, max_tokens 500 압축 JSON 전략으로 응답 속도를 줄였다.
- OCR 오타는 RapidFuzz WRatio 스코어러(제품명 임계값 75, 제조사 80)로 보정 후 신뢰도를 0.2 상향 조정해 검색에 반영했다.
- OpenSearch에서 exact match(boost 100) → prefix/suffix wildcard(boost 40~45) → 등록번호(boost 80) 순의 계층적 쿼리로 약 30개 후보를 추출한다.
- 벡터 검색(Amazon Titan Embedding v2)을 테스트했지만 고유명사 미세 차이가 벡터 공간에서 구분되지 않아 키워드 검색+wildcard 방식을 최종 채택했다.
- 외부 OCR 엔진(Upstage, EasyOCR, Tesseract) 앙상블을 검토했으나 비용·레이턴시 문제로 제외, Vision LLM 단독 + 프롬프트 튜닝으로 대체했다.
상세 정리- 배경: 경농 파밍노트 앱에서 고령 농민이 농약 제품을 스마트폰으로 촬영하면 정보를 자동 조회하는 AI렌즈 기능 구현이 목표였다.
- 난제: 흐릿한 사진, 회전, 캘리그라피 디자인 폰트, 비슷한 이름(가네마이트 vs 카네마이트) 구분이 핵심 과제였다.
- Vision LLM 설정: Claude Haiku 4.5, temperature 0.0, max_tokens 500. 응답을 압축 JSON으로 받아 서버에서 표준 형식으로 변환, 각 필드별 신뢰도(0.0~1.0) 함께 반환.
- 이미지 상태 분류: CLEAR / ROTATED / MULTIPLE / NOT_FOUND 4가지로 진단하여 CLEAR가 아닌 경우 재촬영 안내.
- 디자인 폰트 극복: 프롬프트에 "제품명은 라벨에서 가장 크고 눈에 띄는 텍스트"를 명시하는 것만으로 모델이 시각적 레이아웃을 파악하게 됐다.
- 등록번호 구분: 형식 숫자-[살충|제초|살균]-숫자 명시 + 위험물 코드(H5, H8)와의 혼동 방지 지침을 프롬프트에 직접 기술.
- TypoCorrector: 서버 시작 시 전체 제품명 4,000개·제조사 200개를 메모리에 캐싱, RapidFuzz WRatio로 1~2글자 오류 보정. 보정 후 해당 필드 신뢰도 0.2 상향.
- 검색 쿼리 설계: 제품명으로 exact match, 앞/뒤 절반 prefix/suffix wildcard, 등록번호, 제조사, 품목명 등 6~7개 쿼리를 bool should로 조합. wildcard boost 공식은 50 - (제품명길이 - prefix길이) x 5.
- Wildcard 성능: Leading wildcard는 인덱스 전체 스캔이지만 4,000종 규모에서 체감 지연 없음, 재현율 확보 우선.
- LLM Reranker: OpenSearch에서 exact match 발견 시 후보 1~2개로 압축, 원본 이미지와 함께 멀티모달 재검증. 제형·용량 미세 차이까지 구분.
- ETL 파이프라인: 등록번호/제조사/용도/등급의 한국어 표기 변형을 미리 생성해 인덱싱. Nori Tokenizer + 동의어 확장 적용. Blue-Green 배포로 서비스 중단 없이 인덱스 갱신.
- 모델 선택: Haiku 4.5(응답 1~3초)를 Sonnet 4.5(3~8초)보다 선택. 개별 모델 정확도에 의존하지 않는 다중 보완 구조이기 때문.
- 운영 콘솔: Next.js 15 기반 Mega Dev Console에서 Text-to-SQL/DSL, AI 메타데이터 자동 생성, 자연어 Cron 스케줄링, OCR 실험실 기능 제공.
- 결과: 1~2글자 오타는 TypoCorrector + Fallback으로 대부분 보정, 평균 5초 내외 응답 속도 달성. 오인식이 심한 극단 케이스는 미해결 과제로 남음.
왜 읽나Vision LLM 단독 사용 대신 OCR 오타 보정 + 계층적 키워드 검색 + LLM Reranker를 조합해 실용적인 정확도를 확보한 구체적 설계와 파라미터가 담겨있어, 유사한 이미지 인식·검색 시스템을 구축하는 AI/백엔드 엔지니어에게 유용하다.