人脸检测和识别及python实现系列(1)-- 环境配置和相关类库安装

来源:互联网 发布:单页面网站seo 编辑:程序博客网 时间:2024/06/05 11:38

前言

先说下自己写这个系列的想法,大二上的时候由于和老师做项目,期间接触了许多比较前沿的东西,可以说就此改变了我对大学的想法吧,从起初不想考研,等大四毕业后出去找个稳当的工作,到后来十分期望接受更高的教育。所以,这可以算是我大学的一个转折点吧。我正式开始学习ML是在大二下的时候,也许个人比较笨和时间花的不够多的原因,对机器学习的学习成效也不是很好。之所以想做人脸识别,是对自己的内心一点小小的欲望,也是对自己大一、大二结束,大三到来之前的一次总结,大三自己可能更倾向于考研,所以项目可能会做的比较少,这个系列可能会持续一两个月,直到最终期望的产品完成,不过也可能达不到自己的期望,所以尽自己所能吧。这里要先感谢和我一起做这个项目的三个的小伙伴们。

期间可能会写两个其他的系列,主要看时间允许不允许:
一个是微信公众号开发(python实现)
一个是简单的聊天程序(C++实现,使用boost.asio库,原先帮同学是用Winsock写的,功能挺多的,这里不细讲了)

人脸检测

人脸检测(Face Detection)是一种在任意数字图像中找到人脸的位置和大小的计算机技术。它可以检测出面部特征,并忽略诸如建筑物、树木和身体等其他任何东西。有时候,人脸检测也负责找到面部的细微特征,如眼睛、鼻子、嘴巴等的精细位置。( —- 维基百科)

目前的人脸检测方法主要有两大类:基于知识和基于统计。

基于知识的方法主要利用先验知识将人脸看作器官特征的组合,根据眼睛、眉毛、嘴巴、鼻子等器官的特征以及相互之间的几何位置关系来检测人脸。基于统计的方法则将人脸看作一个整体的模式——二维像素矩阵,从统计的观点通过大量人脸图像样本构造人脸模式空间,根据相似度量来判断人脸是否存在。在这两种框架之下,发展了许多方法。目前随着各种方法的不断提出和应用条件的变化,将知识模型与统计模型相结合的综合系统将成为未来的研究趋势。

基于知识的人脸检测方法
1. 模板匹配
2. 人脸特征
3. 形状与边缘
4. 纹理特性
5. 颜色特征

基于统计的人脸检测方法
1. 主成分分析与特征脸
2. 神经网络方法
3. 支持向量机
4. 隐马尔可夫模型
5. Adaboost算法

待补充

相关环境

Ubuntu16.10 + python3.6 + opencv3.2.0

python3逐步取代python2已经成了一种趋势,所以本文也顺应的发展使用最新的python3标准

opencv3.2.0也是当下最新的,没什么可以说的了

相关类库安装

python+opencv的环境很简单,只要几部就可以用了

opencv3.2.0安装

  1. 下载opencv3.2.0源码 https://github.com/opencv/opencv/archive/3.2.0.zip
  2. 解压opencv-3.2.0.zip

    unzip opencv-3.2.0.zip -d ~ ( -d 后面表示存放的路径)

  3. 进入文件

    cd ~/opencv-3.2.0

  4. 创建并进入编译目录

    mkdir release && cd release

  5. 编译

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    make
    sudo make install

python3.6安装

Ubuntu16.10自带的python有两个,一个是python2.7,一个是python3.5,如果你实在不想装python3.6的话直接使用这两个版本也是可以的。

python3.6安装很简单

sudo apt-get install python3.6

pip3安装

sudo apt-get install python3-pip

opencv3.2.0

sudo apt-get install python-opencv
sudo apt-get install python-numpy

检测opencv是否安装成功只需要打开python,输入

import cv2

即可。

检测opencv版本

cv2.__version__

这一篇就写到这了,相关环境的搭建还是比较简单的。至于使用windows搭建环境其实也很见简单,这里就不讲了。

下一节开始代码实战。

引用

浅析人脸检测之Haar分类器方法

阅读全文
0 0