OpenCV图像处理笔记[11]

57. 卷积神经网络

  • Classification 分类

  • Retrieval 相关推荐

  • Detection 图像检测[ 分类和回归 ]

    • self-driving cars
      • GPU图像处理单元——显卡[显存] Titan X 8000 12G/ Tegra X1 1080 5000 8G
  • Segmentation 分割

    应用:

    • 人脸识别
    • 姿势识别
    • 标志识别
    • 手写字体识别
    • 图像变换
    卷积神经网络

    神经网络——>+深度 = 卷积神经网络

    [ INPUT - CONV - RELU - POOL - FC ]

    • 输入层
    • 卷积层
    • 激活函数
    • 池化层
    • 全连接层

    32 x 32 x 3 image ——> 5 x 5 x 3 filter $ \omega $ (卷积核)

    1. 把原图分成很多小块
    2. 卷积核来给每一个小块进行特征提取
    3. 把小块提取出一个值[ 特征值 ]
    4. 得到一个特征值组成的特征图
    5. 注意:最后维度保持一致,深度不变
    6. 使用其他更多filter, 有n个filter就有n层
    • 卷积过程

    filter size : h w

    原始输入:外面填充了一层0

    卷积大小和filter大小相同

    卷积中心和图像中心对齐(所以填充才能对齐)

    内积:对应位置数字相乘,再求和,得出一个数字,值

    RGB三层和3个filter求的值=三个数相加,再加一个b (1, bias)得到的值,填充到结果图像中 [ $\omega x + b $ ]

    方块(窗口)滑动:实际:原图分割成小块,同时计算

    • **滑动步长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时,要大小一样的

posted @ 2022-08-03 11:13  Hecto  阅读(52)  评论(0)    收藏  举报