MCPcopy
hub / github.com/exadel-inc/CompreFace

github.com/exadel-inc/CompreFace @v1.2.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.2.0 ↗
2,592 symbols 8,309 edges 782 files 77 documented · 3%
README

Exadel CompreFace is a leading free and open-source face recognition system

<a target="_blank" href="https://exadel.com/solutions/compreface/">

angular-logo

Exadel CompreFace is a free and open-source face recognition service that can be easily integrated into any system without prior machine learning skills. CompreFace provides REST API for face recognition, face verification, face detection, landmark detection, mask detection, head pose detection, age, and gender recognition and is easily deployed with docker.

Official website

Contributing · Submit an Issue · Blog · Community chat

GitHub license   GitHub contributors  


Table Of Contents

Overview

Exadel CompreFace is a free and open-source face recognition GitHub project. Essentially, it is a docker-based application that can be used as a standalone server or deployed in the cloud. You don’t need prior machine learning skills to set up and use CompreFace.

The system provides REST API for face recognition, face verification, face detection, landmark detection, mask detection, head pose detection, age, and gender recognition. The solution also features a role management system that allows you to easily control who has access to your Face Recognition Services.

CompreFace is delivered as a docker-compose config and supports different models that work on CPU and GPU. Our solution is based on state-of-the-art methods and libraries like FaceNet and InsightFace.

Screenshots

compreface-recognition-page compreface-dashboard-page

More Screenshots

compreface-verification-page compreface-detection-page

compreface-services-page compreface-wizzard-page

Videos

CompreFace Face Detection Demo CompreFace Appery.io Demo

More Videos

CompreFace .NET SDK Demo CompreFace JavaScript SDK Demo

News and updates

Subscribe to CompreFace News and Updates to never miss new features and product improvements.

Features

The system can accurately identify people even when it has only “seen” their photo once. Technology-wise, CompreFace has several advantages over similar free face recognition solutions. CompreFace:

  • Supports both CPU and GPU and is easy to scale up
  • Is open source and self-hosted, which gives you additional guarantees for data security
  • Can be deployed either in the cloud or on premises
  • Can be set up and used without machine learning expertise
  • Uses FaceNet and InsightFace libraries, which use state-of-the-art face recognition methods
  • Starts quickly with just one docker command

Functionalities

Getting Started with CompreFace

Requirements

  1. Docker and Docker compose (or Docker Desktop)
  2. CompreFace could be run on most modern computers with x86 processor and AVX support. To check AVX support on Linux run lscpu | grep avx command

To get started (Linux, MacOS):

  1. Install Docker and Docker Compose
  2. Download the archive from our latest release: https://github.com/exadel-inc/CompreFace/releases
  3. Unzip the archive
  4. Open the terminal in this folder and run this command: docker-compose up -d
  5. Open the service in your browser: http://localhost:8000/login

To get started (Windows):

  1. Install Docker Desktop
  2. Download the archive from our latest release: https://github.com/exadel-inc/CompreFace/releases
  3. Unzip the archive
  4. Run Docker
  5. Open Command prompt (write cmd in windows search bar)
  6. Open folder where you extracted zip archive (Write cd path_of_the_folder, press enter).
  7. Run command: docker-compose up -d
  8. Open http://localhost:8000/login

Getting started for contributors

Follow this link

CompreFace SDKs

SDK Repository
JavaScript https://github.com/exadel-inc/compreface-javascript-sdk
Python https://github.com/exadel-inc/compreface-python-sdk
.NET https://github.com/exadel-inc/compreface-net-sdk

Documentation

More documentation is available here

Contributing

We want to improve our open-source face recognition solution, so your contributions are welcome and greatly appreciated.

  • Just use CompreFace and report ideas and bugs on GitHub
  • Share knowledge and experience via posting guides and articles, or just improve our documentation
  • Create SDKs for favorite programming language, we will add it to our documentation
  • Integrate CompreFace support to other platforms like Home Assistant or DreamFactory, we will add it to our documentation
  • Contribute code
  • Add plugin to face services
  • And last, but not least, you can just give a star to our free facial recognition system on GitHub

For more information, visit our contributing guide, or create a discussion.

License info

CompreFace is open-source real-time facial recognition software released under the Apache 2.0 license.

Extension points exported contracts — how you extend this code

FaceProcessService (Interface)
(no doc) [6 implementers]
java/api/src/main/java/com/exadel/frs/core/trainservice/service/FaceProcessService.java
FacesApiClient (Interface)
Interface representing Client for Faces API. [2 implementers]
java/common/src/main/java/com/exadel/frs/commonservice/sdk/faces/FacesApiClient.java
IFacade (Interface)
(no doc) [3 implementers]
ui/src/app/data/interfaces/IFacade.ts
AppMapper (Interface)
(no doc)
java/admin/src/main/java/com/exadel/frs/mapper/AppMapper.java
EmbeddingsProcessService (Interface)
(no doc) [4 implementers]
java/api/src/main/java/com/exadel/frs/core/trainservice/service/EmbeddingsProcessService.java
EnumCode (Interface)
(no doc) [3 implementers]
java/common/src/main/java/com/exadel/frs/commonservice/enums/EnumCode.java
Environment (Interface)
(no doc)
ui/src/environments/interface.ts
UserMapper (Interface)
(no doc)
java/admin/src/main/java/com/exadel/frs/mapper/UserMapper.java

Core symbols most depended-on inside this repo

verify
called by 165
java/api/src/main/java/com/exadel/frs/core/trainservice/component/classifiers/Classifier.java
get
called by 146
ui/src/app/core/user-info/user-info.service.ts
save
called by 65
embedding-calculator/tools/optimize_detection_params/results_storage.py
map
called by 59
java/api/src/main/java/com/exadel/frs/core/trainservice/mapper/EmbeddingMapper.java
isEmpty
called by 53
java/api/src/main/java/com/exadel/frs/core/trainservice/util/MultipartFileData.java
name
called by 46
embedding-calculator/src/services/facescan/plugins/base.py
incrementRequestCount
called by 44
java/api/src/main/java/com/exadel/frs/core/trainservice/cache/ModelStatisticCacheProvider.java
findByGuid
called by 43
java/admin/src/main/java/com/exadel/frs/repository/AppRepository.java

Shape

Method 1,533
Class 771
Function 167
Interface 88
Enum 26
Route 7

Languages

Java48%
TypeScript37%
Python15%

Modules by API surface

java/admin/src/test/java/com/exadel/frs/system/security/AuthorizationManagerTest.java37 symbols
java/admin/src/test/java/com/exadel/frs/service/AppServiceTest.java29 symbols
java/admin/src/test/java/com/exadel/frs/service/UserServiceTest.java26 symbols
embedding-calculator/src/services/facescan/plugins/insightface/insightface.py26 symbols
java/admin/src/main/java/com/exadel/frs/service/UserService.java23 symbols
java/api/src/main/java/com/exadel/frs/core/trainservice/service/FaceVerificationProcessServiceImpl.java20 symbols
embedding-calculator/src/services/utils/pyutils.py20 symbols
java/admin/src/main/java/com/exadel/frs/service/ModelService.java19 symbols
embedding-calculator/src/services/facescan/plugins/base.py19 symbols
embedding-calculator/src/services/facescan/plugins/mixins.py18 symbols
java/api/src/test/java/com/exadel/frs/core/trainservice/service/SubjectServiceTest.java17 symbols
java/api/src/main/java/com/exadel/frs/core/trainservice/controller/EmbeddingController.java17 symbols

Dependencies from manifests, versioned

com.cronutils:cron-utils
com.exadel:frs-common-app
com.icegreen:greenmail-junit5
com.impossibl.pgjdbc-ng:pgjdbc-ng
com.vladmihalcea:hibernate-types-52
io.github.openfeign.form:feign-form
io.github.openfeign.form:feign-form-spring
io.github.openfeign:feign-core
io.github.openfeign:feign-jackson
io.jsonwebtoken:jjwt-api
io.springfox:springfox-swagger-ui
io.springfox:springfox-swagger2

Datastores touched

db_nameDatabase · 1 repos
frsDatabase · 1 repos

For agents

$ claude mcp add CompreFace \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact