← 포트폴리오 목록

스포츠 대회 사진 배번호 매칭 배치 관제 콘솔

스포츠 대회·이벤트 사진 플랫폼에서 20만~100만 장 규모의 대회 사진을 대상으로 배번호를 자동 검출·판독하고, Golden Sample 기반 2-Pass 유사도 매칭으로 미인식 사진까지 구제하는 대용량 배치 처리 파이프라인을 설계·구현합니다.

Golden Sample 2-Pass 필터링 파이프라인 설계InsightFace 얼굴벡터+HSV/ReID 의상벡터를 pgvector로 검색하는 1차·2차 유사도 매칭 로직 구현
GPU 오토스케일 스케줄러 구현Redis 큐 depth를 트리거로 EC2 Spot 인스턴스를 동적 기동·회수하는 온디맨드 스케줄링 로직 설계
분산 워커 실시간 관제 레이어 구축Celery heartbeat와 WebSocket을 결합해 다중 GPU 워커 상태를 지연 없이 반영하는 구조 설계
서비스 타입Web
업종모니터링
기술 스택
React 18 + TypeScriptFastAPI (Python 3.10+)YOLO v8/v11 + PaddleOCR/EasyOCRInsightFace + OpenCVCelery + RedisPostgreSQL + pgvectorAWS S3 + EC2 SpotDockerRecharts
주요 기능
  • 배번호 검출 · OCR 배치 모니터링
  • Golden Sample 매칭 결과 뷰어
  • 분산 GPU 워커 모니터링
  • GPU 오토스케일 인프라 제어
Overview

프로젝트 개요

범위: 개발, 디자인, 기획
스포츠 대회·이벤트 사진 플랫폼에서 20만~100만 장 규모의 대회 사진을 대상으로 배번호를 자동 검출·판독하고, Golden Sample 기반 2-Pass 유사도 매칭으로 미인식 사진까지 구제하는 대용량 배치 처리 파이프라인을 설계·구현합니다. 관리자는 Vision AI 배치 파이프라인의 진행 상황과 분산 GPU 워커 상태, 0.1초(100ms) 이내 고속 조회 성능까지 하나의 관제 콘솔에서 실시간 모니터링합니다.
스포츠 대회 사진 배번호 매칭 배치 관제 콘솔
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

가려진 배번호·역광·군집 사진에서 검출 실패율이 높아질 수

YOLO confidence 임계값과 재시도 전략 설계 필요

대량 배치 처리 중 특정 GPU 워커 장애 시 작업 유실 없이 재분배하는 Celery 재시도·데드레터 큐 설계

얼굴·의상 벡터 유사도 임계값을 느슨하게 잡으면 오매칭

엄격하게 잡으면 구제율이 낮아지는 트레이드오프 튜닝 필요

EC2 Spot 인스턴스 회수 타이밍과 배치 큐 소진 시점 간 경합으로 작업 중단 리스크

그레이스 기간 설계 필요

핵심 기능 1

배번호 검출 · OCR 배치 모니터링

관리자가 업로드된 대회 사진 배치에 대해 YOLO 기반 배번호 검출과 OCR 판독이 진행되는 상황을 실시간 카드·차트로 확인합니다
배번호 검출 · OCR 배치 모니터링
핵심 기능 2

Golden Sample 매칭 결과 뷰어

배번호 인식에 성공한 사진에서 추출한 얼굴·의상 벡터(Golden Sample)로, 미인식 사진을 1차 얼굴 유사도·2차 의상 특징 매칭으로 구제한 결과를 관리자가 검토합니다
Golden Sample 매칭 결과 뷰어
핵심 기능 3

분산 GPU 워커 모니터링

Celery+Redis 기반 다중 GPU 워커의 가동 상태, 큐 대기량, 처리 속도를 실시간으로 모니터링합니다
분산 GPU 워커 모니터링
핵심 기능 4

GPU 오토스케일 인프라 제어

배치 실행 시에만 AWS EC2 Spot GPU 인스턴스를 동적으로 가동하고 종료 후 자동 회수하는 온디맨드 인프라 상태를 관리자가 제어합니다
GPU 오토스케일 인프라 제어
구현 과정

프로젝트 진행 단계

STEP 1

배치 파이프라인 아키텍처 및 DB 스키마 설계

bib_photo_matches 매핑 테이블 설계, Celery+Redis 큐 구조 정의, S3 업로드 트리거 설계

STEP 2

Vision AI 검출·매칭 파이프라인 구현

YOLO 배번호 검출, PaddleOCR/EasyOCR 판독, InsightFace Golden Sample 추출, 2-Pass 필터링 로직 구현

STEP 3

분산 워커 및 GPU 오토스케일 인프라 구축

Celery 다중 GPU 워커 구성, EC2 Spot 온디맨드 기동/회수 스케줄러 구현

STEP 4

관제 대시보드 UI 및 실시간 연동

React 기반 커맨드 콘솔 UI 구현, WebSocket으로 배치 진행률·워커 상태 실시간 반영

STEP 5

통합 테스트 및 조회 성능 검증

샘플 데이터셋 기준 파이프라인 통합 테스트, 배번호 조회 API 100ms 이내 응답 구조 검증

프로젝트 성과
Golden Sample 2-Pass 필터링 파이프라인 설계InsightFace 얼굴벡터+HSV/ReID 의상벡터를 pgvector로 검색하는 1차·2차 유사도 매칭 로직 구현
GPU 오토스케일 스케줄러 구현Redis 큐 depth를 트리거로 EC2 Spot 인스턴스를 동적 기동·회수하는 온디맨드 스케줄링 로직 설계
분산 워커 실시간 관제 레이어 구축Celery heartbeat와 WebSocket을 결합해 다중 GPU 워커 상태를 지연 없이 반영하는 구조 설계
배번호 조회 API 응답 구조 설계pgvector 인덱스와 캐시 계층을 결합해 100ms 이내 응답 처리 구조를 구현
Review

기술적 주안점

  • 오픈소스 Vision 모델 파이프라인의 처리 상태를 관리자가 실시간으로 관찰할 수 있는 모니터링 계층을 배치 로직과 분리해 설계합니다
  • 2-Pass 필터링 판정 근거(얼굴 유사도 점수, 의상 매칭 점수)를 함께 노출해 관리자가 매칭 결과를 수동으로 재검토·조정할 수 있는 구조를 설계합니다
  • 다중 GPU 워커 환경에서 병목 지점을 즉시 파악할 수 있도록 워커·큐 지표를 한 화면에 통합하는 관제 레이아웃을 설계합니다

유사한 프로젝트를 기획하고 계신가요?

FIRSTPIP이 개발 범위와 로드맵을 함께 정리해드립니다

무료 상담 시작하기