Files
2026_DesignAI/03-computer-vision/03-computer-vision.md
T
pengxiao fac0133db5 合并子章节到父文件,每个篇章归为单文件
将 11 个目录下的 26 个子章节文件合并到对应的父文件中,
用 --- 分隔各子章节,移除冗余的章节目录索引。
每个篇章现在是独立的单文件,结构更简洁。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 10:48:05 +08:00

465 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第三篇:计算机视觉与空间图像
本篇深入讲解计算机视觉的核心技术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)