为什么很多做人脸的Paper会最后加入一个Local Connected Conv?
来源:互联网 发布:windows安装更新慢 编辑:程序博客网 时间:2024/06/05 16:29
Deep face:论文。
b. 二维剪切,将人脸部分裁剪出来
c. 67个基点,然后Delaunay三角化,在轮廓处添加三角形来避免不连续
d. 将三角化后的人脸转换成3D形状
e. 三角化后的人脸变为有深度的3D三角网
f. 将三角网做偏转,使人脸的正面朝前。
g. 最后放正的人脸
h. 一个新角度的人脸(在论文中没有用到)
总体上说,这一步的作用就是使用3D模型来将人脸对齐,从而使CNN发挥最大的效果。
经过3D对齐以后,形成的图像都是152×152的图像,输入到上述网络结构中,该结构的参数如下:
- Conv:32个11×11×3的卷积核
- max-pooling: 3×3, stride=2
- Conv: 16个9×9的卷积核
- Local-Conv: 16个9×9的卷积核,Local的意思是卷积核的参数不共享
- Local-Conv: 16个7×7的卷积核,参数不共享
- Local-Conv: 16个5×5的卷积核,参数不共享
- Fully-connected: 4096维
- Softmax: 4030维
前三层的目的在于提取低层次的特征,比如简单的边和纹理。其中Max-pooling层使得卷积的输出对微小的偏移情况更加鲁棒。但没有用太多的Max-pooling层,因为太多的Max-pooling层会使得网络损失图像信息。
后面三层都是使用参数不共享的卷积核,之所以使用参数不共享,有如下原因:
- 对齐的人脸图片中,不同的区域会有不同的统计特征,卷积的局部稳定性假设并不存在,所以使用相同的卷积核会导致信息的丢失
- 不共享的卷积核并不增加抽取特征时的计算量,而会增加训练时的计算量
- 使用不共享的卷积核,需要训练的参数量大大增加,因而需要很大的数据量,然而这个条件本文刚好满足。
全连接层将上一层的每个单元和本层的所有单元相连,用来捕捉人脸图像不同位置的特征之间的相关性。其中,第7层(4096-d)被用来表示人脸。
全连接层的输出可以用于Softmax的输入,Softmax层用于分类。
阅读全文
0 0
- 为什么很多做人脸的Paper会最后加入一个Local Connected Conv?
- 为什么转置一个512x512的矩阵,会比513x513的矩阵慢很多?
- 为什么转置一个512x512的矩阵,会比513x513的矩阵慢很多?
- 为什么很多人写代码会在变量名前面加一个小写的m?
- 为什么一个程序终止会导致程序输出的最后几行消失
- mysql里面的while里面为什么会重复输出最后一个数据
- 为什么每次一个人洗澡的时候会思索很多
- 为什么很多人觉得计算机专业的会修电脑?
- 我的vim配置文件.vimrc(一)(最后一行的配置会方便很多)
- 为什么2008会出现很多TMP文件
- 为什么会产生很多僵死进程
- 为什么很多年轻人总会感到迷茫
- 为什么很多年轻人总会感到迷茫
- 为什么很多年轻人总会感到迷茫
- 程序执行正确, 但退出时崩溃在main() 最后一个语句之后。为什么会这样?
- 如何加入一个开源项目,有很多认同的地方
- 一个可以用来做人脸检测的视频帧间差分代码
- 关于TcpClient.Connected的一个坑
- [SPRD]展讯平台 LCD(Mipi) 加载流程分析
- Ehcache详细解读
- Git SSH Key生成步骤说明
- 懂得如何通过研究找到答案
- PAT (Basic Level) Practise (中文) 1030. 完美数列(25)
- 为什么很多做人脸的Paper会最后加入一个Local Connected Conv?
- mark
- [SPRD]展讯平台 LCD(Mipi)移植步骤及问题归纳
- CocoaPods: pod search 搜索类库失败的解决办法
- Java小程序之1000000数字判断是否为回数
- 保存退出vim编辑
- 全文检索之sphinx源码分析--优化
- Python自学笔记
- 九天学会Java,第四天,循环结构