合并子章节到父文件,每个篇章归为单文件
将 11 个目录下的 26 个子章节文件合并到对应的父文件中, 用 --- 分隔各子章节,移除冗余的章节目录索引。 每个篇章现在是独立的单文件,结构更简洁。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -8,26 +8,457 @@
|
||||
|
||||
本篇将系统介绍CNN原理及其在空间分析中的应用。
|
||||
|
||||
## 章节目录
|
||||
---
|
||||
|
||||
[02.1 CNN基础原理](02.1-cnn-foundation.md) - 卷积神经网络三大组件
|
||||
### 学习目标
|
||||
|
||||
[02.2 目标检测](02.2-object-detection.md) - YOLO系列与应用
|
||||
理解CNN的核心思想:局部连接与权重共享
|
||||
|
||||
[02.3 语义分割与空间分析](02.3-semantic-segmentation.md) - 图像分析层级
|
||||
掌握卷积、激活、池化三大组件
|
||||
|
||||
## 核心概念
|
||||
了解CNN与MLP的区别和联系
|
||||
|
||||
---------------------------------------------------------------
|
||||
概念 英文 说明
|
||||
-------------- ----------------- ------------------------------
|
||||
卷积神经网络 CNN Convolutional Neural Network
|
||||
### 为什么需要CNN
|
||||
|
||||
特征图 Feature Map 卷积操作的输出
|
||||
MLP的问题
|
||||
|
||||
感受野 Receptive Field 神经元能"看到"的输入区域
|
||||
将图像展平成一维向量输入MLP:
|
||||
|
||||
池化 Pooling 下采样操作
|
||||
---------------------------------------------------------------
|
||||
`28×28``图像`` → 784``维向量`` → MLP`
|
||||
|
||||
## 02.1 CNN基础原理
|
||||
**问题**: 1. 参数量巨大:784×1000 = 784,000个参数 2. 忽略空间结构:相邻像素的关系被破坏 3. 缺乏平移不变性:物体移位后需要重新学习
|
||||
|
||||
#### CNN的解决方案
|
||||
|
||||
------------------------------------------------------------
|
||||
特性 说明 优势
|
||||
------------ -------------------------- --------------------
|
||||
局部连接 每个神经元只连接局部区域 符合图像局部相关性
|
||||
|
||||
权重共享 同一卷积核扫描全图 大幅减少参数
|
||||
|
||||
层次化特征 低层→高层特征抽象 自动学习特征表达
|
||||
------------------------------------------------------------
|
||||
|
||||
### CNN三大组件
|
||||
|
||||
#### 1. 卷积层 (Convolution)
|
||||
|
||||
**卷积操作**:用卷积核(Filter)在图像上滑动,计算局部特征
|
||||
|
||||
`输入图像`` ``卷积核`` ``特征图`\
|
||||
`┌─────────┐ ┌─────┐ ┌─────────┐`\
|
||||
`│ 1 2 3 │ │ 1 0 │ │ 8 10 │`\
|
||||
`│ 4 5 6 │ ⊗ │ 0 -1 │ = │ 14 16 │`\
|
||||
`│ 7 8 9 │ │ │ │ │`\
|
||||
`└─────────┘ └─────┘ └─────────┘`
|
||||
|
||||
**计算示例**:
|
||||
|
||||
`输出``(1,1) = 1×1 + 2×0 + 4×0 + 5×(-1) = 1 - 5 = -4`
|
||||
|
||||
**多通道卷积**:
|
||||
|
||||
`RGB``图像`` (3``通道``) + ``卷积核`` (3×3×3) → ``特征图`` (``单通道``)`
|
||||
|
||||
#### 2. 激活层 (Activation)
|
||||
|
||||
通常使用ReLU:
|
||||
|
||||
`output ``=`` ``max``(``0``, ``feature_map``)`
|
||||
|
||||
作用:引入非线性,使网络能学习复杂模式
|
||||
|
||||
#### 3. 池化层 (Pooling)
|
||||
|
||||
**最大池化** (Max Pooling):
|
||||
|
||||
`2×2``窗口`` → ``取最大值`\
|
||||
`┌─────┐ ┌───┐`\
|
||||
`│3 1 │ │ 3 │`\
|
||||
`│2 5 │ → │ │`\
|
||||
`└─────┘ │ 5 │`\
|
||||
` └───┘`
|
||||
|
||||
作用: - 降低维度,减少计算量 - 增强平移不变性 - 扩大感受野
|
||||
|
||||
### CNN架构示例
|
||||
|
||||
#### LeNet-5 (经典架构)
|
||||
|
||||
`输入``(32×32) → ``卷积层`` → ``池化层`` → ``卷积层`` → ``池化层`\
|
||||
` ↓`\
|
||||
` ``全连接层`` → ``输出`
|
||||
|
||||
#### VGG-16 (深层架构)
|
||||
|
||||
`输入`` → [Conv×3 + Pool] ×2 → [Conv×3 + Pool] ×3`\
|
||||
` → [Conv×3 + Pool] ×3 → FC×3 → ``输出`
|
||||
|
||||
### CNN vs MLP
|
||||
|
||||
-------------------------------------
|
||||
特性 MLP CNN
|
||||
---------- -------------- -----------
|
||||
连接方式 全连接 局部连接
|
||||
|
||||
权重 每个连接独立 同层共享
|
||||
|
||||
空间结构 忽略 保留
|
||||
|
||||
参数量 大 小
|
||||
|
||||
适用任务 结构化数据 图像/语音
|
||||
-------------------------------------
|
||||
|
||||
### 经典网络架构演进
|
||||
|
||||
`LeNet`` (1998) → ``首次定义``CNN``结构`\
|
||||
` ↓`\
|
||||
`AlexNet`` (2012) → ``深度学习爆发,``ReLU``激活`\
|
||||
` ↓`\
|
||||
`VGG (2014) → ``更深网络,``3×3``小卷积核`\
|
||||
` ↓`\
|
||||
`GoogLeNet`` (2014) → Inception``模块,多尺度`\
|
||||
` ↓`\
|
||||
`ResNet`` (2015) → ``残差连接,``152``层`\
|
||||
` ↓`\
|
||||
`EfficientNet`` (2019) → ``复合缩放,高效`
|
||||
|
||||
### 思考与练习
|
||||
|
||||
1.为什么卷积核通常选择奇数尺寸(3×3, 5×5)?
|
||||
|
||||
2.感受野如何随着网络深度增加?
|
||||
|
||||
3.设计一个简单的CNN用于手写数字识别
|
||||
|
||||
### 关键术语
|
||||
|
||||
-------------------------------------------------------
|
||||
中文 英文 说明
|
||||
-------- ----------------- ----------------------------
|
||||
卷积核 Kernel/Filter 用于特征提取的小矩阵
|
||||
|
||||
步幅 Stride 卷积核滑动的步长
|
||||
|
||||
填充 Padding 边缘补零以保持尺寸
|
||||
|
||||
感受野 Receptive Field 神经元响应的输入区域
|
||||
|
||||
通道 Channel 图像的颜色维度或特征图数量
|
||||
-------------------------------------------------------
|
||||
|
||||
### 延伸阅读
|
||||
|
||||
[CS231n: Convolutional Neural Networks](http://cs231n.stanford.edu/)
|
||||
|
||||
[Understanding CNNs](https://poloclub.github.io/cnn-explainer/) \# 02.2 目标检测
|
||||
|
||||
---
|
||||
|
||||
## 学习目标
|
||||
|
||||
理解目标检测与图像分类的区别
|
||||
|
||||
掌握YOLO系列的发展脉络
|
||||
|
||||
了解目标检测在设计中的应用
|
||||
|
||||
### 从分类到检测
|
||||
|
||||
#### 图像分类
|
||||
|
||||
`输入图像`` → CNN → ``类别标签`\
|
||||
`"``猫``" (``单标签``)`
|
||||
|
||||
#### 目标检测
|
||||
|
||||
`输入图像`` → CNN → [``位置``, ``类别``]`\
|
||||
`[``边界框``, "``猫``", 0.95]`\
|
||||
`[``边界框``, "``狗``", 0.87]`
|
||||
|
||||
**核心差异**:检测需要同时解决"是什么"和"在哪里"
|
||||
|
||||
### 检测器类型
|
||||
|
||||
#### Two-Stage检测器
|
||||
|
||||
`第一阶段:候选区域生成`\
|
||||
` RPN (Region Proposal Network)`\
|
||||
\
|
||||
`第二阶段:分类与回归`\
|
||||
` ``对每个候选框进行精确预测`\
|
||||
\
|
||||
`代表:``R-CNN, Fast R-CNN, Faster R-CNN`
|
||||
|
||||
特点:准确率高,速度慢
|
||||
|
||||
#### One-Stage检测器
|
||||
|
||||
`直接预测:一次性输出所有边界框和类别`\
|
||||
\
|
||||
`代表:``YOLO, SSD, ``RetinaNet`
|
||||
|
||||
特点:速度快,实时性好
|
||||
|
||||
### YOLO系列演进
|
||||
|
||||
#### YOLO v1 (2016)
|
||||
|
||||
**核心思想**:将检测转化为回归问题
|
||||
|
||||
`输入图像`` → S×S``网格`` → ``每个网格预测``B``个边界框`
|
||||
|
||||
创新点: - 端到端训练 - 实时检测 (45 FPS)
|
||||
|
||||
#### YOLO v2-v4
|
||||
|
||||
----------------------------------
|
||||
版本 主要改进
|
||||
------ ---------------------------
|
||||
v2 Batch Normalization, 锚框
|
||||
|
||||
v3 多尺度预测
|
||||
|
||||
v4 CSPDarknet, PANet
|
||||
|
||||
v5 PyTorch实现,工程优化
|
||||
|
||||
v8 重新设计,更易用
|
||||
----------------------------------
|
||||
|
||||
#### YOLO工作流程
|
||||
|
||||
##### 1. 输入图像 (640×640)
|
||||
|
||||
`↓`
|
||||
|
||||
##### 2. Backbone特征提取
|
||||
|
||||
`↓`
|
||||
|
||||
##### 3. Neck特征融合 (FPN + PAN)
|
||||
|
||||
`↓`
|
||||
|
||||
##### 4. Head检测输出
|
||||
|
||||
`- ``边界框坐标`
|
||||
|
||||
`- ``目标置信度`
|
||||
|
||||
`- ``类别概率`
|
||||
|
||||
### 评估指标
|
||||
|
||||
#### IoU (交并比)
|
||||
|
||||
`IoU`` = ``预测框与真实框的交集`` / ``并集`\
|
||||
\
|
||||
` ┌─────────┐`\
|
||||
` │ ``预测框`` │`\
|
||||
` │ ┌───┐ │`\
|
||||
` │ │``真`` │ │`\
|
||||
` └──┼──┼─┘`\
|
||||
` └───┘`\
|
||||
\
|
||||
`IoU`` = ``重叠面积`` / ``总面积`
|
||||
|
||||
### mAP (平均精度均值)
|
||||
|
||||
在不同IoU阈值(0.5, 0.75...)下的平均精度
|
||||
|
||||
综合衡量定位准确度和分类准确度
|
||||
|
||||
### COCO数据集
|
||||
|
||||
80类物体,包含: - 目标检测 - 实例分割 - 关键点检测 - 图像说明
|
||||
|
||||
## 设计领域应用
|
||||
|
||||
建筑识别
|
||||
|
||||
`卫星图像`` → YOLO → ``建筑物边界框`\
|
||||
` ↓`\
|
||||
`自动生成建筑轮廓`
|
||||
|
||||
场景分析
|
||||
|
||||
`室内照片`` → ``目标检测`` → ``家具识别`\
|
||||
` ↓`\
|
||||
`空间布局分析`
|
||||
|
||||
遗产保护
|
||||
|
||||
`无人机影像`` → ``建筑病害检测`\
|
||||
` ↓`\
|
||||
`自动化巡检与记录`
|
||||
|
||||
## 思考与练习
|
||||
|
||||
1.Two-Stage和One-Stage检测器的权衡是什么?
|
||||
|
||||
2.为什么YOLO能实现实时检测?
|
||||
|
||||
3.目标检测在规划设计中有哪些潜在应用?
|
||||
|
||||
## 关键术语
|
||||
|
||||
-------------------------------------------------------
|
||||
中文 英文 说明
|
||||
-------------- -------------- -------------------------
|
||||
边界框 Bounding Box 矩形目标框
|
||||
|
||||
锚框 Anchor Box 预定义的候选框
|
||||
|
||||
非极大值抑制 NMS 去除重复检测
|
||||
|
||||
交并比 IoU Intersection over Union
|
||||
|
||||
平均精度 AP Average Precision
|
||||
-------------------------------------------------------
|
||||
|
||||
## 延伸阅读
|
||||
|
||||
[Ultralytics YOLO文档](https://docs.ultralytics.com/)
|
||||
|
||||
[COCO数据集](https://cocodataset.org/) \# 02.3 语义分割与空间分析
|
||||
|
||||
---
|
||||
|
||||
## 学习目标
|
||||
|
||||
理解图像分析的三种层级
|
||||
|
||||
掌握语义分割与实例分割的区别
|
||||
|
||||
了解分割技术在空间分析中的应用
|
||||
|
||||
## 图像分析层级
|
||||
|
||||
### Pixel-Level (像素级)
|
||||
|
||||
`每个像素独立处理`\
|
||||
`问题:不考虑上下文`
|
||||
|
||||
### Patch-Level (图块级)
|
||||
|
||||
`以图像块为单位`\
|
||||
`特点:保留局部空间关系`\
|
||||
`应用:``CNN``卷积操作`
|
||||
|
||||
### Object-Level (对象级)
|
||||
|
||||
`以完整对象为单位`\
|
||||
`特点:语义完整`\
|
||||
`应用:目标检测、分割`
|
||||
|
||||
### 语义分割 vs 实例分割
|
||||
|
||||
#### 语义分割 (Semantic Segmentation)
|
||||
|
||||
`所有同类对象归为一类`\
|
||||
`图像`` → [``道路``, ``建筑``, ``车辆``, ``行人``, ...]`
|
||||
|
||||
特点: - 同类别用同一种颜色 - 不区分个体数量
|
||||
|
||||
#### 实例分割 (Instance Segmentation)
|
||||
|
||||
`每个对象单独分割`\
|
||||
`图像`` → [``建筑``1, ``建筑``2, ``车``1, ``车``2, ...]`
|
||||
|
||||
特点: - 区分同类对象的不同个体 - 更精细的场景理解
|
||||
|
||||
### 分割网络架构
|
||||
|
||||
#### FCN (全卷积网络)
|
||||
|
||||
`CNN``特征提取`` → ``上采样`` → ``像素级预测`
|
||||
|
||||
创新:用卷积层替代全连接层,输出热力图
|
||||
|
||||
#### U-Net
|
||||
|
||||
`编码器`` → ``瓶颈层`` → ``解码器`\
|
||||
` ↓ ↑`\
|
||||
`跳跃连接`` ───────────────┘`
|
||||
|
||||
特点: - U型对称结构 - 跳跃连接融合多尺度特征 - 医学图像分割经典架构
|
||||
|
||||
#### DeepLab系列
|
||||
|
||||
空洞卷积 (Atrous Convolution)
|
||||
|
||||
扩大感受野而不降低分辨率
|
||||
|
||||
ASPP (空洞空间金字塔池化)
|
||||
|
||||
### 空间分析应用
|
||||
|
||||
#### 遥感影像分析
|
||||
|
||||
`卫星图像`` → ``语义分割`` → ``土地利用分类`\
|
||||
` ↓`\
|
||||
`- ``建筑用地`\
|
||||
`- ``农用地`\
|
||||
`- ``水体`\
|
||||
`- ``森林`
|
||||
|
||||
#### 城市形态分析
|
||||
|
||||
`街景图像`` → ``分割`` → ``空间品质评估`\
|
||||
` ↓`\
|
||||
`- ``绿视率`\
|
||||
`- ``天空开阔度`\
|
||||
`- ``建筑密度`
|
||||
|
||||
#### 景观格局分析
|
||||
|
||||
`高分辨率影像`` → ``生态源地识别`\
|
||||
` ↓`\
|
||||
`景观连接性评估`
|
||||
|
||||
### 分割与检测对比
|
||||
|
||||
--------------------------------
|
||||
特性 目标检测 语义分割
|
||||
-------- ---------- ------------
|
||||
输出 矩形框 像素级标注
|
||||
|
||||
精度 粗糙 精细
|
||||
|
||||
计算量 较低 较高
|
||||
|
||||
应用 目标定位 场景理解
|
||||
--------------------------------
|
||||
|
||||
### 思考与练习
|
||||
|
||||
1.语义分割和实例分割分别在什么场景下更有用?
|
||||
|
||||
2.U-Net的跳跃连接为什么重要?
|
||||
|
||||
3.分割技术如何辅助规划设计决策?
|
||||
|
||||
### 关键术语
|
||||
|
||||
-----------------------------------------------------
|
||||
中文 英文 说明
|
||||
---------- ----------------------- ------------------
|
||||
语义分割 Semantic Segmentation 按类别分割像素
|
||||
|
||||
实例分割 Instance Segmentation 按对象个体分割
|
||||
|
||||
热力图 Heatmap 像素级预测结果
|
||||
|
||||
空洞卷积 Atrous Convolution 扩大感受野的卷积
|
||||
|
||||
跳跃连接 Skip Connection 跨层连接
|
||||
-----------------------------------------------------
|
||||
|
||||
### 延伸阅读
|
||||
|
||||
[Fully Convolutional Networks](https://arxiv.org/abs/1411.4038)
|
||||
|
||||
[U-Net: Convolutional Networks for Biomedical Image Segmentation](https://arxiv.org/abs/1505.04597)
|
||||
|
||||
Reference in New Issue
Block a user