目的:检测到人脸框
数据获取:
1.benchmark(很多东西都能用到 行业基准 数据库 论文 算法 源码代码 )
2.MPII huaman pose
3.优秀论文 通常都会介绍使用的数据集 公开数据集都会下载来的 申请数据集最好用学校邮箱。
4.论坛 交流社区 比如thinkface
5 数据规模:越大越好
数据
数据是二分类数据,第一类是人脸,第二类是非人脸
人脸数据: 路径/xxx.jpg 60,80,280,320(四个角坐标)
非人脸数据:只要不是人脸都是可以的。
对于正样本: 裁剪操作 根据标注坐标在这里插入代码片`把人脸裁剪出来 可以用opencv工具,来完成制作人脸数据。要检查一下 看看数据有没有问题
扩展知识:
IOU:交并比(重叠) 在论文里读到的 interception of union 比 如小于0.3 那他就不是人脸 如果iou 大于0.3小于0.7 有点高但又不高 那就当成费人脸
IOU大于0.7 人脸
对数据进行操作:
制作出来一个数据源 找问题找错误 数据清洗
边训练 边验证 训练集 验证集
对于负样本:除了人脸外的东西
进行一个随机的裁剪 ,比如IOU在样本中IOU<0.3 认为是负样本 IOU>0.7 是正样本,最好是拿没有人脸的数据作为负样本
接下来就是做LMDB数据源(其实就是caffe非常常用的分类数据源)
设置txt文件
二分类 label是 0 1 比如 一个文件名是train/0/xxx.jpg 他所在的子文件就是label
写两个txt文件 制作数据源用到
train.txt:
0/xxx.jpg 0 //前面是路径 空格 属于
1/xxx.jpg 1
val.txt:
xxx.jpg 0
xxx.jpg 1
制作LMDB数据源:用caffe提供的脚本文件
前几行改成自己的安装目录
要进行一个resize操作(看自己使用那些模型) 比如ALEXNET和VGG 通常都是resize成227*227(high wide)
Sh LMDB 脚本文件 文件是很大的
训练ALEXNET网络模型
ALEXNET
最终分类是几个 就把FC修改成几
solver文件:Test.iter 咱们一次测试,要测试多少个batch ,最好让Test.iter * batch_size = 测试集中样本总个数
base_lr:基础学习率 模型很大程度上由此决定 太重要了 ,不能太大 经常为0.001 收敛和过拟合 都需要调整学习率
网络训练的速度跟什么相关?
1*.网络模型的大小,网络越大,速度越慢*
2.数据输入的大小,227227和3232 可能要慢几百倍 输入越大 网络越慢