写在前面:本实验用到的图片均来自google图片,侵删! 实验介绍 用python手写一个简单bp神经网络,实现人脸的性别识别.由于本人的机器配置比较差,所以无法使用网上很红的人脸大数据数据集(如lfw数据集等等),所以我从google图片下载了一些中国明星的照片来作为本次实验的数据集. 训练数据集:5位中国的男明星(每个明星10张),6位中国的女明星(每个明星10张). 测试数据集:6张女生,6张男生 实验环境 win10 python3.5+opencv+dlib+PIL 说明:上面涉及到的…
摘要:人脸性别识别是人脸识别领域的一个热门方向,本文详细介绍基于深度学习的人脸性别识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中可以选择人脸图片.视频进行检测识别,也可通过电脑连接的摄像头设备进行实时识别人脸性别:可对图像中存在的多张人脸进行性别识别,可选择任意一张人脸框选显示结果,检测速度快.识别精度高.博文提供了完整的Python代码和使用教程,适合新入门的朋友参考,完整代码资源文件请转至文末的下载链接.本博文目录如下: 目录 前言 1. 效果演示…
Python语言编写BP神经网络 2016年10月31日 16:42:44 ldy944758217 阅读数 3135   人工神经网络是一种经典的机器学习模型,随着深度学习的发展神经网络模型日益完善. 联想大家熟悉的回归问题, 神经网络模型实际上是根据训练样本创造出一个多维输入多维输出的函数, 并使用该函数进行预测, 网络的训练过程即为调节该函数参数提高预测精度的过程.神经网络要解决的问题与最小二乘法回归解决的问题并无根本性区别. 回归和分类是常用神经网络处理的两类问题, 如果你已经了解了神经…
BP算法为深度学习中参数更新的重要角色,一般基于loss对参数的偏导进行更新. 一些根据均方误差,每层默认激活函数sigmoid(不同激活函数,则更新公式不一样) 假设网络如图所示: 则更新公式为: 以上列举了最后2层的参数更新方式,第一层的更新公式类似,即上一层的误差来自于下一层所有的神经元,e的更新就是不断建立在旧的e上(这里g可以当做初始的e) 下面上代码: 1,BP算法 # 手写BP算法 import numpy as np # 先更新参数,再继续传播 # layers:包括从输入层到输…
历时一个月,最终在昨天把<C++开发人脸性别识别总结>系列博客完毕了,第一篇博客发表在2015年12月29日,截止昨天2016年2月29日最后一篇完毕,去除中间一个月的寒假,正好一个月,首先这里把这系列博客的地址呈上:C++开发人脸性别识别教程. 在发牢骚之前首先强调几个重要问题: (1)在程序中存在一个小的易触发的BUG.就是"初始化"button相应的事件触发函数OnBnClickedButtonInitial()中有一句这种代码: 在实际编程过程中常常须要对代码进行规…
OpenCv是C++图像处理的重要工具.这个人脸性别识别的项目就是借助OpenCv进行开发的. 尽管网上已经有了非常多关于OpenCv的配置教程,但出于教程完整性考虑.这里还是用专门的一篇博客来介绍OpenCv的详细配置方法,同一时候也介绍一下OpenCv中的一个强有力的图像处理插件--ImageWatch. 因为这个程序是一年前写的.当时的OpenCv的最新版本号为2.4.9(如今已经更新到了3.0),而且2.4.9版本号和3.0版本号在配置方法上稍有不同,这里我仍以2.4.9版本号为例来介绍…
在之前的博文中我们已经可以顺利驱动摄像头来採集源图像.在这篇博文中将正式为其加入性别识别的代码,实现摄像头视频的人脸性别识别. 一.人脸检測 在得到摄像头採集的源图像之后,首先要做的就是对其进行人脸检測,将人脸区域切割出来.这步相对来说比較简单.仅仅需在定时器时间触发函数中加入人脸检測的代码就可以.这里给出OnTimer()函数的总体代码: void CGenderRecognitionMFCDlg::OnTimer(UINT_PTR nIDEvent) { /***********人脸检測并识…
经过之前几篇博客的解说,我们已经成功搭建了MFC应用框架,并实现了主要的图像显示和人脸检測程序,在这篇博文中我们要向当中加入性别识别代码. 关于性别识别,之前已经专门拿出两篇博客的篇幅来进行解说.这里不再赘述.详细參见:C++开发人脸性别识别教程(5)--通过FaceRecognizer类实现性别识别和C++开发人脸性别识别教程(6)--通过SVM实现性别识别. 一.分类器训练 在进行人脸性别识别之前须要训练性别识别的分类器,而分类器的训练过程是相对耗时的(大约五分钟),因此这里我们採用离线训练…
在这篇博文中将完毕<C++开发人脸性别识别>的收尾工作.主要内容分为两部分:加入视频暂定功能.界面规范化. 一 视频暂停功能 严格来说这个视频暂定功能算是视频人脸性别识别的一个遗留问题,本应加在C++开发人脸性别识别教程(16)--视频人脸性别识别这篇博文中.这里将其补上,详细功能就是在对摄像头採集的视频进行人脸检測.性别识别时,可以通过一个"暂停"button来对程序进行控制,实现程序的開始和中断. 1.1 加入控件 依照以往的思路这里须要再次加入一个button控件来实…
现在我们的MFC框架已经初具规模,能够读取并显示目录下的图片.在这篇博文中我们将向当中加入人脸检測的程序. 一.人脸检測算法 这里我们使用OpenCv封装的Adaboost方法来进行人脸检測,參见:C++开发人脸性别识别教程(4)--OpenCv的人脸检測函数 二.初始化 1.加入初始化button 在进行人脸检測之前须要初始化一些相关变量.比如开辟内存,载入检測器等等.首先,我们为MFC框架加入一个初始化button.并将ID更改为IDC_BUTTON_INITIAL: 双击这个button.…