HOSUGATOR.
전체 프로젝트
#VLM#OpenVINO#FastAPI

Sodamdiary: 시각장애인을 위한 음성 기반 사진 해설 앱

개요

운영비 30%↓·응답 30초→20초. GPT-4V 단독 운영(월 130만원)을 BLIP+CLIP+LLM 3-Stage 파이프라인으로 대체, OpenVINO 4-bit 양자화+asyncio 병렬 처리. 2025 한국장애인해커톤 본선 진출.

맥락

시각장애인이 찍은 사진을 음성으로 해설해주는 다이어리 앱입니다. GPT-4V 단독 사용 시 월 130만원 비용과 30초 응답 지연이 UX를 심각하게 저해했습니다. 이미지의 구체적 묘사(객체·텍스트)와 감성적 분위기(따뜻함·생동감)를 함께 전달해야 하는 멀티모달 과제로, 비용과 품질을 동시에 만족하는 대안 아키텍처가 필요했습니다.

핵심 의사결정

GPT-4V 단일 의존에서 BLIP/CLIP/LLM 3-Stage 역할 분담으로 전환했습니다. BLIP(구체 묘사 캡션) + CLIP(감성 분위기 Top-3 분류) + LLM(자연어 해설 생성)이 각각 전문 역할만 담당합니다. GPT-4V 의존을 제거해 비용 구조를 바꾸고, OpenVINO 4-bit 양자화로 BLIP/CLIP을 로컬 경량화하여 응답 속도를 개선했습니다.

구현

OpenVINO 4-bit 양자화

BLIP·CLIP에 OpenVINO 4-bit 양자화와 asyncio 병렬 처리를 적용해 BLIP+CLIP을 동시 실행 후 결과를 합산합니다. 응답 30초→20초, 운영비 30%↓를 달성했으며 GPU 없이 CPU 추론이 가능합니다.

Django → FastAPI 전환

Django 동기 ORM이 병렬 처리 병목이 되어 FastAPI + asyncio로 완전 재구축했습니다. Docker + AWS EC2 배포로 운영 안정성을 확보하고 동시 요청 처리 성능을 개선했습니다.

asyncio 병렬화 & CLIP 감성 분류

BLIP(구체 묘사)과 CLIP(감성 분위기)을 asyncio.gather로 동시 실행해 총 소요시간을 max(BLIP, CLIP)로 단축합니다. CLIP은 사전 정의 감성 레이블 20개와 이미지 임베딩의 코사인 유사도로 Top-3 분위기를 수치화해 LLM 해설 품질을 높입니다.

접근성 중심 UX 설계

STT → AI 해설 → TTS 완전 음성 루프로 화면·텍스트 없이 사진을 "듣는" 경험을 구현했습니다. 시각장애인 사용자 테스트 피드백을 반영하고 해설 길이·속도 조절 기능을 추가했습니다.

아키텍처
성과 & 회고

2025 한국장애인해커톤 본선에 진출했습니다. GPT-4V 대비 운영비 30% 절감, 응답 30초→20초를 달성하고 BLIP+CLIP 병렬로 Stage 1·2를 동시 처리했으며 시각장애인 테스트에서 긍정 피드백을 받았습니다. 양자화로 속도는 개선됐으나 BLIP의 복잡한 이미지 묘사 정확도가 하락하여, LLaVA 등 강력한 오픈소스 VLM 교체와 파인튜닝 데이터 확보가 품질 개선의 핵심 과제입니다.

기술 스택
BLIPCLIPOpenVINO 4-bitFastAPIasyncioDockerAWS EC2Kotlin