卷积神经网络CNN-目标分类
来源:互联网 发布:放弃后的心疼网络歌曲 编辑:程序博客网 时间:2024/06/15 02:04
卷积神经网络CNN-目标分类
1. 目标分类基本框架
数据准备
1.数据来源
现有数据集的子集、网络采集、现有数据人工标注。
现有数据:http://deeplearning.net/datasets
2.数据扩充
原始数据切割、噪声颜色等像素变化、旋转平移等姿态变化。
图像效果算子:
- 高斯:更模糊
- unsharp:更清楚
- motion:动作模糊
效果卷积核:
F1 = fspecial('disk',1);F2 = fspecial('average',4);F3 = fspecial('gaussian',3);F4 = fspecial('gaussian',4);F5 = fspecial('unsharp');F6 = fspecial('motion',7,0.75*pi);F7 = fspecial('motion',5,0);F8 = fspecial('motion',5,pi/2);F9 = fspecial('motion',6,pi);F10 = [0 0 0; 0 1 0; 0 0 0];vfilter = {F1, F3, F5, F6, F9, F10};
旋转平移R,T
vTrans = {};t1 = maketform('affine',[1 0 2*f; 0 1 2*f; 0 0 1]');t2 = maketform('affine',[0.96 0.1 0; -0.1 0.96 0; 0 0 1]');t3 = maketform('affine',[-1 0 0; 0 1 0; w1 0 1]');t4 = maketform('affine',[0.97 -0.02 0; 0.02 0.97 0; 0 0 1]');t5 = maketform('affine',[1 0 0; 0 1 0; 0 0 1]');t6 = maketform('affine',[1.04 -0.1 0; 0.1 1.04 0; 0 0 1]');t7 = maketform('affine',[1.03 0.02 0; -0.02 1.03 0; 0 0 1]');vTrans = {t1, t2, t3, t5, t6};
3.数据规范
均值处理、归一化、大小调整。
模型设计
任务类型
- 分类:表情分类、种类分类、人群分类…
- 分类+回归:表情+程度、种类+信心、什么人+人数…
- 多目标分类:面部行为、群体行为、车流预测…
训练细节
1.GPU-Batch size ,是否并行
GPU内存-Batch Size关系,Batch Size在实验的过程中,如果设置不合理,就可能会报错。
2.数据循环方式/平衡性考虑
- 数量较少的类别,数据是否需要补偿;
- 从到头尾多次循环;
- 每次随机选取部分数据。
3.网络深度宽度确定
深度与卷积核关系:第
**问题:**2个
**Answer:**2个
- 多加一层,可以更加深度的学习;
- 参数个数上来说,两个
3×3 的卷积核的参数有18个,一个5×5 的卷积核参数有25个,参数更少,层数变多,参数变少。
4.损失函数设计
Softmax、直接拟合
5.学习率变化方式,模型各层学习率是否一致
6.评价方式:准确率,F1 score F1 score
:
其中,Recall:
Precision:
2. 迁移学习
迁移学习可以从现有的数据中迁移知识,用来帮助将来的学习。迁移学习(Transfer Learning)的目标是将从一个环境中学到的知识用来帮助新环境中的学习任务。
问题: ImageNet上亿参数,数据量百万,是不是参数多的模型都需要大量数据?
Answer: 并不一定,需要看所需训练模型的大小,是否是训练模型的一部分参数,还是需要训练全部的参数。
1.不同数据处理
- 少量数据的情况下,如果数据是与原来模型训练数据是类似的数据,则可以仅FC层做更新;但如果是不同的数据,则不能确定效果;
- 大量数据的情况下,如果数据是与原来模型训练数据是类似的数据,则需要对中高层更新;如果是不同的数据,则需要更新更多层。
2.学习率的处理
- 最底的卷积层基本不变,不进行update;
- 中间的卷积层视情况而定;
- 最后全连接层,结构参数均需进行变化。
3. 如何设计神经网络
研究问题:如何进行面部识别
识别面部微小的表情变换。
已有的方法:
DeepFace:需要对齐,用多个卷积核对不同的部位进行训练识别;对齐过程中会引入误差;
Face Alignment:把人脸分成很多小网格,每个小网格对应一个卷积核。
不足
- 预处理:大量对准,对对准要求高,原始信息可能会丢失;
- 卷积参数数量很大,模型收敛难度大,需要大量数据;
- 模型可扩展性差,基本限于人脸计算。
改进的想法
- 不需要预处理,自动进行局部探测;
- 不要将所有的区域都进行处理,更多关注在有意义的区域;
- 重要区域之间不会影响削弱学习的效果。
- 设计为自适应的学习。
设计来源1—注意力网络
- Dlib或原始数据集,找到人脸关键点;
- 再由人脸关键点,找到行为单元中心;
- 再由中心生成注意力图。
如何添加注意力网络:
借助ResNet的思想,在普通的网络结构中,加入注意力网络。
设计来源2—局部学习网络
针对不同的区域进行针对性学习,不同区域的学习不同,对区域的分布能够自动适应。
4. 基于VGG进行人脸表情识别
code
:
阅读全文
0 0
- 卷积神经网络CNN-目标分类
- 卷积神经网络CNN-目标探测
- 基于卷积神经网络(CNN)的目标检测部分资源
- CNN(卷积神经网络)在视频动作分类中的应用
- CNN(卷积神经网络)在视频动作分类中的应用
- 卷积神经网络CNN(7)—— 限速交通标志分类
- CNN 卷积神经网络 二维卷积
- 卷积神经网络CNN
- 看懂卷积神经网络(CNN)
- 卷积神经网络(CNN)
- 卷积神经网络(CNN)
- [CNN]卷积神经网络
- CNN卷积神经网络
- 卷积神经网络CNN
- 读懂卷积神经网络CNN
- CNN卷积神经网络
- 卷积神经网络CNN
- 卷积神经网络CNN
- android项目引用多个library导致引用android-support-v4.jar冲突
- 用adb命令安装apk到手机
- linux中makefile与gcc编译的比较
- 杂记1--对MVC模型理解
- HDU 5713 K个联通块(状压DP)
- 卷积神经网络CNN-目标分类
- Silverlight一直报错 4004 资源无法访问 添加字体也无法解决
- varnish
- 浅淡HTML5移动Web开发
- 多线程this.getName()和Thread.currentThread().getName()
- Linux下C语言执行MySQL语句
- 2.3.1freetype理论介绍、矢量字体原理
- 深度学习--激活函数的对比分析
- 单点登录原理与简单实现