python实现人脸识别比对_人脸识别并比对实现(基于face_recognition)

Face Recognition 是一个基于python的人脸识别框架,我们在此之上来实现人脸比对。

环境要求

Python 3.3+ or Python 2.7

macOS or Linux (Windows没有正式支持,但可能可以用)

我的环境

Python 3.5.2

ubuntu 16.04

首先,我们要安装python(有可能已经默认装好了)sudo apt-get install python3

安装pip3sudo apt-get install python3-pip

安装dlib,这个过程有点长

先安装基本包sudo apt-get install -y --fix-missing

build-essential

cmake

gfortran

git

wget

curl

graphicsmagick

libgraphicsmagick1-dev

libatlas-dev

libavcodec-dev

libavformat-dev

libgtk2.0-dev

libjpeg-dev

liblapack-dev

libswscale-dev

pkg-config

python3-dev

python3-numpy

software-properties-common

zip

克隆原代码git clone https://github.com/davisking/dlib.git

切换目录,编译cd dlib

mkdir build; cd build; cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1; cmake --build .

切换目录,安装cd ..

python3 setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA

安装face_recongnition

克隆原代码git clone -b v1.2.2 https://github.com/ageitgey/face_recognition.git

100M左右,下载有点久

切换目录,安装cd face_recognition

pip3 install -r requirements.txt

同样的,安装也行久,会停在Running setup.py bdist_wheel for dlib ...,耐心等待

安装到pythonsudo python3 setup.py install

安装完face_recongnition后,我们就可以使用这个库来实现人脸识别了

首先,我们要准备来两张带人脸的图片wget http://cdn.bossky8023.com/img/idcard.jpgwget http://cdn.bossky8023.com/img/people.jpg

idcard.jpg 我们假设是证件,people.jpg是要识别的人脸

然后编辑 文本vi distance.py

内容大概如下import face_recognition

known_image = face_recognition.load_image_file("idcard.jpg")

known_encodings = []

for i in  face_recognition.face_encodings(known_image) :

known_encodings.append(i)

image_to_test = face_recognition.load_image_file("people.jpg")

image_to_test_encoding = face_recognition.face_encodings(image_to_test)[0]

face_distances = face_recognition.face_distance(known_encodings, image_to_test_encoding)

for i, face_distance in enumerate(face_distances):

print("距离 #{}".format(face_distance, i))

print()

face_recongnition 提供了一个判断两个人脸的距离(不相似的程度)的方法。

一般来讲,距离越小,人脸越像,官方建议,距离值小于0.6的人脸应该就算是匹配的了。

运行代码python3 distance.py

没意外的话,会得到下面的结果距离 #0.1891663484008163

face_recongnition的更多使用方法可以参考我们克隆下来的项目里面的examples

你可能感兴趣的:(python实现人脸识别比对)