iBetter Books
수정

InsightFace를 처음 만나면 가장 먼저 듣는 이름이 buffalo_l입니다. 이것은 단일 모델이 아니라, 얼굴 파이프라인에 필요한 모델들을 한 묶음으로 담은 모델 팩입니다. 이 장에서는 buffalo_l 안에 무엇이 들어 있고, 그것이 우리가 PART 02~04에서 배운 단계들과 어떻게 대응하는지 정리합니다.

모델 팩이라는 개념

지금까지는 검출기(PART 02), 정렬(PART 03), 인식 모델(PART 04~06)을 각각 따로 다뤘습니다. buffalo_l은 이 조각들을 미리 잘 맞춰 한 상자에 담아 둔 것입니다. 검출·정렬·인식·속성 모델이 서로 호환되도록 묶여 있어, 사용자가 조합을 고민할 필요가 없습니다.

flowchart LR A[입력 이미지] --> B[RetinaFace
검출·5점] B --> C[정렬] C --> D[ArcFace
512d 임베딩] C --> E[genderage
나이·성별]

buffalo_l 안에는 대략 다음이 들어 있습니다.

구성 역할 PART 대응
검출 모델(SCRFD/RetinaFace 계열) 얼굴·5점 랜드마크 PART 02 RetinaFace
인식 모델(ArcFace, w600k_r50) 512차원 임베딩 PART 04 ArcFace
genderage 모델 나이·성별 (속성)

즉 buffalo_l 하나로 PART 02의 고정밀 검출, PART 03의 정렬, PART 04의 ArcFace 임베딩이 한꺼번에 준비됩니다.

l은 큰 모델, 다른 팩도 있다

이름 끝의 l은 large(큰 모델)를 뜻합니다. 정확도가 높은 대신 무겁습니다. 더 가벼운 팩도 있어, 속도·정확도 요구에 맞춰 고를 수 있습니다.

크기·정확도 적합
buffalo_l 큼·최고 정확도 정확도 최우선, 서버
buffalo_s 작음·빠름 경량·엣지 기기

PART 02의 YOLO 모델 등급(n·s·m·l)이나 PART 06의 모델 선택과 같은 원리입니다. 일단 정확도가 중요한 학습·서버 환경이라면 buffalo_l로 시작하고, 라즈베리파이 같은 엣지에서 속도가 급하면 buffalo_s를 고려합니다.

설치와 첫 다운로드

InsightFace는 PART 01에서 이미 설치했습니다(pip install insightface onnxruntime). 모델 팩 자체는 코드에서 처음 쓸 때 자동으로 내려받습니다.

# 파일: load_pack.py"""buffalo_l 팩을 준비한다(첫 실행 시 자동 다운로드)."""from insightface.app import FaceAnalysisapp = FaceAnalysis(name="buffalo_l")     # 팩 이름 지정app.prepare(ctx_id=-1, det_size=(640, 640))   # ctx_id=-1은 CPUprint("buffalo_l 준비 완료")

FaceAnalysis(name="buffalo_l")가 팩을 지정하고, prepare가 모델을 메모리에 올립니다. 첫 실행에서 buffalo_l(약 300MB)이 ~/.insightface/models에 다운로드됩니다. ctx_id는 실행 장치로, -1은 CPU, 0 이상은 GPU 번호입니다. det_size는 검출 입력 크기로, 크면 작은 얼굴까지 잘 잡지만 느려집니다.

실무 팁. 모델 팩 다운로드는 한 번만 일어나지만, 인터넷이 차단된 운영 서버에서는 미리 받아 두어야 합니다. 인터넷이 되는 곳에서 위 코드를 한 번 실행해 ~/.insightface/models/buffalo_l 폴더를 통째로 복사해 두면, 오프라인 서버에 그대로 넣어 쓸 수 있습니다. DeepFace의 ~/.deepface/weights와 같은 방식입니다.

이 장에서 기억할 것

buffalo_l은 RetinaFace 검출, ArcFace 임베딩, genderage 속성 모델을 호환되게 묶은 모델 팩으로, PART 02~04의 단계들이 한 상자에 들어 있습니다. 이름의 l은 큰 모델을 뜻하며 경량 buffalo_s도 있습니다. PART 01에서 깐 insightface로 FaceAnalysis(name="buffalo_l") + prepare만 하면 준비되고, 모델은 첫 실행에 자동 다운로드됩니다. 다음 장에서는 이 팩을 실제로 호출하는 FaceAnalysis API를 다룹니다.