第1篇 图像处理基础知识 第1章 计算机视觉与数字图像概述 2 1.1 计算机视觉简介 3 1.1.1 人类视觉简介 3 1.1.2 计算机视觉简介 5 1.2 数字图像简介 7 1.2.1 图像的概念 7 1.2.2 数字图像的概念 9 1.2.3 数字图像的类型 10 1.3 数字图像的存储 12 1.4 数字图像的处理 14 1.4.1 数字图像处理简介 15 1.4.2 数字图像处理的发展 15 1.4.3 数字图像处理的内容 16 1.5 PyTorch框架与图像处理 16 1.6 小结 18 1.7 习题 18 第2章 搭建开发环境 19 2.1 Python简介 19 2.1.1 Python的发展历程 19 2.1.2 下载Python安装包 20 2.1.3 安装Python 21 2.1.4 执行Python程序 23 2.2 CUDA简介 24 2.2.1 CUDA的发展历程 24 2.2.2 安装CUDA 24 2.3 Python第三方库简介 25 2.3.1 检索Python第三方库 25 2.3.2 安装Python第三方库 27 2.3.3 与图像处理相关的第三方库 28 2.4 安装PyTorch 29 2.5 安装可视化工具Visdom 30 2.6 安装集成开发环境Spyder 31 2.7 小结 32 2.8 习题 32 第3章 Python编程基础 33 3.1 Python语法基础知识 33 3.1.1 数据类型与类 33 3.1.2 流程控制 38 3.1.3 函数 39 3.1.4 类与对象 40 3.1.5 标准库 41 3.1.6 第三方库 43 3.2 PyTorch基础知识 46 3.2.1 张量的创建 46 3.2.2 张量的运算 52 3.2.3 卷积及局部邻域的运算 56 3.2.4 张量的变换 60 3.3 Visdom基础知识 64 3.3.1 图像的绘制 65 3.3.2 图表的绘制 67 3.4 小结 72 3.5 习题 72 第2篇 基于经典方法的图像处理 第4章 图像处理基础知识 74 4.1 图像与张量的互操作 74 4.2 图像的点运算 76 4.2.1 图像增强 77 4.2.2 图像颜色空间变换 80 4.2.3 灰度图像的亮度变换 84 4.2.4 简单图像二值化 86 4.2.5 图像蒙版处理 88 4.2.6 图像的混合 90 4.3 图像的邻域运算 92 4.3.1 图像邻域的生成 92 4.3.2 图像的滤波去噪 95 4.3.3 图像的形态学运算 97 4.3.4 局部二值模式 102 4.3.5 局部最大值指数 104 4.4 图像的全局运算 106 4.4.1 图像的简单旋转与翻转 106 4.4.2 图像的缩放 108 4.4.3 图像的裁切 108 4.4.4 图像直方图均衡化 110 4.5 小结 112 4.6 习题 112 第5章 图像的基础特征 113 5.1 图像的特征点 113 5.1.1 特征点简介 113 5.1.2 Harris角点 115 5.1.3 提取Harris角点 117 5.2 图像的线特征 120 5.2.1 Roberts算子 121 5.2.2 Prewitt算子 122 5.2.3 Sobel算子 124 5.2.4 Scharr算子 125 5.2.5 Laplacian算子 127 5.3 图像的面特征 129 5.3.1 K-均值聚类 129 5.3.2 SLIC算法 132 5.4 小结 134 5.5 习题 135 第6章 自动梯度与神经网络 136 6.1 自动梯度 136 6.1.1 梯度下降与函数极小值求解 136 6.1.2 自动梯度计算 137 6.1.3 自动梯度拟合多项式函数 139 6.2 模块 141 6.3 激活函数 145 6.4 损失函数 147 6.5 优化器 148 6.6 全连接神经网络 150 6.7 小结 154 6.8 习题 155 第7章 数据准备与图像预处理 156 7.1 Torchvision库简介 156 7.2 构建数据集 159 7.3 数据变换与增强 164 7.3.1 PIL图像和张量的共同变换 165 7.3.2 基于张量的变换 170 7.3.3 自定义数据的变换和增强 171 7.4 小结 174 7.5 习题 174 第3篇 基于深度学习的图像处理 第8章 图像分类 176 8.1 图像分类与卷积神经网络 176 8.1.1 图像分类及其进展 176 8.1.2 预训练模型的使用 178 8.2 经典的卷积神经网络 183 8.2.1 VGGNet模型 183 8.2.2 ResNet模型 187 8.3 卷积神经网络的训练与评估 190 8.4 迁移学习简介 194 8.5 小结 198 8.6 习题 198 第9章 图像分割 199 9.1 图像分割与卷积神经网络 199 9.2 分割数据集 201 9.3 FCN分割模型 206 9.4 UNet分割模型 209 9.5 分割网络的训练与评估 212 9.5.1 损失函数 212 9.5.2 优化器 213 9.5.3 评价指标 215 9.6 分割网络实践 217 9.7 小结 222 9.8 习题 222 第10章 目标检测 223 10.1 目标检测与卷积神经网络 223 10.1.1 目标检测的常用术语 224 10.1.2 目标检测的类型 225 10.2 预训练网络的使用 227 10.2.1 Torchvision的预训练模型 227 10.2.2 YOLOv5的预训练模型 232 10.3 FCOS模型及其训练 235 10.3.1 FCOS模型简介 235 10.3.2 数据集的构建 237 10.3.3 模型的训练和预测 239 10.4 YOLOv5模型及其训练 241 10.4.1 数据集的构建 242 10.4.2 模型的构建 243 10.4.3 模型的训练和预测 244 10.5 小结 246 10.6 习题 246 第11章 模型部署 247 11.1 模型部署简介 247 11.2 使用LibTorch进行模型部署 249 11.3 使用ONNX进行模型部署 252 11.4 使用OpenCV进行模型部署 253 11.5 使用OpenVINO进行模型部署 254 11.6 小结 255 11.7 习题 256