Face Recognition 是一个基于python的人脸识别框架,我们在此之上来实现人脸比对。
环境要求
Python 3.3+ or Python 2.7
macOS or Linux (Windows没有正式支持,但可能可以用)
我的环境
Python 3.5.2
ubuntu 16.04
首先,我们要安装python(有可能已经默认装好了)sudoapt-getinstallpython3
安装pip3sudoapt-getinstallpython3-pip
安装dlib,这个过程有点长
先安装基本包sudoapt-getinstall-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
克隆原代码gitclone/davisking/dlib.git
切换目录,编译cddlib
mkdirbuild;cdbuild;cmake..-DDLIB_USE_CUDA=0-DUSE_AVX_INSTRUCTIONS=1;cmake--build.
切换目录,安装cd..
python3setup.pyinstall--yesUSE_AVX_INSTRUCTIONS--noDLIB_USE_CUDA
安装face_recongnition
克隆原代码gitclone-bv1.2.2/ageitgey/face_recognition.git
100M左右,下载有点久
切换目录,安装cdface_recognition
pip3install-rrequirements.txt
同样的,安装也行久,会停在Running setup.py bdist_wheel for dlib ...,耐心等待
安装到pythonsudopython3setup.pyinstall
安装完face_recongnition后,我们就可以使用这个库来实现人脸识别了
首先,我们要准备来两张带人脸的图片wget/img/idcard.jpgwget/img/people.jpg
idcard.jpg 我们假设是证件,people.jpg是要识别的人脸
然后编辑 文本vidistance.py
内容大概如下importface_recognition
known_image=face_recognition.load_image_file("idcard.jpg")
known_encodings=[]
foriinface_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)
fori,face_distanceinenumerate(face_distances):
print("距离#{}".format(face_distance,i))
print()
face_recongnition 提供了一个判断两个人脸的距离(不相似的程度)的方法。
一般来讲,距离越小,人脸越像,官方建议,距离值小于0.6的人脸应该就算是匹配的了。
运行代码python3distance.py
没意外的话,会得到下面的结果距离#0.1891663484008163
face_recongnition的更多使用方法可以参考我们克隆下来的项目里面的examples
完