PART 04에서 임베딩·거리·임계값의 직관을 잡았다면, 이제 그것을 실제 코드로 구현할 차례입니다. 그 첫 라이브러리로 가장 쉬운 face_recognition을 고릅니다. 함수 한 줄로 얼굴을 비교할 수 있어 입문에 더없이 좋습니다. 그리고 이 라이브러리의 한계까지 정직하게 짚은 뒤, 설치 없이 쓰는 내장 대안 SFace로 균형을 맞춥니다.
왜 face_recognition으로 시작하나
face_recognition은 PART 04에서 다룬 임베딩 인식을, 초보자가 가장 적은 코드로 경험하게 해 줍니다. 내부적으로 dlib의 128차원 임베딩을 쓰며, "인코딩을 뽑고 거리를 비교한다"는 원리가 그대로 함수 한두 개로 노출됩니다. 우리가 PART 01에서 dlib을 conda로 깔아 둔 덕분에 빌드 걱정 없이 바로 쓸 수 있습니다.
다만 쉬움에는 대가가 따릅니다. 정확도의 천장이 낮고 dlib에 묶여 있다는 한계가 있어, 이 PART는 입문과 동시에 "언제 다른 도구로 갈아탈지"의 판단 기준도 함께 제시합니다.
PART 05의 구성
| 장 | 제목 | 무엇을 얻는가 |
|---|---|---|
| 01 | 얼굴 인코딩과 비교 | 한 줄 API로 두 얼굴 비교 |
| 02 | 얼굴 DB 만들기 | 이름표 붙인 등록부 구축 |
| 03 | 얼굴 클러스터링 | 라벨 없는 사진 자동 분류 |
| 04 | 한계와 함정 | dlib 의존·유지보수 정체 |
| 05 | 대안 — OpenCV SFace | 설치 0으로 쓰는 내장 인식 |
| 06 | 실습 — 출석 체크 | 등록부 기반 자동 출석 |