iBetter Books
수정

앞 장에서 라이브러리를 역할로 나눠 봤다면, 이 장에서는 전혀 다른 기준으로 다시 나눕니다. 바로 "설치가 쉬운가"입니다. 얼굴 인식 라이브러리는 내부적으로 딥러닝 모델을 실행하는데, 그 모델을 돌리는 엔진이 무엇이냐에 따라 설치 난이도가 크게 갈립니다. 이 차이를 미리 알아 두면, 실습 도중 원인 모를 설치 오류에 시간을 빼앗기는 일을 줄일 수 있습니다.

엔진이 두 갈래로 나뉜다

딥러닝 모델을 실행하는 대표적인 엔진은 두 가지입니다.

  • ONNX Runtime은 가볍고 설치가 단순합니다. CPU만으로도 잘 돌고, 운영체제를 크게 가리지 않습니다.
  • TensorFlow는 강력하지만 무겁습니다. 버전 호환이 까다롭고, 특히 애플 실리콘(M 시리즈) 맥에서는 추가 설정이 필요할 때가 많습니다.

같은 "얼굴 인식"을 하더라도 어떤 엔진을 쓰는 라이브러리냐에 따라 설치 경험이 천국과 지옥으로 갈립니다.

이 책의 라이브러리를 엔진으로 나누면

엔진 라이브러리 설치 체감
ONNX 계열 InsightFace, EmotiEffLib, OpenCV(YuNet/SFace), UniFace 가볍고 단순
TensorFlow 계열 DeepFace 강력하지만 무겁고 호환 주의
PyTorch 계열 facenet-pytorch 중간. 설치는 무난한 편
C++ 빌드 dlib, face_recognition(dlib 의존) conda로 빌드 회피 필요

여기서 이 책이 conda를 선택한 이유가 두 겹으로 드러납니다. 첫째, dlib처럼 C++ 빌드가 필요한 라이브러리를 conda-forge의 미리 컴파일된 패키지로 손쉽게 설치하기 위해서입니다. 둘째, TensorFlow처럼 까다로운 의존성도 conda 환경 안에서 비교적 안정적으로 관리하기 위해서입니다.

솔직한 안내 하나

이 책의 차별점은 "dlib 빌드를 없앤다"는 점입니다. 이건 conda-forge가 미리 컴파일된 dlib을 제공하므로 확실합니다. 다만 DeepFace가 끌어오는 TensorFlow까지 모든 환경에서 100% 매끄럽게 설치된다고 약속하지는 않습니다. 특히 애플 실리콘 맥에서는 TensorFlow 설정에 손이 더 갈 수 있습니다. 그래서 이 책은 가능하면 ONNX 계열 라이브러리를 먼저 권하고, DeepFace는 올인원 편의가 필요할 때 쓰는 선택지로 안내합니다.

실무 팁. 새 프로젝트의 라이브러리를 고를 때 "이게 ONNX 계열인가 TensorFlow 계열인가"를 한 번 확인하는 습관을 들이세요. 배포 환경이 CPU만 있는 서버라면 ONNX 계열이 설치도 쉽고 속도도 안정적이어서, 처음부터 고생을 덜 수 있습니다.

이 장에서 기억할 것

라이브러리는 역할뿐 아니라 실행 엔진으로도 나뉩니다. ONNX 계열은 가볍고 설치가 쉬우며, TensorFlow 계열은 강력하지만 무겁습니다. 이 책이 conda를 쓰는 이유는 C++ 빌드와 까다로운 의존성을 한꺼번에 다루기 위해서입니다. 다음 장에서는 이 모든 내용을 바탕으로, 독자의 수준에 맞는 읽기 경로를 안내합니다.