얼굴 인식을 위한 CV/ML 모델을 Rockchip NPU로 포팅하는 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인공지능
대상자
AI/ML 모델 개발자, 엣지 디바이스에서 실시간 얼굴 인식을 구현하는 개발자, NPU 최적화에 관심 있는 엔지니어
핵심 요약
- Rockchip NPU 포팅은 Float16(Default Mode)와 Int8(Quantized Mode) 두 가지 방식으로 수행되며, 정확도와 속도의 균형을 고려해야 함
- Float16 모드는 정확도 손실이 미미한 반면, Int8 모드는 처리 속도를 2배 이상 향상시키지만 정확도가 1~2% 하락할 수 있음
- LFW 데이터셋 기준으로 Int8 모델이 충분한 성능을 보였고, Fine-tuning을 통해 실제 환경에서 적용 가능
섹션별 세부 요약
1. 얼굴 인식 파이프라인
- Face Detection: CNN 기반의 얼굴 탐지 모듈 사용
- Key Point Detection: 눈, 코 등 핵심 포인트 탐지 (Face Fitter 모듈 사용)
- Face Alignment: 핵심 포인트를 기반으로 얼굴 정렬
- Template Extraction: 정렬된 얼굴에서 생체 정보 템플릿 추출
2. 하드웨어 제약
- OK3568-C 단일 보드 컴퓨터 사용
- Face Detector + Face Fitter: 40ms 이내 처리 시간 요구
- Template Extraction + 비교: 500ms 이내 처리 시간 요구
3. NPU 모드 비교
- Default Mode: Float32 → Float16 변환, 정확도 손실 미미
- Quantized Mode: Float32 → Int8 변환, 처리 속도 2배 향상 (정확도 1~2% 하락)
4. 성능 및 정확도 테스트
- 3DiVi Face SDK 모델 사용 시 원본 시간 제약 불만족
- NPU 포팅 후
- Default Mode: 40ms 이내 처리 가능
- Quantized Mode: 20ms 이내 처리 가능, LFW 데이터셋 기준 98% 이상 정확도 유지
결론
- NPU 포팅은 실시간 얼굴 인식 성능 향상에 효과적, Int8 모델 사용 시 Fine-tuning으로 정확도 유지 가능
- Quantized Mode는 엣지 디바이스의 처리 속도 제약에 적합한 선택
- 모델 최적화 시 Float16/Int8 혼합 전략 고려 권장