iBetter Books
수정

DeepFace의 편리함에는 대가가 있습니다. 무거운 TensorFlow에 기댄다는 점입니다. 이 장에서는 DeepFace를 쓸 때 실제로 부딪히는 설치 함정과 GPU/CPU 선택을 정직하게 다룹니다. 이 함정들을 미리 알면, 빨간 에러 앞에서 헤매는 시간을 크게 줄일 수 있습니다.

tf-keras가 없으면 멈춘다

가장 먼저 만나는 함정입니다. 최신 TensorFlow는 Keras 3을 기본으로 쓰는데, DeepFace는 아직 Keras 2 방식을 사용합니다. 그래서 tf-keras라는 호환 패키지가 없으면 DeepFace 첫 호출에서 다음과 같은 오류가 납니다.

ValueError: You have tensorflow X.Y.Z and this requires tf-keras package.Please run `pip install tf-keras` or downgrade your tensorflow.

해결은 간단합니다. PART 01 Ch04에서 미리 깔아 둔 그 tf-keras입니다.

pip install tf-keras

이 책의 환경 구축(PART 01)을 따랐다면 이미 설치되어 있으니 이 오류를 만나지 않습니다. 다른 환경에서 DeepFace만 따로 쓰다 이 에러를 보면, tf-keras 설치를 가장 먼저 확인하세요. 같은 이유로 PART 02의 RetinaFace도 tf-keras를 요구합니다.

가중치는 첫 호출에 다운로드된다

DeepFace는 모델 가중치를 패키지에 담지 않고, 처음 그 모델을 쓸 때 인터넷에서 내려받습니다. 받은 파일은 홈 폴더의 ~/.deepface/weights에 저장되어 다음부터는 재사용됩니다.

모델 대략 크기
VGG-Face 약 580MB
Facenet512 약 90MB
ArcFace 약 130MB
SFace 약 40MB
나이·성별·표정 각각 수십 MB

이 때문에 두 가지를 유의해야 합니다. 첫째, 인터넷이 없는 환경에서는 미리 가중치를 받아 ~/.deepface/weights에 넣어 두어야 합니다. 둘째, 첫 호출이 느린 것은 고장이 아니라 다운로드 때문입니다. 서비스라면 시작 시 더미 호출로 미리 받아 두는 워밍업이 필요합니다(1장 실무 팁).

GPU와 CPU

DeepFace는 TensorFlow를 통해 GPU가 있으면 자동으로 활용합니다. 다만 운영체제와 하드웨어에 따라 사정이 다릅니다.

  • CPU만: 별도 설정 없이 동작합니다. 소규모·실시간이 아닌 처리에는 충분합니다.
  • NVIDIA GPU(리눅스·윈도우): CUDA를 지원하는 TensorFlow가 깔려 있으면 자동 가속됩니다. 대량 처리·실시간에 유리합니다.
  • Apple Silicon(맥): 기본 TensorFlow는 CPU로 동작합니다. 가속을 원하면 별도 설정이 필요하지만, 설치가 까다로워 학습 단계에서는 CPU로 두는 편이 속도는 느려도 안정적입니다.

GPU 가속이 절실한데 설정이 막힌다면, 무거운 TensorFlow 대신 ONNX 기반으로 동작하는 PART 07의 InsightFace를 고려할 수 있습니다. 같은 ArcFace 계열을 더 가볍게 돌릴 수 있습니다.

충돌을 줄이는 설치 순서

PART 01에서 세운 원칙이 여기서도 통합니다. DeepFace는 TensorFlow·NumPy 등 큰 패키지를 함께 끌어오므로, 다른 라이브러리와 버전이 충돌하기 쉽습니다.

  • conda로 OpenCV·dlib 같은 빌드 까다로운 것을 먼저 깔고
  • 그 위에 pip으로 DeepFace를 얹고
  • tf-keras를 함께 설치하고
  • 설치 후 pip list | grep -i opencv로 중복 OpenCV가 끼지 않았는지 확인

이 순서를 지키면 DeepFace 설치에서 겪는 대부분의 충돌을 예방할 수 있습니다.

실무 팁. DeepFace는 "한 라이브러리로 다 된다"는 편리함의 대가로 의존성이 무겁습니다. 만약 프로젝트에서 감정·나이 분석은 필요 없고 인식만 필요하다면, TensorFlow를 통째로 끌어오는 DeepFace보다 PART 05의 OpenCV SFace처럼 가벼운 도구가 더 나은 선택일 수 있습니다. 기능이 다 필요할 때 DeepFace의 가치가 가장 큽니다.

이 장에서 기억할 것

DeepFace는 TensorFlow에 기대므로 tf-keras가 필수이고(없으면 첫 호출에서 에러), 가중치는 첫 호출에 ~/.deepface/weights로 다운로드됩니다. GPU는 환경에 따라 다르며 Apple Silicon은 기본 CPU 동작입니다. conda 먼저·pip 나중·tf-keras 함께·OpenCV 중복 확인의 순서로 충돌을 예방합니다. 인식만 필요하면 더 가벼운 도구가 나을 수 있습니다. 다음 장에서는 DeepFace의 find로 얼굴 검색 엔진을 만듭니다.