0%

水下机器人视觉_8_CNN应用

卷积神经网络应用

CNNs用于图像分类

卷积层: 检测局部图片的局部特征
池化层: 降低维度

MLPs和CNNs都要求图片的尺寸经过处理

  • 在做任何操作之前, 将所有图片的尺寸变为相同
  • 将每一张图片变成方形
  • 上面方形的空间维度(宽度和高度)应该为2的幂(如\(2^5\)等)

彩色图片的深度为3
黑白图片的深度为1

CNN的结构的设计目标:

  • 增加深度(卷积层的作用)
  • 减少宽度和高度(池化层的作用)

卷积层的设置:

  • 卷积核通常是方形, 大小从(2, 2)到(5, 5)
  • 步长通常设置成1
  • 填充通常设为same(代表会使用0填充)
  • 卷积核的数目总是随着层数的增加缓慢增加(特征图深度逐渐增加)

Conv2D函数的参数设置

最大池化层的设置:

  • 最大池化层通常跟在一个或两个卷积层后面
  • 池化尺寸通常设成2
  • 步长通常设为2
  • 使得池化后的特征图的空间维度(宽度和高度)是原来的一半

所有的空间信息最终会丢失
而最后一层可以回答: 图片里是否有轮子, 眼睛, 腿, 尾巴等等

图像增强

模型可以学习图像的不变表示
但是不想让模型的预测因为如下原因改变:

  • 物体的大小 – 尺度不变性
  • 物体的角度 – 旋转不变性
  • 物体的平移 – 平移不变性

现有数据集的基础上, 增加多样性数据集:

  • 在训练数据集中添加各种背景噪音
  • 转换为其他图像: 改变颜色, 改变形状
  • 反转: 左右反转, 上下反转
  • 裁剪: 从图像中裁剪一块区域, 然后调整其大小
    • 随机高宽比 (例如[3/4, 4/3])
    • 随机区域大小 (例如[8%, 100%])
    • 一个随机的位置
  • 变色: 调整色调, 饱和度和亮度 (例如[0.5, 1.5])

迁移学习

迁移学习是一种机器学习的方法, 指的是一个预训练的模型被重新用在另一个任务中

参考https://www.cnblogs.com/charlotte77/p/8399926.html

Thank you for your reward !