This is an inference implementation of real time face recogtion, wholely written in C++ with TVM inference runtine. Using mtcnn for facedetection, kcf tracker and insightface model.
[ZHANG2016] Zhang, K., Zhang, Z., Li, Z., and Qiao, Y. (2016). Joint face detection and alignment using multitask cascaded convolutional networks. IEEE Signal Processing Letters, 23(10):1499–1503.
https://kpzhang93.github.io/MTCNN_face_detection_alignment/paper/spl.pdf
Deng, Jiankang and Guo, Jia and Niannan, Xue and Zafeiriou, Stefanos. ArcFace: Additive Angular Margin Loss for Deep Face Recognition. CVPR 2019.
https://github.com/deepinsight/insightface
- OpenCV 3.4+
- Boost FileSystem (1.58+)
- CMake 3.2+
- Clang 6.0+
- TVM runtime
You can folowing this doc file or official doc to install TVM runtime
Change two line cmake config in facerecogtion model to your TVM source that you downloaded:
- set (DMLC_INCLUDE "/home/thongpb/works/tvm/3rdparty/dmlc-core/include")
- set (DLPACK_INC "/home/thongpb/works/tvm/3rdparty/dlpack/include")
Compile:
cd realtime-facereccpp
mkdir build
cd build
cmake ..
make -j4
You can modify parameters in params.xml
./facerecognition/facerecognition ../data/params.xml
The MTCNN implementation take from https://github.com/golunovas/mtcnn-cpp
The model used for facial feature extraction came from insightface MODEL_ZOO
The mtcnn model files are taken from https://github.com/kpzhang93/MTCNN_face_detection_alignment/tree/master/code