VODA

VODA

2026년 2월 11일 - 2026년 2월 12일
Backend Developer

Introduction

무인매장 이상탐지 및 고객 점주간 실시간 소통 서비스

Tech Stack

python
python
mmaction2
mmaction2
AI
AI

📋 VODA (보다)

🎯 프로젝트 개요

설명: **"보이지 않는 곳을 보다, 오해를 넘어 소통으로"**라는 슬로건을 가진 AI 기반 무인 매장 이상행동 탐지 및 실시간 소통 솔루션입니다. 단순히 절도를 감시하는 것을 넘어, AI의 판단 결과를 기반으로 점주와 고객을 WebRTC 화상 통화로 연결하여 오해를 해소하고 원만한 합의를 돕는 서비스를 개발했습니다.
기간: 202X.XX ~ 202X.XX (SSAFY 14기 공통 프로젝트)
인원: 6명 (AI Lead 1, Backend 2, Frontend 3, Infra 1)

👤 내 역할

역할: AI Lead, Backend Developer
담당 파트:

🛠️ 기술 스택

[속성 입력용 요약]

AI (Core Contribution)

FastAPI: 경량화된 AI 서빙 서버 구축
YOLOv8n: 실시간 객체 탐지 (사람, 상품 인식)
TSM (Temporal Shift Module): 시계열 데이터 기반의 행동 인식 (절도 제스처 판단)
PyTorch: 딥러닝 모델 추론 환경 구성

Backend

Spring Boot 3.5: AI 서버로부터 수신된 이벤트를 처리하고 알림을 발송하는 비즈니스 로직 구현

<aside> 💡

핵심 기술 결정: YOLO + TSM 하이브리드 모델 단일 프레임에서 객체를 찾는 YOLO만으로는 '물건을 쥐는 것'과 '훔치는 행동'을 구분하기 어려웠습니다. 시간의 흐름을 반영하는 **TSM(Temporal Shift Module)**을 결합하여 행동 인식 정확도를 높이고 오탐을 최소화했습니다. </aside>

🐛 트러블 슈팅

문제 1: 단일 프레임 기반 객체 탐지의 한계와 높은 오탐률

원인: YOLOv8만 사용할 경우, 단순히 물건을 들고 있는 동작을 절도로 오인하거나, 짧은 순간의 노이즈로 인해 잘못된 알림이 빈번하게 발생했습니다.
해결: Voting / Threshold 전략을 도입했습니다. 특정 시간 동안 연속된 프레임에서 이상행동이 감지되는 횟수를 카운트(Voting)하고, 임계값(Threshold)을 넘었을 때만 실제 이벤트로 판단하도록 로직을 설계했습니다.
결과: AI의 일시적인 판단 오류를 걸러내고, 안정적인 탐지 결과를 사용자에게 제공할 수 있었습니다.

문제 2: 실시간 처리를 위한 AI 서버 성능 최적화

원인: 고해상도 CCTV 영상을 실시간으로 분석하면서 YOLO와 TSM 모델을 동시에 추론하는 과정에서 서버 부하가 발생했습니다.
해결: AI 모델을 FastAPI 기반의 비동기 서버로 구축하고, 모델 경량화(YOLOv8n 사용)를 통해 추론 속도를 확보했습니다. 또한, 필요한 프레임만 선별하여 처리하는 방식으로 리소스를 효율적으로 관리했습니다.
결과: 지연 없는 실시간 이상행동 감지 시스템을 구현하고, 점주 앱 알림까지의 레이턴시를 최소화했습니다.

📚 배운 점

AI의 실효성과 한계 극복: 기술적으로 완벽한 AI 모델을 만드는 것보다, 오탐 가능성을 인정하고 이를 보완할 UX(화상 통화 연결)를 설계하는 것이 실제 서비스에서 더 중요하다는 것을 깨달았습니다.
이종 시스템 간 통합: Python 기반의 AI 서버와 Java 기반의 백엔드 서버를 연동하며, 데이터 파이프라인 설계 및 통신 프로토콜 정의 역량을 키웠습니다.

📊 성과

AI 파이프라인 안정화: YOLOv8 + TSM 결합 모델 성공적 구현 및 서비스 적용
실시간 대응 시스템: 이상행동 감지 시 즉시 알림 및 화상 통화 연결 프로세스 완성

📸 스크린샷

[AI 파이프라인 구조도] (CCTV 입력 -> YOLO 객체 탐지 -> TSM 행동 분석 -> Voting 판단 -> 결과 전송)
[이상행동 감지 시나리오 예시] (물건 집음 -> 가방에 넣음 -> AI 경고 발생)

🎨 추천 시각화 포인트 (그림 넣기)

1. AI 프로세스 파이프라인 (Process Pipeline)

목적: 복잡한 AI 로직을 한눈에 보여줍니다. 내용: Input Video -> YOLO (Object Detection) -> Action Recognition (TSM) -> Voting System -> Alert Trigger효과: "이 친구가 단순히 모델만 가져다 쓴 게 아니라, 전체 흐름을 설계했구나"를 보여줍니다.

2. Voting / Threshold 로직 도식화

목적: 오탐을 줄이기 위한 본인의 아이디어를 설명합니다. 내용:

3. 시스템 아키텍처 (System Architecture)

목적: AI 서버와 백엔드 서버의 관계를 보여줍니다. 내용: AI Server (FastAPI) <--(HTTP/Socket)--> Main Server (Spring Boot) <--(FCM)--> Owner App효과: 전체 시스템을 조망하는 능력을 어필합니다.