# 基于 BP 神经网络算法的性别识别
## 1.背景介绍
在处于高速发展的现代社会中,“快速、便捷、安全”成为当代社会的代名词。随着计 算机视觉技术和光电技术的快速发展,人们越来越希望自己生活在一个安全的环境下,尤其是 自己的人身安全以及财产安全。为了让生活更加便捷,使人们在繁重的劳动中解救出来,计算 机技术及其应用已经成为人们生活中扮演这必不可少的角色。
其中人工智能技术的开发和运用成为国内外学者和研究人员研究的重点和热点。在人工 智能领域中,三维人脸识别技术的研究已经成为一个热门研究领域,它可以应用于需要身份认 证的各种各样的场所之中,例如在金融领域中的银行交易身份验证,互联网或网银上的交易身 份验证:在国家安全防御中出入安全检查,各种监控系统以及门禁系统等,是解绝身份识别的 有效手段。它可以有效避免 2 维人脸识别中存在的缺陷和不足,具有更高的精准性和可信度。
早在 1964 年,国外人员就开始从事人脸识别技术的研究。人脸识别是生物识别技术的一种形 式,它涉及模式识别,计算机视觉,心理学及生理学及认知科学等方面的诸多方式,在计算机 的辅助下实现身份识别,是基于人独有的特征进行身份验证的有效手段。也可以说,人脸识别 也是指对于给定一幅人脸作为输入,在待识别的数据库中寻找匹配,在数据库中找到与输入人 脸一致的人脸图像。
起初人脸识别是通过计算在二维图像的特征点,如双眼间距,五官比例等,其算法的本 质是将人脸分成 N 部分,分部分计算的问题,即将需要识别的人脸输入分类器给出类别判定, 相似度最高的是同一人的图像。为了提高人脸识别的准确性,研究人员提出三维人脸识别的设 想,经过大量的研究表明,三维人脸信息比二维人脸信息更丰富,减少了使用者因表情变化和 姿势改变带来的实验误差,大大的提高了人脸识别的准确性。大量的研究人员投入到 三维人睑识别的研究中来,使得三维人睑识别技术得到快速的发展。目前不少的三维人脸扫描 设备已经投入商用,例如 Head Color 3D、scanner、3D Capture、VIVID910 等。
人脸识别技术在 20 世纪就开始逐渐进入人们的视野。人脸识别作为生物识别技术的一种 形式,它涉及模式识别,计算机视觉,心理学及生理学及认知科学等方面的诸多方式,在计算机的辅助下实现身份识别,是基于人独有的特征进行身份验证的有效手段。人脸识别并不是一 个单独的研究领域。起初,人脸识别只是被作为一般性的模式识别问题进行研究,方法也不是 仅仅是针对人脸几何特征实现的算法。到 20 世纪 90 年代后,人睑研究开始突飞猛进,不仅建 立了数个大型人睑库的建立,而且出现了一些商业化的人睑识别系统。最为该技术作为获取空 间数据的有效手段,能够快速的扫描人脸信息进行辨识,具有扫描速度快,精度高的特点。尽 管人脸识别技术早在 20 世纪就开始研究,已经发展多年,但还是未能达到人们的预期目标,因 此,人们对人脸识别技术的研究仍然在探索之中。
## 2.OpenCV 的介绍
OpenCV 是一个基于 BSD 许可(开源)发行的跨平台计算机视觉库,可以运行在 Linux、 Windows、Android 和 Mac OS 操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ [类构成](https://baike.baidu.com/item/%E6%9E%84%E6%88%90/103686),同时提供了 Python、Ruby、MATLAB 等语言的接口,实现了[图像处理](https://baike.baidu.com/item/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/294902)和计算机视觉方面 的很多通用算法。
OpenCV 用 C++ 语言编写,它的主要接口也是 C++ 语言,但是依然保留了大量的 C [语言接](https://baike.baidu.com/item/%E6%8E%A5%E5%8F%A3/2886384) [口](https://baike.baidu.com/item/%E6%8E%A5%E5%8F%A3/2886384)。该库也有大量的 Python、Java and MATLAB/OCTAVE(版本 2.5)的接口。这些语言的 API 接口函数可以通过在线[文档](https://baike.baidu.com/item/%E6%96%87%E6%A1%A3/1009768)获得。如今也提供对于 C#、Ch、Ruby,GO 的支持。
OpenCV 具有模块化结构,这就意味着开发包里面包含多个共享库或者静态库。下面是可 使用的模块:
1. [核心功能](http://docs.opencv.org/master/d0/de1/group__core.html)(Core functionality):一个紧凑的模块,定义了基本的数据结构,包括密 集的多维 Mat 数组和被其他模块使用的基本功能。
2. [图像处理](http://docs.opencv.org/master/d7/dbd/group__imgproc.html)(Image processing):一个图像处理模块,它包括线性和非线性图像滤波, 几何图形转化(重置大小,放射和透视变形,通用基本表格重置映射),色彩空间转 换,直方图等。
3. 影像分析(video):一个影像分析模块,它包括动作判断,背景弱化和目标跟踪算法。
4. 3D 校准(calib3d):基于多视图的几何算法,平面和立体摄像机校准,对象姿势判断, 立体匹配算法,和 3D 元素的重建。
5. 平面特征(features2d):突出的特征判断,特征描述和对特征描述的对比。
6. 对象侦查(objdetect):目标和预定义类别实例化的侦查(例如:脸、眼睛、杯子、 人、汽车等等)。
7. highgui:一个容易使用的用户功能界面。
8. 视频输入输出(videoio):一个容易使用的视频采集和视频解码器。
9. GPU:来自不同 OpenCV 模块的 GPU 加速算法。
10. 一些其他的辅助模块,比如 FLANN 和谷歌的测试封装,Python 绑定和其他。
## 3.安装 OpenCV
我们利用 python 里面已有的库来安装 OpenCV。Python 是一种计算机程序设计语言。是一 种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更 新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
我们只需要通过 pip 或者 anaconda 安装 OpenCV 包就可以通过导入包并使用。
## 4.BP 神经网络算法介绍和实践
BP 神经网络通常是指基于误差反向传播算法( Back Propagation, 简称 BP 算法)的多层 前向神经网络 ( Multi-laye Feed-forward Neural Networks, MFNN),它最初是由 Paul Werboss 在 1974 年提 出, 但未在传播,直到 20 世纪 80 年代中期 Rumelhart、Hinton 和 Williams, David Parker 和 Yann Le Cun 重新发现了 BP 算法,同时因此算法被包括在《并行 分布处理》(Parallel Distributed Processing),此算法才广为人知。目前 BP 算法已成为应 用最广泛的神经网络学习算法,据统计有近 90% 的神经网络应用是基于 BP 算法的。BP 网络的神 经元采用的传递函数通常是 Sigmoid 型可微函数,所以可以实现输入和输出间的任意非线性映 射,这使得它在诸如信号处理、计算机网络、过程控制、语音识别、函数逼近、模式识别及数 据压缩等领域均取得了成功的应用。
### 4.1 BP 神经网络结构
BP 网络的基本结构如图所示,其输入层节点数为,输入变量为()( = 1,2, . . . , ),隐层 节点数为,输入层节点与隐层节点间的连接权值为( = 1,2, . . . , ; = 1,2. . . , ),隐层节点的 阈值为 ( = 1,2, . . , ),隐节点输出为 ();输出层节点数为,隐层节点与输出层节点间的
连接权值为( = 1,2, . . . , ; = 1,2, . . . , ),输出层节点的阈值为( = 1,2,
. . . , ),输出层 节点输出为()。每一个神经元用一个节点表示,网络由输入层、�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
我们利用 python 里面已有的库来安装 OpenCV。Python 是一种计算机程序设计语言。是一 种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更 新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 我们只需要通过 pip 或者 anaconda 安装 OpenCV 包就可以通过导入包并使用。 4.BP 神经网络算法介绍和实践 BP 神经网络通常是指基于误差反向传播算法( Back Propagation, 简称 BP 算法)的多层 前向神经网络 ( Multi-laye Feed-forward Neural Networks, MFNN),它最初是由 Paul Werboss 在 1974 年提 出, 但未在传播,直到 20 世纪 80 年代中期 Rumelhart、Hinton 和 Williams, David Parker 和 Yann Le Cun 重新发现了 BP 算法,同时因此算法被包括在《并行 分布处理》(Parallel Distributed Processing),此算法才广为人知。目前 BP 算法已
资源推荐
资源详情
资源评论
收起资源包目录
基于opencv卷积网络实现人脸检测和性别分类.rar (11个子文件)
基于opencv卷积网络实现人脸检测和性别分类
facerecon__code
课堂汇报.pdf 461KB
LICENSE 1KB
video_face_rec.py 1KB
运用BP神经网络实现性别检测(工作报告).pdf 3.09MB
photo_test.py 2KB
最终报告.pdf 593KB
video_lib_sex_rec.py 2KB
video_sex_rec.py 10KB
photo_sex_rec.py 7KB
README.md 12KB
photo_lib_sex_rec.py 2KB
共 11 条
- 1
资源评论
甜辣uu
- 粉丝: 8387
- 资源: 1103
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功