【卷积神经网络详解与实例】1——计算机中的图像原理
1.1 数字图像的基本概念
计算机中的图像本质上是离散化的像素矩阵,每个像素携带颜色或亮度信息。理解这一基础是掌握CNN的关键:
像素(Pixel)
图像的最小单位,如同马赛克中的单个小方块
每个像素包含一个或多个数值表示颜色/亮度
分辨率描述像素总数(如1920×1080表示有200多万像素)
颜色模型
灰度图像:每个像素用1个值(0-255)表示亮度
# 示例:5×5灰度图像矩阵[[0, 255, 128, 64, 192],[32, 160, 96, 224, 48],[144, 80, 208, 16, 176],[112, 240, 24, 152, 88],[200, 56, 184, 72, 216]]
彩色图像:常用RGB模型,每个像素用3个值(红、绿、蓝)组合
# 示例:2×2彩色图像张量(高度×宽度×通道)[[[255, 0, 0], [0, 255, 0]], # 红色像素,绿色像素[[0, 0, 255], [255, 255, 0]]] # 蓝色像素,黄色像素
1.2 图像的数字化表示
矩阵/张量结构
灰度图:二维矩阵(高度×宽度)
彩色图:三维张量(高度×宽度×通道数)
视频数据:四维张量(帧数×高度×宽度×通道数)
数值范围
8位图像:0(黑色)- 255(白色)
16位图像:0-65535(用于医学/专业图像)
浮点型图像:0.0-1.0(深度学习常用归一化形式)
灰度图 | 彩色图 | 视频数据 |
---|---|---|
![]() | ![]() | ![]() |
1.3 使用CNN处理图像
图像的关键属性
空间关系
相邻像素在物理空间中彼此接近
形成纹理、边缘、形状等视觉模式
CNN的局部连接正是利用这一特性
通道独立性
RGB三个通道分别记录不同颜色信息
早期CNN分别处理各通道,后期融合特征
现代CNN可跨通道交互(如1×1卷积)
图像处理基础操作
卷积(滤波)
用小矩阵(卷积核)在图像上滑动计算
示例:边缘检测的Sobel算子
水平边缘检测核:[[-1, 0, 1],[-2, 0, 2],[-1, 0, 1]]
下采样(降分辨率)
减少像素数量(如2×2区域取最大值)
对应CNN中的池化操作
归一化
将像素值缩放到[0,1]或[-1,1]
提升训练稳定性
图像与CNN的对应关系
图像概念 | CNN中的对应 | 作用 |
---|---|---|
像素矩阵 | 输入层 | 原始数据表示 |
局部像素区域 | 感受野 | 提取局部特征 |
边缘/纹理检测 | 浅层卷积核 | 学习基础特征 |
物体部件组合 | 深层特征图 | 形成复杂表示 |
图像分类标签 | 全连接层输出 | 最终预测结果 |
为什么图像处理需要CNN
传统神经网络处理图像时的根本缺陷:
参数爆炸问题
224×224彩色图像展平:150,528个输入
连接1000个神经元:150,528,000个参数
训练需求:约600GB内存(单精度浮点)
空间信息丢失
展平操作破坏像素间的空间关系
无法利用局部相关性
平移敏感性
物体位置微小变化导致完全不同的输出
缺乏平移不变性
CNN通过以下设计解决这些问题:
局部连接:每个神经元只处理局部区域
权值共享:同一特征检测器在整个图像上复用
池化操作:增强平移不变性
层次结构:逐步组合特征形成复杂表示
实际图像示例解析
以猫的图像识别为例:
原始输入
224×224×3 RGB张量
数值范围:0-255
CNN处理流程
特征演化过程
浅层:边缘、颜色块
中层:纹理、简单形状
深层:眼睛、耳朵等部件
输出层:完整物体概念