• Stars
    star
    193
  • Rank 201,081 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • Created over 3 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

这是一个利用facenet和retinaface实现人脸识别的库,可以进行在线的人脸识别。

Facenet+Retinaface:人脸识别模型在Pytorch当中的实现


目录

  1. 注意事项 Attention
  2. 所需环境 Environment
  3. 文件下载 Download
  4. 预测步骤 How2predict
  5. 参考资料 Reference

注意事项

该库中包含了两个网络,分别是retinaface和facenet。二者使用不同的权值。
在使用网络时一定要注意权值的选择,以及主干与权值的匹配。
retinaface人脸检测仓库为,可以训练也可以预测:https://github.com/bubbliiiing/retinaface-pytorch
facenet人脸识别仓库为,可以训练也可以预测:https://github.com/bubbliiiing/facenet-pytorch

所需环境

pytorch==1.2.0

文件下载

预测所需的权值文件可以在百度云下载。
链接: https://pan.baidu.com/s/1iTo4_x0DHg0GoTUQWduMZw 提取码: dmw6

预测步骤

  1. 本项目自带主干为mobilenet的retinaface模型与facenet模型。可以直接运行,如果想要使用主干为resnet50的retinafa和主干为inception_resnetv1的facenet模型需要。
  2. 在retinaface.py文件里面,在如下部分修改model_path和backbone使其对应训练好的文件。
_defaults = {
    "retinaface_model_path" : 'model_data/Retinaface_mobilenet0.25.pth',
    #-----------------------------------#
    #   可选retinaface_backbone有
    #   mobilenet和resnet50
    #-----------------------------------#
    "retinaface_backbone"   : "mobilenet",
    "confidence"            : 0.5,
    "iou"                   : 0.3,
    #----------------------------------------------------------------------#
    #   是否需要进行图像大小限制。
    #   输入图像大小会大幅度地影响FPS,想加快检测速度可以减少input_shape。
    #   开启后,会将输入图像的大小限制为input_shape。否则使用原图进行预测。
    #   会导致检测结果偏差,主干为resnet50不存在此问题。
    #   可根据输入图像的大小自行调整input_shape,注意为32的倍数,如[640, 640, 3]
    #----------------------------------------------------------------------#
    "retinaface_input_shape": [640, 640, 3],
    #-----------------------------------#
    #   是否需要进行图像大小限制
    #-----------------------------------#
    "letterbox_image"       : True,
    
    "facenet_model_path"    : 'facenet_inception_resnetv1.pth',
    #-----------------------------------#
    #   可选facenet_backbone有
    #   mobilenet和inception_resnetv1
    #-----------------------------------#
    "facenet_backbone"      : "inception_resnetv1",
    "facenet_input_shape"   : [160,160,3],
    "facenet_threhold"      : 0.9,

    "cuda"                  : True
}
  1. 运行encoding.py,对face_dataset里面的图片进行编码,face_dataset的命名规则为XXX_1.jpg、XXX_2.jpg。最终在model_data文件夹下生成对应的数据库人脸编码数据文件。
  2. 运行predict.py,输入下述文字,可直接预测。
img/zhangxueyou.jpg
  1. 在predict.py里面进行设置可以进行fps测试和video视频检测。

Reference

https://github.com/biubug6/Pytorch_Retinaface

More Repositories

1

yolov4-pytorch

这是一个YoloV4-pytorch的源码,可以用于训练自己的模型。
Python
2,100
star
2

yolo3-pytorch

这是一个yolo3-pytorch的源码,可以用于训练自己的模型。
Python
1,993
star
3

faster-rcnn-pytorch

这是一个faster-rcnn的pytorch实现的库,可以利用voc数据集格式的数据进行训练。
Python
1,559
star
4

unet-pytorch

这是一个unet-pytorch的源码,可以训练自己的模型
Python
1,314
star
5

yolov5-pytorch

这是一个YoloV5-pytorch的源码,可以用于训练自己的模型。
Python
1,019
star
6

deeplabv3-plus-pytorch

这是一个deeplabv3-plus-pytorch的源码,可以用于训练自己的模型。
Python
883
star
7

yolox-pytorch

这是一个yolox-pytorch的源码,可以用于训练自己的模型。
Python
879
star
8

yolov7-pytorch

这是一个yolov7的库,可以用于训练自己的数据集。
Python
868
star
9

yolov4-tiny-pytorch

这是一个YoloV4-tiny-pytorch的源码,可以用于训练自己的模型。
Python
778
star
10

ssd-pytorch

这是一个ssd-pytorch的源码,可以用于训练自己的模型。
Python
669
star
11

yolov8-pytorch

这是一个yolov8-pytorch的仓库,可以用于训练自己的数据集。
Python
614
star
12

Siamese-pytorch

这是一个孪生神经网络(Siamese network)的库,可进行图片的相似性比较。
Python
572
star
13

yolo3-keras

这是一个yolo3-keras的源码,可以用于训练自己的模型。
Python
535
star
14

yolov4-keras

这是一个YoloV4-keras的源码,可以用于训练自己的模型。
Python
491
star
15

Semantic-Segmentation

I will upload many semantic segmentation models to this repository for you to learn
Python
433
star
16

classification-pytorch

这是各个主干网络分类模型的源码,可以用于训练自己的分类模型。
Python
387
star
17

mobilenet-yolov4-pytorch

这是一个mobilenet-yolov4的库,把yolov4主干网络修改成了mobilenet,修改了Panet的卷积组成,使参数量大幅度缩小。
Python
365
star
18

centernet-pytorch

这是一个centernet-pytorch的源码,可以用于训练自己的模型。
Python
364
star
19

pspnet-pytorch

这是一个pspnet-pytorch的源码,可以用于训练自己的模型。
Python
357
star
20

yolov4-tf2

这是一个yolo4-tf2(tensorflow2)的源码,可以用于训练自己的模型。
Python
314
star
21

mask-rcnn-keras

这是一个mask-rcnn的库,可以用于训练自己的实例分割模型。
Python
313
star
22

efficientdet-pytorch

这是一个efficientdet-pytorch的源码,可以用于训练自己的模型。
Python
305
star
23

faster-rcnn-keras

这是一个faster-rcnn的keras实现的库,可以利用voc数据集格式的数据进行训练。
Python
285
star
24

segformer-pytorch

这是一个segformer-pytorch的源码,可以用于训练自己的模型。
Python
251
star
25

GAN-keras

里面包含许多GAN算法的Keras源码,可以用于训练自己的模型。
Python
236
star
26

keras-face-recognition

这是一个基于mtcnn和facenet的人脸识别模型,可实现在线人脸识别。
Python
224
star
27

retinaface-pytorch

这是一个retinaface-pytorch的源码,可以用于训练自己的模型。
Python
211
star
28

ddpm-pytorch

这个是一个ddpm的pytorch仓库,可以用于训练自己的数据集。
Python
207
star
29

yolov7-tiny-pytorch

这是一个yolov7-tiny-pytorch的源码,可以用于训练自己的模型。
Python
184
star
30

retinanet-pytorch

这是一个retinanet-pytorch的源码,可以用于训练自己的模型。
Python
175
star
31

faster-rcnn-tf2

这是一个faster-rcnn的tensorflow2实现的库,可以利用voc数据集格式的数据进行训练。
Python
171
star
32

ssd-keras

这是一个ssd-keras的源码,可以用于训练自己的模型。
Python
167
star
33

clip-pytorch

这是一个clip-pytorch的模型,可以训练自己的数据集。
Python
164
star
34

yolov4-tiny-keras

这是一个YoloV4-tiny-keras的源码,可以用于训练自己的模型。
Python
160
star
35

detr-pytorch

这是一个DETR-pytorch的仓库,可以训练自己的数据集
Python
158
star
36

object-detection-augmentation

这里面存放了一些目标检测算法的数据增强方法。如mosaic、mixup。
Python
150
star
37

efficientnet-yolo3-pytorch

这是一个efficientnet-yolo3-pytorch的源码,将yolov3的主干特征提取网络修改成了efficientnet
Python
142
star
38

mask-recognize

这是一个简单的人工智障识别口罩佩戴的库
Python
142
star
39

classic-convolution-network

里面会保存许多优秀的卷积神经网络结构,这些结构可以帮助我们更好的设计网络。
Python
139
star
40

ssd-tf2

这是一个ssd-tf2(tensorflow2)的源码,可以用于训练自己的模型。
Python
138
star
41

yolov4-tiny-tf2

这是一个YoloV4-tiny-tf2的源码,可以用于训练自己的模型。
Python
134
star
42

segmentation-format-fix

该仓库中放置了一些工具,用于调整语义分割算法的数据集格式,使其符合训练要求。
Python
131
star
43

arcface-pytorch

这是一个arcface-pytorch的源码,可以用于训练自己的模型。
Python
130
star
44

count-mAP-txt

这个是一个在SSD的基础上用于生成绘制mAP代码所用的txt的例子。(目的是生成txt)
Python
128
star
45

Keras-Attention

这个仓库主要包含了LSTM、卷积神经网络中,注意力机制的实现。
Python
126
star
46

mtcnn-keras

这是一个利用keras实现mtcnn的代码,可以实现人脸检测。
Python
124
star
47

yolov5-v6.1-pytorch

这是一个yolov5-v6.1-pytorch的源码,可以用于训练自己的模型。
Python
115
star
48

retinanet-keras

这是一个retinanet-keras的源码,可以用于训练自己的模型。
Python
111
star
49

unet-keras

这是一个unet-keras的源码,可以用于训练自己的模型。
Python
107
star
50

hrnet-pytorch

这是一个hrnet-pytorch的库,可用于训练自己的语义分割数据集
Python
106
star
51

mobilenet-ssd-keras

这是一个mobilenet-ssd-keras的源码,可以用于训练自己的轻量级ssd模型。
Python
105
star
52

stable-diffusion

这是一个stable-diffusion的库。
Python
102
star
53

yolov5-tf2

这是一个YoloV5-tensorflow2的源码,可以用于训练自己的模型。
Python
101
star
54

Bubbliiiing

91
star
55

efficientdet-keras

这是一个efficientdet-keras的源码,可以用于训练自己的模型。
Python
89
star
56

Transfer-Learning

这是一个有关迁移学习的仓库,在这里可以看到迁移学习的各种用法。
Python
88
star
57

yolo3-tf2

这是一个yolo3-tf2的源码,可以用于训练自己的模型。
Python
80
star
58

Mobilenet-SSD-Essay

这是Mobilenet-SSD的论文版,可用于训练与预测。
Python
78
star
59

yolox-tf2

这是一个yolox-tf2的源码,可以用于训练自己的模型。
Python
73
star
60

yolact-pytorch

这是一个yolact-pytorch的库,可用于训练自己的数据集
Python
71
star
61

mobilenet-yolov4-keras

这是一个mobilenet-yolov4的库,把yolov4主干网络修改成了mobilenet,修改了Panet的卷积组成,使参数量大幅度缩小。
Python
71
star
62

M2det-Keras

这是一个M2det的Keras实现的库,可以实时检测与训练。
Python
67
star
63

Siamese-keras

这是一个孪生神经网络(Siamese network)的库,可进行图片的相似性比较。
Python
66
star
64

classification-keras

这是各个主干网络分类模型的源码,可以用于训练自己的分类模型。
Python
66
star
65

yolox-keras

这是一个yolox-keras的源码,可以用于训练自己的模型。
Python
65
star
66

unet-tf2

这是一个unet-tf2的源码,可以用于训练自己的模型。
Python
64
star
67

RFB-keras

这是一个利用Keras实现RFBnet的库,RFBnet是SSD的改进版,其整体的结构与SSD相差不大,其主要特点是在SSD的特征提取网络上用了RFB模块。
Python
63
star
68

centernet-keras

这是一个centernet-keras的源码,可以用于训练自己的模型。
Python
63
star
69

mask-rcnn-tf2

这是一个mask-rcnn-tf2的库,可以用于训练自己的模型。
Python
63
star
70

facenet-keras

这是一个facenet-keras的源码,可以用于训练自己的模型。
Python
62
star
71

retinaface-keras

这是一个retinaface-keras的源码,可以用于训练自己的模型。
Python
60
star
72

DiT-pytorch

这是一个DiT-pytorch的代码,主要用于学习DiT结构。
Python
60
star
73

efficientdet-tf2

这是一个efficientdet-tf2(tensorflow2)的源码,可以用于训练自己的模型。
Python
59
star
74

efficientnet-yolo3-keras

这是一个efficientnet-yolo3-keras的源码,将yolov3的主干特征提取网络修改成了efficientnet
Python
55
star
75

retinaface-tf2

这是一个retinaface-tf2的源码,可以用于训练自己的模型。
Python
53
star
76

srgan-pytorch

这是一个srgan-keras的源码,可以用于训练自己的模型。
Python
53
star
77

pspnet-keras

这是一个pspnet-keras的源码,可以用于训练自己的模型。
Python
51
star
78

Siamese-tf2

这是一个孪生神经网络(Siamese network)的库,可进行图片的相似性比较。
Python
51
star
79

seq2seq-keras

这是一个利用keras实现seq2seq模型的仓库,大家可以通过这个仓库学习到许多的seq2seq的例子
Python
50
star
80

deeplabv3-plus-tf2

这是一个deeplabv3-plus-tf2的源码,可以用于训练自己的模型。
Python
49
star
81

dcgan-pytorch

这是一个dcgan-pytorch的源码,可以用于训练自己的模型。
Python
49
star
82

deeplabv3-plus-keras

这是一个deeplabv3-plus-keras的源码,可以用于训练自己的模型。
Python
49
star
83

classification-tf2

这是各个主干网络分类模型的源码,可以用于训练自己的分类模型。
Python
47
star
84

mobilenet-yolov4-tf2

这是一个mobilenet-yolov4的库,把yolov4主干网络修改成了mobilenet,修改了Panet的卷积组成,使参数量大幅度缩小。
Python
46
star
85

centernet-tf2

这是一个centernet-tf2的源码,可以用于训练自己的模型。
Python
46
star
86

dcgan-keras

这是一个dcgan-keras的源码,可以用于训练自己的模型。
Python
44
star
87

blip-pytorch

这是一个blip-pytorch简化的代码,适用于了解Attention与Transformer的结构。
Python
42
star
88

facenet-tf2

这是一个facenet-tf2的库,可以用于训练自己的人脸识别模型
Python
42
star
89

facenet-retinaface-keras

这是一个利用facenet和retinaface实现人脸识别的库,可以进行在线的人脸识别。
Python
40
star
90

QRcode-location

This is an Example about how to locate QRcode.
C++
39
star
91

poems-generator

这个例子可以用LSTM来写五言诗。
Python
37
star
92

cyclegan-pytorch

这是一个cyclegan-pytorch的源码,可以用于训练自己的模型。
Python
37
star
93

srgan-keras

这是一个srgan-keras的源码,可以用于训练自己的模型。
Python
34
star
94

yolov5-keras

这是一个YoloV5-keras的源码,可以用于训练自己的模型。
Python
34
star
95

pspnet-tf2

这是一个pspnet-tf2的源码,可以用于训练自己的模型。
Python
31
star
96

yolov7-tf2

这是一个YoloV7-tf2的源码,可以用于训练自己的模型。
Python
28
star
97

yolov7-keras

这是一个yolov7-keras的源码,可以用于训练自己的模型。
Python
26
star
98

fcos-pytorch

这是一个fcos-pytorch的仓库,可以用于训练自己的数据集。
Python
24
star
99

Colab

这是一个Colab使用的示例notebook。配合博文使用。
Jupyter Notebook
22
star
100

yolov5-v6.1-tf2

这是一个yolov5-v6.1-tf2的源码,可以用于训练自己的模型。
Python
19
star