0


AIoT(人工智能+物联网)知识总结+实战项目

文章目录


前言

本文算是本人AIoT(人工智能+物联网) 学习的过程总结,相关笔记均会在此博客给出相关链接;
适合学习人群:0基础小白,以及有一定编程基础的同学~

💡在这里我把AIoT(人工智能+物联网) 的学习主要分为两个大阶段:
🚩1.知识内容的学习
🚩2.项目实战

😋😋😋强烈建议收藏哦~😋😋😋
大家有任何疑问都可在评论区提出,本人会尽己所能为大家答疑解惑,
如有错误还希望大家海涵并指正!!!

这是一个长时间的鏖战学习历程,将会持续更新 约2022.01开始正式更新,预计于2023.04结束更新 ,本文为本人在马士兵中学到的知识总结,博主的目的为做出

2 ~ 3

个项目作为研究生复试中的项目经历,本文中所涉及的项目实战也可以作为各位找工作时面试时的项目经历

📖本篇涉及知识的讲解会尽量的详细,写这个系列的博客也是对我本人的知识强化,送一句话与君共勉
最困难的时候,就是距离成功不远了
希望你我均能沉下心去认真学习AIoT的相关内容,共同进步!❤️❤️❤️


一、什么是AIoT

下文来自 百度百科:

AIoT(人工智能物联网)=AI(人工智能)+IoT(物联网)。AIoT融合AI技术和IoT技术,通过物联网产生、收集来自不同维度的、海量的数据存储于云端、边缘端,再通过大数据分析,以及更高形式的人工智能,实现万物数据化、万物智联化。物联网技术与人工智能相融合,最终追求的是形成一个智能化生态体系,在该体系内,实现了不同智能终端设备之间、不同系统平台之间、不同应用场景之间的互融互通,万物互融。除了在技术上需要不断革新外,与AIoT相关的技术标准、测试标准的研发、相关技术的落地与典型案例的推广和规模应用也是现阶段物联网与人工智能领域亟待突破的重要问题。


二、学习路线 && 学习目标 && AIoT职业方向

1.学习路线图

在这里插入图片描述
由于图片较大,可能会模糊,看不清的同学可以评论出来,我会私发给大家

2.目标

🚩 熟练掌握 C/C++编程语言,掌握面向对象程序设计方法。
🚩 熟练掌握常用数据结构和算法。
🚩 熟练掌握 MySQL、sqlite3 基础语法及 C/C++编程接口。
🚩 熟练掌握 Linux 应用软件编程方法,熟练使用多线程、多进程编程、socket 编程 等进行应用软件开发。
🚩 熟练掌握嵌入式 Linux 高级编程技术,如传感器编程、串口编程、V4L2 编程、音 视频处理、opencv、科大讯飞语音识别等。
🚩 熟练掌握 QT 编程方法。
🚩 熟练掌握 ARM 体系结构。
🚩 掌握 STM32 开发工具及设计流程。
🚩 掌握 STM32 的外围接口使用,如:GPIO、中断、定时器、ADC、UART、看门狗等。
🚩 掌握现场总线设计与应用,如:I2C 总线、SPI 总线、CAN 总线、RS485 总线等。
🚩 掌握 ZigBee 应用软件开发。
🚩 掌握蓝牙 Mesh 组网及应用软件开发。
🚩 掌握 NB-IoT 应用软件开发方法,掌握 CoAP、MQTT 协议。
🚩 熟悉嵌入式 Linux 内核移植、uboot 移植及 rootfs 制作。
🚩 深刻理解嵌入式 Linux 设备驱动开发。
🚩 对嵌入式 Linux 系统在视频监控、网络通信、多媒体处理及智能控制领域有深入 理解。
🚩 熟悉嵌入式人工智能项目的部署与移植开发应用

3.AIoT职业方向

🉑 C/C++软件开发工程师
🉑 Qt 开发工程师
🉑 桌面应用软件开发工程师
🉑 Linux 后台开发工程师
🉑 网游后端开发工程师
🉑 嵌入式 Linux 应用开发工程师
🉑 音视频开发工程师
🉑 物联网应用开发工程师
🉑 嵌入式 Linux 驱动开发工程师
🉑 嵌入式 Linux 系统移植与裁剪工程师
🉑 嵌入式 Linux 多媒体研发工程师
🉑 ARM 开发工程师
🉑 STM32 应用软件开发工程师
🉑 嵌入式 FreeRTOS 开发工程师
🉑 嵌入式 ucOS 开发工程师
🉑 现场总线控制、现场总线通信应用开发工程师
🉑 Python 开发工程师
🉑 人工智能开发工程师

三、AIoT知识内容

未超链接部分为未学习(总结)部分,后续会慢慢补上🎯

💘由于内容较多,建议大家收藏本博客,以后可通过此博客访问以下任何知识点💘
阶段名称主题阶段一(上)
阶段一(下)Python的进阶之道(上)
数据分析三剑客(下)掌握 Python 基础语法, 具备基础的编程能力;完成 小游戏开发;数据科学常用库开发:NumPy、 Pandas、Matplotlib 常用 Python 数据分析库的使用阶段二程序员的数学掌握高等数学,概率,离散数学;以及常见面试题解析阶段三线性回归算法掌握线性回归,各种优化等算法,Ridge、Lasso 回归,掌握正则化算法。阶段四线性回归分类算法掌握逻辑回归、Softmax、SVM 支持向量机算法, 掌握 SMO 优化算法。阶段五无监督学习算法掌握聚类算法、掌握 PCA 降维原理与推到,掌握 EM 算法,掌握 GMM 算法应用与原理。阶段六决策树系列算法掌握决策树算法原理,掌握随机森林、Adaboost 提升算法、GBDT 提升树算法,XGBoost 算法。阶段七Kaggle 实战通过实战,提升对基础算法的理解和应用。阶段八概率图模型算法掌握贝叶斯算法、HMM 算法、最大熵模型、CRF 算法阶段九深度学习课程大纲OpenCV 机器视觉开发; TensorFlow 深度学习框架; PyTorch 深度学习框架; 目标检测经典模型算法; 目标检测 YOLO 算法阶段十C 语言高级编程数据类型、运算符和表达式、输入和输出、流程控制、数组、函数、预处理、指针、结构体、C 语言编程高阶阶段十一数据结构和算法链表、栈和队列、二叉树、图、排序算法、查找算法阶段十二Linux 高级程序设计shell 编程、Linux 文件 IO、Linux 并发编程阶段十三Linux 网络编程网络编程预备知识、TCP 编程、UDP 编程、多播阶段十四Linux 数据库编程Mysql、Sqlite、Mysql C 语言编程接口、Sqlite3 C 语言编程接口阶段十五C++应用软件开发类和对象、封装、继承、多态、泛型编程、STL、算法、QT 应用软件开发阶段十六嵌入式传感器编程RS232、RS485、Linux 串口编程、GPIO 编程、烟雾传感器、温湿度传感器、继电器等阶段十七音视频编程音视频编程原理、H264、FMpeg、音视频网络传输、 RTMP 直播、科大讯飞语音识别阶段十八5G 物联网应用开发ARM 体系结构、STM32 应用开发、UCOS、 FreeRTOS、蓝牙、zigbee、NB-IoT阶段十九嵌入式 Linux 系 统移植及驱动开发Uboot、Linux 内核、Linux 文件系统、MMU、内存管理、字符设备驱动、块设备驱动、平台驱动


四、AIoT项目实战

未超链接部分为未学习(总结)部分,后续会慢慢补上🎯
阶段名称涉及知识点项目一从OCR到STR 文本检测与识别掌握文本识别项目的特点和整体流程, 模型部署,传统CV的文本检测 算法, 端到端的文本检测识别模型介绍项目二智能聊天机器人掌握智能聊天机器人概述和业界进展, 文本类匹配,句子相似度匹配, 异质文本相似度匹配,多轮对话技术进展项目三计算机视觉医疗系统掌握数字图像处理,图像认知、表示 ,计算机视觉经典任务,深度学习框架分析,经典网络设计,图像分割技术应用等项目四计算机视觉与电商掌握图像预处理,图像特征,神经网络与深度学习,图像分类,目标检测项目五智能交通地理信息系统掌握城市街道车辆多目标追踪项目实战,大规模地标图像检索,特征模型, 搜索与排序方法,城市街道车辆多目标追踪项目实战项目六乳腺癌医学影像检测掌握迁移学习,图像几何学基础知识, Densnet201在医学检测上的应用项目七交通标志识别掌握,YOLO网络框架,掌握卷积神经网络项目八车道线检测掌握,OpenCV机器视觉框架,了解图片处理方法项目九汽车车牌识别掌握,YOLO目标检测项目,掌握 TensoFlow文字识别原理。项目十手势识别掌握OpenCV图片采集技术,掌握 TesorFlow图片识别卷积神经网络项目十一驾驶员表情识别掌握,OpenCV机器视觉框架,了解图片处理方法。TesorFlow图片识别卷积神经网络项目十二智能停车场管理系统掌握面向对象程序设计、opencv图像处理、传感器编程、TCP编程、udp编程、 STL容器、MySQL数据库、Sqlite3数据库、文件IO项目十三基于STM32的智能小车掌握STM32编程、FreeRTOS、红外传感器编程、超声波测距编程、直流电机编程、蓝牙编程、红外遥控、LC1602A显示编程项目十四智能温室大棚控制系统掌握STM32编程、FreeRTOS操作系统 、ZigBee编程、传感器编程、RFID编程、 NB-IoT项目十五基于ZigBee的智能物流仓储系统掌握STM32、FreeRTOS、ZigBee组网技术、RFID、传感器编程、NB-IoT项目十六人工智能工业分拣系统掌握嵌入式LinuxPython编程、Qt编程、 STM32开发、机械臂开发、TensorFlow 开发、AI语音识别技术、AR开发项目十七智能家居控制系统掌握嵌入式Linux开发、QT编程、传感器开发、数据库开发、音视频开发、语音识别、蓝牙Mesh组网项目十八智慧教室终端掌握嵌入式Linux开发、并发编程、 socket编程、QT开发、传感器编程、 Sqlite3数据库、语音识别、人脸识别项目十九智能无人小车掌握嵌入式Linux、Python编程、PyQt 编程、ROS操作系统、Opencv、Slam、 TensorFlow开发、AI语音识别技术项目二十基于NB-IoT的共享单车掌握STM32开发、传感器编程、NB-IoT模块编程、NB-IoT通信

五、AIoT具体学习内容一览

1.Python 基础与科学计算

1.1 Python 基础语法

  1. 循环控制
  2. 切片操作
  3. 数据类型
  4. 集合操作
  5. 常用内建函数
  6. 函数式编程
  7. 类与对象
  8. 继承
  9. 装饰器
  10. 生成器

1.2 科学计算模块 Numpy

  1. Numpy ndarray 对象
  2. Numpy 数据类型
  3. Numpy 数组属性
  4. Numpy 创建数组
  5. Numpy 切片和索引
  6. Numpy 高级索引
  7. Numpy 广播
  8. Numpy 数组操作
  9. Numpy 数学和统计函数
  10. Numpy 排序、条件过滤函数
  11. Numpy 线性代数

1.3 数据处理分析模块 Pandas

  1. Pandas IO 文件操作
  2. Pandas 索引和数据选择器
  3. Pandas 合并、连接
  4. Pandas 缺失值数据处理
  5. Pandas 数据离散化
  6. Pandas 统计计算

1.4 数据可视化模块

  1. Matplotlib 散点图、线图、核密度图
  2. Matplotlib 饼图、直方图、盒图
  3. Matplotlib 等高线图
  4. Matplotlib 可视化剖析逻辑回归损失函数
  5. Seaborn 单变量、多变量的图形绘制
  6. Seaborn Style 和 Color
  7. Seaborn facetgrid

2.算法数学基础

2.1 微积分基础

  1. 导数的定义
  2. 左导数、右导数、可导函数
  3. 导数几何意义、物理意义
  4. 基本函数求导公式
  5. 四则运算法则
  6. 复合函数求导法则
  7. 神经网络激活函数的导函数求解
  8. 高阶导数
  9. 导数与函数单调性
  10. 极值定理
  11. 导数与函数凹凸性
  12. 一元函数泰勒展开

2.2 线性代数基础

  1. 向量与其运算
  2. 行向量和列向量
  3. 向量加减、数乘、内积、转置
  4. 向量范数
  5. 特殊向量
  6. 矩阵与其运算
  7. 方阵、对称阵、单位阵、对角阵
  8. 矩阵加减、数乘、矩阵乘法、转置
  9. 逆矩阵
  10. 行列式

2.3 多元函数微分学

  1. 偏导数
  2. 高阶偏导数
  3. 梯度
  4. 雅可比矩阵
  5. Hessian 矩阵
  6. 极值判别法则

2.4 线性代数高级

  1. 二次型
  2. 特征值和特征向量
  3. 特征值分解
  4. 多元函数的泰勒展开
  5. 矩阵和向量的求导公式
  6. 奇异值分解
  7. 奇异值分解计算方式
  8. 奇异值分解性质
  9. SVD 用于数据压缩
  10. SVD 用于 PCA 降维
  11. SVD 用于协同过滤
  12. SVD 用于矩阵求逆

2.5 概率论

  1. 随机事件和随机事件概率
  2. 条件概率和贝叶斯公式
  3. 随机事件的独立性
  4. 随机变量
  5. 数学期望和方差
  6. 常用随机变量服从的分布
  7. 随机向量
  8. 随机变量独立性
  9. 协方差与协方差矩阵
  10. 随机向量的常见分布
  11. 最大似然估计

2.6 最优化

  1. 局部最小和全局最小
  2. 迭代法求解
  3. 梯度下降法推导
  4. 牛顿法推导
  5. 坐标下降法
  6. 数值优化算法的问题
  7. 凸集
  8. 凸函数
  9. 凸优化问题
  10. 拉格朗日乘数法
  11. 拉格朗日对偶
  12. KKT 条件

3.线性回归算法

3.1 多元线性回归

  1. 简单线性回归
  2. 最优解与最小二乘法
  3. 多元线性回归判别式
  4. 多元线性回归的数学假设
  5. 利用 MLE 推导出目标函数
  6. 对数似然推导出 MSE 损失函数
  7. MSE 求偏导得到参数解析解
  8. 多元线性回归的 python 代码实现
  9. 多元线性回归的 sklearn 代码实战

3.2 梯度下降法

  1. 梯度下降法原理与公式
  2. 学习率设置的学问
  3. GD 应用于多元线性回归的流程
  4. 全量梯度下降的原理与代码实现
  5. 随机梯度下降的原理与代码实现
  6. Mini-Batch 梯度下降的原理与代码实现
  7. 代码实现增加 MBGD 数据的随机性
  8. 代码实现动态调整学习率

3.3 归一化

  1. 归一化目的与量纲
  2. 归一化提高模型精度
  3. 最大值最小值归一化与缺点
  4. 方差归一化与好处
  5. 均值归一化与好处
  6. 标准归一化的代码实战与技巧

3.4 正则化

  1. 提高泛化能力与防止过拟合
  2. 正则化用于损失函数
  3. L1 与 L2 正则项与范数的关系
  4. 结合 GD 讲解 L1L2 的几何意义
  5. 透过导函数讲解 L1 的稀疏性
  6. 透过导函数讲解 L2 的平滑性

3.5 Lasso 回归、Ridge 回归、多项式回归

  1. Lasso 回归原理与代码实战
  2. Ridge 回归原理与代码实战
  3. ElasticNet 回归原理与代码实战
  4. 升维的意义
  5. 多项式回归进行升维原理
  6. 多项式升维代码实战

4.线性分类算法

4.1 逻辑回归

  1. Sigmoid 函数特点
  2. 广义线性回归与逻辑回归的数学假设
  3. 证明伯努利二项分布属于指数族分布
  4. 推导出逻辑回归判别式
  5. 推导出逻辑回归损失函数 log loss
  6. 推导出损失函数导函数用于最优化
  7. 逻辑回归解决多分类问题 OVR
  8. 逻辑回归代码实战–鸢尾花数据集分类

4.2 Softmax 回归

  1. Softmax 函数特点
  2. 广义线性回归与 Softmax 回归的数学假设
  3. 证明多项式分布属于指数族分布
  4. 推导出 Softmax 回归判别式
  5. 推导出 Softmax 回归损失函数 cross-entropy
  6. 证明逻辑回归是 Softmax 的特例
  7. 剖析逻辑回归多分类和 Softmax 多分类的本质区别
  8. Softmax 回归代码实战–音乐曲风分类

4.3 SVM 支持向量机

  1. SVM 与感知机关系
  2. 几何距离和函数距离
  3. SVM 支持向量机算法原理
  4. SVM 的损失函数
  5. 硬间隔 SVM 的优化步骤
  6. 软间隔 SVM
  7. 非线性 SVM 与核函数
  8. SVM 在 sklearn 模块中参数详解
  9. SVM 人脸识别案例
  10. SVM 的概率化输出
  11. SVM 的 OVO 多分类
  12. SVM 的 hinge loss

4.4 SMO 优化算法

  1. SMO 优化算法的子二次规划问题思路
  2. SMO 把目标函数从二元函数变一元函数
  3. SMO 推导出新的α和旧的α关系
  4. SMO 对α进行剪裁
  5. SMO 优化 SVM 算法代码实现

5.无监督学习算法

5.1 聚类系列算法

  1. 相似度测量方法
  2. K-means 算法原理
  3. K-means 图像应用案例
  4. K-medoids 算法
  5. K-means++算法
  6. Mini-batch K-means 算法
  7. Canopy 聚类算法
  8. Agnes 层次聚类算法
  9. Diana 层次聚类算法
  10. DBSCAN 密度聚类算法
  11. Spectral 谱聚类
  12. 微博用户聚类分析案例

5.2 PCA 降维算法

  1. 特征选择与特征映射
  2. 最大投影方差原理与推导
  3. 最小投影距离原理与推导
  4. PCA 过程的中心化
  5. Kernelized PCA
  6. SVD 奇异值分解用于 PCA

5.3 EM 算法

  1. Jensen 不等式
  2. EM 算法的 E-step
  3. EM 算法的 M-step
  4. EM 在 GMM 公式推导中应用

5.4 GMM 算法

  1. 单一高斯分布的参数估计
  2. 混合高斯分布的似然函数
  3. GMM 的计算流程
  4. GMM 之图片前景背景分离代码实战
  5. GMM 之根据声音判别性别代码实战
  6. GMM 之根据声音判别用户代码实战

6.决策树系列算法

6.1 决策树算法

  1. 决策树的算法原理与数学表达
  2. 分裂指标 Gini 系数、信息增益、信息增益率
  3. 前剪枝与后剪枝
  4. 决策树 ID3、C4.5 和 CART
  5. 决策树算法优略比较
  6. 决策树之鸢尾花数据集分类案例
  7. 通过 graphvis 绘制决策树模型

6.2 随机森林算法

  1. 集成学习算法思想 Bagging、Boosting、Stacking
  2. 用户画像集成学习方法案例
  3. OOB 数据集验证随机森林算法
  4. 随机森林副产品之特征选择

6.3 Adaboost 算法

  1. Adaboost 算法原理
  2. 数据的权重与权重错误率
  3. 权重错误率调整到 0.5 训练下一个弱分类器
  4. 计算每个样本的权重 Un
  5. 应用 Adaboost 算法做人脸识别

6.4 GBDT 算法

  1. 函数空间的梯度下降与负梯度
  2. 推导 GBDT 回归是拟合残差
  3. Shrinkage 衰减系数的作用
  4. 推导 GBDT 分类亦是拟合残差
  5. GBDT 二分类模型训练和使用
  6. GBDT 多分类模型训练和使用
  7. GBDT 副产品之特征组合用于降维
  8. 实现 GBDT+LR 架构代码实战

6.5 XGBoost 算法

  1. XGBoost 算法与决策树集成学习关系
  2. XGBoost 目标函数与正则项
  3. XGBoost 目标函数用二阶泰勒展开
  4. 推导简化 XGBoost 目标函数引入 g h
  5. XGBoost 目标函数加入树的复杂度
  6. 推导出 XGBoost 目标函数最终形式和叶子节 点表达式
  7. 详解 XGBoost 算法参数与交叉验证
  8. XGBoost 算法调用 GPU 显卡资源加速

7.Kaggle 实战

7.1 CTR 广告预估项目

7.2 药店销量预测案例

7.3 活动推荐预测案例

7.4 银行贷款风控案例

8.概率图模型算法

8.1 贝叶斯分类

  1. 朴素贝叶斯分类器
  2. 拉普拉斯估计
  3. 代码实战垃圾邮件分类

8.2 HMM 算法

  1. 马尔可夫过程
  2. 初始概率、转移概率、发射概率
  3. 隐含马尔可夫模型原理
  4. 维特比算法

8.3 最大熵模型

  1. 熵、条件熵、相对熵、互信息
  2. 最大熵模型算法原理
  3. 有约束条件的函数最优化问题
  4. 最大熵和最大似然估计关系
  5. IIS 算法

8.4 CRF 算法

  1. 条件随机场的性质
  2. 条件随机场的判别函数
  3. 条件随机场的学习
  4. 条件随机场的推断
  5. CRF 与 HMM 关系

9.深度学习课程大纲

9.1 机器视觉

9.1.1 基本操作
  1. 图像读写
  2. 像素操作
  3. 图像缩放
  4. 图像旋转
  5. 图像融合
  6. 图像灰度化
  7. 图像颜色翻转
  8. 图像仿射变换
  9. RGB 与 HSV 空间变换
9.1.2 人脸检测
  1. 图像阈值
  2. 人脸检测
  3. 人脸马赛克
  4. 人脸毛玻璃效果
  5. 图像的浮雕
  6. 直方图均衡化
  7. 亮度增强
  8. 视频处理
  9. 读取摄像头
  10. 人脸追踪
9.1.3 高级应用
  1. 图像滤波与卷积
  2. 霍夫圆
  3. 边缘轮廓
  4. 腐蚀膨胀
  5. 开闭操作
  6. 背景消除
  7. 识别雪糕筒
  8. 物体追踪
  9. 车道线检测
  10. 车牌识别

9.2 TensorFlow 深度学习框架

9.2.1 TensorFlow 简介与环境搭建
  1. TensorFlow 简介
  2. TensorFlow 版本变迁与 TensorFlow1.0 框架
  3. TensorFlow2.0 框架
  4. TensorFlow 与 PyTorch 比较
  5. TensorFlow 环境配置
  6. CPU-TensorFlow 版安装
  7. GPU-TensorFlow 版安装
9.2.2 TensorFlow 入门
  1. tf 基础 API 引入
  2. tf.constant 常量使用方式
  3. tf.strings 与 ragged tensor
  4. 稀松 tensor 与变量 tf.Variable
  5. 自定损失函数
  6. DenseLayer 层
  7. 张量
  8. 随机数
  9. 科学计算
  10. 统计方法
  11. 自动求导机制
  12. tf.function 函数转换
  13. 函数签名与图结构
  14. tf.GradientTape 基本使用方法
  15. 案例:数据加载
  16. 案例:梯度下贱算法的实现
9.2.3 TensorFlow dataset 与 estimator 使用
  1. data_API 导入
  2. tf.data 基础 API 使用
  3. 生成 csv 文件
  4. tf.io.decode_csv 使用
  5. tf.data 读取 csv 文件并
  6. tf.data 与 tf.keras 结合使用
  7. tfrecord 基础 API 使用
  8. 生成 tfrecords 文件
  9. tf.data 读取 tfrecord 文件
  10. 泰坦尼克数据介绍
  11. feature_column 使用
  12. keras_to_estimator
  13. 预定义 estimator 使用
  14. 交叉特征实战
9.2.4 全连接神经网络
  1. 从生物神经元到人工神经元
  2. 全连接神经网络介绍
  3. 输入层
  4. 隐含层
  5. 输出层
  6. 激活函数
  7. 搭建网络模型
  8. 模型训练和测试
  9. 模型存储和加载
  10. 准确度 acc 和损失 loss 的可视化
  11. 案例:MNIST 手写数字识别
9.2.5 模型优化
  1. 模型优化概述
  2. 改变模型复杂度
  3. 优化损失函数和学习率 a) Optimizer 优化器 b) SGD 和 SGDM 优化器 c) AdaGrad 优化器 d) RMSProp 优化器
  4. Adam 优化器
  5. 优化 MNIST 手写数字识别
  6. 图片数据发生器
  7. 图片数据增强功能实现
  8. Dropout 解决过拟合问题
  9. 正则化实现模型优化
  10. 梯度消失与梯度爆炸介绍
  11. Relu 激活函数优化
  12. Xavier Glorot 初始化
  13. Data Augmentation 数据增强
  14. Batch Normalization 归一化
9.2.6 CNN 卷积神经网络
  1. CNN 概述
  2. 卷积操作
  3. 感受野
  4. 权值共享
  5. 填充(Padding)
  6. 步长(Stride)
  7. 池化(Pooling)
  8. 卷积和池化输出尺寸计算
  9. CNN 总结
  10. LeNet5 卷积神经网络
  11. 案例:LeNet5 实现 MNIST 手写数字类
  12. Alex 卷积神经网络
  13. VGGNet 卷积神经网络
  14. InceptionNet 卷积神经网络
  15. ResNet 卷积神经网络
  16. DenseNet 神经网络
  17. MobileNet 神经网络
  18. 案例:不同网络实现 Cifar-10 图像分类
9.2.7 RNN 循环神经网络
  1. RNN 循环神经网络原理
  2. RNN 实现股票预测 a) 数据集处理 b) RNN 模型定义 c) 预测和绘图 d) RNN 评价指标
  3. LSTM 长短期记忆神经网络概述
  4. LSTM 门结构
  5. LSTM 实现股票预测
  6. GRU 门控制循环单元
  7. GRU 实现股票预测
9.2.8 TensorFlow 分布式
  1. 分布式介绍与 GPU 设置
  2. GPU 默认设置
  3. 内存增长和虚拟设备实战
  4. GPU 手动设置
  5. 分布式策略
  6. Keras 分布式实现
  7. Estimator 分布式实现
  8. 自定义流程实现
  9. 分布式自定义流程实现
9.2.9 TensorFlow 模型保存与部署
  1. tflite 介绍
  2. 保存模型结构加参数与保存参数实战
  3. Keras 模型转化为 SavedModel
  4. 签名函数转化为 SavedModel
  5. 签名函数,SavedModel 和 Keras 模型 到 具体函数转换
  6. tflite 保存与解释与量化
  7. tensorflowjs 转换模型
  8. tensorflowjs 搭建服务器载入模型实战
  9. Android 部署模型实战
  10. 模型保存与部署总结
9.2.10 BP 反向传播算法
  1. BP 反向传播目的
  2. 链式求导法则
  3. 反向传播推导
  4. 反向传播-权值更新
  5. 反向传播-阈值更新
  6. 隐层到隐层参数更新
  7. 不同激活函数在反向传播应用
  8. 不同损失函数在反向传播应用
  9. Python 实现反向传播神经网络案例

9.3 PyTorch 深度学习框架

9.3.1 PyTorch 简介与环境搭建
  1. 选择 PyTorch 理由
  2. PyTorch 简介 a) 发展历史 b) 框架优点 c) 框架企业应用
  3. PyTorch-CPU 环境搭建
  4. PyTorch-GPU 搭建
9.3.2 PyTorch 框架基本使用
  1. Tensor 基本定义
  2. Tensor 与机器学习关系
  3. Tensor 创建编程实例
  4. Tensor 属性
  5. 稀松张量
  6. Tensor 算术运算
  7. Tensor 算术运算编程实例
  8. in-place 的概念和广播机制
  9. 取模-取整运算
  10. 比较运算、排序、数据合法性比较
  11. 三角函数
  12. 其他数学运算
  13. PyTorch 统计方法应用
  14. PyTorch 的分布函数
  15. PyTorch 随机抽样
  16. PyTorch 线性代数运算
  17. PyTorch 矩阵分解-PCA
  18. PyTorch 矩阵分解-SVD-LDA
  19. PyTorch 张量裁剪应用
  20. PyTorch 张量索引与数据筛选
  21. PyTorch 张量数据合并
  22. PyTorch 张量切片
  23. PyTorch 张量变形
  24. PyTorch 张量填充与傅里叶变换
  25. PyTorch 编程技巧实战
  26. PyTorch 自动求导 autograd-导数-方向导数-偏导数-梯度
  27. PyTorch 自动求导 autograd-梯度下降与机器学习最优解
  28. PyTorch 自动求导 autograd-Variable 与 tensor 应用
  29. PyTorch 自动求导 autograd-梯度计算
  30. PyTorch 自动求导 autograd 重要概念 variable-grad-grad_fn
  31. PyTorch 神经网络库 nn
  32. PyTorch 与 visdom
  33. PyTorch 与 tensorboardX
  34. PyTorch 与 torchvision
9.3.3 PyTorch 搭建神经网络
  1. 机器学习基本概念
  2. 神经网络的基本概念
  3. 神经网络回归问题
  4. 神经网络梯度下降
  5. 神经网络损失函数最小二乘法
  6. PyTorch 优化算法
  7. PyTorch 实现线性回归实战
  8. 神经网络分类问题
  9. 神经网络损失函数交叉熵介绍
  10. PyTorch 实现数字分类实战
9.3.4 PyTorch 计算机视觉与卷积神经网络
  1. 计算机视觉基本概念
  2. 图像处理常见概念
  3. 特征工程
  4. 卷积神经网络
  5. 填充(Padding)
  6. 步长(Stride)
  7. 池化(Pooling)
  8. 卷积和池化输出尺寸计算
  9. 卷积构造
  10. 激活层-BN 层-FC 层-损失层
  11. 经典卷积神经网络结构
  12. 轻量型网络结构
  13. 多分支网络结构
  14. Attention 网络结构
  15. 学习率
  16. 优化器
  17. 卷积神经网络正则化
9.3.5 PyTorch 实战计算机视觉任务-Cifar-10 图像分类
  1. 图像分类网络模型框架介绍
  2. Cifar10 数据读取与处理
  3. PyTorch 自定义数据加载-加载 Cifar10 数据
  4. PyTorch 搭建 VGG 模型实现图像分类
  5. PyTorch 搭建 Cifar10 图像训练脚本配合 tensorboard 记录日志
  6. PyTorch 搭建 Cifar10 训练脚本-ResNet 模型
  7. PyTorch 搭建 Cifar10 训练脚本-Mobilenet 模型
  8. PyTorch 搭建 Cifar10 训练脚本-Inception 结构
  9. PyTorch 搭建 cifar10 训练脚本搭建-调用 Pytorch 标准网络 ResNet18 等
  10. PyTorch 搭建 cifar10 推理测试脚本搭建
  11. 分类问题优化思路
  12. 分类问题最新研究进展和方向
9.3.6 Pytorch 实战计算机视觉任务-Pascal VOC 目标
  1. 目标检测概念介绍
  2. Passcal VOC 数据集介绍
  3. MMdetection 框架介绍-安装说明
  4. MMdetection 框架使用说明
  5. MMdetection 框架原理剖析
  6. MMdetection 训练 Passcal VOC 目标检测任务
  7. MMdetection 模型脚本测试
  8. MMdetection LOG 日志分析
  9. MMdetection 调优
9.3.7 PyTorch 实战计算机视觉任务-COCO 目标分割问题
  1. 图像分割基本概念
  2. 图像分割方法介绍
  3. 图像分割评价指标以及面临的挑战
  4. COCO 数据集介绍
  5. detectron 框架介绍和使用说明
  6. COCO 数据集标注文件解析
  7. detectron 框架源码解析
  8. detectron 模型训练
  9. detectron 测试脚本
9.3.8 PyTorch 搭建 GAN 网络实战图像风格迁移
  1. GAN 的基础概念
  2. GAN 典型模型介绍
  3. 图像风格转换数据下载
  4. 自定义 dataset 数据集
  5. CycleGAN 模型搭建
  6. CycleGAN 模型训练
  7. CycleGAN 模型测试

9.4 深度学习-目标检测经典模型实战

9.4.1 目标检测 RCNN 模型
  1. RCNN 模型介绍
  2. 模型网络结构 AlexNet 介绍
  3. 模型训练步骤
  4. 准备 region proposal
  5. 准备正负样本
  6. 预训练
  7. 目标分类
  8. 回归训练器
  9. RCNN 优缺点
9.4.2 目标检测 Fast R-CNN 模型
  1. Fast R-CNN 模型介绍
  2. 模型网络结构 VGG16 介绍
  3. ROI 池化
  4. 特征提取方式
  5. 联合候选框回归与目标分类的全连接层
  6. Fast R-CNN 创新点
  7. Fast R-CNN 训练
  8. Fast R-CNN 目标检测测试
9.4.3 目标检测 Faster R-CNN 模型
  1. Faster R-CNN 模型介绍
  2. 网络模型介绍
  3. RPN 生成建议窗口
  4. 产生建议窗口的 CNN 和目标检测的 CNN 共享
  5. Softmax-loss
  6. Faster R-CNN 创新点
  7. Faster R-CNN 训练
  8. Faster R-CNN 目标检测测试
9.4.4 目标检测 mask R-CNN 模型
  1. mask R-CNN 模型介绍
  2. 网络模型介绍
  3. RoIAlign
  4. Mask R-CNN 与 Faster R-CNN 对比
  5. 损失函数
  6. mask R-CNN 创新点
  7. mask R-CNN 训练
  8. mask R-CNN 目标检测测试
9.4.5 目标检测 RFCN 模型
  1. RFCN 模型介绍
  2. 特征提取模型介绍
  3. RFCN 目标检测计算流程
  4. RFCN 创新点
  5. RFCN 训练
  6. RFCN 目标检测测试
9.4.6 目标检测 Cascade R-CNN 模型
  1. Cascade R-CNN 模型介绍
  2. 特征提取模型介绍
  3. IOU 阈值设置
  4. 级联结构
  5. Cascade 结构介绍
  6. 损失函数
  7. Cascade R-CNN 创新点
  8. Cascade R-CNN 训练
  9. Cascade R-CNN 目标检测测试

9.5 深度学习-目标检测 YOLO 实战

9.5.1 深度学习经典检测方法概述
  1. 目标检测简介
  2. 目标检测原理
  3. 图像金字塔
  4. 古典目标检测架构
  5. ROI、IOU、FPS、NMS、mAP
  6. IOU 代码实现
  7. NMS 代码实现
  8. 特征金字塔
  9. SPP net 10) ROI 池化
9.5.2 YOLO-V1 整体思想与网络架构
  1. YOLO 算法整体思路解读
  2. 检测算法对应结果
  3. 整体网络架构解读
  4. 位置损失计算
  5. 置信度误差与优缺点剖析
9.5.3 YOLO-V2 进化详解
  1. 版本升级概述
  2. 网络结构特点
  3. 网络结构细节解读
  4. 基于聚类来选择先验框尺寸
  5. 偏移量计算方法
  6. 坐标映射与还原
  7. 感受野作用
  8. 特征融合改进
9.5.4 YOLO-V3 网络模型介绍
  1. 版本升级概述
  2. 多 scale 方法改进与特征融合
  3. 经典变换方法对比分析
  4. 残差连接方法解读
  5. 整体网络模型结构分析
  6. 先验框设计优化
  7. Softmax 层优化
9.5.5 项目实战-基于 YOLO-V3 并进行源码解读
  1. 数据与环境配置
  2. 训练参数设置
  3. 数据读取与处理
  4. Debug 模式介绍
  5. 构建网络模型
  6. 路由层与 shortcut 层说明
  7. YOLO 层定义剖析
  8. 预测结果计算
  9. 网络偏移计算
  10. 模型损失函数概述
  11. 标签样式设计
  12. 坐标相对位置计算
  13. 损失函数整合
  14. 模型训练与总结
  15. 目标检测效果展示
9.5.6 基于 YOLO-V3 的自定义目标检测
  1. 标注工具 Labelme 工具介绍与安装
  2. 数据标注
  3. 完成标签制作
  4. 生成模型所需配置文件
  5. 数据格式转换
  6. 数据输入数据预处理
  7. 训练代码与参数校验
  8. 训练模型并预测效果
9.5.7 YOLO-V4 网络模型介绍
  1. 版本升级概述
  2. 数据增强策略分析
  3. DropBlock 与标签平滑处理
  4. 损失函数局限性
  5. CIOU 损失函数定义
  6. NMS 细节优化
  7. SPP 与 CSP 网络结构
  8. SAM 注意力机制模块
  9. PAN 模块解读
  10. 激活函数与整体框架
9.5.8 YOLO-V5 网络模型介绍
  1. 版本升级概述
  2. 数据源 Debug 流程解读
  3. 图像数据源配置
  4. 加载标签数据
  5. 数据增强方法:Mosaic
  6. 数据合并
  7. Getltem 构建 batch
  8. 网络框架图可视化介绍
  9. YOLO5 配置文件解读
  10. Focus 模块流程讲解
  11. 配置文件解析
  12. 前向传播计算
  13. BottleneckCSP 层计算
  14. Head 层流程解析
  15. SPP 层计算解析
  16. 上采样与拼接
  17. 结果输出解析
  18. 超参数解析
  19. 命令行参数解析
  20. 训练流程总结
  21. 训练策略概述
  22. 模型迭代过程介绍
9.5.9 Resnet 网络框架结合迁移学习
  1. 迁移学习目标
  2. 迁移学习策略
  3. Resnet 原理
  4. Resnet 网络介绍
  5. Resnet 处理操作
  6. shortcut 模块
  7. 加载训练好的权重
  8. 模型训练
  9. 迁移学习结果对比
9.5.10 目标检测算法 SSD
  1. SSD 概述
  2. SSD 骨干网络
  3. default box 生成与规则
  4. 损失函数定义
  5. 网络细节介绍
  6. 与 YOLO 对比
9.5.11 目标检测算法 RetinaNet
  1. RetinaNet 概述
  2. 类不均衡问题
  3. 平衡交叉熵
  4. Focal Loss 定义
  5. 特征金字塔主干网络
  6. Anchors
  7. 分类自网络
  8. 边框回归自网络
  9. 模型训练
  10. 模型优化过程
  11. 模型对比与总结

10.图像识别综合案例

10.1 交通标志识别

  1. OpenCV 图片加载
  2. OpenCV 图片预处理
  3. 交通标志数据集处理
  4. TensorFlow
  5. 卷积神经网络构建
  6. TensorFlow 模型优化
  7. Keras 应用
  8. YOLO 使用
  9. 模型保存与加载
  10. Darknet 介绍与安装

10.2 车道线检测

  1. OpenCV 图片读写操作
  2. OpenCV 视频读写操作
  3. OpenCV 图片融合
  4. OpenCV 像素操作
  5. 图片灰度化处理
  6. 边缘轮廓
  7. 腐蚀膨胀
  8. 开闭操作
  9. 背景消除
  10. 物体追踪

10.3 汽车车牌识别

  1. 批量数据处理
  2. TensorFlow
  3. YOLO
  4. 卷积神经网络
  5. 图片裁剪
  6. TensorFlow 模型优化
  7. Keras 应用
  8. 模型保存与加载
  9. 数据增强

10.4 手势识别系统

  1. OpenCV 批量数据采集
  2. 图像灰度化
  3. 图像缩放
  4. 图像亮度改变
  5. 图像旋转
  6. 图像裁剪
  7. TensorFlow 构建 CNN 网络
  8. CNN 网络调优训练
  9. 模型保存
  10. 模型加载

10.5 驾驶员表情识别

  1. OpenCV 摄像头视频操作
  2. 图像灰度化
  3. 图像缩放
  4. 图像亮度改变
  5. 图像旋转
  6. 图像裁剪
  7. YOLO 框架加载
  8. YOLO 框架调参
  9. YOLO 框架训练
  10. TensorFlow 构建 CNN 网络用于识别表情
  11. CNN 网络调优训练
  12. 模型保存
  13. 模型加载

11.Linux 基础

  1. Linux 的介绍,Linux 的安装 a) VMware Workstation 虚拟软件安装过程、Ubuntu 虚拟机安装过程
  2. Linux 系统启动过程介绍 a) 内核引导 b) init 进程 c) 系统初始化 d) 建立终端 e) 用户登录系统
  3. Linux 系统目录结构 a) Linux 文件系统的层次结构 b) Linux 文件系统的作用 c) Linux 绝对路径和相对路径 d) Linux 文件/目录的命名规则 e) Linux 命令如何识别文件类型
  4. Linux 常用 shell 命令 a) 文件管理命令 b) 文档编辑命令 c) 文件传输命令 d) 磁盘管理命令 e) 网络通讯命令 f) 系统管理命令 g) 系统设置命令 h) 备份压缩命令 i) 设备管理命令
  5. Linux 系统密码管理 a) Linux 系统密码配置文件 b) Linux 系统修改密码方式
  6. Vim 文本编辑器
  7. Linux 远程登录 a) telnet 登录 b) ssh 登录 c) xshell 软件的使用
  8. Linux 用户和组管理 a) Linux 系统用户账号的管理 b) Linux 系统用户组的管理 c) 用户账号相关的配置文件
  9. Linux 权限管理 a) Linux 权限管理的重要性 b) Linux 权限位 c) Linux umask 详解
  10. Linux 文件系统管理 a) 磁盘结构 b) Linux 常用文件系统介绍 c) 硬盘设备和磁盘分区的识别 d) df 命令 e) du 命令 f) mount 命令 g) fdisk 命令 h) mkfs 命令 i) mke2fs 命令 j) Linux 交换分区的作用
  11. Linux 常用服务搭建 a) ftp 服务搭建 b) samba 服务搭建 c) ssh 搭建 d) telnet 搭建 e) Nginx 服务搭建
  12. Linux 系统服务管理 a) Linux 系统服务及其分类 b) Linux 端口及查询方法详解 c) Linux 基于 xinetd 服务的管理方法详解 d) 影响 Linux 系统性能因素分析 e) 系统性能分析:sar 命令 f) cpu 运行状态查看 g) 内存使用状态查看
  13. Linux 系统日志管理 a) Linux rsyslogd 服务及启动方法(详解版) b) Linux 日志文件(常见)及其功能 c) Linux 日志文件格式分析 d) rsyslogd 配置文件格式及其内容详解 e) Linux 日志服务器设置过程 f) Linux 日志轮替(日志转储)及 logrotate 配置文件分析 g) Linux logrotate 命令用法详解:进行日志转储(轮替) h) Linux 日志分析工具(logwatch)安装及使用
  14. Linux 软件包管理
  15. Linux 备份与恢复 a) Linux 备份的重要性 b) Linux 中的哪些数据需要备份? c) Linux 数据备份介质的选择 d) Linux 备份策略(完全备份、增量备份和差异备份)详解 e) Linux tar 命令备份数据 f) Linux dump 命令用法详解:备份分区、文件或目录 g) Linux restore 命令:还原 dump 操作备份下的文件、目录或分区 h) Linux dd 命令详解:数据备份,并在备份过程中进行格式转换 i) Linux rsync 命令用法详解
  16. SELinux 管理 a) SELinux 是什么 b) SELinux 的主要作用 c) SELinux 的工作模式(Disabled、Permissive 和 Enforcing) d) SELinux 配置文件(/etc/selinux/config) e) SELinux 工作模式设置(getenforce、setenforce 和 sestatus 命令) f) SELinux 安全上下文查看方法(超详细) g) SELinux 安全上下文的修改和设置(chcon 和 restorecon 命令) h) SELinux 默认安全上下文的查询和修改(semanage 命令) i) SELinux auditd 日志系统的安装与启动 j) SELinux auditd 日志使用方法详解 k) SELinux Targeted、MLS 和 Minimum 策略 l) SELinux 策略规则查看方法(seinfo 和 sesearch)详解 m) SELinux 策略规则的开启和关闭(详解版)

12.C 语言高级编程

12.1 C 语言开篇

  1. C 语言发展历史及特点
  2. C 语言应用及就业场景
  3. 手把手教你搭建 C 语言开发环境
  4. 第一个 C 语言程序
  5. 程序的编译及运行
  6. 单行注释和多行注释
  7. 文档注释

12.2 数据类型

  1. 标识符
  2. 关键字
  3. 变量的定义、声明、赋值和使用
  4. 整型及整型数据的表示(进制问题)
  5. 浮点型
  6. 字符型常量
  7. 数据在内存中的存储
  8. 由 printf(“%d\n”,10/3);所引发的思考
  9. 那些年我们遇到的变态笔试题
  10. 局部变量和全局变量
  11. 揭开 sizeof 的神秘面纱
  12. ASCII 表

12.3 C 语言输入输出

  1. printf 的高级用法
  2. scanf 读取冲键盘输入的数据
  3. 走进缓冲区的世界(理解且掌握)
  4. 输入输出疑难杂症

12.4 运算符和表达式

  1. 赋值运算符
  2. 算术运算符
  3. 关系运算符
  4. 逻辑运算符
  5. 位运算符
  6. 你会用位运算控制灯光的开和关吗
  7. 常见笔试题分析
  8. 逗号运算符
  9. 条件运算符
  10. 其他运算符
  11. 预算符的优先级关系

12.5 流程控制

  1. 分支结构 a) if 分支 b) if 分支的嵌套 c) switch 分支 d) if 分支和 switch 分支综合应用 e) 作业:员工奖金计算
  2. 循环结构 a) while 循环 b) do~while 循环 c) for 循环

12.6 数组

  1. 数组的基本概念
  2. 一维数组 a) 一维数组的使用 b) 一维数组的内存空间布局 c) 一维数组元素的逆置 d) 如何删除数组中重复的元素
  3. 二维数组 a) 二维数组的使用 b) 二维数组和一维数组的关系 c) 二维数组的内存空间布局
  4. 字符串 a) 字符串的概念 b) 字符串和字符数组

12.7 函数

  1. 函数的基本使用 a) 函数的定义 b) 函数的形参和实参 c) 函数的调用 d) 函数的返回值 e) 程序运行的秘密 f) 再论全局变量和局部变量 g) 函数的栈空间
  2. 递归函数 a) 递归函数的定义 b) 递归函数的运行原理 c) 递归求阶乘 d) 中间递归函数 e) 多层递归函数 f) 递归时间和内存开销探索 g) 递归的优化

12.8 C 语言预处理

  1. 什么是预处理命令
  2. #include头文件的包含
  3. #include“”和#include<>的区别
  4. 头文件的搜索规则
  5. C语言条件编译
  6. C语言宏定义
  7. 宏定义的基本使用
  8. 带参数的宏定义
  9. 宏定义和函数的区别
  10. 宏参数的字符串化和宏参数的连接

12.9 综合练习:五子棋游戏开发

12.10 指针

  1. 指针的基本使用 a)指针的概念 b)指针变量的定义和使用 c)指针变量的运算 d)指针所占用的内存空间 e)练习:通过指针交换两个整型变量的值 f)不同类型的指针之间的区别 g)空指针NULL和void指针
  2. 指针和一维数组 a)数组指针 b)练习:通过指针删除数组中重复的元素c)字符串指针 d)思考:为什么将一串字符串赋值给指针,却不能通过指针修改字符串的内容 e)指针变量作为函数形参 f)指针作为函数返回值 g)malloc和free h)再论指针的本质 i)堆和栈的区别 j)指针带来的内存泄漏问题 k)野指针和悬空指针
  3. 指针数组 a)指针数组和字符串数组 b)指针数组的灵活应用 c)main函数的命令行参数
  4. 函数指针 a)函数指针的基本使用 b)回调函数 c)练习:通过不同函数指针调用不同类型的函数 d)经典程序讲解:多个函数的随机调用
  5. 二级指针和多级指针 a)二级指针的定义及使用 b)一级指针、二级指针和函数的恩怨情仇 c)多级指针的定义及使用
  6. 指针和二维数组
  7. 字符串专题 a)常用字符串处理函数的使用 i.strlen ii.strcpystrncpy iii.strcmpstrncmp iv.strcatstrncat v.strstr vi.strtokstrtok_r b)实际应用举例:统计某个班级中姓“李”的同学的个数 c)实际应用举例:将“流浪地球”演员表按照字母表先后顺序显示d)实际应用举例:http协议解析 e)字符串处理函数的实现 f)常见笔试题分析

12.11 结构体

  1. 结构体定义 a) typedef 的使用 b) 结构体的初始化 c) 结构体数组 d) 指针和结构体 e) 练习:封装一个结构体保存学生的相关信息,并且计算多个学生中年龄 最大值、最小值和平均值
  2. 共用体/联合体 a) 共用体的定义和使用 b) 共用体的内存空间布局 c) 共用体和结构体的区别 d) 大端模式和小端模式 e) 共用体的妙用:判断大小端模式 f) 经典习题讲解:通过共用体分解一个 int 类型的数据 g) 经典习题讲解:通过共用体将四个字符组合成整型数据
  3. 枚举 a) 枚举的定义和使用 b) 通过枚举提升代码可读性实例代码 c) 练习:通过枚举获取某天是星期几 d) 实际应用举例:英雄联盟“多杀”音效输出

12.12 C 语言编程高阶

  1. C 程序的组成 a) C 程序项目目录结构 b) static 关键字的使用 c) const 关键字的使用 d) Makefile 文件的编写 e) C 程序的编译步骤 f) 动态库的使用 g) 静态库的使用 h) 练习:将实现交换两个整数的函数编译成动态库和静态库
  2. C 语言调试方法及技巧 a) GDB 的下载和安装 b) gdb run(r)命令:启动程序 c) GDB break(b):设置断点 d) GDB watch 命令:监控变量值的变化 e) GDB watch 命令:监控变量值的变化 f) GDB catch 命令:建立捕捉断点 g) GDB 条件断点(condition 命令)详解 h) GDB 单步调试程序 i) 如何使用 GDB 进行断点调试? j) GDB print 和 display 命令:查看变量的值 k) GDB print 命令更高级的用法
  3. 走进 C 语言内存管理世界 a) 程序在计算机中到底是如何运行的 b) 我们在程序中看到的地址为什么是假的? c) 虚拟地址和物理地址 d) 虚拟地址空间及编译模式 e) 结构体的字节对齐 f) 什么是栈溢出 g) 函数在栈上到底是怎样的? h) 函数进栈和出栈的过程 i) 栈溢出攻击的原理 j) 实际应用举例:网站密码破解

13.数据结构及算法

13.1 数据结构基础

  1. 线性结构 a) 数组 b) 链表 i. 单向链表 ii. 单向链表的逆置 iii. 单向链表的环 iv. 单向循环链表 v. 双向链表 vi. 双向循环链表 c) 栈 i. 数组实现的栈 ii. 链表实现的栈 iii. 实际应用举例:函数形参的入栈和出栈顺序 d) 队列 i. 实际应用举例:银行取号机功能实现
  2. 非线性结构 a) 二叉树 b) 完全二叉树 c) 满二叉树 d) 二分查找树 e) 平衡二叉树 f) 图

13.2 数据结构进阶

  1. 二叉树的遍历 a) 通过栈实现二叉树的按深度遍历 b) 通过队列实现二叉树的按层次遍历 c) 判断两棵二叉树是否相同
  2. 哈希表 a) 哈希表的实现 b) 哈希冲突及解决方案 c) 实际应用举例:统计一篇文章中单词的个数
  3. B 树 a) B 树的概念及实现原理 b) B 树的实际应用:磁盘搜索原理
  4. B+树 a) B+树的概念及实现原理 b) B+树的实际应用:数据库索引的实现 c) B 树和 B+树的区别
  5. 哈弗曼树 a) 哈弗曼树的特点 b) 通过 C 语言实现哈弗曼树 c) 实际应用举例:通过哈夫曼编码实现数据的加密传输
  6. 红黑树 a) 红黑树的概念及使用 b) 红黑树的旋转 c) 红黑树和普通平衡二叉树的比较

13.3 综合练习:带字符界面的计算器开发

13.4 算法基础

  1. 排序算法 a) 冒泡排序 b) 插入排序 c) 快速排序
  2. 查找算法 a) 顺序查找 b) 二分查找 c) 插值查找

13.5 算法进阶

  1. 时间复杂度计算
  2. 空间复杂度的计算
  3. 排序算法 a) 快排法的“Bug”及解决办法 b) 堆排序 c) 希尔排序 d) 归并排序 e) 桶排序 f) 排序算法的稳定性
  4. 查找算法 a) Top K 问题 b) 大数据中查找前 n 大数的解决办法
  5. 回溯法 a) 八皇后问题 6)动态规划
  6. 贪心算法
  7. 背包问题

13.6 综合练习:物流仓储管理系统 WMS 开发

14.Linux 高级程序设计

14.1 shell 编程

  1. shell 变量
  2. shell 位置参数(命令行参数)
  3. shell 特殊变量 a) $# b) $* c) $@ d) $? e) $$
  4. 练习:将指定目录下的所有的.c 文件进行压缩
  5. 实际应用举例:使用 shell 脚本对软件开发项目进行定时备份,并且实现自动覆盖

14.2 Linux 文件 I/O

  1. 标准 IO a) 什么是标准 IO? b) 为什么需要标准 IO? c) 文件的基本操作 i. fopen 函数 ii. fread 函数 iii. fwrite 函数 iv. fclose 函数 v. fseek 函数 vi. fstat 函数 d) 练习:使用标准 IO 拷贝文件 e) 标准 IO 的缓冲区 i. 行缓冲 ii. 全缓冲 iii. 无缓冲 f) sprintf 的使用 i. sprintf 语法 ii. 实际应用举例:学生信息远程传输数据包封装
  2. 系统 IO a) 什么是系统 IO? b) 为什么需要系统 IO c) Linux 系统中文件的描述 d) 文件的基本操作 i. open 函数 ii. read 函数 iii. write 函数 iv. close 函数 v. lseek 函数 vi. stat 函数 e) Linux 目录的操作方法 f) 标准 IO 和系统 IO 比较 i. 从实现原理上理解标准 IO 的作用和系统 IO 的作用 ii. 分析标准 IO 和系统 IO 的使用场景 iii. 标准 IO 系统 IO 性能分析 iv. 时间和日期编程实例 1. 当前时间年月日时分秒获取 2. 练习:你知道你活了多少天,活了多少秒了吗? 3. 实际应用举例:计算你的“英雄联盟”游戏的“L 龄”

14.3 Linux 并发编程

  1. 并发和并行的概念
  2. 进程 a) 进程的基本概念 b) 进程的状态 i. 进程在 Linux 操作系统中的描述 ii. 进程在 Linux 下的相关系统文件 iii. 进程的三态/五态 iv. 进程之间的切换 v. 进程的上下文 c) 多进程编程 i. 父进程、子进程 ii. 进程控制函数 fork、getpid、getppid、wait、waipid、kill iii. 子进程的“前世今生” iv. 关于 fork 函数的经典笔试题讲解 v. 僵尸进程 vi. 孤儿进程 d) 进程间通信(IPC) i. 管道 1. 有名管道 2. 无名管道 ii. 信号 iii. System IPC 和 Posix IPC 3. 消息队列 4. 共享内存 5. 信号量 e) system 函数 f) exec 函数簇 g) system 函数和 exec 函数簇的区别 h) 练习:程序创建子进程并令其挂起 100s,令父进程每秒监测子进程状态, 若子进程死亡则打印“子进程死亡”,否则打印“Hello World!” i) Linux 守护进程的设计
  3. 多线程 a) 线程的基本概念 b) 线程和进程的关系 c) 多线程编程 i. 线程控制函数 pthread_create pthread_join pthread_self pthread_cancel pthread_detach ii. PV 操作 iii. 线程的同步 1. 互斥锁 2. 读写锁 3. 条件变量 4. 信号量 5. 线程安全 i. 生产者消费者模型 ii. 银行家算法 iii. 哲学家就餐问题 iv. 线程池

14.4 项目 4:多媒体播放器开发

15.Linux 网络编程

15.1 Linux 网络编程预备知识

  1. OSI 网络模型
  2. TCP/IP 模型 a) TCP/IP 四层模型介绍 i. 应用层介绍 ii. 传输层介绍 1. TCP 传输协议头部 2. UDP 传输协议头部 iii. 端口号 iv. 子网掩码 v. 网络层介绍 1. IP 地址 2.子网掩码 4. ICMP 协议 5. ARP 协议、ARP 攻击 6. 路由器工作原理 vi. 数据链路层介绍 1. 交换机的工作原理 2. 路由器和交换机的比较 b) TCP 三次握手 i. TCP 三次握手流程 ii. SYN 洪泛攻击 c) TCP 四次挥手 d) TCP 可靠稳定实现原理 e) 流量控制和滑动窗口 f) UDP 传输协议分析
  3. 网络工具 wireshark 用法
  4. 上网流程分析 a) DNS 服务器 b) HTTP 协议和 HTTPS 协议 c) Nginx d) 负载均衡
  5. NAT 网络地址转换协议

15.2 socket 编程

  1. 网络字节序和主机字节序
  2. TCP 编程 a) TCP 服务端编程流程 b) TCP 客户端编程流程
  3. UDP 编程 a) UDP 服务端编程流程 b) UDP 客户端编程流程 c) 广播和组播
  4. IO 模型分析
  5. IO 复用 a) select b) poll c) Epoll 练习:网络日志服务器开发 练习:C 语言实现 Linux 网络嗅探器:通过原生套接字的方式,监听所有本地主机收发的 数据链路层帧结构,然后解析数据包的类型,并记录到日志文件。实现一个轻量级的网络嗅 探器
  6. TCP 带外数据编程
  7. TCP 粘包处理
  8. Unix domain 编程

16.Linux 数据库编程

16.1 MySQL

  1. MySQL 数据库的安装 a) windows 下 MySQL 的安装 b) ubuntu 下 MySQL 的安装 c) sqlyog 的安装
  2. MySQL 数据库的基本操作 a) sql 语句书写规则 b) MySQL 查看数据库 c) MySQL 创建数据库 d) MySQL 修改数据库 e) MySQL 删除数据库 f) MySQL 选择数据库 g) MySQL 注释 h) MySQL 中 SQL 语句的大小写规则
  3. MySQL 数据类型和存储引擎 a) MySQL 数据类型简介 b) MySQL 整数类型 c) MySQL 小数类型 d) MySQL 日期和时间类型 e) MySQL 字符串类型 f) MySQL 二进制类型 g) MySQL 数据类型的选择 h) MySQL 转义字符的使用 i) MySQL 系统变量 j) MySQL 存储引擎:InnoDB、MyISAM
  4. MySQL 数据表的基本操作 a) MySQL 创建数据表 b) MySQL 修改数据表 c) MySQL 修改/删除字段 d) MySQL 删除数据表 e) MySQL 删除被其它表关联的主表 f) MySQL 查看表结构 g) MySQL 数据表添加字段
  5. MySQL 约束、函数和运算符 a) MySQL 约束概述 b) MySQL 主键 c) MySQL 主键自增长 d) MySQL 外键约束 e) MySQL 唯一约束 f) MySQL 检查约束 g) MySQL 默认值 h) MySQL 非空约束 i) MySQL 常用运算符 j) MySQL 算术运算符 k) MySQL 逻辑运算符 l) MySQL 比较运算符 m) MySQL 位运算符 n) MySQL 运算符优先级 o) MySQL IN 和 NOT IN p) MySQL 函数
  6. MySQL 操作表中数据 a) MySQL 插入数据 b) MySQL 去重 c) MySQL 设置别名 d) MySQL 限制查询结果的条数 e) MySQL 对查询结果排序 f) MySQL 条件查询 g) MySQL 使用 LIKE 模糊查询 h) MySQL 范围查询 i) MySQL 空值查询 j) MySQL 分组查询 k) MySQL 过滤分组 l) MySQL 交叉连接 m) MySQL 内连接 n) MySQL 外连接 o) MySQL 子查询 p) MySQL 更新数据 q) MySQL 删除数据 练习:学生信息管理系统数据库设计
  7. MySQL 视图、索引 a) MySQL 视图是什么? b) MySQL 创建视图 c) MySQL 查看视图 d) MySQL 修改视图 e) MySQL 删除视图 f) MySQL 索引 g) MySQL 索引可以分为哪些类型? h) MySQL 创建索引 i) MySQL 查看索引 j) MySQL 修改和删除索引 k) 索引在什么情况下不会被使用? l) 怎么提升索引的使用效率,设计出更高效的索引
  8. 数据库的设计 a) ER 模型 b) 数据库三范式 c) 作业:校园网数据库设计
  9. MySQL 事务 a) 事务的概念和特性 b) MySQL 执行事务的语法和流程 MySQL 设置事务自动提交(开启和关闭) c) 从实例出发,搞懂高并发下的数据库事务隔离级别 d) MySQL 查看和修改事务隔离级别 e) MySQL 表锁、行锁和页锁 f) MySQL InnoDB 的 3 种行锁定方式 g) Mysql 并发时常见的死锁及解决方法
  10. MySQL 性能优化
  11. MySQL C 语言编程接口

16.2 Sqlite3

  1. ubuntu sqlite3 的安装
  2. sqlitestudio 的使用
  3. Sqlite3 数据库结构
  4. Sqlite3 库的操作
  5. Sqlite3 C 语言编程接口

16.3 综合练习:天天鲜花电商平台数据库设计

17.C++应用软件开发

17.1 C++编程基础

  1. C++开篇 a) 从 C 到 C++ b) 面向对象编程和面向过程编程
  2. 类和对象 a) 类的定义 b) 类的封装 c) 对象的构造和析构 d) 拷贝构造函数 e) 深拷贝和浅拷贝 f) 多个对象的构造和析构 g) 构造函数和析构函数的调用顺序 h) 对象的动态建立和释放
  3. C++面向对象模型初探 a) 基础知识 b) 编译器对属性和方法的处理机制
  4. 继承 a) 继承关系举例 b) 继承相关概念 c) 派生类的访问控制 d) 多继承 e) 菱形继承/环形继承 f) 虚继承 g) C++虚继承下的内存模型
  5. 多态 a) 多态的基本概念 b) 函数重载 c) 运算符重载 d) 友元函数 e) 友元类 f) 函数的重定义 g) Mystring 类的实现 h) 虚函数 i. 虚函数的定义 ii. 虚函数表详解 iii. 多态的构成条件 iv. 虚析构函数 v. 纯虚函数 vi. 抽象类/接口 i) RTTI 机制精讲 j) RTTI 机制下的对象内存模型
  6. C++泛型编程 a) C++函数模板 i. 函数模板基础入门 ii. 函数模板的重载 iii. 函数模板实参推断 iv. 函数模板显示具体化 v. 函数模板的实例化 b) C++类模板 i. 类模板基础入门 ii. 类模板的显示实例化 iii. 类模板与继承 iv. 类模板与友元

17.2 综合练习:回合制游戏“冲出冒险岛”开发

17.3 C++高阶编程

  1. 笔试面试热门考点 a) struct 和 class 的区别 b) const 详解 c) 内联函数 d) extern “C”
  2. 异常 a) 异常的基本概念 b) 异常的抛出 c) 异常的捕获 d) C++标准异常 e) 自定义异常
  3. C++强制类型转换 a) const_cast b) static_cast c) dynamic_cast d) reinterpret_cast
  4. 输入输出流 a) cout 格式化输出 b) 输入输出重定向 c) 输出缓冲区的管理
  5. STL a) 序列式容器 i. vector ii. deque iii. stack iv. queue v. list b) 关联式容器 i. set 和 multiset ii. map 和 multimap c) 算法 i. 排序算法 ii. 查找算法
  6. C++ 11 新特性 a) nullptr b) using 取代 typedef c) auto d) final e) lambda f) 智能指针 g) C++多线程 h) C++线程池

17.4 综合练习:基于 TCP 的聊天室项目开发

17.5 QT 应用软件开发

17.5.1 QT 编程基础
  1. QT 基础知识 a) windows 系统下 QT 的安装 b) Linux 系统下 QT 的安装 c) QT 项目管理文件(.pro) d) QT 界面文件(.ui) e) QT 项目中的 main 函数 f) QTCreator 的使用
  2. QT 控件 a) QT 常用控件介绍 b) QT 帮助手册查询方法
  3. QT 界面布局管理 a) 水平布局 b) 垂直布局 c) 网状布局
  4. QT 信号和槽 a) 信号和槽机制 b) 槽函数的定义 c) 父子窗口通信
  5. QT 鼠标事件的处理 a) QT 鼠标事件的获取 b) QT 鼠标事件处理函数重写 c) 捕获 QLabel 标签点击事件
  6. QString 类 a) QString 类的基本使用 b) QString 和 String、char *、数字之间的转换
  7. QT 定时器 a) QTimer 类的使用 b) QObject 类提供的定时器 作业:圆形钟表设计
  8. QT 对话框 a) QT 的 5 种标准对话 b) QT 自定义窗口 c) QT 的多窗口
  9. QT 界面美化 a) 隐藏窗口标题栏 b) QT 样式表 c) 为按钮添加背景图片 d) 为界面添加背景图片 e) 制作不规则 Button
  10. QT 多进程编程
  11. QT 多线程编程
17.5.2 综合练习:网络调试助手开发

18.嵌入式传感器编程

18.1 Linux 串口编程

  1. RS232 RS485 介绍
  2. 串口初始化及属性配置
  3. modbus 协议分析及编程
  4. 常用模块编程 a) wifi 模块编程 b) 蓝牙模块编程 c) GPRS 模块编程 d) GPS 模块编程 e) RFID 编程
  5. 常用串口传感器编程 a) GY39 气象传感器 b) ZQ-M1 烟雾传感器 c) 超声波测距传感器 d) 指纹传感器 e) 重力压力传感器

18.2 GPIO 编程

  1. GPIO 理论基础知识
  2. GPIO 编程接口
  3. 常用传感器编程 a) 继电器 b) 土壤湿度传感器 c) 人体红外传感器 d) 直流电机 e) 声光报警器

19.音视频编程

19.1 音视频原理

  1. 音频的原理
  2. 视频的原理
  3. 视频编码原理
  4. H.264 编码压缩算法原理

19.2 音视频网络传输

  1. 视频编解码网络传输概览
  2. 流媒体服务器架构
  3. P2P 点对点介绍
  4. FFMpeg 音视频开发实战

19.3 RTMP 直播

  1. RTMP 直播介绍
  2. Linux 服务器配置
  3. 流媒体推流
  4. 流媒体转发与接收

19.4 科大讯飞语音识别

20.5G 物联网应用开发

20.1 ARM 体系结构与编程

  1. ARM 概述和分类 a) ARM 的简介 b) ARM 的分类 c) ARM 的命名规则 d) 基于 ARM 的嵌入式系统概述
  2. ARM 体系结构与存储系统 a) 存储 b) 流水线 c) 模式 d) 寄存器
  3. ARM 指令集和汇编程序设计 a) ARM 处理器寻址 b) ARM 指令集 c) ARM 汇编程序设计
  4. ARM 中断和异常处理 a) 异常简介 b) 异常向量表 c) 异常优先级 d) 异常进入和退出

20.2 STM32 应用开发

  1. STM32 应用开发导入 a) STM32 系列介绍 b) Cortex-M4 体系结构 c) 开发环境搭建
  2. 基本 I/O 端口控制 a) 寄存器法操作代码分析 b) 时钟配置 c) I/O 端口配置 d) 库函数操作流水灯 e) 库函数控数码管 f) 简单按键输入
  3. 中断 a) STM32 中断异常 b) STM32 中断相关的基本概念 i. 优先级 ii. 中断控制器 NVIC iii. NVIC 的优先级组 c) 外部中断
  4. 串口通信 a) 串口通信基础 b) STM32 串口操作 i. 寄存器方式操作串口 ii. 库函数方式操作串口
  5. 直接寄存器访问 a) DMA 基础知识 b) STM32 的 DMA 操作 i. 寄存器方式操作 DMA ii. 库函数方式操作 DMA iii. DMA 操作实例
  6. 模拟/数字转换器 a) ADC 基础知识 i. ADC 主要特性 ii. ADC 框图及引脚分布 iii. 通道选择 iv. ADC 转换模式 v. ADC 寄存器和固件库函数列表 b) STM32 ADC 操作 i. 寄存器方式操作 ADC ii. 库函数方式操作 ADC iii. ADC 操作实例
  7. 定时器 a) 定时器基础知识 i. 高级定时器 ii. 基本定时器 iii. 通用定时器 b) STM32 定时器操作 i. 寄存器方式操作定时器 ii. 库函数方式操作定时器 iii. 定时器操作实例
  8. CAN 总线设计 a) CAN 总线基本工作原理 b) CAN 协议的特点 c) CAN 协议通信过程 d) CAN 的报文格式 e) 同步 f) CAN 总线拓扑结构 g) CAN 通信的软件设计 h) CAN 通信实例

20.3 嵌入式操作系统 UCOS

  1. uC/OS-III 操作系统原理
  2. uC/OS-III 在 Cortex-M4 平台上的移植
  3. uC/OS-III 多任务编程
  4. uC/OS-III 多任务间通信
  5. uC/OS-III 同步与互斥
  6. uC/OS-III 中断处理

20.4 嵌入式操作系统 FreeRTOS

  1. 初识 FreeRTOS
  2. 移植 FreeRTOS 到 STM32
  3. FreeRTOS 启动流程
  4. 任务管理
  5. 消息队列
  6. 信号量
  7. 互斥量
  8. 事件
  9. 软件定时器
  10. 任务通知
  11. 内存管理
  12. 中断管理
  13. CPU 使用率统计

20.5 项目 2:基于 STM32 的智能小车

20.6 物联网高级应用开发

20.6.1 ZigBee 应用开发
  1. ZigBee 基本概念 a) 设备类型 b) 协议栈规范 c) 路由
  2. Z-Stack 协议栈总体设计 a) 任务初始化 b) 任务调度 c) 时间管理 d) 原语通信
  3. cc2530 编程 a) 开发环境搭建 b) cc2530 GPIO 控制 c) cc2530 中断 d) cc2530 定时器 e) cc2530 串口通信 f) cc2530 组网
20.6.2 蓝牙 Mesh
  1. Mesh 概述
  2. Mesh 网络基本概念
  3. 设备管理
  4. BLE 设备
20.6.3 NB-IoT
  1. NB-IoT 物联网行业解决方案
  2. NB-IoT 硬件平台介绍及使用
  3. AT 指令
  4. CoAP 通信
  5. MQTT 88
  6. 电信云平台对接及使用
  7. 华为云平台对接及使用
20.6.4 项目 3:智能温室大棚控制系统

21.嵌入式 Linux 系统移植及驱动开发

21.1 嵌入式平台软硬件框架分析

  1. 硬件平台分析 a) 马士兵硬件平台的架构 b) 马士兵平台启动过程概述
  2. u-boot a) u-boot 原理与工作过程 b) u-boot 编译与使用方法 c) u-boot 源码修改与分析 d) 启动 logo 修改
  3. Linux 内核 a) Linux-4.x/5.x 内核源码架构 b) 嵌入式 Linux-内核编译方法 c) 嵌入式 Linux-内核裁剪过程
  4. 根文件系统 a) 嵌入式 Linux 根文件系统工作原理 b) 根文件系统的制作过程 c) uboot、内核映像、文件系统烧写 d) 开机自启动程序设置
  5. ARM 体系结构 a) ARM 处理器的原理与架构 b) Cortex-A35 处理器架构 c) GPIO 控制方法 d) ARM 处理器 C 语言编程方法 e) ARM 处理器汇编编程方法

21.2 设备驱动开发

  1. Linux 的内核模块
  2. 字符设备驱动模型
  3. MMU 与 IO 内存映射
  4. misc 设备驱动模型
  5. 内存管理与分配
  6. Linux 内核中断驱动设计
  7. 内核同步机制—自旋锁、信号量、互斥锁与等待队列等
  8. Linux 内核时间管理
  9. 设备驱动的 platform 模型
  10. 内核设备驱动管理—如何将设备驱动编译到内核。
  11. Linux 输入子系统模型
  12. Linux IIC 子系统
  13. LED 灯、蜂鸣器、按键驱动设计实例
  14. 温湿度传感器、可燃气体传感器驱动设计实例
  15. ADC 驱动设计实例
  16. 人体红外传感器设计实例

22.物联网综合项目实施方案

22.1 智能停车场管理系统

  1. 面向对象程序设计
  2. opencv 图像处理
  3. 传感器编程
  4. TCP 编程
  5. udp 编程
  6. STL 容器
  7. MySQL 数据库
  8. Sqlite3 数据库
  9. 文件 IO

22.2 基于 STM32 的智能小车

  1. STM32 编程
  2. FreeRTOS
  3. 红外传感器编程
  4. 超声波测距编程
  5. 直流电机编程
  6. 蓝牙编程
  7. 红外遥控
  8. LC1602A 显示编程

22.3 智能温室大棚控制系统

  1. STM32 编程
  2. FreeRTOS 操作系统
  3. ZigBee 编程
  4. 传感器编程
  5. RFID 编程
  6. NB-IoT

23.AIoT 企业级项目开发

23.1 基于 ZigBee 的智能物流仓储系统

  1. STM32
  2. FreeRTOS
  3. ZigBee 组网技术
  4. RFID
  5. 传感器编程
  6. NB-IoT

23.2 人工智能工业分拣系统

  1. 嵌入式 Linux
  2. Python 编程
  3. Qt 编程
  4. STM32 开发
  5. 机械臂开发
  6. TensorFlow 开发
  7. AI 语音识别技术
  8. AR 开发(了解)

23.3 智能家居控制系统

  1. 嵌入式 Linux 开发
  2. QT 编程
  3. 传感器开发
  4. 数据库开发
  5. 音视频开发
  6. 语音识别
  7. 蓝牙 Mesh 组网

23.4 智慧教室终端

  1. 嵌入式 Linux 开发
  2. 并发编程
  3. socket 编程
  4. QT 开发
  5. 传感器编程
  6. Sqlite3 数据库
  7. 语音识别
  8. 人脸识别

23.5 智能无人小车

  1. 嵌入式 Linux
  2. Python 编程
  3. PyQt 编程
  4. ROS 操作系统
  5. Opencv
  6. Slam
  7. TensorFlow 开发
  8. AI 语音识别技术

23.6 基于 NB-IoT 的共享单车

  1. STM32 开发
  2. GPS 编程
  3. NB-IoT 模块编程
  4. NB-IoT 通信

本文转载自: https://blog.csdn.net/qq_52156445/article/details/121585369
版权归原作者 辰chen 所有, 如有侵权,请联系我们删除。

“AIoT(人工智能+物联网)知识总结+实战项目”的评论:

还没有评论