SynchroCV
Back to Projects

SynchroCV

SynchroCV is the production implementation of published research, built after co-authoring "Transfer Learning-Based Distance-Adaptive Global Soft Biometrics Prediction in Surveillance" in Electronics (MDPI), 2025. It runs a 6-stage ML pipeline live in a browser: face detection, distance estimation, image quality scoring, adaptive contrast enhancement, gender prediction, and distance-penalised confidence adjustment. The system is honest about its own uncertainty: a far, blurry face legitimately gets a low confidence score rather than a false 90%.

Results & Impact

89.1%
Gender accuracy at 1–4 m (close range)
72.3%
Gender accuracy at 7–10 m (far range)
33%
Bandwidth reduction via binary WebSocket vs Base64

The Challenge

Face recognition collapses at distance in browser environments because browsers deliberately hide hardware camera parameters (focal length, sensor size) to prevent device fingerprinting, making standard physics-based distance formulas impossible. Additionally, off-the-shelf models trained on studio portrait datasets perform poorly on real webcam footage at 7–10 metres.

The Solution

Built a calibration-free face-ratio heuristic for distance estimation, trained a custom 3-model ensemble (ResNet50+Attention, MobileNetV2, Multi-Scale) on 202K CelebA images with synthetic distance degradation (downscale→upscale→blur→noise per distance category) to bridge the studio-to-webcam domain gap. Used ArcFace Loss to push class clusters apart so noisy far-face features are less likely to cross the decision boundary. Streamed frames over binary WebSocket (not Base64) saving 33% bandwidth. Discovered and fixed an undocumented InsightFace bug: passing tight face crops silently returns wrong high-confidence predictions because the model needs full-image context (hair, shoulders); fix was passing the full frame.

Technical Stack

Next.jsReactTypeScriptTailwind CSSFastAPIPython 3.11WebSocketInsightFace SCRFDTensorFlow 2.19OpenCVArcFace LossDeepFace VGG-FaceDockerRailwayVercel