Python三十行代码实现简单人脸识别的示例代码

一、库介绍

opencv,face_recognition,numpy,以及dlib

注意:
安装opencv速度可能过慢,需要更换国内镜像源,参考:https://www.jb51.net/article/208359.htm
附带Python3.7,64位版本 dlib whl下载路径:dlib-19_jb51.rar

二、库安装

pip install opencv-python
pip install face_recognition
pip install numpy

dlib库需进入whl文件路径下安装

pip install dlib-19.17.99-cp37-cp37m-win_amd64.whl

三、face_recognition库简单介绍

face_recognition的load_image_file方法会加载图片,并返回一个ndarray类型的数据

face_path = "C://Users//25103//Desktop//Python人脸识别//face//徐先生.jpg"
image = face_recognition.load_image_file(face_path)

face_recognition的face_encoding方法,可从返回的ndarray类型数据中提取人脸特征,可同时提取多个特征,返回值为列表类型

face_encoding = face_recognition.face_encodings(image)[0]

face_recognition的face_location方法可以获取图片中所有人脸的位置,其返回值为一个列表

face_locations = face_recognition.face_locations(rgb_frame)

四、代码实现以及注释讲解

# coding = utf-8
import dlib
import cv2
import face_recognition
import os

# 创建视频对象
video_capture = cv2.VideoCapture(0)

# 加载需要识别的人脸图片(这张图片需要仅有一张脸)
# face_recognition的load_image_file方法会加载图片,并返回一个ndarray类型的数据
# ndarray类型就是NumPy的数组类型,其中的元素类型可以一致也可以不一致
face_path = "C://Users//25103//Desktop//Python人脸识别//face//徐先生.jpg"
image = face_recognition.load_image_file(face_path)

# face_recognition的face_encoding方法,可从返回的ndarray类型数据中提取人脸特征,可同时提取多个特征,返回值为列表类型
# 因为照片中只有一个人脸,所以我们取列表的第一个值
face_encoding = face_recognition.face_encodings(image)[0]

while True:
 # 从视频对象中读取一帧照片
 ret,frame = video_capture.read()
 # 将照片缩小,加快处理速度,这里将其缩小为原图的1/4
 # frame = cv2.rectangle(frame,(0,0),fx=0.25,fy=0.25)
 # 因为cv2用的是BGR色彩,我们组要将其转化为RGB进行处理
 rgb_frame = frame[:,:,::-1] # 列表转置操作

 # face_recognition的face_location方法可以获取图片中所有人脸的位置,其返回值为一个列表
 face_locations = face_recognition.face_locations(rgb_frame)
 print("共从视频中找到了{}张人脸".format(len(face_locations)))

 # 获取视频中所有人脸的特征
 face_encodings = face_recognition.face_encodings(rgb_frame,face_locations)

 for face in face_encodings:
 # 比较两个特征值——encoding1与encoding2,匹配返回True,否则返回False。tolerance越低,顾名思义,容错率越低,返回值为列表类型
 match = face_recognition.compare_faces([face_encoding],face,tolerance=0.4)
 name = "不认识的人"

 if match[0]:
  # face为图片名称
  name = os.path.basename(face_path[0:-4])
 print("找到了{}".format(name))

到此这篇关于Python三十行代码实现简单人脸识别的示例代码的文章就介绍到这了,更多相关Python 简单人脸识别内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python使用opencv进行人脸识别

    环境 ubuntu 12.04 LTS python 2.7.3 opencv 2.3.1-7 安装依赖 sudo apt-get install libopencv-* sudo apt-get install python-opencv sudo apt-get install python-numpy 示例代码 #!/usr/bin/env python #coding=utf-8 import os from PIL import Image, ImageDraw import cv d

  • Python 40行代码实现人脸识别功能

    前言 很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了.这些人里包括曾经的我自己.其实如果如果你不是非要深究其中的原理,只是要实现这一工作的话,人脸识别也没那么难.今天我们就来看看如何在40行代码以内简单地实现人脸识别. 一点区分 对于大部分人来说,区分人脸检测和人脸识别完全不是问题.但是网上有很多教程有无无意地把人脸检测说成是人脸识别,误导群众,造成一些人认为二者是相同的.其实,人脸检测解决的问题是确定一张图上有木有人脸,而人

  • 详解如何用OpenCV + Python 实现人脸识别

    下午的时候,配好了OpenCV的Python环境,OpenCV的Python环境搭建.于是迫不及待的想体验一下opencv的人脸识别,如下文. 必备知识 Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等. opencv api 要想使用opencv,就必须先知道其能干什么,怎么做.于是API的重要性便体现出来了.就本例而言,使用到的函数

  • 基于python3 OpenCV3实现静态图片人脸识别

    本文采用OpenCV3和Python3 来实现静态图片的人脸识别,采用的是Haar文件级联. 首先需要将OpenCV3源代码中找到data文件夹下面的haarcascades文件夹里面包含了所有的OpenCV的人脸检测的XML文件,这些文件可以用于检测静态,视频文件,摄像头视频流中的人脸,找到haarcascades文件夹后,复制里面的XML文件,在你新建的Python脚本文件目录里面建一个名为cascades的文件夹,并把复制的XML文件粘贴到新建的文件夹中一些有人脸的的图片,这个大家可以自行

  • python3+dlib实现人脸识别和情绪分析

    一.介绍 我想做的是基于人脸识别的表情(情绪)分析.看到网上也是有很多的开源库提供使用,为开发提供了很大的方便.我选择目前用的比较多的dlib库进行人脸识别与特征标定.使用python也缩短了开发周期. 官网对于dlib的介绍是:Dlib包含广泛的机器学习算法.所有的设计都是高度模块化的,快速执行,并且通过一个干净而现代的C ++ API,使用起来非常简单.它用于各种应用,包括机器人技术,嵌入式设备,手机和大型高性能计算环境. 虽然应用都比较高大上,但是自己在PC上做个情绪分析的小软件还是挺有意

  • python实现人脸识别代码

    从实时视频流中识别出人脸区域,从原理上看,其依然属于机器学习的领域之一,本质上与谷歌利用深度学习识别出猫没有什么区别.程序通过大量的人脸图片数据进行训练,利用数学算法建立建立可靠的人脸特征模型,如此即可识别出人脸.幸运的是,这些工作OpenCV已经帮我们做了,我们只需调用对应的API函数即可,先给出代码: #-*- coding: utf-8 -*- import cv2 import sys from PIL import Image def CatchUsbVideo(window_name

  • 20行python代码实现人脸识别

    OpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python. 它使用机器学习算法在图像中搜索人的面部.对于人脸这么复杂的东西,并没有一个简单的检测能对是否存在人脸下结论,而需要成千上万的特征匹配.算法把人脸识别任务分解成数千个小任务,每个都不难处理.这些任务也被称为分类器. 对于类似于人脸的对象,你或许需要不少于 6000 个分类器,每一个都需要成功匹配(当然,有容错率),才能检测出人脸.但这有一个问题:对于人脸识别,算法从左上角开始计算一个个数据块,不停问"这

  • python+opencv实现的简单人脸识别代码示例

    # 源码如下: #!/usr/bin/env python #coding=utf-8 import os from PIL import Image, ImageDraw import cv def detect_object(image): '''检测图片,获取人脸在图片中的坐标''' grayscale = cv.CreateImage((image.width, image.height), 8, 1) cv.CvtColor(image, grayscale, cv.CV_BGR2GR

  • Python3结合Dlib实现人脸识别和剪切

    0.引言 利用python开发,借助Dlib库进行人脸识别,然后将检测到的人脸剪切下来,依次排序显示在新的图像上: 实现的效果如下图所示,将图1原图中的6张人脸检测出来,然后剪切下来,在图像窗口中依次输出显示人脸: 实现比较简单,代码量也比较少,适合入门或者兴趣学习. 图1 原图和处理后得到的图像窗口 1.开发环境 python: 3.6.3 dlib: 19.7 OpenCv, numpy import dlib # 人脸识别的库dlib import numpy as np # 数据处理的库

  • Python三十行代码实现简单人脸识别的示例代码

    一.库介绍 opencv,face_recognition,numpy,以及dlib 注意: 安装opencv速度可能过慢,需要更换国内镜像源,参考:https://www.jb51.net/article/208359.htm 附带Python3.7,64位版本 dlib whl下载路径:dlib-19_jb51.rar 二.库安装 pip install opencv-python pip install face_recognition pip install numpy dlib库需进入

  • 使用卷积神经网络(CNN)做人脸识别的示例代码

    上回书说到了对人脸的检测,这回就开始正式进入人脸识别的阶段. 关于人脸识别,目前有很多经典的算法,当我大学时代,我的老师给我推荐的第一个算法是特征脸法,原理是先将图像灰度化,然后将图像每行首尾相接拉成一个列向量,接下来为了降低运算量要用PCA降维, 最后进分类器分类,可以使用KNN.SVM.神经网络等等,甚至可以用最简单的欧氏距离来度量每个列向量之间的相似度.OpenCV中也提供了相应的EigenFaceRecognizer库来实现该算法,除此之外还有FisherFaceRecognizer.L

  • Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '******' API_KEY = '************' SECRET_KEY = '**************' 下面就是百度API包的安装,在终端cmd输入如下语句直接pip方式安装,注意是 baidu-api 哦! pip install --user baidu-aip 接下来上py

  • Python 使用Opencv实现目标检测与识别的示例代码

    在上章节讲述到图像特征检测与匹配 ,本章节是讲述目标检测与识别.后者是在前者的基础上进一步完善. 在本章中,我们使用HOG算法,HOG和SIFT.SURF同属一种类型的描述符.功能代码如下: import cv2 def is_inside(o, i): ox, oy, ow, oh = o ix, iy, iw, ih = i # 如果符合条件,返回True,否则返回False return ox > ix and oy > iy and ox + ow < ix + iw and o

  • Python 几行代码即可实现人脸识别

    摘要:一行代码实现人脸识别 首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片.其中每个人一张图片,图片以人的名字命名. 接下来,你需要准备另一个文件夹,里面是你要识别的图片. 然后你就可以运行face_recognition命令了,把刚刚准备的两个文件夹作为参数传入,命令就会返回需要识别的图片中都出现了谁,一行代码足以!!! 正文: 环境要求: Ubuntu17.10 Python 2.7.14 环境搭建: 1.安装 Ubuntu17.10 > 安装步骤在这里 2.安装 Python

  • Python+Opencv实现数字识别的示例代码

    一.什么是数字识别?   所谓的数字识别,就是使用算法自动识别出图片中的数字.具体的效果如下图所示: 上图展示了算法的处理效果,算法能够自动的识别到LCD屏幕上面的数字,这在现实场景中具有很大的实际应用价值.下面我们将对它的实现细节进行详细解析. 二.如何实现数字识别?   对于数字识别这个任务而言,它并不是一个新的研究方向,很久之前就有很多的学者们在关注这个问题,并提出了一些可行的解决方案,本小节我们将对这些方案进行简单的总结. 方案一:使用现成的OCR技术. OCR,即文字识别,它是一个比较

  • OpenCV + MFC实现简单人脸识别

    用VS2010 + OpenCV 2.4.9 实现简单人脸识别 首先放效果图(为了防止辣眼睛,后期处理了下): 首先声明,我是在参考其他文章的基础上实现的. 切入正题: 1 设置控件 首先新建一个基于Dialog的MFC程序的工程,工程名为FaceDetect : 然后在IDD_FACEDETECT_DIALOG对话框中添加一个Picture 控件,ID命名为:IDC_PICTURE:添加一个Button控件,Caption命名为 "检测",ID命名为IDC_START,将原来自动生成

  • Python基于OpenCV库Adaboost实现人脸识别功能详解

    本文实例讲述了Python基于OpenCV库Adaboost实现人脸识别功能.分享给大家供大家参考,具体如下: 以前用Matlab写神经网络的面部眼镜识别算法,研究算法逻辑,采集大量训练数据,迭代,计算各感知器的系数...相当之麻烦~而现在运用调用pythonOpenCV库Adaboost算法,无需知道算法逻辑,无需进行模型训练,人脸识别变得相当之简单了. 需要用到的库是opencv(open source computer vision),下载安装方式如下: 使用pip install num

  • Python K-means实现简单图像聚类的示例代码

    这里直接给出第一个版本的直接实现: import os import numpy as np from sklearn.cluster import KMeans import cv2 from imutils import build_montages import matplotlib.image as imgplt image_path = [] all_images = [] images = os.listdir('./images') for image_name in images

随机推荐