# 第三篇:计算机视觉与空间图像 本篇深入讲解计算机视觉的核心技术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)