当前位置: 首页 > news >正文

计算机视觉:卷积神经网络(CNN)图像分类从像素与色彩通道基础到特征提取、池化及预测

一、卷积神经网络概述

卷积神经网络通过滤波器(或称核)从图像中提取特征,再将这些特征传入神经网络进行预测或输出。在深入探讨卷积神经网络之前,我们先详细了解图像的工作原理。

二、图像的本质

(一)像素与矩阵表示

图像由微小的像素构成,如同宇宙由原子组成。每个像素是一个包含数字的单元,类似矩阵中的单元格。本质上,图像是具有确定行数和列数的矩阵,矩阵中的每个单元(像素)的数值范围为0到255。例如,当我们看到图像尺寸为1920×1080时,意味着该图像由1920列×1080行的矩阵组成,其中每个像素的数值均在0到255之间。

图1:计算机视角下的图像矩阵示意图

(二)图像的色彩构成

屏幕上所有图像均由红、绿、蓝三种颜色混合而成,通过不同比例的组合可产生白光或图像中的各种色彩。

如前所述,图像由矩阵构成,像素(矩阵单元)的数值范围为0到255,其中0代表最低颜色强度(黑色),255代表最高颜色强度。每个彩色图像包含三个尺寸相同的矩阵,分别对应红色、绿色和蓝色通道,每个通道矩阵中单元格的数值(0-255)表示该颜色的强度。当三个矩阵中对应单元格的数值均为255时,图像呈现白色;均为0时,呈现黑色。

图2:图像通道表示示意图

这三个矩阵如同透明纸张叠加,每个像素内的“小灯泡”分别发出对应颜色的光。

按回车键或点击查看完整尺寸图像

图3:图像三颜色通道叠加示意图

通过调整矩阵中的数值可产生不同颜色:若将蓝色和绿色矩阵的所有像素值设为0,红色矩阵所有像素值设为255,图像将完全呈现红色;同理可得到纯绿色或纯蓝色图像。若在各颜色矩阵中对部分像素值进行随机调整,对应区域会呈现棕色、黄色、橙色或青色等混合色。

三、卷积神经网络的工作原理

(一)卷积的基本概念

类比破译古代卷轴或手稿时,人们会用放大镜仔细观察并记录信息,卷积神经网络的工作机制与此相似。它通过一个类似放大镜的矩阵(包含数字)在图像上逐像素滑动,将矩阵内数字与图像对应像素的数值相乘后求和,从而提取图像信息。这个小矩阵被称为滤波器或卷积核。

图4:图像矩阵与卷积核(滤波器)示意图

(二)图像预处理

在卷积过程开始前,需进行预处理操作。由于图像各颜色通道矩阵的像素值范围为0-255,该范围对机器学习模型而言过大,可能导致训练速度减慢及梯度爆炸等问题。因此,需将所有像素值缩放到0-1之间,具体方法是将每个像素值除以255,这一步骤是训练卷积神经网络的关键预处理环节。

按回车键或点击查看完整尺寸图像

图5:图像预处理步骤(像素值除以255缩放至0-1范围)

此预处理步骤需对图像的3个通道均执行。

图6:预处理后的图像通道示意图

四、基于卷积神经网络的图像分类流程

本文以数字“1”和数字“2”的黑白图像分类为例,详细说明卷积神经网络的工作步骤:

步骤总览

  1. 预处理:将所有像素值除以255,缩放至0-1范围。
  2. 卷积运算:图像与滤波器(卷积核)进行滑动卷积,逐点相乘并求和,结合偏置项得到中间结果。
  3. 特征图生成:各颜色通道的卷积结果相加,形成单一特征图。
  4. 最大池化:从特征图的特定区域提取最大值,减小特征图维度。
  5. 展平处理:将池化结果转换为一维数组。
  6. 分类预测:将一维数组传入前馈神经网络,完成最终分类。

(一)预处理阶段

首先对图像的三个通道执行预处理,将像素值除以255,使其落在0-1范围内。为简化说明,假设处理对象为黑白图像:255(白色)除以255得1,0(黑色)除以255得0。

图7:包含数字“1”的6×6像素黑白图像

(二)卷积过程

1. 特征图的生成

特征图是从预处理输入图像中提取特征形成的单一矩阵,类似信息记录簿。提取特征时,需使用随机滤波器(含随机数的小型矩阵)在输入图像上滑动卷积。每个输入通道对应独立的滤波器,计算过程为卷积核与图像重叠像素的逐点相乘。

例如,3×3卷积核在6×6图像上操作时,首先覆盖图像左上角3×3区域,逐元素相乘后累加,再与卷积核关联的偏置项(初始为随机数,用于增强模型灵活性和多样性)相加,得到该区域的输出值。

按回车键或点击查看完整尺寸图片

图8:输入图像与滤波器(卷积核)的卷积计算示意图

每个通道均重复上述流程,生成对应区域的输出值。例如,红色通道可能输出3,绿色通道输出-1,蓝色通道输出2。

按回车键或点击查看完整尺寸图片

图9:卷积核与输入图像通道的矩阵计算示意图

偏置项是可训练的参数,通过偏移激活值帮助模型更好地拟合数据。例如,红色通道卷积核的偏置项为-2,会与该通道首个输出值(2)相加。

按回车键或点击查看完整尺寸图片

下图展示三个通道对应的卷积核与偏置项:

图10:三通道对应的卷积核与偏置项

2. 卷积计算示例

以图像左上角3×3区域为例,各通道计算过程如下:

  • 红色通道
    [
    (0×0)+(0×1)+(0×1)+(0×0)+(0×0)+(1×1)+(0×0)+(1×1)+(0×0) = 2
    ]
    叠加偏置项(-2)后:(2 + (-2) = 0)

  • 绿色通道
    [
    (0×1)+(0×0)+(0×0)+(0×1)+(0×1)+(1×0)+(0×1)+(0×1)+(0×0) = 0
    ]
    叠加偏置项(-1)后:(0 + (-1) = -1)

  • 蓝色通道
    [
    (0×0)+(0×0)+(0×1)+(0×1)+(0×0)+(1×0)+(0×0)+(1×1)+(0×1) = 1
    ]
    叠加偏置项(0.9)后:(1 + 0.9 = 1.9)

特征图为单一矩阵,需将各通道对应区域的输出值相加。上述三通道左上角区域的输出值之和为:(0 + (-1) + 1.9 = 0.9),该值作为特征图左上角的像素值。

特征图的尺寸由卷积核在图像上的移动次数决定。

图11:卷积核移动次数与特征图映射关系示意图

3. 卷积核的移动与特征图生成

卷积核的移动距离称为步长。步长为1时,卷积核每次向右移动1列;步长为2时,每次移动2列。当卷积核到达图像边缘后,将按步长向下移动,重复计算过程。

对于6×6图像和3×3卷积核,卷积核横向可移动4次,生成特征图的一行4个数值;纵向移动4次后,最终生成4×4的特征图。

图12:卷积核移动路径示意图

重复上述过程,直至卷积核覆盖图像所有区域,生成最终特征图:

图13:卷积后的最终特征图

4. ReLU激活函数处理

特征图生成后,需通过ReLU激活函数处理:将所有负像素值转为0,保留正像素值。为简化说明,此处将所有正像素值转换为1(注:此步骤不属于卷积过程),最终得到仅含0和1的特征图。

按回车键或点击查看全尺寸图片

图14:ReLU激活函数处理后的特征图

(三)最大池化步骤

最大池化通常紧跟卷积层,其作用是从特征图的特定区域提取最大值,生成新矩阵以减小特征图的空间维度。与卷积核类似,最大池化层按固定尺寸在特征图上滑动,但不含数值。

以2×2最大池化层为例,其初始放置于4×4特征图的左上角,提取该2×2区域的最大值。池化层通常以自身尺寸为步长移动(也可自定义步长),即每次向右移动2列,到达边缘后向下移动2行,最终生成2×2矩阵。

图15:最大池化层提取特征图区域最大值示意图

(四)展平处理

最大池化的输出为二维矩阵(如2×2),而前馈神经网络仅接受一维数组。因此,需将二维矩阵展平为一维数组。

图16:最大池化层展平为一维数组示意图

(五)前馈网络与预测

前馈神经网络包含权重和偏置。一维数组中的每个数值通过权重连接到网络层,权重与对应数值相乘后求和,叠加偏置项,再通过激活函数(如ReLU、SoftMax、Sigmoid)处理。

  • Sigmoid函数将输出值映射到0-1范围,适用于二分类问题。
  • SoftMax函数适用于多分类问题,可返回多个类别的概率分布。

按回车键或点击以全尺寸查看图片

图17:前馈神经网络预测示意图

输出层的两个神经元分别对应数字“1”和数字“2”两个类别,输出值为1或0,代表模型对图像类别的预测结果。

(六)模型训练要点

对含数字“2”的图像重复上述流程时,需保持权重、偏置和卷积核参数不变。训练过程中,若模型预测错误,将调整所有参数(权重、偏置、卷积核)直至预测正确,这是模型的学习过程。

五、总结

卷积神经网络的图像分类流程可概括为:

  1. 预处理:像素值除以255,缩放至0-1范围。
  2. 卷积提取特征:通过滤波器生成特征图,结合偏置项调整。
  3. 激活函数处理:ReLU函数将特征图负值转为0,保留正值。
  4. 最大池化:提取区域最大值,减小特征图维度。
  5. 展平:将池化结果转换为一维数组。
  6. 分类预测:通过前馈神经网络输出图像类别。
http://www.dtcms.com/a/478239.html

相关文章:

  • C# 串口通信完整教程 (.NET Framework 4.0)
  • GNN是和RNN一样的吗?多次循环,但是更新的是同一批参数?
  • Ubuntu 24.04 安装 Jenkins
  • 手游做网站推广应该怎么做photoshop做网站
  • 成都专业的整站优化公司起名字免费软件
  • 【threejs】webgl使用effectComposer时的抗锯齿
  • 大语言模型(LLM)领域细分方向解析
  • 简要说明开发网站的步骤谷歌搜索引擎363
  • Spotify(正版流媒体音乐平台) 多语便携版
  • 告别复制粘贴!自动化处理文本空行的新思路
  • 基于「多模态大模型 + BGE向量检索增强RAG」的新能源汽车故障诊断智能问答系统(vue+flask+AI算法)
  • 实战|京东 jd.union.open.goods.search 接口:精准检索与 2025 商业机会挖掘
  • 从零上手 Rokid JSAR:打造专属 AR 桌面交互式 3D魔方,开启空间开发之旅
  • 番禺人才网招聘信恿南昌seo数据监控
  • 自动驾驶强化学习的价值对齐:奖励函数设计的艺术与科学
  • xml 方式声明式事务案例
  • 蓝海国际版网站建设贵阳制作网站
  • MATLAB代码实现了一个双层多尺度动态图卷积网络(DGCN)用于城市交通流量预测,核心功能为模拟生成城市道路网络的交通流量时序数据
  • 计算机课程《机器学习》导论
  • OpenStack Neutron 中的核心概念:Network、Subnet 和 Port
  • JVM(十)-- 类的加载器
  • 软考刷题--数据库
  • 重庆建网站公司做网站的等级保护要多少钱
  • 标签之文本(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
  • 论文阅读---CARLA:用于时间序列异常检测的自监督对比表示学习方法
  • 做微信推送的网站wordpress 默认相册
  • 15 【C++11 新特性】统一的列表初始化和统一的声明
  • OpenCV计算机视觉实战(26)——OpenCV与机器学习
  • ACE会成为下一代上下文工程技术吗?
  • GitHub 热榜项目 - 日榜(2025-10-13)