face recognition 최적화 계획과 기대 성능 지표 - 100-hours-a-week/5-yeosa-wiki GitHub Wiki

1. 최적화 계획 (단계별 조치)

항목 조치 도입 효과
1. 이미지 다운로드 병렬화 ThreadPoolExecutor 또는 aiohttp 기반 병렬 처리 GCS 다운로드 시간 감소
2. 고해상도 이미지 크기 제한 얼굴 인식 전 이미지 리사이즈 (예: 512×512) HOG 탐지 속도 안정화
3. dlib 임베딩 모델 교체 PyTorch 기반 ArcFace or InsightFace → 배치 처리 가능 속도 향상
4. 거리 계산 최적화 faiss.IndexFlatIP + normalize 사용 cosine distance 처리 시간 수배 단축
5. DBSCAN 파라미터 튜닝 eps, min_samples 실험 기반 보정 노이즈 제거, 과소/과대 그룹핑 방지

2. 기대 성능 지표

항목 기준 (최적화 전) 목표 (최적화 후) 설명
총 처리 시간 (100장) 약 60초 이상 약 30~35초 GCS I/O + 임베딩 최적화 기준
GCS 다운로드 시간 10~15초 (직렬) 4~6초 (병렬) Thread 병렬 다운로드 기준
얼굴 인식 속도 0.6s/장 0.4s/장 해상도 축소 후 HOG 기준
임베딩 처리 약 0.3s/장 (dlib 단일) 0.05~0.1s/장 (배치 처리) PyTorch 모델 배치 입력 기준
distance 계산 시간 O(n²) numpy FAISS로 2배 이상 개선 cosine distance 병렬 계산
CPU 사용량 평균 300% 이상 200% 제한 (2코어 내) cgroups 제어 적용 기준
메모리 사용량 최대 448MB+ 512MB 제한 내 안정 거리 행렬 + 벡터 처리 기준
OOM 발생률 존재 0% memory.limit_in_bytes 적용