An open API service indexing awesome lists of open source software.

https://github.com/egliette/face_register

A face registration system for capturing user metadata and storing it in the database.
https://github.com/egliette/face_register

computer-vision face-detection face-recognition fastapi onnx triton

Last synced: 5 months ago
JSON representation

A face registration system for capturing user metadata and storing it in the database.

Awesome Lists containing this project

README

          

# Face Register Service

[![CI Pipeline](https://github.com/egliette/face_register/actions/workflows/ci.yml/badge.svg)](https://github.com/egliette/face_register/actions/workflows/ci.yml)
[![Publish Release to GHCR](https://github.com/egliette/face_register/actions/workflows/publish-release.yml/badge.svg)](https://github.com/egliette/face_register/actions/workflows/publish-release.yml)

A face registration system for capturing user metadata and storing it in the database.

![face register system](assets/images/face_register_system.png)

---

## 📖 Project Overview

Face Register is a FastAPI-based application that provides:

* **Face Detection & Recognition** with SCRFD + ArcFace (via ONNX Runtime or Triton Runtime)
* **Face Comparison & Search** - Compare faces against database with similarity scoring
* **User Management** with PostgreSQL + SQLAlchemy ORM
* **Vector Search** using Qdrant
* **Model & Image Storage** in MinIO
* **Database Versioning** with Alembic
* **Testing** with Pytest
* **Structured Logging** with custom logger
* **Service Orchestration** using Docker & Docker Compose
* **API Key Authentication** to secure access to the API

---

## ⚙️ Technology Stack

* **FastAPI** – Web framework for APIs, request handling, and docs
* **ONNX Runtime** and **NVIDIA Triton** – Runtimes for SCRFD (face detection) and ArcFace (embedding) models
* **PostgreSQL** – Stores user profiles and metadata
* **SQLAlchemy** – ORM for database modeling and queries
* **Alembic** – Handles schema migrations and versioning
* **Pytest** – Test suite for validation and reliability
* **MinIO** – Stores face images and model files (S3 compatible)
* **Qdrant** – Vector database for face embedding similarity search
* **Custom Logger** – Structured logs with performance metrics
* **GitHub Actions** – Runs linting, tests, and builds on push/PR; automates tagging, publishing Docker images to GitHub Container Registry (GHCR), generating release notes, and version bumping
* **Docker & Docker Compose** – Containerized setup for dev/test environments

---

## 🚀 Quick Start

1. **Clone and setup**:

```bash
git clone
cd face_register
cp .env.example .env # configure environment variables
```

2. **Start services**:

```bash
./scripts/dev-compose.sh
```

3. **Access the API**:

* Swagger Docs: [http://localhost:8000/docs](http://localhost:8000/docs)
* MinIO Console: [http://localhost:9001](http://localhost:9001)

---