人脸识别(基于Caffe)
人脸识别(基于Caffe, 来自tyd)
人脸识别(判断是否为人脸)
LMDB(数据库, 为Caffe支持的分类数据源)
mkdir face_detectcd face_detectmkdir train valmkdir train/{0,1}mkdir val/{0,1}- 将人脸数据放到
train/1和val/1下 - 将非人脸数据放到
val/0和val/0下 vim train.txt
0/xxx.jpg 0
1/xxx.jpg 1
vim val.txt
1/xxx.jpg 1
0/xxx.jpg 0
- 拷贝Caffe自带的脚本根据上面的train.txt和val.txt制作LMDB数据源, 名为
face_detect_lmdb.sh
# 修改部分
EXAMPLE=/home/jh/face_detect
DATA=/home/jh/face_detect
TOOLS=caffe安装目录/build/tools
TRAIN_DATA_ROOT=/home/jh/face_detect/train/
VAL_DATA_ROOT=/home/jh/face_detect/val/
# 对输入的数据进行大小的调整, 大小的调整是要根据我们要使用的网络模型, 比如AlexNet或者VGG(速度慢)为227x227
RESIZE=true
if $RESIZE; then
RESIZE_HEIGHT=227
RESIZE_WIDTH=227
else
RESIZE_HEIGHT=0
RESIZE_WIDTH=0
fi
# 接着修改GLOG_logtostderr那里的$DATA/train.txt, 这个为那个train.txt, $EXAMPLE/face_train_lmdb, 这个为生成的lmdb数据源的位置
# 下面也一样, 修改为val.txt, $EXAMPLE/face_val_lmdb, 这个为val的lmdb数据源生成的位置
- 指定
face_detect_lmdb.sh脚本文件, 如果那些face_val_lmdb已经存在则直接报错, 在执行过程中, 可能会出现Could not open ..., 这个没有关系, 执行的细节为, 先配置train, 在配置val - 因为数据源很大, 大约4W, 我们生成的lmdb文件为好几个GB, 再提一下, model大概为好几百MB
模型调优
- 选择更深的网络, 改用VGG-16
- 调整学习率
- 图像增强
训练AlexNet网络(忘了, 去网上找AlexNet的结构图)
- 对AlexNet进行简单的修改, 对最后的全连接层从1000改为2
- 创建train.prototxt文件, 在里面写神经网络结构
- 创建solver.prototxt文件
- 指定
test_iter, 测试多少个batch test_interval: 1000, 迭代1000次进行测试base_lr: 0.001: 基础学习率max_iter: 10000: 最大迭代次数gamma: 0.1stepsize: 20000display: 1000: 每1000次迭代显示一次momentum: 0.9weight_decay: 0.0005snapshot: 10000: 每个10000次保存一次modelsnapshot_prefix: "/path/to/model": 模型保存的目录solver_mode: CPU: 使用CPU还是GPU
- 指定
执行模型
- 创建一个train.sh脚本
/path/to/caffe train --solver=/path/to/solver.prototxt
sh train.sh执行- 结束会生成一个模型文件(就一个, 就可以直接拿来用了)
网络训练速度限制
- 网络大小
- 输入数据的大小, 图片大小
人脸检测
Multi-Scale变换
- 进行多个Scale变换->会导致有多个bbox, 后续需要NMS
- 保存原始的bboxes, 在后续的时候通过scale factor映射到原始图形上
滑动窗口
- 多尺度的Scale变换, 对小人脸(如50x50)进行放大转为224x224, 对大脸进行缩小; 对原始图像进行多此缩放, 也就是不断的乘以scale factor知道到一个临界值, 变成一个图像金字塔
人脸识别(基于Caffe)的更多相关文章
- 基于人脸识别+IMDB-WIFI+Caffe的性别识别
本文用记录基于Caffe的人脸性别识别过程.基于imdb-wiki模型做finetune,imdb-wiki数据集合模型可从这里下载:https://data.vision.ee.ethz.ch/cv ...
- 【Python+OpenCV】人脸识别基于环境Windows+Python3 version_3(Anaconda3)+OpenCV3.4.3安装配置最新版安装配置教程
注:本次安装因为我要安装的是win10(64bit)python3.7与OpenCV3.4.3教程(当下最新版,记录下时间2018-11-17),实际中这个教程的方法对于win10,32位又或是64位 ...
- 人脸检测数据源制作与基于caffe构架的ALEXNET神经网络训练
本篇文章主要记录的是人脸检测数据源制作与ALEXNET网络训练实现检测到人脸(基于caffe). 1.数据获取 数据获取: ① benchmark是一个行业的基准(数据库.论文.源码.结果),例如WI ...
- paper 97:异质人脸识别进展的资讯
高新波教授团队异质人脸图像识别研究取得新突破,有望大大降低刑侦过程人力耗费并提高办案效率 近日,西安电子科技大学高新波教授带领的研究团队,在异质人脸图像识别研究领域取得重要进展,其对香 ...
- Python Face Recognition 实现人脸识别
一.Face Recognition软件包 我们的人脸识别基于face_recognition库.face_recognition基于dlib实现,用深度学习训练数据,模型准确率高达99.38%. 人 ...
- OpenCV学习(38) 人脸识别(3)
前面我们学习了基于特征脸的人脸识别,现在我们学习一下基于Fisher脸的人脸识别,Fisher人脸识别基于LDA(线性判别算法)算法,算法的详细介绍可以参考下面两篇教程内容: ...
- Python3利用Dlib19.7实现摄像头人脸识别的方法
0.引言 利用python开发,借助Dlib库捕获摄像头中的人脸,提取人脸特征,通过计算欧氏距离来和预存的人脸特征进行对比,达到人脸识别的目的: 可以自动从摄像头中抠取人脸图片存储到本地,然后提取构建 ...
- 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
- 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【三】VGG网络进行特征提取
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
随机推荐
- 使用Jenkins容器构建时,关于maven项目settings.xml的位置
切记切记:必须要放在 /root/.m2/settings.xml,要不然Jenkins容器中执行mvn命令时settings会不生效
- Eclipse中Tomcat的配置及简单例子
Eclipse中Tomcat的配置及简单例子 Eclipse中Tomcat的配置是很简单的一个工作 一. 工具下载 Eclipse,最新版的eclipse为Mars版本.下载地址为: http://w ...
- 构造函数(JAVA)
构造函数 :是一种特殊的方法,主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中. 特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类 ...
- 配置AndroidStdio的开发环境
http://blog.csdn.net/siwuxie095/article/details/53431818
- “全栈2019”Java多线程第五章:线程睡眠sleep()方法详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- String类的操作方法
因String属于java核心包lang包的东西,所以不需要导包! /* * 字符串操作 * */ String name = "jck"; String name1 = &quo ...
- python 去除字符串的首末两端的空白字符
my_str = " adsffff adsfsad " my_str.strip() 使用strip()默认将 str 两端的空白字符去除掉 同时还有rstrip() 和 lst ...
- Redis-Java 交互的应用
一.首先介绍一下Redis Redis是目前业界使用最广泛的内存数据存储.相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化.除此 ...
- Mysql 四种事务隔离介绍以及锁机制
还有很多不太懂,这里收集几份大佬文章“飞机票”,待我整理好了,再好好写一篇文章吧. MySQL的四种事务隔离级别 https://www.cnblogs.com/huanongying/p/70215 ...
- 12个值得关注的顶级可视化JS库 涉及图表、动画、时间处理,表格操作
本文是译文,原文是https://da-14.com/blog/top-11...我在原文的基础上加了百度的Echats图表库,这个也是毫不逊色其他图表库的.另外Handsontable电子表格库也是 ...