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

【卷积神经网络详解与实例】1——计算机中的图像原理

1.1 数字图像的基本概念

计算机中的图像本质上是离散化的像素矩阵,每个像素携带颜色或亮度信息。理解这一基础是掌握CNN的关键:

  1. 像素(Pixel)

    • 图像的最小单位,如同马赛克中的单个小方块

    • 每个像素包含一个或多个数值表示颜色/亮度

    • 分辨率描述像素总数(如1920×1080表示有200多万像素)

  2. 颜色模型

    • 灰度图像:每个像素用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 图像的数字化表示

  1. 矩阵/张量结构

    • 灰度图:二维矩阵(高度×宽度)

    • 彩色图:三维张量(高度×宽度×通道数)

    • 视频数据:四维张量(帧数×高度×宽度×通道数)

  2. 数值范围

    • 8位图像:0(黑色)- 255(白色)

    • 16位图像:0-65535(用于医学/专业图像)

    • 浮点型图像:0.0-1.0(深度学习常用归一化形式)

灰度图彩色图视频数据

1.3 使用CNN处理图像

图像的关键属性

  1. 空间关系

    • 相邻像素在物理空间中彼此接近

    • 形成纹理、边缘、形状等视觉模式

    • CNN的局部连接正是利用这一特性

  2. 通道独立性

    • RGB三个通道分别记录不同颜色信息

    • 早期CNN分别处理各通道,后期融合特征

    • 现代CNN可跨通道交互(如1×1卷积)

图像处理基础操作

  1. 卷积(滤波)

    • 用小矩阵(卷积核)在图像上滑动计算

    • 示例:边缘检测的Sobel算子

       水平边缘检测核:[[-1, 0, 1],[-2, 0, 2],[-1, 0, 1]]
  2. 下采样(降分辨率)

    • 减少像素数量(如2×2区域取最大值)

    • 对应CNN中的池化操作

  3. 归一化

    • 将像素值缩放到[0,1]或[-1,1]

    • 提升训练稳定性

图像与CNN的对应关系

图像概念CNN中的对应作用
像素矩阵输入层原始数据表示
局部像素区域感受野提取局部特征
边缘/纹理检测浅层卷积核学习基础特征
物体部件组合深层特征图形成复杂表示
图像分类标签全连接层输出最终预测结果

为什么图像处理需要CNN

传统神经网络处理图像时的根本缺陷:

  1. 参数爆炸问题

    • 224×224彩色图像展平:150,528个输入

    • 连接1000个神经元:150,528,000个参数

    • 训练需求:约600GB内存(单精度浮点)

  2. 空间信息丢失

    • 展平操作破坏像素间的空间关系

    • 无法利用局部相关性

  3. 平移敏感性

    • 物体位置微小变化导致完全不同的输出

    • 缺乏平移不变性

CNN通过以下设计解决这些问题:

  • 局部连接:每个神经元只处理局部区域

  • 权值共享:同一特征检测器在整个图像上复用

  • 池化操作:增强平移不变性

  • 层次结构:逐步组合特征形成复杂表示

实际图像示例解析

以猫的图像识别为例:

  1. 原始输入

    • 224×224×3 RGB张量

    • 数值范围:0-255

  2. CNN处理流程

  3. 特征演化过程

    • 浅层:边缘、颜色块

    • 中层:纹理、简单形状

    • 深层:眼睛、耳朵等部件

    • 输出层:完整物体概念

http://www.dtcms.com/a/347105.html

相关文章:

  • 文件系统挂载详细分析(《图解Linux内核》虚拟文件系统篇笔记二)
  • 详细介绍将 AList 搭建 WebDav 添加到 PotPlayer 专辑 的方法
  • 基于Kubernetes StatefulSet的有状态微服务部署与持久化存储实践经验分享
  • JH-14回柱绞车优化设计cad+设计说明书+绛重
  • (论文速读)OverLoCK -上下文混合动态核卷积
  • OSI参考模型TCP/IP模型 二三事
  • 深入理解Web服务与HTTP协议
  • 55 C++ 现代C++编程艺术4-元编程
  • 总结:Maven多仓库多镜像源配置
  • 26.内置构造函数
  • STM32F1 USART介绍及应用
  • 【读书笔记】《从0到1》
  • MacOS + Android Studio:将 Git 仓库从 HTTP 切换为 SSH 并解决权限问题
  • VLOOKUP专题训练
  • 【Win】Motrix+Aria2浏览器下载加速
  • DeepSeek V3.1 横空出世:重新定义大语言模型的边界与可能
  • Qt5 项目的构建与部署详细讲解
  • 【Android】Fragment生命周期详解
  • 链表漫游指南:C++ 指针操作的艺术与实践
  • 【RK3576】【Android14】Android平台跟文件系统
  • PostgreSQL表分区与复杂查询性能优化实践指南
  • 【AI基础:神经网络】17、神经网络基石:从MP神经元到感知器全解析 - 原理、代码、异或困境与突破
  • 当 /etc/sysctl.d/ 目录下存在多个配置文件且配置项冲突时最终会使用哪个配置项
  • 嵌入式linux开发板 IP配置
  • Redis配置与数据类型详解及缓存优化实践
  • 使用VLLM部署大模型embedding/chat 的API
  • 秋招面试准备
  • Git的下载安装和使用以及和IDEA的关联
  • PLECS 中使用 C-Script 来模拟 NTC 热敏电阻(如 NTC3950B)
  • Spring Boot 校验分组(Validation Groups)高级用法全指南