______ __ _____
/\ == \ __ ___ \ \ /\ == \
\ \ __< \ \ /\ == \ \ \ \ \ \_\ \
\ \_\_\_\ \ \ \ \____\ \ \ \ \_____\
\/_____/ \_\ \/____/ \_\ \/_____/
BioID is a Biometric identity system including identity services based on .NET Core, .NET Framework, and Python. On the other hand, it also provides facial recognition service which allows you to upload your customer picture(s), and recognize them (on video, stream, image) automatically with high accuracy by using State of the Art algorithms. Read the document for more information.
- State of the art (2019) face detection with RetinaFace and MXNet
- RetinaFace: Single-stage Dense Face Localisation in the Wild
- ArcFace: Additive Angular Margin Loss for Deep Face Recognition
- Demos
- Business Context
- OS, SDK, library, tooling and prerequisites
- High level software architecture
- Installation
- Licence
Windows 10
- the OS for developing and building this demo application.CUDA 10.1
- a parallel computing platform and programming model that makes using a GPU for general purpose computing simple and elegant.
.NET Framework 4.x
- .NET FrameworkPython 3.7.4
- is a programming language that lets you work more quickly and integrate your systems more effectively.
jquery 3.4.x
- JavaScript runtime built on Chrome's V8 JavaScript engine.typescript
- a typed superset of JavaScript that compiles to plain JavaScript.
There are several individual services and infrastructure components that make up this app:
No. | Service | Description |
---|---|---|
1. | SSO (.NET Core) | Authenization and token. |
2. | BioID (.NET Framework) | UI and API used to manage dataset, devices.. |
3. | CoreService(Python) | Detect faces, calculate distances, extract features. |
4. | VideoConsoleExecute (.NET Framework) | Video maker. |
-
RetinaFace is a practical single-stage
SOTA
face detector which is initially introduced inarXiv
technical report and then accepted byCVPR 2020
. -
You can read more
here
- Refine the largest publicly available training data, MS-Celeb-1M, in both automatic and manual way.
- Taking VGG2 as the training data, the authors conduct extensive contrast experiments regarding the convolutional network settings and report the verification accuracy on LFW, CFP and AgeDB.
- The authors propose a new loss function, additive angular margin (ArcFace), to learn highly discriminative features for robust face recognition.
- The proposed ArcFace achieves state-of-the-art results on the MegaFace Challenge, which is the largest public face benchmark with one million faces for recognition.
InsightFace
provides a complete implementation of both RetinaFace and ArcFace with a lot of pre-trained models.- More information
here
- Install
Visual Studio
,Python 3.7.4
,CUDA 10.1
- Install all required package in
CoreServices\FacialRecognition\requirements.txt
- Open
BioID.sln
with yourVS
. Then buildVideoExecuteConsole
toBioID.Admin\App_Data
. You must put Certificate file toBioID.Admin\App_Data
too.
- Run terminal
python manage.py runserver --nothreading
inCoreServices\FacialRecognition\Source
.
- Configure information in
Web.config
.
- Run
BioID.Admin
and enjoy!
- Very high accuracy.
- It can avoid the light and distance effects.
- Work well even the face is not frontal.
- Don't like the other algorithm which is almost based on 128-d features (FaceRecongition, FaceNet...), we provide a very strong features extraction tool based on 512-d features per face.
- We just need 1 frontal face per user for the dataset.
- Our tool can avoid light effect well. (But good light effect still better)
Insight face
works onmxnet
. Unfortunately,mxnet
isn't support multithreading. So, we need to lock the Thread, but it will slow our process down.- Even
Insight face
is a very strong features extraction tool, it's performance not good as expect (800ms/image with CPU; 300ms/image with GPU). - The project works on .NET so It's limited to
Windows
OS.
- Optimize facial recognition process.
- Update new technology while it's available.
@inproceedings{deng2019retinaface,
title={RetinaFace: Single-stage Dense Face Localisation in the Wild},
author={Deng, Jiankang and Guo, Jia and Yuxiang, Zhou and Jinke Yu and Irene Kotsia and Zafeiriou, Stefanos},
booktitle={arxiv},
year={2019}
}
@inproceedings{guo2018stacked,
title={Stacked Dense U-Nets with Dual Transformers for Robust Face Alignment},
author={Guo, Jia and Deng, Jiankang and Xue, Niannan and Zafeiriou, Stefanos},
booktitle={BMVC},
year={2018}
}
@article{deng2018menpo,
title={The Menpo benchmark for multi-pose 2D and 3D facial landmark localisation and tracking},
author={Deng, Jiankang and Roussos, Anastasios and Chrysos, Grigorios and Ververas, Evangelos and Kotsia, Irene and Shen, Jie and Zafeiriou, Stefanos},
journal={IJCV},
year={2018}
}
@inproceedings{deng2018arcface,
title={ArcFace: Additive Angular Margin Loss for Deep Face Recognition},
author={Deng, Jiankang and Guo, Jia and Niannan, Xue and Zafeiriou, Stefanos},
booktitle={CVPR},
year={2019}
}