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处理流程
-
特征演化过程
-
浅层:边缘、颜色块
-
中层:纹理、简单形状
-
深层:眼睛、耳朵等部件
-
输出层:完整物体概念
-