目录 教学课件(PPT) 本书源码 第1章Python编程基础 1.1环境搭建 1.2基础数据类型 1.2.1数值型 1.2.2字符串 1.2.3元组 1.2.4列表 1.2.5字典 1.2.6集合 1.2.7数据类型的转换 1.3条件语句 1.4循环语句 1.5函数 1.6类 1.7文件处理 1.8异常处理 1.9模块与包 1.10包的管理 1.11NumPy简介 1.11.1NDArray的创建 1.11.2NDArray索引与切片 1.11.3NDArray常用运算函数 1.11.4NDArray广播机制 1.12Pandas简介 1.12.1Pandas对象的创建 1.12.2Pandas的索引与切片 1.12.3Pandas常用统计函数 1.12.4Pandas文件操作 1.13Matplotlib简介 1.13.1Matplotlib基本使用流程 1.13.2Matplotlib绘直方图、饼图等 1.13.3Matplotlib绘三维图像 1.14OpenCV简介 1.14.1图片的读取和存储 1.14.2画矩形、圆形等 1.14.3在图中增加文字 1.14.4读取视频或摄像头中的图像 第2章机器学习基础 2.1HelloWorld之KNN算法 2.1.1KNN算法原理 2.1.2KNN算法代码实现 2.2梯度下降 2.2.1什么是梯度下降 2.2.2梯度下降的代码实现 2.2.3SGD、BGD和MBGD 2.2.4Momentum优化算法 2.2.5NAG优化算法 2.2.6AdaGrad优化算法 2.2.7RMSProp优化算法 2.2.8AdaDelta优化算法 2.2.9Adam优化算法 2.2.10学习率的衰减 2.3线性回归 2.3.1梯度下降求解线性回归 2.3.2梯度下降求解多元线性回归 2.4逻辑回归 2.4.1最大似然估计 2.4.2梯度下降求解逻辑回归 2.5聚类算法 2.6神经网络 2.6.1什么是神经网络 2.6.2反向传播算法 2.6.3Softmax反向传播 2.7欠拟合与过拟合 2.8正则化 2.9梯度消失与梯度爆炸 第3章深度学习框架 3.1基本概念 3.2环境搭建 3.3TensorFlow基础函数 3.3.1TensorFlow初始类型 3.3.2TensorFlow指定设备 3.3.3TensorFlow数学运算 3.3.4TensorFlow维度变化 3.3.5TensorFlow切片取值 3.3.6TensorFlow中gather取值 3.3.7TensorFlow中布尔取值 3.3.8TensorFlow张量合并 3.3.9TensorFlow网格坐标 3.3.10TensorFlow自动求梯度 3.4TensorFlow中的Keras模型搭建 3.4.1tf.keras简介 3.4.2基于tf.keras.Sequential模型搭建 3.4.3继承tf.keras.Model类模型搭建 3.4.4函数式模型搭建 3.5TensorFlow中模型的训练方法 3.5.1使用model.fit训练模型 3.5.2使用model.train_on_batch训练模型 3.5.3自定义模型训练 3.6TensorFlow中Metrics评价指标 3.6.1准确率 3.6.2精确率 3.6.3召回率 3.6.4PR曲线 3.6.5F1Score 3.6.6ROC曲线 3.6.7AUC曲线 3.6.8混淆矩阵 3.7TensorFlow中的推理预测 3.8PyTorch搭建神经网络 3.8.1PyTorch中将数据转换为张量 3.8.2PyTorch指定设备 3.8.3PyTorch数学运算 3.8.4PyTorch维度变化 3.8.5PyTorch切片取值 3.8.6PyTorch中gather取值 3.8.7PyTorch中布尔取值 3.8.8PyTorch张量合并 3.8.9PyTorch模型搭建 3.8.10PyTorch模型自定义训练 3.8.11PyTorch调用Keras训练 3.8.12PyTorch调用TorchMetrics评价指标 3.8.13PyTorch中推理预测 第4章卷积神经网络 4.1卷积 4.1.1为什么用卷积 4.1.2单通道卷积计算 4.1.3多通道卷积计算 4.1.4卷积padding和valid 4.1.5感受野 4.1.6卷积程序计算过程 4.2池化 4.3卷积神经网络的组成要素 4.4常见卷积分类 4.4.1分组卷积 4.4.2逐点卷积 4.4.3深度可分离卷积 4.4.4空间可分离卷积 4.4.5空洞卷积 4.4.6转置卷积 4.4.7可变形卷积 4.5卷积神经网络LeNet5 4.5.1模型介绍 4.5.2代码实战 4.6深度卷积神经网络AlexNet 4.6.1模型介绍 4.6.2代码实战 4.7使用重复元素的网络VGG 4.7.1模型介绍 4.7.2代码实战 4.8合并连接网络GoogLeNet 4.8.1模型介绍 4.8.2代码实战 4.9残差网络ResNet 4.9.1残差块 4.9.2归一化 4.9.3模型介绍 4.9.4代码实战 4.10轻量级网络MobiLeNet 4.10.1模型介绍 4.10.2注意力机制 4.10.3代码实战 4.11轻量级网络ShuffLeNet 4.11.1模型介绍 4.11.2代码实战 4.12重参数网络RepVGGNet 4.12.1模型介绍 4.12.2代码实战 第5章目标检测 5.1标签处理及代码 5.2开山之作RCNN 5.2.1模型介绍 5.2.2代码实战选择区域搜索 5.2.3代码实战正负样本选择 5.2.4代码实战特征提取 5.2.5代码实战SVM分类训练 5.2.6代码实战边界框回归训练 5.2.7代码实战预测推理 5.3两阶段网络Faster RCNN 5.3.1模型介绍 5.3.2代码实战RPN、ROI模型搭建 5.3.3代码实战RPN损失函数及训练 5.3.4代码实战ROI损失函数及训练 5.3.5代码实战预测推理 5.4单阶段多尺度检测网络SSD 5.4.1模型介绍 5.4.2代码实战模型搭建 5.4.3代码实战建议框的生成 5.4.4代码实战损失函数的构建及训练 5.4.5代码实战预测推理 5.5单阶段速度快的检测网络YOLOv1 5.5.1模型介绍 5.5.2代码实战模型搭建 5.5.3无建议框时标注框编码 5.5.4代码实现损失函数的构建及训练 5.5.5代码实战预测推理 5.6单阶段速度快的检测网络YOLOv2 5.6.1模型介绍 5.6.2代码实战模型搭建 5.6.3代码实战聚类得到建议框宽和高 5.6.4代码实战建议框的生成 5.6.5代码实现损失函数的构建及训练 5.6.6代码实战预测推理 5.7单阶段速度快多检测头网络YOLOv3 5.7.1模型介绍 5.7.2代码实战模型搭建 5.7.3代码实战建议框的生成 5.7.4代码实现损失函数的构建及训练 5.7.5代码实战预测推理 5.8单阶段速度快多检测头网络YOLOv4 5.8.1模型介绍 5.8.2代码实战模型搭建 5.8.3代码实战建议框的生成 5.8.4代码实现损失函数的构建及训练 5.8.5代码实战预测推理 5.9单阶段速度快多检测头网络YOLOv5 5.9.1模型介绍 5.9.2代码实战模型搭建 5.9.3代码实战建议框的生成 5.9.4代码实现损失函数的构建及训练 5.9.5代码实战预测推理 5.10单阶段速度快多检测头网络YOLOv7 5.10.1模型介绍 5.10.2代码实战模型搭建 5.10.3代码实战建议框的生成 5.10.4代码实现损失函数的构建及训练 5.10.5代码实战预测推理 5.11数据增强 5.11.1数据增强的作用 5.11.2代码实现CutOut数据增强 5.11.3代码实现MixUp数据增强 5.11.4代码实现随机复制Label数据增强 5.11.5代码实现Mosic数据增强 第6章项目实战 6.1计算机视觉项目的工作流程 6.2条形码项目实战 6.2.1项目背景分析 6.2.2整体技术方案 6.2.3数据分布分析 6.2.4参数设置 6.2.5训练结果分析 6.2.6OpenCV DNN实现推理 参考文献