T
TechInsights
목록으로
AI•2026. 01. 23.

온디바이스 AI 얼굴 식별 파이프라인 최적화

하이퍼커넥트
하이퍼커넥트 Engineering Team
온디바이스 AI 얼굴 식별 파이프라인 최적화

핵심요약

원문 보기

온디바이스 AI 얼굴 식별 파이프라인의 성능 최적화를 위해, 모델 변경 없이 연산 흐름 재설계, 알고리즘 최적화, 데이터 접근 방식 개선, 병렬 처리 조정 등을 통해 응답 시간을 37%, 처리량을 530% 향상시켰습니다.

온디바이스 AI 얼굴 식별 파이프라인 최적화

1. Motivation 및 문제 정의

  • Tinder 사용자들은 프로필 사진 선택에 어려움을 겪으며, AI 추천 기술로 사용자 경험 혁신 목표.
  • 민감한 개인 정보 보호를 위해 모든 데이터 처리는 기기 내(on-device)에서 수행되어야 함.
  • 얼굴 식별 파이프라인은 전체 사진 분석 속도가 중요하며, 모델 외적인 병목 요소 개선 필요.
  • 최적화 목표: 모델 변경 없이 응답 시간 37% 단축, 처리량 530% 개선.

2. 얼굴 식별 파이프라인 구성

  • 얼굴 탐지(Face Detection): 사진에서 얼굴 영역 및 랜드마크 식별, 후처리(NMS, Similarity transform)를 통해 얼굴 이미지 정렬.
  • 얼굴 인식(Face Recognition): 얼굴 이미지에서 임베딩 벡터 생성, 기준 임베딩과 비교하여 유사도 판정.
  • 전체 파이프라인: 위 두 단계의 결합으로 사용자 얼굴 포함 여부 식별.

3. 최적화 전략 및 결과

  • 실험 환경: Galaxy S24 (Android 14), Tensorflow Lite CPU 가속, 500회 반복 측정.
  • 병목 지점 분석: Inline Timing Snippet 및 Profiler 도구 활용, Load Image, Face Detection, 3rd-party Face Recognition이 주요 병목으로 파악됨.

3.1. 필터링 우선 적용 및 연산 융합 (Predicate Pushdown)

  • 문제점: Face Detection 모델의 후처리에서 불필요한 디코딩 작업이 많음 (모든 후보 영역 디코딩 후 필터링).
  • 개선: 디코딩 전에 confidence 기반 필터링을 먼저 적용하여 필요한 후보만 디코딩 (PPD 기법 유사).
  • 결과: 디코딩 시간 79% 감소, 단일 사진 처리 시간(latency) 76ms → 70ms 개선.

3.2. Top-K 선택 알고리즘 최적화

  • 문제점: threshold 통과 후보 전체 정렬(O(n log n)) 및 중간 컬렉션 생성 오버헤드.
  • 개선: Min Heap 자료구조 활용으로 상위 K개만 유지하는 알고리즘으로 변경.
  • 결과: Pre NMS Filter & TopK 단계 응답 시간 78% 개선.

3.3. TensorBuffer 데이터 접근 최적화

  • 문제점: getFloatValue 메소드 반복 호출 시 JNI 호출 오버헤드 발생.
  • 개선: floatArray 프로퍼티 사용으로 JNI 호출 최소화 및 JVM 최적화 활용.
  • 결과: 관련 함수 응답 시간 10-20% 개선, 단일 사진 처리 시간 70.2ms → 69ms 개선.

3.4. TensorFlow Lite 스레드 풀 크기 최적화

  • 목표: 단일 연산의 병렬 처리로 응답 시간 개선 시도.
  • 결과: 스레드 풀 크기 1일 때 가장 빠른 응답 시간 확인. 특정 연산(rescale)이 병렬화에 부적합하여 역효과 발생.
  • 최적화: 스레드 풀 크기 1로 고정하여 응답 시간 12.5% 개선 (69ms → 60ms).

3.5. 모델 인스턴스 병렬화를 통한 처리량 최적화

  • 목표: 여러 모델 인스턴스로 동시 처리하여 처리량(throughput) 증대.
  • 결과: 얼굴 탐지 모델 인터프리터 수 증가 시 처리량 2.28배 향상. 단, 얼굴 인식 모델이 병목 발생.
  • 최종 개선: 얼굴 탐지 및 인식 모델 모두 병렬화 적용 (인터프리터 수=4, 스레드 풀 크기=1). 처리량 7.2장/초 → 45.9장/초 (약 530%) 향상.

4. 결론

  • 성능 최적화의 핵심은 정량적 분석(프로파일러, 벤치마크)과 체계적인 개선.
  • 연산 흐름 재설계, 불필요한 연산 제거, JNI 오버헤드 최소화, 병렬 처리 최적화 등을 통해 성능 극대화.
  • 멀티 스레딩은 만능이 아니며, 연산 특성과 환경에 따른 세심한 조율 및 검증 필요.
#AI#Infra#BackEnd
하이퍼커넥트
하이퍼커넥트

하이퍼커넥트 Engineering Team

기술 인사이트를 전달하는 공식 채널

You might also like

View all
토스 피플 : 새로운 길을 만들 땐 내 선택을 믿는다

토스 피플 : 새로운 길을 만들 땐 내 선택을 믿는다

"이 버튼 왜 안 눌려요?" 물류 현장의 목소리로 PDA 시스템 완성하기

"이 버튼 왜 안 눌려요?" 물류 현장의 목소리로 PDA 시스템 완성하기