Socket
Socket
Sign inDemoInstall

facelib

Package Overview
Dependencies
6
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    facelib

Face Recognition (train/test/deploy)(tensorflow/tflite/keras/edgetpu)


Maintainers
1

Readme

facelib

Face recognition python library(tensorflow, opencv).

Usage (console)

try facelib --help to discover more

Train

foo@bar:~$ python3 -m facelib train train_images/ lotr
Current pipeline: ssd_int8_cpu, mobilenetv2_fp32_cpu, densenet_fp32_cpu
Classifier named `lotr` succesfully trained and saved.
  • Folder structure:
    train_images/
    ├───elijah_wood/
    ├───├──0.jpg
    ├───├──1.jpg
    ├───liv_tyler/
    ├───├──0.jpg
    ├───├──1.jpg
    ...
Image NameImage
train_images/ian_mckellen/0.jpg<img src=https://github.com/kutayyildiz/facelib/raw/master/facelib/_demo/lotr/train_images/ian_mckellen/0.jpg width=200 height=100>
train_images/seanastin/0.jpgseanastin

Predict

foo@bar:~$ python3 -m facelib predict test_images/ -clf lotr -c -p
Current pipeline: ssd_int8_cpu, mobilenetv2_fp32_cpu, densenet_fp32_cpu
1.jpg
├───10 faces detected
├───['billy_boyd', 'sean_astin', 'viggo_mortensen', 'elijah_wood', 'liv_tyler', 'dominic_monaghan', 'sean_bean', 'ian_mckellen', 'peter_jackson', 'orlando_bloom']
2.jpg
├───5 faces detected
├───['dominic_monaghan', 'billy_boyd', 'elijah_wood', 'sean_astin', 'peter_jackson']
3.jpg
├───6 faces detected
├───['orlando_bloom', 'dominic_monaghan', 'john_rhys_davies', 'sean_astin', 'elijah_wood', 'billy_boyd']
0.jpeg
├───5 faces detected
├───['dominic_monaghan', 'orlando_bloom', 'elijah_wood', 'liv_tyler', 'billy_boyd']
  • Folder structure:
    test_images/
    ├──0.jpeg
    ├──1.jpg
    ├──2.jpg
    ├──3.jpg

  • Generated folders/files:
    test_images_facelib_cropped/
    ├───elijah_wood/
    ├───├──2_2.jpg
    ├───├──3_1.jpg
    ├───├──4_3.jpg
    ├───liv_tyler/
    ├───├──3_0.jpg
    ├───├──4_1.jpg
    ...

Image NameImage
test_images_facelib_cropped/billy_boyd/0_1.jpgbillyboyd
test_images_facelib_cropped/liv_tyler/4_1.jpglivtyler
test_images_facelib_cropped/elijah_wood/3_1.jpgelijahwood
test_images_facelib_plotted/1.jpg1

Usage (python)

from facelib import facerec
import cv2
# You can use face_detector, landmark_detector or feature_extractor individually using .predict method. e.g.(bboxes = facedetector.predict(img))
face_detector = facerec.SSDFaceDetector()
landmark_detector = facerec.LandmarkDetector()
feature_extractor = facerec.FeatureExtractor()

pipeline = facerec.Pipeline(face_detector, landmark_detector, feature_extractor)
path_img = './path_to_some_image.jpg'
img = cv2.imread(path_img)
img = img[...,::-1] # cv2 returns bgr format but every method inside this package takes rgb format
bboxes, landmarks, features = pipeline.predict(img)
# Note that values returned (bboxes and landmarks) are in fraction.[0,1]

Installation

Pip installation

pip3 install facelib

TFLite runtime installation

To use facelib.facerec package use the following bash command to install tflite-runtime pip package.

python3 -m facelib --install-tflite

or you can install from tensorflow.org

Dev package

Tensorflow is required for facelib.dev package. If you wish you can download facelib with tensorflow using the following command.

pip3 install facelib[dev]

Info

Dataset

Feature extraction models are trained using insightfaces MS1M-Arcface.
Landmark Detection models are trained using VggFace2.

Contents

Image Augmentation

  • Random augmentation for landmark detection

Layers

  • DisturbLabel

Face Alignment

  • Insightface
  • GoldenRatio
  • Custom Implementations

TFRecords

  • Widerface to TFRecords converter
  • VggFace2 to TFRecords converter
  • COFW to TFRecords converter

Loss Functions

Feature Extraction
  • ArcFace
  • CombinedMargin
  • SphereFace(A-Softmax)
  • Center
  • CosFace
Landmark Detection
  • EuclideanDistance(with different norms)

Pretrained Models

Face Detection
  • SSD
  • MTCNN
Face Feature Extraction
  • MobileFaceNet
  • SqueezeNet
  • MobileNet
  • MobileNetV2
  • DenseNet
  • NasNetMobile
Scripts
  • Feature extraction model training
  • Landmark detection model training
  • Chokepoint test on pipeline
Facial Landmark Detection
  • SqueezeNet
  • MobileNet
  • MobileNetV2
  • DenseNet

References

WiderFaceYang, Shuo, Ping Luo, Chen Change Loy, and Xiaoou Tang. “WIDER FACE: A Face Detection Benchmark.” ArXiv:1511.06523 [Cs], November 20, 2015. https://arxiv.org/abs/1511.06523
ArcFaceDeng, Jiankang, Jia Guo, Niannan Xue, and Stefanos Zafeiriou. “ArcFace: Additive Angular Margin Loss for Deep Face Recognition.” ArXiv:1801.07698 [Cs], January 23, 2018. https://arxiv.org/abs/1801.07698
MobileFaceNetChen, Sheng, Yang Liu, Xiang Gao, and Zhen Han. “MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices.” CoRR abs/1804.07573 (2018). http://arxiv.org/abs/1804.07573
VggFace2Cao, Qiong, Li Shen, Weidi Xie, Omkar M. Parkhi, and Andrew Zisserman. “VGGFace2: A Dataset for Recognising Faces across Pose and Age.” ArXiv:1710.08092 [Cs], October 23, 2017. http://arxiv.org/abs/1710.08092
DenseNetG. Huang, Z. Liu, L. van der Maaten, and K. Q. Weinberger, “Densely Connected Convolutional Networks,” arXiv:1608.06993 [cs], Jan. 2018. http://arxiv.org/abs/1608.06993
GoldenRatio (face alignment)M. Hassaballah, K. Murakami, and S. Ido, “Face detection evaluation: a new approach based on the golden ratio,” SIViP, vol. 7, no. 2, pp. 307–316, Mar. 2013. http://link.springer.com/10.1007/s11760-011-0239-3
SqueezeNetF. N. Iandola, S. Han, M. W. Moskewicz, K. Ashraf, W. J. Dally, and K. Keutzer, “SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size,” arXiv:1602.07360 [cs], Feb. 2016. http://arxiv.org/abs/1602.07360
MobileNetA. G. Howard et al., “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications,” arXiv:1704.04861 [cs], Apr. 2017. http://arxiv.org/abs/1704.04861
MobileNetV2M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L.-C. Chen, “MobileNetV2: Inverted Residuals and Linear Bottlenecks,” arXiv:1801.04381 [cs], Jan. 2018. http://arxiv.org/abs/1801.04381
CosFaceH. Wang et al., “CosFace: Large Margin Cosine Loss for Deep Face Recognition,” arXiv:1801.09414 [cs], Jan. 2018. http://arxiv.org/abs/1801.09414
SphereFaceW. Liu, Y. Wen, Z. Yu, M. Li, B. Raj, and L. Song, “SphereFace: Deep Hypersphere Embedding for Face Recognition,” arXiv:1704.08063 [cs], Apr. 2017. http://arxiv.org/abs/1704.08063
Bottleneck LayerK. He, X. Zhang, S. Ren, and J. Sun, “Deep Residual Learning for Image Recognition,” arXiv:1512.03385 [cs], Dec. 2015. http://arxiv.org/abs/1512.03385
MS-Celeb-1MY. Guo, L. Zhang, Y. Hu, X. He, and J. Gao, “MS-Celeb-1M: A Dataset and Benchmark for Large-Scale Face Recognition,” arXiv:1607.08221 [cs], Jul. 2016. http://arxiv.org/abs/1607.08221
DisturbLabelarXiv:1605.00055 [cs.CV]
Single Shot Detector[1]W. Liu et al., “SSD: Single Shot MultiBox Detector,” arXiv:1512.02325 [cs], Dec. 2016. https://arxiv.org/abs/1512.02325
Insightfacehttps://github.com/deepinsight/insightface
Tensorflowhttps://github.com/tensorflow/tensorflow
Tensorflow-Addonshttps://github.com/tensorflow/addons
Insightface-DatasetZoohttps://github.com/deepinsight/insightface/wiki/Dataset-Zoo
Tensorflow-ModelZoohttps://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md
Cascade Datahttps://github.com/opencv/opencv/tree/master/data
TFLite Pythonhttps://www.tensorflow.org/lite/guide/python

Keywords

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc