face recognition 병목 요소 식별 - 100-hours-a-week/5-yeosa-wiki GitHub Wiki
병목 지점 식별
단계 |
설명 |
병목 원인 |
영향 |
① GCS 이미지 다운로드 |
GCS URL 이용 |
순차적 HTTP 요청, 네트워크 지연 |
이미지 수 증가 시 전체 대기 시간 급증 |
② 얼굴 인식 (HOG) |
이미지당 얼굴 탐지 |
CPU 단일 연산, 반복 호출 |
이미지 해상도 및 얼굴 수에 따라 지연 |
③ 임베딩 추출 |
얼굴 → 128D 벡터 |
Numpy 기반 연산 부하 |
탐지된 얼굴 수에 비례하여 증가 |
④ 거리 계산 (cosine) |
N x N pairwise 계산 |
O(n²) 복잡도, 메모리 부담 |
사진 장수 증가 시 처리 시간 급증 |
⑤ DBSCAN 클러스터링 |
거리 기반 그룹화 |
연산량 + 메모리 사용 ↑ |
하이퍼파라미터 설정에 민감 |
⑥ GCS 업로드 |
결과 이미지 저장 및 업로드 |
순차적 HTTP PUT 요청 |
이미지 수만큼 반복 요청, 대기 발생 |