OpenCV图像处理笔记[11]
57. 卷积神经网络
-
Classification 分类
-
Retrieval 相关推荐
-
Detection 图像检测[ 分类和回归 ]
- self-driving cars
- GPU图像处理单元——显卡[显存] Titan X 8000 12G/ Tegra X1 1080 5000 8G
- self-driving cars
-
Segmentation 分割
应用:
- 人脸识别
- 姿势识别
- 标志识别
- 手写字体识别
- 图像变换
卷积神经网络
神经网络——>+深度 = 卷积神经网络
[ INPUT - CONV - RELU - POOL - FC ]
- 输入层
- 卷积层
- 激活函数
- 池化层
- 全连接层
32 x 32 x 3 image ——> 5 x 5 x 3 filter (卷积核)
- 把原图分成很多小块
- 卷积核来给每一个小块进行特征提取
- 把小块提取出一个值[ 特征值 ]
- 得到一个特征值组成的特征图
- 注意:最后维度保持一致,深度不变
- 使用其他更多filter, 有n个filter就有n层
- 卷积过程
filter size : h w
原始输入:外面填充了一层0
卷积大小和filter大小相同
卷积中心和图像中心对齐(所以填充才能对齐)
内积:对应位置数字相乘,再求和,得出一个数字,值
RGB三层和3个filter求的值=三个数相加,再加一个b (1, bias)得到的值,填充到结果图像中 [ ]
方块(窗口)滑动:实际:原图分割成小块,同时计算
- **滑动步长stride : **
- 7 x 7 ——> 3 x 3
- stride 2 小一点,特征更多一点,更丰富
- 太小,stride = 1, 能得到更多特征,计算量大,得不偿失
- 太大,漏掉中间的特征
- stride小于等于卷积核的大小
- 这样的过程,有些信息多次利用了,怎么多次利用边缘信息?
- **pad **1 : 边缘填充
- 例: 5 x 5 ——> 7 x 7, 在原始值上加一层padding
- 使得原始图像的边缘值更多利用
- 为什么填充的是0?0没有意义的,没有学习意义,没有影响,不考虑padding项,其他值,由于是边缘,也每什么意义
- pad = n , 加上 n 圈 0
- Input = 7 x 7
- Filter = 3 x 3
- Pad = 1
- Output = ? [w x h]
多个filter时,要大小一样的
本文作者:Hecto
本文链接:https://www.cnblogs.com/tow1/p/16546389.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧