About this project
A repository containing both a research demo and a packaged web application for face detection that runs entirely in the browser. All inference happens client-side via face-api.js on TensorFlow.js; the container only serves static files and model weights. A live demo is linked at face.jedarden.com, and the README notes the repository is a read-only mirror of an external Git host.
Two main directories are described. The first, research/face-detection-lite, holds notes on face detection approaches (Viola-Jones with Haar cascades, HOG plus SVM, and CNN-based detectors), a papers/ collection of source material, and a static page that runs face-api.js against the webcam with a choice between the Tiny Face Detector and SSD MobileNet v1, plus optional landmarks, expressions and age/gender models. A further folder, research/face-detection-pro, contains markdown notes on landmark detection. The research demo is started with a simple python3 -m http.server.
The second, docker-app, is a webpack-built single-page app served by nginx with two modes. Lite mode draws bounding boxes from the Tiny Face Detector with an adjustable threshold, driven by requestAnimationFrame. Pro mode uses SSD MobileNet v1 together with a 68-point landmark model, expression recognition over face-api.js's seven expression classes, and age/gender estimation, with overlays for landmarks, contours, expressions and demographics. Pro mode is stated to be heavier and slower. Additional features include camera selection when multiple cameras are present, a toggleable diagnostics overlay reporting FPS, memory and timing, and a TensorFlow.js WASM backend entry point with a compatibility check.
The README documents a multi-stage Dockerfile (Node builder, nginx:alpine runtime), an image of roughly 80 MB compressed for tag 2.0.5 on GHCR, a Docker HEALTHCHECK with an nginx /health endpoint, and HTTPS on port 8443 using a build-time self-signed certificate that can be replaced by mounting certificates at /etc/nginx/ssl. Quick-start instructions cover pulling ghcr.io/jedarden/face-detection:2.0.5, running from source with docker-compose, and a development profile on port 3000. Testing is described as Jest unit and integration tests, Puppeteer E2E tests, Playwright specs, and a security test file.
Version 1.1.0 is noted as a dependency update responding to npm audit findings, with a linked security migration guide; the committed security-audit.json is described as a point-in-time snapshot of nine findings. The README states that no benchmark numbers are committed and that frame rate depends on the host browser backend, with the in-app overlay showing it live. Browser requirements are getUserMedia and WebGL or WebAssembly support. The project's own code is MIT-licensed, while model weights and libraries carry their own licenses under LICENSES/. The README also records the AI-assisted, prompt-driven development process and the architectural decisions taken, including the choice of plain JavaScript over a framework and of browser-side inference.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.