fac0133db5
将 11 个目录下的 26 个子章节文件合并到对应的父文件中, 用 --- 分隔各子章节,移除冗余的章节目录索引。 每个篇章现在是独立的单文件,结构更简洁。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
465 lines
11 KiB
Markdown
465 lines
11 KiB
Markdown
# 第三篇:计算机视觉与空间图像
|
||
|
||
本篇深入讲解计算机视觉的核心技术CNN,以及目标检测和语义分割在空间分析中的应用。
|
||
|
||
## 篇章导读
|
||
|
||
计算机视觉让机器"看见"世界。从图像分类到目标检测,从语义分割到场景理解,视觉技术正在改变设计领域对空间信息的处理方式。
|
||
|
||
本篇将系统介绍CNN原理及其在空间分析中的应用。
|
||
|
||
---
|
||
|
||
### 学习目标
|
||
|
||
理解CNN的核心思想:局部连接与权重共享
|
||
|
||
掌握卷积、激活、池化三大组件
|
||
|
||
了解CNN与MLP的区别和联系
|
||
|
||
### 为什么需要CNN
|
||
|
||
MLP的问题
|
||
|
||
将图像展平成一维向量输入MLP:
|
||
|
||
`28×28``图像`` → 784``维向量`` → MLP`
|
||
|
||
**问题**: 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)
|