深度学习之卷积神经网络(1)

卷积神经网络(CNN)

CNN通常由以下几种类型的层组成:

  1. 输入层:这是网络的第一层,负责接收原始数据,通常是图像。
  2. 卷积层(Convolutional Layers):这些层负责提取输入数据的空间特征。在卷积层中,一系列的可学习的过滤器(或称为卷积核)被滑动应用于输入数据,产生一组特征图(feature maps)。
  3. 激活层(Activation Layers):通常在卷积层之后紧跟一个激活层,如ReLU(Rectified Linear Unit),它引入非线性,允许网络学习更复杂的特征。
  4. 池化层(Pooling Layers):也称为下采样层,它们用于减少特征图的空间尺寸,增加感受野,同时减少参数数量和计算量。
  5. 全连接层(Fully Connected Layers):在网络的末端,卷积层输出的特征图被展平并通过一个或多个全连接层,它们负责将学习到的特征映射到最终的输出,如分类问题中的类别概率。
  6. 输出层:最后一层通常是一个全连接层,其激活函数根据任务的不同而不同,如softmax激活用于多分类问题。

其实,cnn与mlp的不同之处在于cnn加入了卷积层和池化层。所以笔者将在下一节中详细介绍一下卷积层和池化层。要理解这两个层,先要在这一节补充一点前提知识。

颜色通道(Color Channel)

在数字图像中用于表示颜色信息的一个单独的图像数据集。

cnn常用来处理图像数据集,而图像可能会有不同的颜色组成。不同的颜色模型使用不同数量的通道来表示颜色,常见的颜色模型包括:

  1. 灰度(Grayscale):只有一个颜色通道,表示图像的亮度信息。

  2. RGB(Red, Green, Blue):使用三个颜色通道分别表示红色、绿色和蓝色。这是最常见的颜色模型,广泛应用于数字摄影和显示技术。

  3. CMYK(Cyan, Magenta, Yellow, Key/Black):用于印刷行业,代表青色、品红色、黄色和黑色。CMYK模型通过颜色的混合来创建各种颜色。

  4. HSV(Hue, Saturation, Value):也称作HSB(Hue, Saturation, Brightness),代表色调、饱和度和亮度。

  5. YCbCr(Luma, Chroma Blue, Chroma Red):常用于视频压缩技术,其中Y代表亮度信息,Cb和Cr代表色度信息。

  6. LAB(Lightness, a, b):色彩模型,用于更精确地表示人类视觉系统中的颜色。

在图像处理中,颜色通道可以单独处理,也可以组合处理。例如:

  • 图像分割:通过分析特定颜色通道,可以更容易地将前景和背景分离。
  • 颜色滤波:可以对单个颜色通道应用滤波器,以增强或减少图像中的特定颜色。
  • 颜色转换:将图像从一个颜色模型转换到另一个颜色模型,如从RGB转换到灰度或HSV。

边缘检测

计算机视觉中的一种基础技术,用于从图像中识别和定位边缘,即图像中亮度变化显著的区域

边缘是图像中物体和物体边界的表示,它们对于图像分割、特征提取、图像识别和许多其他视觉任务至关重要。以下是一些常用的边缘检测方法:

  1. 梯度算子(Gradient Operators)
  • Roberts算子:是最早的边缘检测算子之一,通过计算对角像素差的绝对值来寻找边缘。
K = | 1  0 |
    | 0 -1 |
  • Sobel算子:通过计算水平和垂直方向上的像素差,生成两个边缘图,然后通常将它们合并以产生最终的边缘检测图。
Kx = | -1 0 1 |
     | -2 0 2 |
     | -1 0 1 |
  • Prewitt算子:与Sobel算子类似,但使用的卷积核略有不同。
Ky = | -1 0 1 |
     | -1 0 1 |
     | -1 0 1 |
  • Laplacian算子:用于检测图像中的快速变化,对图像进行二阶导数计算,常用于边缘细化。
K = |  0  1  0 |
    |  1 -4  1 |
    |  0  1  0 |
  1. Canny边缘检测

    • 一个多阶段算法,包括高斯平滑、梯度计算、非极大值抑制和滞后阈值处理,以产生准确的边缘图。
  2. SIFT(尺度不变特征变换)

    • 用于检测关键点和计算局部特征描述符,虽然它本身不是边缘检测算法,但关键点检测步骤与边缘检测有关。
  3. LoG(Laplacian of Gaussian)

    • 通过将高斯滤波器应用于图像,然后计算其二阶导数,来识别图像中的边缘。
  4. 边缘流向检测

    • 通过分析边缘的方向和局部结构,来确定边缘的流向和形状。
  5. 深度学习方法

    • 近年来,深度学习也被用于边缘检测任务,通过训练卷积神经网络(CNN)来识别和定位边缘。

边缘检测算法的选择取决于具体的应用需求和图像的特性。例如,Canny边缘检测因其准确性和鲁棒性而被广泛使用,而Sobel或Prewitt算子则因其计算简单而被用于快速边缘检测。

交叉相关(Cross-Correlation)

信号处理和图像处理中的一种技术,用于测量两个信号或图像之间的相似度。

在图像处理中,交叉相关通常与卷积操作紧密相关,并且经常用于诸如模板匹配、边缘检测和特征提取等任务。

交叉相关的基本思想:

给定两个图像 I I I T T T (其中 T T T通常被称为模板或内核),交叉相关通过将模板 T T T 在图像 I I I 上滑动,并计算模板和图像在每个位置的点积来执行。这个过程可以表示为:

( I ⋆ T ) ( x , y ) = ∑ i = − ∞ ∞ ∑ j = − ∞ ∞ I ( x + i , y + j ) ⋅ T ( i , j ) (I \star T)(x, y) = \sum_{i=-\infty}^{\infty} \sum_{j=-\infty}^{\infty} I(x+i, y+j) \cdot T(i, j) (IT)(x,y)=i=j=I(x+i,y+j)T(i,j)

其中 ( I ⋆ T ) ( x , y ) (I \star T)(x, y) (IT)(x,y)是在位置 ( x , y ) (x, y) (x,y)的交叉相关结果, I ( x + i , y + j ) I(x+i, y+j) I(x+i,y+j)是图像 I I I 在偏移位置 ( i , j ) (i, j) (i,j)上的像素值,而 T ( i , j ) T(i, j) T(i,j)是模板 T T T在对应偏移位置的像素值。

与卷积的区别:

交叉相关与卷积类似,但有一个关键的区别:在卷积操作中,模板 T T T通常会进行翻转(flipping),即:

( I ∗ T ) ( x , y ) = ∑ i = − ∞ ∞ ∑ j = − ∞ ∞ I ( x + i , y + j ) ⋅ T ( − i , − j ) (I * T)(x, y) = \sum_{i=-\infty}^{\infty} \sum_{j=-\infty}^{\infty} I(x+i, y+j) \cdot T(-i, -j) (IT)(x,y)=i=j=I(x+i,y+j)T(i,j)

这意味着卷积操作中的模板是 T T T的镜像,而交叉相关使用的是原始模板。

应用:
  1. 模板匹配:在图像中寻找与给定模板 T T T 最匹配的区域。
  2. 边缘检测:使用特定的模板(如Sobel或Prewitt算子)来检测图像中的边缘。
  3. 特征提取:识别图像中的特定特征,如角点、纹理等。

计算效率:

交叉相关操作在计算上可能非常昂贵,特别是当图像和模板的尺寸都很大时。因此,在实际应用中,经常使用一些优化技术,如使用小尺寸的模板、利用图像的平移不变性、或者使用快速傅里叶变换(FFT)来加速计算。

深度学习中的交叉相关:

在深度学习中,卷积神经网络(CNN)中的卷积操作本质上是交叉相关,因为它们使用可学习的模板(或称为滤波器、权重)在输入图像上执行交叉相关。这些可学习的模板能够自动从数据中提取特征,这是深度学习在图像处理任务中取得成功的关键因素之一。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值