Project brief

Landmark Assistant

사용자가 사진 또는 검색어를 입력하면 지원 범위의 랜드마크 후보를 보여주고, 낮은 신뢰도·범위 밖·저품질 입력은 확정 답처럼 말하지 않는 온디바이스 AI 시연 프로젝트다. 현재 최신 기준은 Flutter 온디바이스 앱에 MobileCLIP2-S3 FP16 mixed image/text encoder bundle을 연결하고, 23-class landmark 결과를 catalog와 상세정보에 안정적으로 매핑하는 것이다.

23 지원 landmark class
S3 MobileCLIP2 app candidate
FP16 mixed image/text encoder
4-way confidence policy

현재 한 줄 결론

현재 앱 탑재 후보는 MobileCLIP2-S3 FP16 mixed image/text encoder bundle이다. Sprint 1의 MobileCLIP2-S4 + dynamic INT8 ONNX + Streamlit demo 경로는 재현 가능한 이전 시연 기준으로 보존한다.

제품 요구사항 요약

이 프로젝트가 해결하려는 문제는 장소명 없이 사진만 있는 상황에서 랜드마크를 찾고, 애매하거나 범위 밖인 입력은 안전하게 거절하는 것이다. 주 사용자는 국내외 관광객이며, Sprint 2에서는 이미지 입력, Top-3 후보, 상세 정보, 자연어 검색, 신뢰도 상태, 로그 저장을 Flutter 앱 구조와 최신 model artifact 계약으로 연결하는 데 집중한다.

상세한 프로젝트 개요, 타겟 고객, 유저스토리, 핵심 기능, 기술 스택, 수용 기준은 Product Requirements and User Stories에 정리했다.

왜 이 방향인가

Recognition

S3 앱 후보 선택

현재 앱 전달 후보는 23-class MobileCLIP2-S3 FP16 mixed bundle이다. S4는 Sprint 1 기준과 비교 실험의 중요한 이전 후보로 보존한다.

Runtime

FP16 ONNX bundle

앱 전달 기준은 image encoder와 text encoder를 분리한 FP16 mixed ONNX bundle이다. INT8은 Sprint 1 재현 및 향후 최적화 후보로 분리한다.

Trust

4-way 신뢰도 정책

정답처럼 보이는 Top-3만으로는 화면 캡처, 범위 밖 이미지, 애매한 결과를 안전하게 다루기 어렵다.

Evidence

NPU latency는 근거로 분리

AI Hub w8a16은 NPU 100% 탑재와 latency 측정에는 의미가 있지만, 정확도 붕괴 때문에 시연 모델로 쓰지 않는다.

현재 산출물

산출물 역할 현재 기준
lpcvc-2026-CNU/App Flutter 온디바이스 앱. 최신 모델 연동 이슈를 기준으로 모델 로딩, catalog, score 정책을 수정해야 한다.
mobile_artifacts/fp16/ MobileCLIP2-S3 image/text encoder ONNX, external data, manifest, preprocessing, tokenizer, prototype index. 앱 전달 후보 artifact.
assets/landmark_info.json 상세정보, parent/sub-landmark, 이름/태그 검색용 metadata. 23-class 기준으로 갱신 필요.
text_encoder + tokenizer + text index/catalog 자연어 검색용 semantic embedding 경로. 앱에서는 keyword search와 semantic search를 분리해 구현해야 한다.

팀원이 먼저 읽을 순서

  1. Model Serving Contract - 최신 앱과 모델의 입출력 계약.
  2. App Model Integration Issue - Flutter 앱에서 수정해야 할 P0/P1/P2 작업.
  3. Flutter On-device App Architecture - 앱 내부 계층과 DB/asset 구조.
  4. Product Requirements - 제품 목표와 유저스토리.
  5. Current Handoff - Sprint 1에서 Sprint 2로 넘어간 legacy 인수인계.

이전 기준으로 보존하는 것

Sprint 1의 landmark-demo-app, mobile_artifacts_int8/, python run.py --int8, MobileCLIP2-S4 기준 문서는 삭제하지 않는다. 다만 현재 앱 구현 기준은 아니며, 이전 시연 재현과 설계 변경 이유를 설명하는 legacy 문서로 관리한다.