프로젝트 소개

이 저장소는 브라우저에서 완전히 실행되는 얼굴 인식 연구 데모와 패키징된 웹 애플리케이션을 모두 포함하고 있습니다. 모든 추론은 TensorFlow.js 기반의 face-api.js를 통해 클라이언트 측에서 이루어지며, 컨테이너는 정적 파일과 모델 가중치만 제공합니다. 라이브 데모는 face.jedarden.com에서 확인할 수 있으며, README에는 이 저장소가 외부 Git 호스트의 읽기 전용 미러라는 점이 명시되어 있습니다. 두 개의 주요 디렉토리가 설명되어 있습니다. 첫 번째인 research/face-detection-lite에는 얼굴 인식 접근 방식(Haar cascades를 이용한 Viola-Jones, HOG 및 SVM, CNN 기반 검출기)에 대한 노트, 소스 자료가 담긴 papers/ 컬렉션, 그리고 웹캠을 통해 face-api.js를 실행하는 정적 페이지가 포함되어 있습니다. 이 페이지에서는 Tiny Face Detector와 SSD MobileNet v1 중 하나를 선택할 수 있으며, 랜드마크, 표정, 연령/성별 모델을 선택적으로 사용할 수 있습니다. 추가 폴더인 research/face-detection-pro에는 랜드마크 검출에 관한 마크다운 노트가 들어 있습니다. 연구 데모는 간단한 python3 -m http.server 명령어로 시작할 수 있습니다. 두 번째인 docker-app은 webpack으로 빌드된 싱글 페이지 앱(SPA)으로, nginx를 통해 제공되며 두 가지 모드를 지원합니다. Lite 모드는 requestAnimationFrame으로 구동되며, 조정 가능한 임계값을 가진 Tiny Face Detector를 통해 경계 상자를 그립니다. Pro 모드는 SSD MobileNet v1과 68점 랜드마크 모델, face-api.js의 7가지 표정 클래스를 통한 표정 인식, 연령/성별 추정을 사용하며 랜드마크, 윤곽선, 표정 및 인구통계학적 정보에 대한 오버레이를 제공합니다. Pro 모드는 더 무겁고 느린 것으로 명시되어 있습니다. 추가 기능으로는 여러 카메라가 있을 때의 카메라 선택, FPS, 메모리 및 타이밍을 보고하는 토글 가능한 진단 오버레이, 호환성 체크 기능이 포함된 TensorFlow.js WASM 백엔드 진입점이 있습니다. README에는 멀티 스테이지 Dockerfile(Node 빌더, nginx:alpine 런타임), GHCR의 태그 2.0.5 기준 압축 시 약 80MB인 이미지, nginx /health 엔드포인트를 사용하는 Docker HEALTHCHECK, 그리고 빌드 시 생성된 자가 서명 인증서를 사용하는 8443 포트의 HTTPS 설정( /etc/nginx/ssl에 인증서를 마운트하여 교체 가능)이 문서화되어 있습니다. 빠른 시작 안내에는 ghcr.io/jedarden/face-detection:2.0.5 풀링, docker-compose를 이용한 소스 실행, 3000 포트의 개발 프로필 사용법이 포함되어 있습니다. 테스트는 Jest 단위 및 통합 테스트, Puppeteer E2E 테스트, Playwright 사양 및 보안 테스트 파일로 설명됩니다. 버전 1.1.0은 npm audit 결과에 따른 종속성 업데이트로 기록되어 있으며, 보안 마이그레이션 가이드가 링크되어 있습니다. 커밋된 security-audit.json은 9가지 발견 사항에 대한 시점 스냅샷으로 설명됩니다. README는 벤치마크 수치가 커밋되지 않았으며, 프레임 속도는 호스트 브라우저 백엔드에 따라 달라지므로 앱 내 오버레이를 통해 실시간으로 확인할 수 있다고 명시합니다. 브라우저 요구 사항은 getUserMedia 및 WebGL 또는 WebAssembly 지원입니다. 프로젝트 자체 코드는 MIT 라이선스이며, 모델 가중치와 라이브러리는 LICENSES/ 하위의 개별 라이선스를 따릅니다. 또한 README에는 AI 지원 및 프롬프트 기반 개발 프로세스와 프레임워크 대신 순수 JavaScript를 선택하고 브라우저 측 추론을 결정한 아키텍처 결정 사항이 기록되어 있습니다.