我们把这两个场景抽象出来:
我们把对象的轮廓提取出来,与我们脑子里的“人脸数据库”进行对比
如果有相似概率比较高的,我们就进行下一步处理;如果没有,这个人我们大概率就不去看了
抽取对象的局部特征,与我们脑子里某个人的局部特征进行对比
得出结论:
(1)如果相似度接近100%,那我们断定,就是这个人
(2)如果相似度较高,根据新的特征,那我们推测,这哥们可能是被揍了,或者化妆了
(3)如果相似度一般,那我们说,这人和“某某某”长得真像啊
(4)如果相似度不高,那这人我们就没见过
RGB 分离代码
计算机处理图像识别的思路
- 轮廓特征和局部特征的抽取:
(1)通过对每个像素块RGB数据的抽取,得出每个像素块的值
(2)在某个范围内(眼睛,鼻子,嘴),抽取所有,或者一部分的像素块,得到某个范
围内的图像
2.轮廓特征和局部特征的对比
通过和样本库进行对比,确定局部是不是类似的
-
把所有局部的对比结果综合,得出最后结论
“啊! 这是小王,我需要跟他打个招呼!”
卷积运算的缺点
每次做卷积的时候,图像都会缩小
角落的像素点只会被使用一次,而中间的像素点会用到很多次,这意味着你丢掉了很多图像边缘的信息
池化层
池化层是用来缩减模型,提高计算速度,同时提高所取得特征的鲁棒性
池化层是用来降采样subsample, shrink, 减少计算负荷,内存使用,参数数量(防止过拟合)
正如卷积神经网络一样,在池化层中的每个神经元被连接到上面一层输出的神经元,只对应一小块感受野的区域。 我们必须定义大小,步长,padding类型
池化层没有权重值,他只是聚合输入根据取最大值或者求均值
池化层的例子: 2x2的池化核,步长为2,没有填充,只有最大值往下传,其他输入被丢弃掉了; 直观的理解说就是,因为取最大值,所以较小值就会被忽略,也就是不重要的特征会被忽略
池化层参数的总结
超参数:
f: 过滤器大小
s:步长
最大池化或者平均池化
没有padding!所以池化层公式就变为: ((n – f )/ s + 1) x ((n – f )/ s + 1) x nc
最大池化层是一个静态属性