Shelfie: 75달러짜리 라즈베리 파이와 Gemma 4만으로 책 스캐너를 완전 구축.

발행: (2026년 5월 25일 AM 12:12 GMT+9)
7 분 소요
원문: Dev.to

출처: Dev.to

이 글은 Gemma 4 Challenge: Build with Gemma 4에 제출한 내용입니다.
Shelfie — 카메라를 책장에 향하면 Gemma 4가 모든 책을 식별하고, 평점·설명까지 포함한 전체 카탈로그를 만들며, 다음에 읽을 책을 추천해 줍니다.
클라우드 API 없이, 토큰당 비용 없이, 가정용 하드웨어만으로 동작합니다.

시도해 보기: github.com/scastile/shelfie

Gemma 4 E4B 세 번의 호출만으로 모든 작업을 수행

  1. 감지 — 사진을 전송 → Gemma 4의 비전 모델이 모든 책등을 스캔하고 제목·저자·장르를 담은 JSON 배열을 반환합니다.
  2. 보강 — 감지된 책들을 배치로 다시 전송 → Gemma가 설명, 평점, 페이지 수, “추천 대상” 등을 추가합니다.
  3. 요약 — 전체 카탈로그를 분석 → 장르 비율, 읽을 거리 제안, 컬렉션 속 “숨은 보석”을 알려줍니다.

전체 추론 시간: 내 홈랩(Ryzen 7 + RTX 1060)에서 약 8분. 여기까지입니다.

네 가지 변형을 모두 테스트했습니다. 아래가 솔직한 결과입니다.

모델파라미터4‑bit 크기비전 품질속도Shelfie 적합도
E2B~2.3 B1.5 GB작은 텍스트에 취약빠름❌ 책등을 신뢰성 있게 읽지 못함
E4B~4.5 B2.1 GB우수보통✅ 최적의 균형점
26B MoE26 B/4 B13 GB약간 더 좋음빠름⚠️ 과도함, 서버 GPU 필요
31B Dense31 B16 GB약간 더 좋음느림❌ 24 GB 이상 VRAM 필요

E4B는 테스트 사진에서 16권을 찾았고, E2B는 6권만 찾으며 나머지는 환각했습니다. 더 큰 모델들은 1~2권 정도 더 찾을 수 있었지만, 대부분이 갖추지 못한 하드웨어가 필요합니다.

핵심 인사이트

  • 비전 작업에서 E2B → E4B 로의 도약은 엄청납니다.
  • E4B → 31B 로의 도약은 미미합니다.
  • 따라서 E4B가 로컬 멀티모달 AI를 실제로 활용할 수 있게 하는 모델입니다.

주요 특징

  • 네이티브 멀티모달 입력 — 이미지 + 텍스트를 하나의 메시지로 전송, 별도 비전 인코더 파이프라인 불필요.
  • 구조화된 JSON 출력 — Gemma가 바로 깔끔한 JSON을 반환, 책 제목 파싱을 위한 정규식 해킹 불필요.
  • 128K 컨텍스트 윈도우 — 한 번에 10~15권을 배치 보강 가능.
  • Apache 2.0 라이선스 — 영구 운영 가능, 청구 대시보드에 대한 불안감 제로.

Shelfie는 내 Ubuntu 서버에서 실행되며, 로컬 머신(Ryzen 7 5700X + RTX 1060 6GB)에서 LM Studio를 OpenAI 호환 API로 호출합니다.

전체 파이프라인은 순수 Python(≈200줄)이며, 이미지 전처리는 Pillow, API 호출은 urllib, ML 프레임워크는 전혀 사용하지 않습니다.

  • 감지는 스트리밍을 이용해 큰 응답도 타임아웃 없이 처리합니다.
  • 보강은 10권씩 배치 호출해 컨텍스트 제한을 지킵니다.
  • 요약은 전체 카탈로그를 한 번에 받아 책 간 연관성을 추론합니다.

이미지 크기의 중요성

  • 400 px 폭: 감지에 약 100 s 소요, 15~20권 탐지.
  • 800 px 폭: 감지에 약 45 s 소요, 40권 이상 탐지.
    Payload 크기와 정확도 사이의 트레이드오프이며, Shelfie에서는 400 px가 최적입니다.

프롬프트 최적화

  • 초기 감지 프롬프트는 책당 5개 필드를 요청했지만, 4개(짧은 키: t, a, g, c) 로 줄이면서 토큰 제한 내에서 탐지 가능한 책 수가 거의 두 배가 되었습니다.

스트리밍은 필수

LM Studio의 비스트리밍 엔드포인트는 큰 응답 시 120 s에서 타임아웃되지만, 스트리밍은 생성되는 대로 청크를 전달해 1600 자 정도의 감지 응답을 ≈100 s에 문제없이 받아볼 수 있습니다.

“작지만 능력 있는 모델이 승리한다”는 규칙이 그대로 적용

E4B를 3060 GPU에서 실행하면, 클라우드 API의 31B 모델보다 이 작업에서 더 빠르고, 비용도 없으며, 프라이버시도 보장됩니다.


앞으로 추가하고 싶은 기능

  • 웹 UI (Gradio 또는 Streamlit)
  • 높은 책장을 위한 다중 사진 스티칭
  • Goodreads / LibraryThing 연동
  • Gemma가 읽지 못하는 책등을 위한 OCR 백업
  • 원-클릭 배포용 Docker 이미지

Shelfie는 Gemma 4 E4B를 활용해 사진 한 장으로 책장을 전체 스캔하고, 메타데이터를 보강하며, 읽을 거리까지 제안합니다. 로컬에서 실행되며 비용이 들지 않고, 약 200줄의 Python 코드만으로 구현됩니다. E4B는 Gemma 4 라인업 중 과소평가된 최고의 스위트 스폿입니다.

코드: github.com/scastile/shelfie

0 조회
Back to Blog

관련 글

더 보기 »

내 스킬

프로젝트를 위한 AI 지시문을 만들고, 설치하고, 관리하세요 — 코딩이 필요 없습니다. CREATE 이름을 정하고, 카테고리를 선택하고, 원하는 것을 설명하세요 — 마법사가 자동으로 구성합니다.