博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
某简单易懂的人脸识别 API 的开发环境搭建和简易教程
阅读量:5126 次
发布时间:2019-06-13

本文共 2523 字,大约阅读时间需要 8 分钟。

最近接了个人脸识别相关的项目,是基于某个非常简单易懂的人脸识别 API: 做的。这个库接口非常傻瓜,很适合新手上手,而且可以研究其源码来学习 dlib 这个拥有更加灵活、强大的人脸识别功能的库。本文介绍了该 API 的环境配置和一个简单例程。

从源代码编译安装 Cmake

准备工作

访问 ,下载最新的发布版本。

例如,当前最新版本为 cmake-3.14.1,则我们可以直接下载、解压或用命令行:

wget https://github.com/Kitware/CMake/releases/download/v3.14.1/cmake-3.14.1.tar.gz &&tar xzvf cmake-3.14.1.tar.gz

开始安装

首先进入解压完成的主目录,运行 bootstrap

cd cmake-3.14.1/ && ./bootstrap

完成后,最后一行提示应该是:

CMake has bootstrapped.  Now run make.

根据提示,运行 make

make

编译完成后,运行安装命令(这里需要管理员权限):

sudo make install

搞定。

一句话总结

直接运行命令:

wget https://github.com/Kitware/CMake/releases/download/v3.14.1/cmake-3.14.1.tar.gz &&tar xzvf cmake-3.14.1.tar.gz && ./bootstrap && make && sudo make install

从源码安装 dlib

准备工作

Clone 源码:

git clone https://github.com/davisking/dlib.git

编译并安装

建立 dlib 主库:

cd dlibmkdir build && cd build && cmake .. && cmake --build .

安装 Python 扩展:

cd ..python3 setup.py install

成功后应该会有一行提示类似于:

Successfully installed dlib-19.17.0

安装人脸识别 API Face Recognition

很简单,直接运行命令:

pip3 install face_recognition

安装成功提示:

Successfully installed Click-7.0 Pillow-6.0.0 face-recognition-1.2.3 face-recognition-models-0.3.0 numpy-1.16.2

Face Recognition API 简单用法示例

这里顺带介绍一些 Face Recognition API 的简单用法。

假设我们想用机器识别某张聚会照片 ~/party_photos/001.jpg 里面,自己有没有被照进去,那么就可以拿一张自己的自拍(照片中只包含自己的脸) ~/Pictures/selfie.jpg 来,让人脸识别算法对比是否存在一张脸和自己照片里的脸相似。

# -*- coding: utf-8 -*-import face_recognition as face_recoimport numpy as npdef am_i_in_party(party_photo_path, selfie_path, simi_thresh=.6):  # 读取图像文件:  image_party = face_reco.load_image_file(party_photo_path)  image_selfie = face_reco.load_image_file(selfie_path)  # 检测图像中的人脸:  # (注意,这里可以选择检测人脸模型: HOG or CNN,  # CNN 检测成功率更高,但是如果没有 GPU 加速会很慢)  face_bboxes_party = face_reco.face_locations(image_party, model='cnn')  face_box_selfie = face_reco.face_locations(image_selfie, model='cnn')  # 将检测到的人脸特征编码:  face_encodings_party = face_reco.face_encodings(image_party, known_face_locations=face_bboxes_party)  face_encoding_selfie = face_reco.face_encodings(image_selfie, known_face_locations=face_bbox_selfie)[0]  # 计算人脸特征的距离(Dissimilarity):  face_distances = face_reco.face_distance(face_encodings_party, face_encoding_selfie)  # 相似度阈值转化为距离阈值:  dist_thresh = 1 - simi_thresh  # 判定是否自己是否存在于聚会照片中:  return face_distances[face_distances > dist_thresh].size > 0if __name__ == '__main__':  print(am_i_in_party('~/Pictures/selfie.jpg', '~/party_photos/001.jpg'))

上面这段代码就是检测一张照片中的人是否在另一张照片中出现的流程,因此很多人脸匹配应用都可以基于这个逻辑完成。


Written with .


  1. 如果不想从源码安装,可以直接使用命令:pip3 install dlib

转载于:https://www.cnblogs.com/LexLuc/p/10706498.html

你可能感兴趣的文章
unity3d 捕获系统日志,来处理一些问题
查看>>
Android的Recovery中font_10x10.h字库文件制作
查看>>
SpringBoot+FreeMarker开发word文档下载,预览
查看>>
JVM 内存设置大小(Xms Xmx PermSize MaxPermSize 区别)
查看>>
STL中 map 和 multimap
查看>>
discuz 标签详解
查看>>
微信公众账户模拟登陆后的一系列操作
查看>>
Mac远程连接服务器
查看>>
使用python爬取东方财富网机构调研数据
查看>>
贝叶斯理论基础理解
查看>>
2018java最新面试题
查看>>
PHP编写命令行脚本和后台运行程序的注意事项
查看>>
php 换行 PHP_EOL变量
查看>>
JS中关于clientWidth、offsetWidth、scrollWidth
查看>>
Telerik Reporting之生成报表
查看>>
不要怂!就是干!
查看>>
11.8学习笔记
查看>>
[BZOJ 5074] 小B的数字
查看>>
Java并发编程笔记之ThreadLocal内存泄漏探究
查看>>
BZOJ5020: [THUWC 2017]在美妙的数学王国中畅游(LCT,泰勒展开,二项式定理)
查看>>