学习
实践
活动
专区
工具
TVP
写文章

人脸比对实现

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

安装pip3

sudo 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 clonehttps://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 https://github.com/ageitgey/face_recognition.git

100M左右,下载有点久

切换目录,安装

cd face_recognition

pip3 install -r requirements.txt

同样的,安装也很久

可能会停在Running setup.py bdist_wheel for dlib ...耐心等待

安装到python

sudo python3 setup.py install

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

首先,我们要准备来两张带人脸的图片

wget http://cdn.bossky8023.com/img/idcard.jpg

wget 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

没意外的话,会得到下面的结果

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

完!

↓↓↓扫码看BUG↓↓↓

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721G143BV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券