怎么用Python实现人脸识别功能

  介绍

本篇内容介绍了“怎么用Python实现人脸识别功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

随着去年alphago的震撼表现,AI再次成为科技公司的宠儿.AI涉及的领域众多,图像识别中的人脸识别是其中一个有趣的分支。百度的BFR,脸+ +的开放平台,汉王,讯飞等等都提供了人脸识别的API,对于老码农而言,自己写一小段代码,来看看一张图片中有几个人,没有高大上,只是觉得好玩,而且只需要7行代码。

 import  cv2
  
  时间=face_patterns  cv2.CascadeClassifier (& # 39;/usr/地方/opt/opencv3/分享/OpenCV/haarcascades haarcascade_frontalface_default.xml& # 39;)
  
  时间=sample_image  cv2.imread(& # 39;/用户/亚伯/201612. jpg # 39;)
  
  时间=faces  face_patterns.detectMultiScale (sample_image scaleFactor=1.1, minNeighbors=5, minSize=(100,, 100))
  
  for  (w, x,, y,, h),拷贝的脸:
  ,,,cv2.rectangle (sample_image,, (x, y), (x + w,, y + h),, (0,, 255,, 0),, 2)
  
  cv2.imwrite(& # 39;/用户/亚伯/201612 _detected.png& # 39;,, sample_image); 

第1行引入OpenCV

开源是伟大的,使我们视野更开阔,而且不用重复造轮子。这里没有用公益诉讼,再结合特定算法,而是直接使用了OpenCV (http://opencv.org) .OpenCV是一个基于BSD许可发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上,轻量而且高效,用C/c++编写,同时提供了Python、Ruby、MATLAB等接口,实现了图像处理和计算机视觉方面的很多通用算法。

第2行加载分类器cv2.CascadeClassifier

CascadeClassifier是OpenCV中做人脸检测时候的一个级联分类器,该类中封装的是目标检测机制即滑动窗口机制+级联分类器的方式。数据结构包括数据和FeatureEvaluator两个主要部分. Data中存储的是从训练获得的xml文件中载入的分类器数据;而FeatureEvaluator中是关于特征的载入,存储和计算。这里采用的训练文件是OpenCV中默认提供的haarcascade frontalface 违约。xml。至于哈雾,枸杞多糖的具体原理,可以参考opencv的相关文档,简单地,可以理解为人脸的特征数据。

第3行加载目标图片imread

人脸识别系统一般分为:人脸图像采集,人脸图像预处理,人脸图像特征提取以及匹配与识别。简化起,见之间读入图片,这是一张去年中生代北京闭门会的集体照。

怎么用Python实现人脸识别功能

第4行多尺度检测detectMultiScale

调用CascadeClassifier中的调detectMultiScale函数进行多尺度检测,多尺度检测中会调用单尺度的方法detectSingleScale。参数说明:

<李>

scaleFactor是图像的缩放因子

<李>

minNeighbors为每一个级联矩形应该保留的邻近个数,可以理解为一个人周边有几个人脸

<李>

minSize是检测窗口的大小

这些参数都是可以针对图片进行调整的,处理结果返回一个人脸的矩形对象列表。

第5行和第6行为每个人脸画一个框

循环读取人脸的矩形对象列表,获得人脸矩形的坐标和宽高,然后在原图片中画出该矩形框,调用的是opencv的矩形方法,其中矩形框的颜色等是可调整的。

第7行保存检测后的结果

万事具备了,调用imwrite,将检测后的结果保存到指定的位置。结果图如下:,

怎么用Python实现人脸识别功能

神秘感不是这7行代码,而是opencv中的相关实现,opencv的中文网也是一个学习体会的好场所。

因此,7行代码只是个噱头,真正的核心是opencv。然后,安装opencv环境的时候就是有一些坑,特别记录一下。

基于Mac的opencv环境

建议使用啤酒安装,如果没有安装,先执行下面命令:

<代码>美元/usr/bin/ruby - e“$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) "

然后,指定目标仓库,<代码> $酿造利用自制程序/科学

安装OpenCV3 , <代码>酿造美元安装opencv3

安装速度取决于网络,安装完毕需要绑定Python开发环境,有多种土方法:

1)增加环境变量,将opencv的网站添加到PYTHONPATH环境中

2)使用ln软连接,将cv2。所以链接到python环境的网站中

3)直接cp cv2。所以到python环境的网站目录下

怎么用Python实现人脸识别功能