face_recognition环境配置及命令行工具测试
由于某种不可抗力(又是它!)我写了这篇博客,主要目的是记录。
face_recognition是啥子?
face_recognition号称世界上最简单的人脸识别库,可使用 Python 和命令行进行调用。该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild benchmark)上的准确率高达 99.38%。也提供了一个简单的face_recognition命令行工具,可以让你从命令行对图像文件夹进行脸部识别!
简单来说,主要实现以下几个功能:
- Find faces in pictures
- Find and manipulate facial features in pictures
- Identify faces in pictures
这里是GitHub主页及文档:
环境配置
readme有提到:
- Python 3.3+ or Python 2.7
- macOS or Linux (Windows not officially supported, but might work)
- dlib already installed with Python bindings
这里提一下第三点,意思是你的dlib库要安装Python模块。
- Python&pip环境:
Mac自带Python2.7.10,这个不管,安装Python3可以用brew install python
,默认安装Python3(带pip3)
如果用Python2的话是不会带pip的,因为后面需要用所以得安装pip2,使用sudo easy_install pip
安装,这里记住一定要用sudo权限。
Searching for pip
Reading https://pypi.python.org/simple/pip/
Best match: pip 10.0.1
pip的安装会自动匹配适合你的系统的版本,安装好之后可以查看一下pip信息:
localhost:~ mac$ pip --version
pip 10.0.1 from /Library/Python/2.7/site-packages/pip-10.0.1-py2.7.egg/pip (python 2.7)
- 安装dlib
我是用gitclone安装的:
git clone https://github.com/davisking/dlib.git
下载之后按照步骤安装即可(没有cmake百度安装):
cd dlib/examples
mkdir build
cd build
cmake ..
cmake --build . --config Release
到这里只是安装好了默认的C++库,我们还需要安装Python模块:
cd dlib
sudo python setup.py install
python
import dlib
注意一定要进Python里面import:
完事之后重启一下终端。
- 安装face_recognition
用pip安装(install this module from pypi using pip3 (or pip2 for Python 2))
pip2 install face_recognition
我默认环境是Python2,我就用pip2了。
然后就是等待,速度很慢,并且……
???下的慢也有错我也是无语了,这个问题的解决办法有两个:
- 加长超时时间:
pip --default-timeout=100 install -U pip
- 修改源(换成国内源):临时源,使用参数-i:
pip2 install face_recognition -i https://pypi.tuna.tsinghua.edu.cn/simple
先是使用了第一个方法,每秒几十K,还是超时了,所以建议大家直接用第二个办法,指定临时源,清华的超快!
别高兴的太早,看到红色部分的报错了吗?Permission Denied(拒绝访问),原因是在安装pillow的时候没有权限,所以我建议在安装之前使用sudo
或者再后面添加--user
(表示只是本用户安装)
看到Successfully installed Click-6.7 face-recognition-1.2.2 face-recognition-models-0.3.0
这就没错了。
check一下,使用命令行:
ENJOY!!!!
测试
下面我们来进行测试,按照readme实例,我们新建两个文件夹,一个放需要识别的人,一个放我们认识的人。
我们在命令行中输入命令:
face_recognition ./known_people/ ./unknown_people/
等待几秒钟:
成功!
后面我又测试了几组,发现这个API对亚洲人种的识别并不是非常精确。
参考资料
- face_recognition
- face-recognition.readthedocs.io
- mac OSX下安装dlib (Python)
- Github近期最有趣的10款机器学习开源项目
- 更换pip源到国内镜像
- pip install Error - ReadTimeoutError
- mac下更新pip时提示OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/pip-8.0.2-py2.
face_recognition环境配置及命令行工具测试的更多相关文章
- Maven环境配置及命令行打包
一配置环境变量 下载 apache-maven-3.2.5压缩包解压到本地 F:\apache-maven-3.2.5 配置MAVEN_HOME环境变量F:\apache-maven-3.2.5如图 ...
- Zookeeper在Linux平台Java开发环境配置(命令行)
1.安装必要软件 首先需要安装ant, automake, autoconf, cppunit.在ubuntu上可以直接用apt-get install安装 2.Build Zookeeper 切换到 ...
- django环境配置(基于命令行安装)
一.django简介 Python服务端开发框架,Django是一个开放源代码的Web应用框架,由Python写成,Django采用了MVC的软件设计模式,即模型M,视图V和控制器C 二.安装配置dj ...
- Node.js躬行记(3)——命令行工具
一.自定义 创建一个空目录,然后通过npm init命令初始化package.json文件,并按提示输入相关信息或直接回车使用默认信息,生成的内容如下所示. { "name": & ...
- Cygwin(类UNIX模拟环境)&CURL(强大的http命令行工具)
前言: 需要我用curl试下能否发送post请求调起公司的仿真系统(目前) 跟着大佬的脚步,亲测一把~ 感谢大佬的提供的博客和指导 @咩神 个人博客园及来源地址 Cygwin(类UNIX模拟环境) 一 ...
- Cmder命令行工具在Windows系统中的配置
一.Cmder简介 Cmder:一款用于Windows系统中,可增强传统cmd命令行工具的控制台模拟器(类似于Linux系统中的终端控制窗口) 特点: 无需安装,解压即用 可使用较多Linux命令,如 ...
- Windows命令行工具cmder配置
简介 cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 下载 官网地址:http://cmder.net/ 下载的时候,会有 ...
- 《Java从入门到失业》第二章:Java环境(三):Java命令行工具
2.3Java命令行工具 2.3.1编译运行 到了这里,是不是开始膨胀了,想写一段代码来秀一下?好吧,满足你!国际惯例,我们写一段HelloWorld.我们在某个目录下记事本,编写一段代码如下: 保存 ...
- 九款命令行工具助力Linux环境下的数据分析
对于大多数熟悉了图形工作环境的朋友来说,电子表格工具无疑是第一选项.但命令行工具同样能够更快更高效地解决问题——且只须稍微学习即可上手. 大部分此类工具冻严格局限于Linux,而多数可同样运行在Uni ...
随机推荐
- 企业如何选择合适的BI工具?
在没认清现状前,企业当然不能一言不合就上BI. BI不同于一般的企业管理软件,不能简单归类为类似用于提高管理的ERP和WMS,或用于提高企业效率的OA.BPM.BI的本质应该是通过展现数据,用于加强企 ...
- Nodejs编译Native Code:使用C++构建工具npm
Nodejs的很多NPM包需要本地编译,通常是C++写的代码,例如图像处理模块等. 这是如果生产环境没有安装Visual Studio 2015等开发工具,通常会编译失败,发现了一个npm专门干这事儿 ...
- java中Proxy(代理与动态代理)
转自: https://blog.csdn.net/pangqiandou/article/details/52964066 一.代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习 ...
- 【SPL标准库专题(10)】SPL Exceptions
嵌套异常 了解SPL异常之前,我们先了解一下嵌套异常.嵌套异常顾名思义就是异常里面再嵌套异常,一个异常抛出,在catch到以后再抛出异常,这时可以通过Exception基类的getPrevious方法 ...
- Prometheus Node_exporter 之 Memory Detail Vmstat Counters
Memory Detail Vmstat Counters 1. Memory Page Active type: GraphUnit: shortLabel: PagesActive_anon - ...
- 转:35个让人惊讶的 CSS3 动画效果演示
本文收集了35个惊人的 CSS3 动画演示,它们将证明 CSS3 Transform 和 Transition 属性的强大能力.CSS 是网页设计非常重要的一部分,随着越来越多的浏览器对 CSS3 支 ...
- web导出excel文件的几种方法
总的来说,两种方法:服务器端生成和浏览器端生成. 服务器端生成就是:根据用户请求,获取相应的数据,使用poi/jxl, jacob/jawin+excel,或是用数据拼html的table或是cvs纯 ...
- ELF文件结构描述
ELF目标文件格式最前部ELF文件头(ELF Header),它包含了描述了整个文件的基本属性,比如ELF文件版本.目标机器型号.程序入口地址等.其中ELF文件与段有关的重要结构就是段表(Sectio ...
- Django之url映射
url映射的作用 根据Django的MTV模式,url的映射是根据用户输入或传送而来的url路径,来进行区分去执行相应的view函数来响应用户的操作. url映射的方式 Django项目的创建后,会自 ...
- Python实例---爬取下载喜马拉雅音频文件
PyCharm下python爬虫准备 打开pycharm 点击设置 点击项目解释器,再点击右边+号 搜索相关库并添加,例如:requests 喜马拉雅全网递归下载 打开谷歌/火狐浏览器,按F12打开开 ...