文档章节

使用dilb实现人脸检测、识别

o
 osc_isezqdgg
发布于 2019/09/18 11:17
字数 419
阅读 22
收藏 0

精选30+云产品,助力企业轻松上云!>>>

使用dlib实现人脸检测与识别需要先下载以下两个文件:

 以下是检测代码:

import dlib
import numpy as np
import cv2
detector = dlib.get_frontal_face_detector()  # 加载正脸检测器,使用dlib
sp = dlib.shape_predictor("dlibModel/shape_predictor_68_face_landmarks.dat")  # 加载人脸关键点检测模型
facerec = dlib.face_recognition_model_v1("dlibModel/dlib_face_recognition_resnet_model_v1.dat")  # 加载人脸识别模型
images_file =  "11.jpg"

if __name__ == '__main__':

    image = cv2.imread(images_file)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    rects = detector(gray, 1)  # 返回人脸,(灰度图,采样次数)
    tzs = []
    for (i, rect) in enumerate(rects):
        shape68 = sp(image, rect)  # 返回68个特征点
        face_descriptor = facerec.compute_face_descriptor(image, shape68)  # 计算人脸的128维的向量
        tz = np.array(face_descriptor)  # 人脸特征值
        tzs.append(tz)
        for p in shape68.parts():
            cv2.circle(image, (p.x, p.y), 2, (0, 0, 255), 1)
        cv2.rectangle(image, (rect.left(), rect.top()), (rect.right(), rect.bottom()), (0, 255, 0), 2)
    print(tzs)
cv2.imshow("Output", image)
cv2.waitKey(-1)

原图

效果图

 打印的特征值:

[array([-0.14579333,  0.06563152,  0.09314926, -0.17351562, -0.08750948,
       -0.03944254, -0.05778341, -0.16003576,  0.18947695, -0.20229495,
        0.22666875, -0.09615702, -0.15724032, -0.00979816, -0.02177811,
        0.23944741, -0.21378906, -0.12338841, -0.04015261,  0.00419115,
        0.07516268,  0.08075333,  0.01858632,  0.07583004, -0.1436058 ,
       -0.33890599, -0.10919157, -0.05613485, -0.01440384, -0.0421476 ,
       -0.02769968,  0.02456936, -0.19791584, -0.02495837, -0.01396229,
        0.15883508, -0.05608664, -0.16127518,  0.14932884, -0.0153573 ,
       -0.27676189,  0.08176911,  0.04226109,  0.19125782,  0.18729328,
       -0.03498868,  0.0062949 , -0.20621458,  0.1477259 , -0.20221941,
       -0.01363696,  0.06110315, -0.06132922,  0.05342007,  0.01454075,
       -0.15085547,  0.06046266,  0.14739415, -0.21987613, -0.03639037,
        0.08528309, -0.04437468,  0.03675304, -0.10165367,  0.14875233,
        0.156369  , -0.08553442, -0.22346984,  0.11466061, -0.14528711,
       -0.05263588,  0.10216871, -0.15159039, -0.19255549, -0.29263291,
       -0.04936468,  0.33185786,  0.09766599, -0.13290709,  0.03094622,
       -0.01321913, -0.01007816,  0.14334042,  0.12662645,  0.04984599,
        0.00495763, -0.08788066,  0.05117153,  0.25504613, -0.03899687,
       -0.01541797,  0.24360959, -0.00281113,  0.03764223,  0.02046303,
        0.08831443, -0.15270098,  0.07429178, -0.16997421, -0.00883572,
        0.01246334,  0.02862958, -0.01707144,  0.16006561, -0.15909354,
        0.23000078, -0.02357504, -0.0060425 , -0.02578063, -0.03944276,
       -0.05486409,  0.01571657,  0.15119481, -0.14951093,  0.16744466,
        0.17089023,  0.05214873,  0.14098236,  0.10236948,  0.05116107,
       -0.08004355,  0.01013784, -0.29215148,  0.0257933 ,  0.08701295,
       -0.02425266,  0.13502946,  0.02853448])]

进行识别时,将已有特征值与检测出的特征值两者之间计算欧式距离,设定阈值,大于阈值的不是同一人,小于阈值的为同一人

dist_ = numpy.linalg.norm(i - d_test)

numpy提供了linalg.norm方法来计算欧式距离,通常阈值设定在0.35即可

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
利用MTCNN和facenet实现人脸检测和人脸识别

利用MTCNN和facenet实现人脸检测和人脸识别 人脸检测和人脸识别技术算是目前人工智能方面应用最成熟的技术了。本博客将利用mtcnn和faceNet搭建一个实现人脸检测和人脸识别的系统。基本思路也...

pan_jinquan
03/31
0
0
算法---FaceNet理论学习篇

FaceNet算法-理论学习篇 @WP20190228 ==============目 录============ 一、LFW数据集简介 二、FaceNet算法简介   FaceNet算法=MTCNN模型+FaceNet模型 三、F...

osc_umc1u4zk
2019/03/01
2
0
人脸识别技术植入手机APP

随着物联网技术的日益成熟,我们看到已经有很多APP用到了人脸识别技术,特别是金融和互联网领域的应用纷纷加入了人脸识别。表示,人脸识别技术基于人的脸部特征信息进行身份识别,为互联网金...

非思丸智能
2019/07/25
3
0
人脸识别技术

随着物联网技术的日益成熟,我们看到已经有很多APP用到了人脸识别技术,特别是金融和互联网领域的应用纷纷加入了人脸识别。表示,人脸识别技术基于人的脸部特征信息进行身份识别,为互联网金...

非思丸智能
2019/07/17
5
0
浅析人脸识别的发展历程及其工作原理

人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技...

OCR图文识别
2018/04/14
153
0

没有更多内容

加载失败,请刷新页面

加载更多

PO设计模式-实现移动端自动化测试

开发环境:python 3.6.5 + selenium 2.48.0 + pytest框架 + Android 5.1 工具:pycharm + Appium + Genymotion 测试机型:Samsung Galaxy S6 #需求:设计3个测试用例#1.实现点击设置->显示-...

osc_cl1ufvfd
16分钟前
6
0
Android之TabLayout和ViewPager组合跳转到指定页面

1 问题 TabLayout和ViewPager组合跳转到具体一个页面 2 解决办法 viewPager?.setCurrentItem(index) index为0说明是第一页,如果是1的话就是第二页,以此类推。...

osc_w4g8kpwc
18分钟前
9
0
Android之解决多语言适配部分TextView内容左对齐和内容一行不排满就到第二行问题

1 问题 1、多语言适配部分TextView内容左对齐 2、内容一行不排满就到第二行问题 2 解决办法 问题1、在TextView里面加入下面参数 android:gravity="center" 问题2、 import android.conte...

osc_u61lmlkv
18分钟前
17
0
SpringBoot2.0+Shiro+MyBatisPlus权限管理系统

项目描述 Hi,大家好,今天分享的项目是《SpringBoot+Shiro权限管理系统》,这是一个SpringBoot+Layui后台管理系统,使用Shiro安全框架,加入访问权限,对不同角色有不同的访问权限,其他管理...

ericxu1116
20分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部