文章目录 前言一、什么是AIoT二、学习路线学习目标AIoT职业方向1。学习路线图2。目标3。AIoT职业方向三、AIoT知识内容四、AIoT项目实战五、AIoT具体学习内容一览1。Python基础与科学计算1。1Python基础语法1。2科学计算模块Numpy1。3数据处理分析模块Pandas1。4数据可视化模块2。算法数学基础2。1微积分基础2。2线性代数基础2。3多元函数微分学2。4线性代数高级2。5概率论2。6最优化3。线性回归算法3。1多元线性回归3。2梯度下降法3。3归一化3。4正则化3。5Lasso回归、Ridge回归、多项式回归4。线性分类算法4。1逻辑回归4。2Softmax回归4。3SVM支持向量机4。4SMO优化算法5。无监督学习算法5。1聚类系列算法5。2PCA降维算法5。3EM算法5。4GMM算法6。决策树系列算法6。1决策树算法6。2随机森林算法6。3Adaboost算法6。4GBDT算法6。5XGBoost算法7。Kaggle实战7。1CTR广告预估项目7。2药店销量预测案例7。3活动推荐预测案例7。4银行贷款风控案例8。概率图模型算法8。1贝叶斯分类8。2HMM算法8。3最大熵模型8。4CRF算法9。深度学习课程大纲9。1机器视觉9。1。1基本操作9。1。2人脸检测9。1。3高级应用9。2TensorFlow深度学习框架9。2。1TensorFlow简介与环境搭建9。2。2TensorFlow入门9。2。3TensorFlowdataset与estimator使用9。2。4全连接神经网络9。2。5模型优化9。2。6CNN卷积神经网络9。2。7RNN循环神经网络9。2。8TensorFlow分布式9。2。9TensorFlow模型保存与部署9。2。10BP反向传播算法9。3PyTorch深度学习框架9。3。1PyTorch简介与环境搭建9。3。2PyTorch框架基本使用9。3。3PyTorch搭建神经网络9。3。4PyTorch计算机视觉与卷积神经网络9。3。5PyTorch实战计算机视觉任务Cifar10图像分类9。3。6Pytorch实战计算机视觉任务PascalVOC目标9。3。7PyTorch实战计算机视觉任务COCO目标分割问题9。3。8PyTorch搭建GAN网络实战图像风格迁移9。4深度学习目标检测经典模型实战9。4。1目标检测RCNN模型9。4。2目标检测FastRCNN模型9。4。3目标检测FasterRCNN模型9。4。4目标检测maskRCNN模型9。4。5目标检测RFCN模型9。4。6目标检测CascadeRCNN模型9。5深度学习目标检测YOLO实战9。5。1深度学习经典检测方法概述9。5。2YOLOV1整体思想与网络架构9。5。3YOLOV2进化详解9。5。4YOLOV3网络模型介绍9。5。5项目实战基于YOLOV3并进行源码解读9。5。6基于YOLOV3的自定义目标检测9。5。7YOLOV4网络模型介绍9。5。8YOLOV5网络模型介绍9。5。9Resnet网络框架结合迁移学习9。5。10目标检测算法SSD9。5。11目标检测算法RetinaNet10。图像识别综合案例10。1交通标志识别10。2车道线检测10。3汽车车牌识别10。4手势识别系统10。5驾驶员表情识别11。Linux基础12。C语言高级编程12。1C语言开篇12。2数据类型12。3C语言输入输出12。4运算符和表达式12。5流程控制12。6数组12。7函数12。8C语言预处理12。9综合练习:五子棋游戏开发12。10指针12。11结构体12。12C语言编程高阶13。数据结构及算法13。1数据结构基础13。2数据结构进阶13。3综合练习:带字符界面的计算器开发13。4算法基础13。5算法进阶13。6综合练习:物流仓储管理系统WMS开发14。Linux高级程序设计14。1shell编程14。2Linux文件IO14。3Linux并发编程14。4项目4:多媒体播放器开发15。Linux网络编程15。1Linux网络编程预备知识15。2socket编程16。Linux数据库编程16。1MySQL16。2Sqlite316。3综合练习:天天鲜花电商平台数据库设计17。C应用软件开发17。1C编程基础17。2综合练习:回合制游戏冲出冒险岛开发17。3C高阶编程17。4综合练习:基于TCP的聊天室项目开发17。5QT应用软件开发17。5。1QT编程基础17。5。2综合练习:网络调试助手开发18。嵌入式传感器编程18。1Linux串口编程18。2GPIO编程19。音视频编程19。1音视频原理19。2音视频网络传输19。3RTMP直播19。4科大讯飞语音识别20。5G物联网应用开发20。1ARM体系结构与编程20。2STM32应用开发20。3嵌入式操作系统UCOS20。4嵌入式操作系统FreeRTOS20。5项目2:基于STM32的智能小车20。6物联网高级应用开发20。6。1ZigBee应用开发20。6。2蓝牙Mesh20。6。3NBIoT20。6。4项目3:智能温室大棚控制系统21。嵌入式Linux系统移植及驱动开发21。1嵌入式平台软硬件框架分析21。2设备驱动开发22。物联网综合项目实施方案22。1智能停车场管理系统22。2基于STM32的智能小车22。3智能温室大棚控制系统23。AIoT企业级项目开发23。1基于ZigBee的智能物流仓储系统23。2人工智能工业分拣系统23。3智能家居控制系统23。4智慧教室终端23。5智能无人小车23。6基于NBIoT的共享单车 前言 本文算是本人AIoT(人工智能物联网)学习的过程总结。 适合学习人群:0基础小白,以及有一定编程基础的同学 在这里我把AIoT(人工智能物联网)的学习主要分为两个大阶段: 1。知识内容的学习 2。项目实战 强烈建议收藏哦 大家有任何疑问都可在评论区提出,本人会尽己所能为大家答疑解惑,如有错误还希望大家海涵并指正!!! 这是一个长时间的鏖战学习历程,将会持续更新约2022。01开始正式更新,预计于2023。04结束更新,本文为本人在马士兵中学到的知识总结,博主的目的为做出23个项目作为研究生复试中的项目经历,本文中所涉及的项目实战也可以作为各位找工作时面试时的项目经历。一、什么是AIoT 下文来自百度百科: AIoT(人工智能物联网)AI(人工智能)IoT(物联网)。AIoT融合AI技术和IoT技术,通过物联网产生、收集来自不同维度的、海量的数据存储于云端、边缘端,再通过大数据分析,以及更高形式的人工智能,实现万物数据化、万物智联化。物联网技术与人工智能相融合,最终追求的是形成一个智能化生态体系,在该体系内,实现了不同智能终端设备之间、不同系统平台之间、不同应用场景之间的互融互通,万物互融。除了在技术上需要不断革新外,与AIoT相关的技术标准、测试标准的研发、相关技术的落地与典型案例的推广和规模应用也是现阶段物联网与人工智能领域亟待突破的重要问题。二、学习路线学习目标AIoT职业方向1。学习路线图 由于图片较大,可能会模糊,看不清的同学可以评论出来,我会私发给大家 2。目标 熟练掌握CC编程语言,掌握面向对象程序设计方法。 熟练掌握常用数据结构和算法。 熟练掌握MySQL、sqlite3基础语法及CC编程接口。 熟练掌握Linux应用软件编程方法,熟练使用多线程、多进程编程、socket编程等进行应用软件开发。 熟练掌握嵌入式Linux高级编程技术,如传感器编程、串口编程、V4L2编程、音视频处理、opencv、科大讯飞语音识别等。 熟练掌握QT编程方法。 熟练掌握ARM体系结构。 掌握STM32开发工具及设计流程。 掌握STM32的外围接口使用,如:GPIO、中断、定时器、ADC、UART、看门狗等。 掌握现场总线设计与应用,如:I2C总线、SPI总线、CAN总线、RS485总线等。 掌握ZigBee应用软件开发。 掌握蓝牙Mesh组网及应用软件开发。 掌握NBIoT应用软件开发方法,掌握CoAP、MQTT协议。 熟悉嵌入式Linux内核移植、uboot移植及rootfs制作。 深刻理解嵌入式Linux设备驱动开发。 对嵌入式Linux系统在视频监控、网络通信、多媒体处理及智能控制领域有深入理解。 熟悉嵌入式人工智能项目的部署与移植开发应用3。AIoT职业方向 CC软件开发工程师 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、MysqlC语言编程接口、Sqlite3C语言编程接口 阶段十五C应用软件开发类和对象、封装、继承、多态、泛型编程、STL、算法、QT应用软件开发 阶段十六嵌入式传感器编程RS232、RS485、Linux串口编程、GPIO编程、烟雾传感器、温湿度传感器、继电器等 阶段十七音视频编程音视频编程原理、H264、FMpeg、音视频网络传输、RTMP直播、科大讯飞语音识别 阶段十八5G物联网应用开发ARM体系结构、STM32应用开发、UCOS、FreeRTOS、蓝牙、zigbee、NBIoT 阶段十九嵌入式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编程、NBIoT 项目十五基于ZigBee的智能物流仓储系统掌握STM32、FreeRTOS、ZigBee组网技术、RFID、传感器编程、NBIoT 项目十六人工智能工业分拣系统掌握嵌入式LinuxPython编程、Qt编程、STM32开发、机械臂开发、TensorFlow开发、AI语音识别技术、AR开发 项目十七智能家居控制系统掌握嵌入式Linux开发、QT编程、传感器开发、数据库开发、音视频开发、语音识别、蓝牙Mesh组网 项目十八智慧教室终端掌握嵌入式Linux开发、并发编程、socket编程、QT开发、传感器编程、Sqlite3数据库、语音识别、人脸识别 项目十九智能无人小车掌握嵌入式Linux、Python编程、PyQt编程、ROS操作系统、Opencv、Slam、TensorFlow开发、AI语音识别技术 项目二十基于NBIoT的共享单车掌握STM32开发、传感器编程、NBIoT模块编程、NBIoT通信五、AIoT具体学习内容一览1。Python基础与科学计算1。1Python基础语法 循环控制 切片操作 数据类型 集合操作 常用内建函数 函数式编程 类与对象 继承 装饰器 生成器1。2科学计算模块Numpy Numpyndarray对象 Numpy数据类型 Numpy数组属性 Numpy创建数组 Numpy切片和索引 Numpy高级索引 Numpy广播 Numpy数组操作 Numpy数学和统计函数 Numpy排序、条件过滤函数 Numpy线性代数1。3数据处理分析模块Pandas PandasIO文件操作 Pandas索引和数据选择器 Pandas合并、连接 Pandas缺失值数据处理 Pandas数据离散化 Pandas统计计算1。4数据可视化模块 Matplotlib散点图、线图、核密度图 Matplotlib饼图、直方图、盒图 Matplotlib等高线图 Matplotlib可视化剖析逻辑回归损失函数 Seaborn单变量、多变量的图形绘制 SeabornStyle和Color Seabornfacetgrid2。算法数学基础2。1微积分基础 导数的定义 左导数、右导数、可导函数 导数几何意义、物理意义 基本函数求导公式 四则运算法则 复合函数求导法则 神经网络激活函数的导函数求解 高阶导数 导数与函数单调性 极值定理 导数与函数凹凸性 一元函数泰勒展开2。2线性代数基础 向量与其运算 行向量和列向量 向量加减、数乘、内积、转置 向量范数 特殊向量 矩阵与其运算 方阵、对称阵、单位阵、对角阵 矩阵加减、数乘、矩阵乘法、转置 逆矩阵 行列式2。3多元函数微分学 偏导数 高阶偏导数 梯度 雅可比矩阵 Hessian矩阵 极值判别法则 2。4线性代数高级 二次型 特征值和特征向量 特征值分解 多元函数的泰勒展开 矩阵和向量的求导公式 奇异值分解 奇异值分解计算方式 奇异值分解性质 SVD用于数据压缩 SVD用于PCA降维 SVD用于协同过滤 SVD用于矩阵求逆2。5概率论 随机事件和随机事件概率 条件概率和贝叶斯公式 随机事件的独立性 随机变量 数学期望和方差 常用随机变量服从的分布 随机向量 随机变量独立性 协方差与协方差矩阵 随机向量的常见分布 最大似然估计2。6最优化 局部最小和全局最小 迭代法求解 梯度下降法推导 牛顿法推导 坐标下降法 数值优化算法的问题 凸集 凸函数 凸优化问题 拉格朗日乘数法 拉格朗日对偶 KKT条件3。线性回归算法3。1多元线性回归 简单线性回归 最优解与最小二乘法 多元线性回归判别式 多元线性回归的数学假设 利用MLE推导出目标函数 对数似然推导出MSE损失函数 MSE求偏导得到参数解析解 多元线性回归的python代码实现 多元线性回归的sklearn代码实战3。2梯度下降法 梯度下降法原理与公式 学习率设置的学问 GD应用于多元线性回归的流程 全量梯度下降的原理与代码实现 随机梯度下降的原理与代码实现 MiniBatch梯度下降的原理与代码实现 代码实现增加MBGD数据的随机性 代码实现动态调整学习率3。3归一化 归一化目的与量纲 归一化提高模型精度 最大值最小值归一化与缺点 方差归一化与好处 均值归一化与好处 标准归一化的代码实战与技巧3。4正则化 提高泛化能力与防止过拟合 正则化用于损失函数 L1与L2正则项与范数的关系 结合GD讲解L1L2的几何意义 透过导函数讲解L1的稀疏性 透过导函数讲解L2的平滑性3。5Lasso回归、Ridge回归、多项式回归 Lasso回归原理与代码实战 Ridge回归原理与代码实战 ElasticNet回归原理与代码实战 升维的意义 多项式回归进行升维原理 多项式升维代码实战4。线性分类算法4。1逻辑回归 Sigmoid函数特点 广义线性回归与逻辑回归的数学假设 证明伯努利二项分布属于指数族分布 推导出逻辑回归判别式 推导出逻辑回归损失函数logloss 推导出损失函数导函数用于最优化 逻辑回归解决多分类问题OVR 逻辑回归代码实战鸢尾花数据集分类4。2Softmax回归 Softmax函数特点 广义线性回归与Softmax回归的数学假设 证明多项式分布属于指数族分布 推导出Softmax回归判别式 推导出Softmax回归损失函数crossentropy 证明逻辑回归是Softmax的特例 剖析逻辑回归多分类和Softmax多分类的本质区别 Softmax回归代码实战音乐曲风分类4。3SVM支持向量机 SVM与感知机关系 几何距离和函数距离 SVM支持向量机算法原理 SVM的损失函数 硬间隔SVM的优化步骤 软间隔SVM 非线性SVM与核函数 SVM在sklearn模块中参数详解 SVM人脸识别案例 SVM的概率化输出 SVM的OVO多分类 SVM的hingeloss4。4SMO优化算法 SMO优化算法的子二次规划问题思路 SMO把目标函数从二元函数变一元函数 SMO推导出新的和旧的关系 SMO对进行剪裁 SMO优化SVM算法代码实现5。无监督学习算法5。1聚类系列算法 相似度测量方法 Kmeans算法原理 Kmeans图像应用案例 Kmedoids算法 Kmeans算法 MinibatchKmeans算法 Canopy聚类算法 Agnes层次聚类算法 Diana层次聚类算法 DBSCAN密度聚类算法 Spectral谱聚类 微博用户聚类分析案例5。2PCA降维算法 特征选择与特征映射 最大投影方差原理与推导 最小投影距离原理与推导 PCA过程的中心化 KernelizedPCA SVD奇异值分解用于PCA5。3EM算法 Jensen不等式 EM算法的Estep EM算法的Mstep EM在GMM公式推导中应用5。4GMM算法 单一高斯分布的参数估计 混合高斯分布的似然函数 GMM的计算流程 GMM之图片前景背景分离代码实战 GMM之根据声音判别性别代码实战 GMM之根据声音判别用户代码实战6。决策树系列算法6。1决策树算法 决策树的算法原理与数学表达 分裂指标Gini系数、信息增益、信息增益率 前剪枝与后剪枝 决策树ID3、C4。5和CART 决策树算法优略比较 决策树之鸢尾花数据集分类案例 通过graphvis绘制决策树模型6。2随机森林算法 集成学习算法思想Bagging、Boosting、Stacking 用户画像集成学习方法案例 OOB数据集验证随机森林算法 随机森林副产品之特征选择6。3Adaboost算法 Adaboost算法原理 数据的权重与权重错误率 权重错误率调整到0。5训练下一个弱分类器 计算每个样本的权重Un 应用Adaboost算法做人脸识别6。4GBDT算法 函数空间的梯度下降与负梯度 推导GBDT回归是拟合残差 Shrinkage衰减系数的作用 推导GBDT分类亦是拟合残差 GBDT二分类模型训练和使用 GBDT多分类模型训练和使用 GBDT副产品之特征组合用于降维 实现GBDTLR架构代码实战6。5XGBoost算法 XGBoost算法与决策树集成学习关系 XGBoost目标函数与正则项 XGBoost目标函数用二阶泰勒展开 推导简化XGBoost目标函数引入gh XGBoost目标函数加入树的复杂度 推导出XGBoost目标函数最终形式和叶子节点表达式 详解XGBoost算法参数与交叉验证 XGBoost算法调用GPU显卡资源加速7。Kaggle实战7。1CTR广告预估项目7。2药店销量预测案例7。3活动推荐预测案例7。4银行贷款风控案例8。概率图模型算法8。1贝叶斯分类 朴素贝叶斯分类器 拉普拉斯估计 代码实战垃圾邮件分类8。2HMM算法 马尔可夫过程 初始概率、转移概率、发射概率 隐含马尔可夫模型原理 维特比算法8。3最大熵模型 熵、条件熵、相对熵、互信息 最大熵模型算法原理 有约束条件的函数最优化问题 最大熵和最大似然估计关系 IIS算法8。4CRF算法 条件随机场的性质 条件随机场的判别函数 条件随机场的学习 条件随机场的推断 CRF与HMM关系9。深度学习课程大纲9。1机器视觉9。1。1基本操作 图像读写 像素操作 图像缩放 图像旋转 图像融合 图像灰度化 图像颜色翻转 图像仿射变换 RGB与HSV空间变换9。1。2人脸检测 图像阈值 人脸检测 人脸马赛克 人脸毛玻璃效果 图像的浮雕 直方图均衡化 亮度增强 视频处理 读取摄像头 人脸追踪9。1。3高级应用 图像滤波与卷积 霍夫圆 边缘轮廓 腐蚀膨胀 开闭操作 背景消除 识别雪糕筒 物体追踪 车道线检测 车牌识别9。2TensorFlow深度学习框架9。2。1TensorFlow简介与环境搭建 TensorFlow简介 TensorFlow版本变迁与TensorFlow1。0框架 TensorFlow2。0框架 TensorFlow与PyTorch比较 TensorFlow环境配置 CPUTensorFlow版安装 GPUTensorFlow版安装9。2。2TensorFlow入门 tf基础API引入 tf。constant常量使用方式 tf。strings与raggedtensor 稀松tensor与变量tf。Variable 自定损失函数 DenseLayer层 张量 随机数 科学计算 统计方法 自动求导机制 tf。function函数转换 函数签名与图结构 tf。GradientTape基本使用方法 案例:数据加载 案例:梯度下贱算法的实现9。2。3TensorFlowdataset与estimator使用 dataAPI导入 tf。data基础API使用 生成csv文件 tf。io。decodecsv使用 tf。data读取csv文件并 tf。data与tf。keras结合使用 tfrecord基础API使用 生成tfrecords文件 tf。data读取tfrecord文件 泰坦尼克数据介绍 featurecolumn使用 kerastoestimator 预定义estimator使用 交叉特征实战9。2。4全连接神经网络 从生物神经元到人工神经元 全连接神经网络介绍 输入层 隐含层 输出层 激活函数 搭建网络模型 模型训练和测试 模型存储和加载 准确度acc和损失loss的可视化 案例:MNIST手写数字识别9。2。5模型优化 模型优化概述 改变模型复杂度 优化损失函数和学习率 a)Optimizer优化器 b)SGD和SGDM优化器 c)AdaGrad优化器 d)RMSProp优化器 Adam优化器 优化MNIST手写数字识别 图片数据发生器 图片数据增强功能实现 Dropout解决过拟合问题 正则化实现模型优化 梯度消失与梯度爆炸介绍 Relu激活函数优化 XavierGlorot初始化 DataAugmentation数据增强 BatchNormalization归一化9。2。6CNN卷积神经网络 CNN概述 卷积操作 感受野 权值共享 填充(Padding) 步长(Stride) 池化(Pooling) 卷积和池化输出尺寸计算 CNN总结 LeNet5卷积神经网络 案例:LeNet5实现MNIST手写数字类 Alex卷积神经网络 VGGNet卷积神经网络 InceptionNet卷积神经网络 ResNet卷积神经网络 DenseNet神经网络 MobileNet神经网络 案例:不同网络实现Cifar10图像分类9。2。7RNN循环神经网络 RNN循环神经网络原理 RNN实现股票预测 a)数据集处理 b)RNN模型定义 c)预测和绘图 d)RNN评价指标 LSTM长短期记忆神经网络概述 LSTM门结构 LSTM实现股票预测 GRU门控制循环单元 GRU实现股票预测9。2。8TensorFlow分布式 分布式介绍与GPU设置 GPU默认设置 内存增长和虚拟设备实战 GPU手动设置 分布式策略 Keras分布式实现 Estimator分布式实现 自定义流程实现 分布式自定义流程实现9。2。9TensorFlow模型保存与部署 tflite介绍 保存模型结构加参数与保存参数实战 Keras模型转化为SavedModel 签名函数转化为SavedModel 签名函数,SavedModel和Keras模型到具体函数转换 tflite保存与解释与量化 tensorflowjs转换模型 tensorflowjs搭建服务器载入模型实战 Android部署模型实战 模型保存与部署总结9。2。10BP反向传播算法 BP反向传播目的 链式求导法则 反向传播推导 反向传播权值更新 反向传播阈值更新 隐层到隐层参数更新 不同激活函数在反向传播应用 不同损失函数在反向传播应用 Python实现反向传播神经网络案例9。3PyTorch深度学习框架9。3。1PyTorch简介与环境搭建 选择PyTorch理由 PyTorch简介 a)发展历史 b)框架优点 c)框架企业应用 PyTorchCPU环境搭建 PyTorchGPU搭建9。3。2PyTorch框架基本使用 Tensor基本定义 Tensor与机器学习关系 Tensor创建编程实例 Tensor属性 稀松张量 Tensor算术运算 Tensor算术运算编程实例 inplace的概念和广播机制 取模取整运算 比较运算、排序、数据合法性比较 三角函数 其他数学运算 PyTorch统计方法应用 PyTorch的分布函数 PyTorch随机抽样 PyTorch线性代数运算 PyTorch矩阵分解PCA PyTorch矩阵分解SVDLDA PyTorch张量裁剪应用 PyTorch张量索引与数据筛选 PyTorch张量数据合并 PyTorch张量切片 PyTorch张量变形 PyTorch张量填充与傅里叶变换 PyTorch编程技巧实战 PyTorch自动求导autograd导数方向导数偏导数梯度 PyTorch自动求导autograd梯度下降与机器学习最优解 PyTorch自动求导autogradVariable与tensor应用 PyTorch自动求导autograd梯度计算 PyTorch自动求导autograd重要概念variablegradgradfn PyTorch神经网络库nn PyTorch与visdom PyTorch与tensorboardX PyTorch与torchvision9。3。3PyTorch搭建神经网络 机器学习基本概念 神经网络的基本概念 神经网络回归问题 神经网络梯度下降 神经网络损失函数最小二乘法 PyTorch优化算法 PyTorch实现线性回归实战 神经网络分类问题 神经网络损失函数交叉熵介绍 PyTorch实现数字分类实战9。3。4PyTorch计算机视觉与卷积神经网络 计算机视觉基本概念 图像处理常见概念 特征工程 卷积神经网络 填充(Padding) 步长(Stride) 池化(Pooling) 卷积和池化输出尺寸计算 卷积构造 激活层BN层FC层损失层 经典卷积神经网络结构 轻量型网络结构 多分支网络结构 Attention网络结构 学习率 优化器 卷积神经网络正则化9。3。5PyTorch实战计算机视觉任务Cifar10图像分类 图像分类网络模型框架介绍 Cifar10数据读取与处理 PyTorch自定义数据加载加载Cifar10数据 PyTorch搭建VGG模型实现图像分类 PyTorch搭建Cifar10图像训练脚本配合tensorboard记录日志 PyTorch搭建Cifar10训练脚本ResNet模型 PyTorch搭建Cifar10训练脚本Mobilenet模型 PyTorch搭建Cifar10训练脚本Inception结构 PyTorch搭建cifar10训练脚本搭建调用Pytorch标准网络ResNet18等 PyTorch搭建cifar10推理测试脚本搭建 分类问题优化思路 分类问题最新研究进展和方向9。3。6Pytorch实战计算机视觉任务PascalVOC目标 目标检测概念介绍 PasscalVOC数据集介绍 MMdetection框架介绍安装说明 MMdetection框架使用说明 MMdetection框架原理剖析 MMdetection训练PasscalVOC目标检测任务 MMdetection模型脚本测试 MMdetectionLOG日志分析 MMdetection调优9。3。7PyTorch实战计算机视觉任务COCO目标分割问题 图像分割基本概念 图像分割方法介绍 图像分割评价指标以及面临的挑战 COCO数据集介绍 detectron框架介绍和使用说明 COCO数据集标注文件解析 detectron框架源码解析 detectron模型训练 detectron测试脚本9。3。8PyTorch搭建GAN网络实战图像风格迁移 GAN的基础概念 GAN典型模型介绍 图像风格转换数据下载 自定义dataset数据集 CycleGAN模型搭建 CycleGAN模型训练 CycleGAN模型测试9。4深度学习目标检测经典模型实战9。4。1目标检测RCNN模型 RCNN模型介绍 模型网络结构AlexNet介绍 模型训练步骤 准备regionproposal 准备正负样本 预训练 目标分类 回归训练器 RCNN优缺点9。4。2目标检测FastRCNN模型 FastRCNN模型介绍 模型网络结构VGG16介绍 ROI池化 特征提取方式 联合候选框回归与目标分类的全连接层 FastRCNN创新点 FastRCNN训练 FastRCNN目标检测测试9。4。3目标检测FasterRCNN模型 FasterRCNN模型介绍 网络模型介绍 RPN生成建议窗口 产生建议窗口的CNN和目标检测的CNN共享 Softmaxloss FasterRCNN创新点 FasterRCNN训练 FasterRCNN目标检测测试9。4。4目标检测maskRCNN模型 maskRCNN模型介绍 网络模型介绍 RoIAlign MaskRCNN与FasterRCNN对比 损失函数 maskRCNN创新点 maskRCNN训练 maskRCNN目标检测测试9。4。5目标检测RFCN模型 RFCN模型介绍 特征提取模型介绍 RFCN目标检测计算流程 RFCN创新点 RFCN训练 RFCN目标检测测试9。4。6目标检测CascadeRCNN模型 CascadeRCNN模型介绍 特征提取模型介绍 IOU阈值设置 级联结构 Cascade结构介绍 损失函数 CascadeRCNN创新点 CascadeRCNN训练 CascadeRCNN目标检测测试9。5深度学习目标检测YOLO实战9。5。1深度学习经典检测方法概述 目标检测简介 目标检测原理 图像金字塔 古典目标检测架构 ROI、IOU、FPS、NMS、mAP IOU代码实现 NMS代码实现 特征金字塔 SPPnet10)ROI池化9。5。2YOLOV1整体思想与网络架构 YOLO算法整体思路解读 检测算法对应结果 整体网络架构解读 位置损失计算 置信度误差与优缺点剖析9。5。3YOLOV2进化详解 版本升级概述 网络结构特点 网络结构细节解读 基于聚类来选择先验框尺寸 偏移量计算方法 坐标映射与还原 感受野作用 特征融合改进9。5。4YOLOV3网络模型介绍 版本升级概述 多scale方法改进与特征融合 经典变换方法对比分析 残差连接方法解读 整体网络模型结构分析 先验框设计优化 Softmax层优化9。5。5项目实战基于YOLOV3并进行源码解读 数据与环境配置 训练参数设置 数据读取与处理 Debug模式介绍 构建网络模型 路由层与shortcut层说明 YOLO层定义剖析 预测结果计算 网络偏移计算 模型损失函数概述 标签样式设计 坐标相对位置计算 损失函数整合 模型训练与总结 目标检测效果展示9。5。6基于YOLOV3的自定义目标检测 标注工具Labelme工具介绍与安装 数据标注 完成标签制作 生成模型所需配置文件 数据格式转换 数据输入数据预处理 训练代码与参数校验 训练模型并预测效果9。5。7YOLOV4网络模型介绍 版本升级概述 数据增强策略分析 DropBlock与标签平滑处理 损失函数局限性 CIOU损失函数定义 NMS细节优化 SPP与CSP网络结构 SAM注意力机制模块 PAN模块解读 激活函数与整体框架9。5。8YOLOV5网络模型介绍 版本升级概述 数据源Debug流程解读 图像数据源配置 加载标签数据 数据增强方法:Mosaic 数据合并 Getltem构建batch 网络框架图可视化介绍 YOLO5配置文件解读 Focus模块流程讲解 配置文件解析 前向传播计算 BottleneckCSP层计算 Head层流程解析 SPP层计算解析 上采样与拼接 结果输出解析 超参数解析 命令行参数解析 训练流程总结 训练策略概述 模型迭代过程介绍9。5。9Resnet网络框架结合迁移学习 迁移学习目标 迁移学习策略 Resnet原理 Resnet网络介绍 Resnet处理操作 shortcut模块 加载训练好的权重 模型训练 迁移学习结果对比9。5。10目标检测算法SSD SSD概述 SSD骨干网络 defaultbox生成与规则 损失函数定义 网络细节介绍 与YOLO对比9。5。11目标检测算法RetinaNet RetinaNet概述 类不均衡问题 平衡交叉熵 FocalLoss定义 特征金字塔主干网络 Anchors 分类自网络 边框回归自网络 模型训练 模型优化过程 模型对比与总结10。图像识别综合案例10。1交通标志识别 OpenCV图片加载 OpenCV图片预处理 交通标志数据集处理 TensorFlow 卷积神经网络构建 TensorFlow模型优化 Keras应用 YOLO使用 模型保存与加载 Darknet介绍与安装10。2车道线检测 OpenCV图片读写操作 OpenCV视频读写操作 OpenCV图片融合 OpenCV像素操作 图片灰度化处理 边缘轮廓 腐蚀膨胀 开闭操作 背景消除 物体追踪10。3汽车车牌识别 批量数据处理 TensorFlow YOLO 卷积神经网络 图片裁剪 TensorFlow模型优化 Keras应用 模型保存与加载 数据增强10。4手势识别系统 OpenCV批量数据采集 图像灰度化 图像缩放 图像亮度改变 图像旋转 图像裁剪 TensorFlow构建CNN网络 CNN网络调优训练 模型保存 模型加载10。5驾驶员表情识别 OpenCV摄像头视频操作 图像灰度化 图像缩放 图像亮度改变 图像旋转 图像裁剪 YOLO框架加载 YOLO框架调参 YOLO框架训练 TensorFlow构建CNN网络用于识别表情 CNN网络调优训练 模型保存 模型加载11。Linux基础 Linux的介绍,Linux的安装 a)VMwareWorkstation虚拟软件安装过程、Ubuntu虚拟机安装过程 Linux系统启动过程介绍 a)内核引导 b)init进程 c)系统初始化 d)建立终端 e)用户登录系统 Linux系统目录结构 a)Linux文件系统的层次结构 b)Linux文件系统的作用 c)Linux绝对路径和相对路径 d)Linux文件目录的命名规则 e)Linux命令如何识别文件类型 Linux常用shell命令 a)文件管理命令 b)文档编辑命令 c)文件传输命令 d)磁盘管理命令 e)网络通讯命令 f)系统管理命令 g)系统设置命令 h)备份压缩命令 i)设备管理命令 Linux系统密码管理 a)Linux系统密码配置文件 b)Linux系统修改密码方式 Vim文本编辑器 Linux远程登录 a)telnet登录 b)ssh登录 c)xshell软件的使用 Linux用户和组管理 a)Linux系统用户账号的管理 b)Linux系统用户组的管理 c)用户账号相关的配置文件 Linux权限管理 a)Linux权限管理的重要性 b)Linux权限位 c)Linuxumask详解 Linux文件系统管理 a)磁盘结构 b)Linux常用文件系统介绍 c)硬盘设备和磁盘分区的识别 d)df命令 e)du命令 f)mount命令 g)fdisk命令 h)mkfs命令 i)mke2fs命令 j)Linux交换分区的作用 Linux常用服务搭建 a)ftp服务搭建 b)samba服务搭建 c)ssh搭建 d)telnet搭建 e)Nginx服务搭建 Linux系统服务管理 a)Linux系统服务及其分类 b)Linux端口及查询方法详解 c)Linux基于xinetd服务的管理方法详解 d)影响Linux系统性能因素分析 e)系统性能分析:sar命令 f)cpu运行状态查看 g)内存使用状态查看 Linux系统日志管理 a)Linuxrsyslogd服务及启动方法(详解版) b)Linux日志文件(常见)及其功能 c)Linux日志文件格式分析 d)rsyslogd配置文件格式及其内容详解 e)Linux日志服务器设置过程 f)Linux日志轮替(日志转储)及logrotate配置文件分析 g)Linuxlogrotate命令用法详解:进行日志转储(轮替) h)Linux日志分析工具(logwatch)安装及使用 Linux软件包管理 Linux备份与恢复 a)Linux备份的重要性 b)Linux中的哪些数据需要备份? c)Linux数据备份介质的选择 d)Linux备份策略(完全备份、增量备份和差异备份)详解 e)Linuxtar命令备份数据 f)Linuxdump命令用法详解:备份分区、文件或目录 g)Linuxrestore命令:还原dump操作备份下的文件、目录或分区 h)Linuxdd命令详解:数据备份,并在备份过程中进行格式转换 i)Linuxrsync命令用法详解 SELinux管理 a)SELinux是什么 b)SELinux的主要作用 c)SELinux的工作模式(Disabled、Permissive和Enforcing) d)SELinux配置文件(etcselinuxconfig) e)SELinux工作模式设置(getenforce、setenforce和sestatus命令) f)SELinux安全上下文查看方法(超详细) g)SELinux安全上下文的修改和设置(chcon和restorecon命令) h)SELinux默认安全上下文的查询和修改(semanage命令) i)SELinuxauditd日志系统的安装与启动 j)SELinuxauditd日志使用方法详解 k)SELinuxTargeted、MLS和Minimum策略 l)SELinux策略规则查看方法(seinfo和sesearch)详解 m)SELinux策略规则的开启和关闭(详解版)12。C语言高级编程12。1C语言开篇 C语言发展历史及特点 C语言应用及就业场景 手把手教你搭建C语言开发环境 第一个C语言程序 程序的编译及运行 单行注释和多行注释 文档注释12。2数据类型 标识符 关键字 变量的定义、声明、赋值和使用 整型及整型数据的表示(进制问题) 浮点型 字符型常量 数据在内存中的存储 由printf(d,103);所引发的思考 那些年我们遇到的变态笔试题 局部变量和全局变量 揭开sizeof的神秘面纱 ASCII表12。3C语言输入输出 printf的高级用法 scanf读取冲键盘输入的数据 走进缓冲区的世界(理解且掌握) 输入输出疑难杂症12。4运算符和表达式 赋值运算符 算术运算符 关系运算符 逻辑运算符 位运算符 你会用位运算控制灯光的开和关吗 常见笔试题分析 逗号运算符 条件运算符 其他运算符 预算符的优先级关系12。5流程控制 分支结构 a)if分支 b)if分支的嵌套 c)switch分支 d)if分支和switch分支综合应用 e)作业:员工奖金计算 循环结构 a)while循环 b)dowhile循环 c)for循环12。6数组 数组的基本概念 一维数组 a)一维数组的使用 b)一维数组的内存空间布局 c)一维数组元素的逆置 d)如何删除数组中重复的元素 二维数组 a)二维数组的使用 b)二维数组和一维数组的关系 c)二维数组的内存空间布局 字符串 a)字符串的概念 b)字符串和字符数组12。7函数 函数的基本使用 a)函数的定义 b)函数的形参和实参 c)函数的调用 d)函数的返回值 e)程序运行的秘密 f)再论全局变量和局部变量 g)函数的栈空间 递归函数 a)递归函数的定义 b)递归函数的运行原理 c)递归求阶乘 d)中间递归函数 e)多层递归函数 f)递归时间和内存开销探索 g)递归的优化12。8C语言预处理 什么是预处理命令 include头文件的包含 include和include的区别 头文件的搜索规则 C语言条件编译 C语言宏定义 宏定义的基本使用 带参数的宏定义 宏定义和函数的区别 宏参数的字符串化和宏参数的连接12。9综合练习:五子棋游戏开发12。10指针 指针的基本使用 a)指针的概念 b)指针变量的定义和使用 c)指针变量的运算 d)指针所占用的内存空间 e)练习:通过指针交换两个整型变量的值 f)不同类型的指针之间的区别 g)空指针NULL和void指针 指针和一维数组 a)数组指针 b)练习:通过指针删除数组中重复的元素c)字符串指针 d)思考:为什么将一串字符串赋值给指针,却不能通过指针修改字符串的内容 e)指针变量作为函数形参 f)指针作为函数返回值 g)malloc和free h)再论指针的本质 i)堆和栈的区别 j)指针带来的内存泄漏问题 k)野指针和悬空指针 指针数组 a)指针数组和字符串数组 b)指针数组的灵活应用 c)main函数的命令行参数 函数指针 a)函数指针的基本使用 b)回调函数 c)练习:通过不同函数指针调用不同类型的函数 d)经典程序讲解:多个函数的随机调用 二级指针和多级指针 a)二级指针的定义及使用 b)一级指针、二级指针和函数的恩怨情仇 c)多级指针的定义及使用 指针和二维数组 字符串专题 a)常用字符串处理函数的使用 i。strlen ii。strcpystrncpy iii。strcmpstrncmp iv。strcatstrncat v。strstr vi。strtokstrtokr b)实际应用举例:统计某个班级中姓李的同学的个数 c)实际应用举例:将流浪地球演员表按照字母表先后顺序显示d)实际应用举例:http协议解析 e)字符串处理函数的实现 f)常见笔试题分析12。11结构体 结构体定义 a)typedef的使用 b)结构体的初始化 c)结构体数组 d)指针和结构体 e)练习:封装一个结构体保存学生的相关信息,并且计算多个学生中年龄最大值、最小值和平均值 共用体联合体 a)共用体的定义和使用 b)共用体的内存空间布局 c)共用体和结构体的区别 d)大端模式和小端模式 e)共用体的妙用:判断大小端模式 f)经典习题讲解:通过共用体分解一个int类型的数据 g)经典习题讲解:通过共用体将四个字符组合成整型数据 枚举 a)枚举的定义和使用 b)通过枚举提升代码可读性实例代码 c)练习:通过枚举获取某天是星期几 d)实际应用举例:英雄联盟多杀音效输出12。12C语言编程高阶 C程序的组成 a)C程序项目目录结构 b)static关键字的使用 c)const关键字的使用 d)Makefile文件的编写 e)C程序的编译步骤 f)动态库的使用 g)静态库的使用 h)练习:将实现交换两个整数的函数编译成动态库和静态库 C语言调试方法及技巧 a)GDB的下载和安装 b)gdbrun(r)命令:启动程序 c)GDBbreak(b):设置断点 d)GDBwatch命令:监控变量值的变化 e)GDBwatch命令:监控变量值的变化 f)GDBcatch命令:建立捕捉断点 g)GDB条件断点(condition命令)详解 h)GDB单步调试程序 i)如何使用GDB进行断点调试? j)GDBprint和display命令:查看变量的值 k)GDBprint命令更高级的用法 走进C语言内存管理世界 a)程序在计算机中到底是如何运行的 b)我们在程序中看到的地址为什么是假的? c)虚拟地址和物理地址 d)虚拟地址空间及编译模式 e)结构体的字节对齐 f)什么是栈溢出 g)函数在栈上到底是怎样的? h)函数进栈和出栈的过程 i)栈溢出攻击的原理 j)实际应用举例:网站密码破解13。数据结构及算法13。1数据结构基础 线性结构 a)数组 b)链表 i。单向链表 ii。单向链表的逆置 iii。单向链表的环 iv。单向循环链表 v。双向链表 vi。双向循环链表 c)栈 i。数组实现的栈 ii。链表实现的栈 iii。实际应用举例:函数形参的入栈和出栈顺序 d)队列 i。实际应用举例:银行取号机功能实现 非线性结构 a)二叉树 b)完全二叉树 c)满二叉树 d)二分查找树 e)平衡二叉树 f)图13。2数据结构进阶 二叉树的遍历 a)通过栈实现二叉树的按深度遍历 b)通过队列实现二叉树的按层次遍历 c)判断两棵二叉树是否相同 哈希表 a)哈希表的实现 b)哈希冲突及解决方案 c)实际应用举例:统计一篇文章中单词的个数 B树 a)B树的概念及实现原理 b)B树的实际应用:磁盘搜索原理 B树 a)B树的概念及实现原理 b)B树的实际应用:数据库索引的实现 c)B树和B树的区别 哈弗曼树 a)哈弗曼树的特点 b)通过C语言实现哈弗曼树 c)实际应用举例:通过哈夫曼编码实现数据的加密传输 红黑树 a)红黑树的概念及使用 b)红黑树的旋转 c)红黑树和普通平衡二叉树的比较13。3综合练习:带字符界面的计算器开发13。4算法基础 排序算法 a)冒泡排序 b)插入排序 c)快速排序 查找算法 a)顺序查找 b)二分查找 c)插值查找13。5算法进阶 时间复杂度计算 空间复杂度的计算 排序算法 a)快排法的Bug及解决办法 b)堆排序 c)希尔排序 d)归并排序 e)桶排序 f)排序算法的稳定性 查找算法 a)TopK问题 b)大数据中查找前n大数的解决办法 回溯法 a)八皇后问题 6)动态规划 贪心算法 背包问题13。6综合练习:物流仓储管理系统WMS开发14。Linux高级程序设计14。1shell编程 shell变量 shell位置参数(命令行参数) shell特殊变量 a) b) c) d)? e) 练习:将指定目录下的所有的。c文件进行压缩 实际应用举例:使用shell脚本对软件开发项目进行定时备份,并且实现自动覆盖14。2Linux文件IO 标准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。实际应用举例:学生信息远程传输数据包封装 系统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。3Linux并发编程 并发和并行的概念 进程 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。SystemIPC和PosixIPC 3。消息队列 4。共享内存 5。信号量 e)system函数 f)exec函数簇 g)system函数和exec函数簇的区别 h)练习:程序创建子进程并令其挂起100s,令父进程每秒监测子进程状态,若子进程死亡则打印子进程死亡,否则打印HelloWorld! i)Linux守护进程的设计 多线程 a)线程的基本概念 b)线程和进程的关系 c)多线程编程 i。线程控制函数pthreadcreatepthreadjoinpthreadselfpthreadcancelpthreaddetach ii。PV操作 iii。线程的同步 1。互斥锁 2。读写锁 3。条件变量 4。信号量 5。线程安全 i。生产者消费者模型 ii。银行家算法 iii。哲学家就餐问题 iv。线程池14。4项目4:多媒体播放器开发15。Linux网络编程15。1Linux网络编程预备知识 OSI网络模型 TCPIP模型 a)TCPIP四层模型介绍 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传输协议分析 网络工具wireshark用法 上网流程分析 a)DNS服务器 b)HTTP协议和HTTPS协议 c)Nginx d)负载均衡 NAT网络地址转换协议15。2socket编程 网络字节序和主机字节序 TCP编程 a)TCP服务端编程流程 b)TCP客户端编程流程 UDP编程 a)UDP服务端编程流程 b)UDP客户端编程流程 c)广播和组播 IO模型分析 IO复用 a)select b)poll c)Epoll练习:网络日志服务器开发练习:C语言实现Linux网络嗅探器:通过原生套接字的方式,监听所有本地主机收发的数据链路层帧结构,然后解析数据包的类型,并记录到日志文件。实现一个轻量级的网络嗅探器 TCP带外数据编程 TCP粘包处理 Unixdomain编程16。Linux数据库编程16。1MySQL MySQL数据库的安装 a)windows下MySQL的安装 b)ubuntu下MySQL的安装 c)sqlyog的安装 MySQL数据库的基本操作 a)sql语句书写规则 b)MySQL查看数据库 c)MySQL创建数据库 d)MySQL修改数据库 e)MySQL删除数据库 f)MySQL选择数据库 g)MySQL注释 h)MySQL中SQL语句的大小写规则 MySQL数据类型和存储引擎 a)MySQL数据类型简介 b)MySQL整数类型 c)MySQL小数类型 d)MySQL日期和时间类型 e)MySQL字符串类型 f)MySQL二进制类型 g)MySQL数据类型的选择 h)MySQL转义字符的使用 i)MySQL系统变量 j)MySQL存储引擎:InnoDB、MyISAM MySQL数据表的基本操作 a)MySQL创建数据表 b)MySQL修改数据表 c)MySQL修改删除字段 d)MySQL删除数据表 e)MySQL删除被其它表关联的主表 f)MySQL查看表结构 g)MySQL数据表添加字段 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)MySQLIN和NOTIN p)MySQL函数 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删除数据练习:学生信息管理系统数据库设计 MySQL视图、索引 a)MySQL视图是什么? b)MySQL创建视图 c)MySQL查看视图 d)MySQL修改视图 e)MySQL删除视图 f)MySQL索引 g)MySQL索引可以分为哪些类型? h)MySQL创建索引 i)MySQL查看索引 j)MySQL修改和删除索引 k)索引在什么情况下不会被使用? l)怎么提升索引的使用效率,设计出更高效的索引 数据库的设计 a)ER模型 b)数据库三范式 c)作业:校园网数据库设计 MySQL事务 a)事务的概念和特性 b)MySQL执行事务的语法和流程MySQL设置事务自动提交(开启和关闭) c)从实例出发,搞懂高并发下的数据库事务隔离级别 d)MySQL查看和修改事务隔离级别 e)MySQL表锁、行锁和页锁 f)MySQLInnoDB的3种行锁定方式 g)Mysql并发时常见的死锁及解决方法 MySQL性能优化 MySQLC语言编程接口16。2Sqlite3 ubuntusqlite3的安装 sqlitestudio的使用 Sqlite3数据库结构 Sqlite3库的操作 Sqlite3C语言编程接口16。3综合练习:天天鲜花电商平台数据库设计17。C应用软件开发17。1C编程基础 C开篇 a)从C到C b)面向对象编程和面向过程编程 类和对象 a)类的定义 b)类的封装 c)对象的构造和析构 d)拷贝构造函数 e)深拷贝和浅拷贝 f)多个对象的构造和析构 g)构造函数和析构函数的调用顺序 h)对象的动态建立和释放 C面向对象模型初探 a)基础知识 b)编译器对属性和方法的处理机制 继承 a)继承关系举例 b)继承相关概念 c)派生类的访问控制 d)多继承 e)菱形继承环形继承 f)虚继承 g)C虚继承下的内存模型 多态 a)多态的基本概念 b)函数重载 c)运算符重载 d)友元函数 e)友元类 f)函数的重定义 g)Mystring类的实现 h)虚函数 i。虚函数的定义 ii。虚函数表详解 iii。多态的构成条件 iv。虚析构函数 v。纯虚函数 vi。抽象类接口 i)RTTI机制精讲 j)RTTI机制下的对象内存模型 C泛型编程 a)C函数模板 i。函数模板基础入门 ii。函数模板的重载 iii。函数模板实参推断 iv。函数模板显示具体化 v。函数模板的实例化 b)C类模板 i。类模板基础入门 ii。类模板的显示实例化 iii。类模板与继承 iv。类模板与友元17。2综合练习:回合制游戏冲出冒险岛开发17。3C高阶编程 笔试面试热门考点 a)struct和class的区别 b)const详解 c)内联函数 d)externC 异常 a)异常的基本概念 b)异常的抛出 c)异常的捕获 d)C标准异常 e)自定义异常 C强制类型转换 a)constcast b)staticcast c)dynamiccast d)reinterpretcast 输入输出流 a)cout格式化输出 b)输入输出重定向 c)输出缓冲区的管理 STL a)序列式容器 i。vector ii。deque iii。stack iv。queue v。list b)关联式容器 i。set和multiset ii。map和multimap c)算法 i。排序算法 ii。查找算法 C11新特性 a)nullptr b)using取代typedef c)auto d)final e)lambda f)智能指针 g)C多线程 h)C线程池17。4综合练习:基于TCP的聊天室项目开发17。5QT应用软件开发17。5。1QT编程基础 QT基础知识 a)windows系统下QT的安装 b)Linux系统下QT的安装 c)QT项目管理文件(。pro) d)QT界面文件(。ui) e)QT项目中的main函数 f)QTCreator的使用 QT控件 a)QT常用控件介绍 b)QT帮助手册查询方法 QT界面布局管理 a)水平布局 b)垂直布局 c)网状布局 QT信号和槽 a)信号和槽机制 b)槽函数的定义 c)父子窗口通信 QT鼠标事件的处理 a)QT鼠标事件的获取 b)QT鼠标事件处理函数重写 c)捕获QLabel标签点击事件 QString类 a)QString类的基本使用 b)QString和String、char、数字之间的转换 QT定时器 a)QTimer类的使用 b)QObject类提供的定时器作业:圆形钟表设计 QT对话框 a)QT的5种标准对话 b)QT自定义窗口c)QT的多窗口 QT界面美化 a)隐藏窗口标题栏 b)QT样式表 c)为按钮添加背景图片 d)为界面添加背景图片 e)制作不规则Button QT多进程编程 QT多线程编程17。5。2综合练习:网络调试助手开发18。嵌入式传感器编程18。1Linux串口编程 RS232RS485介绍 串口初始化及属性配置 modbus协议分析及编程 常用模块编程 a)wifi模块编程 b)蓝牙模块编程 c)GPRS模块编程 d)GPS模块编程 e)RFID编程 常用串口传感器编程 a)GY39气象传感器 b)ZQM1烟雾传感器 c)超声波测距传感器 d)指纹传感器 e)重力压力传感器18。2GPIO编程 GPIO理论基础知识 GPIO编程接口 常用传感器编程 a)继电器 b)土壤湿度传感器 c)人体红外传感器 d)直流电机 e)声光报警器19。音视频编程19。1音视频原理 音频的原理 视频的原理 视频编码原理 H。264编码压缩算法原理19。2音视频网络传输 视频编解码网络传输概览 流媒体服务器架构 P2P点对点介绍 FFMpeg音视频开发实战19。3RTMP直播 RTMP直播介绍 Linux服务器配置 流媒体推流 流媒体转发与接收19。4科大讯飞语音识别20。5G物联网应用开发20。1ARM体系结构与编程 ARM概述和分类 a)ARM的简介 b)ARM的分类 c)ARM的命名规则 d)基于ARM的嵌入式系统概述 ARM体系结构与存储系统 a)存储 b)流水线 c)模式 d)寄存器 ARM指令集和汇编程序设计 a)ARM处理器寻址 b)ARM指令集 c)ARM汇编程序设计 ARM中断和异常处理 a)异常简介 b)异常向量表 c)异常优先级 d)异常进入和退出20。2STM32应用开发 STM32应用开发导入 a)STM32系列介绍 b)CortexM4体系结构 c)开发环境搭建 基本IO端口控制 a)寄存器法操作代码分析 b)时钟配置 c)IO端口配置 d)库函数操作流水灯 e)库函数控数码管 f)简单按键输入 中断 a)STM32中断异常 b)STM32中断相关的基本概念 i。优先级 ii。中断控制器NVIC iii。NVIC的优先级组 c)外部中断 串口通信 a)串口通信基础 b)STM32串口操作 i。寄存器方式操作串口 ii。库函数方式操作串口 直接寄存器访问 a)DMA基础知识 b)STM32的DMA操作 i。寄存器方式操作DMA ii。库函数方式操作DMA iii。DMA操作实例 模拟数字转换器 a)ADC基础知识 i。ADC主要特性 ii。ADC框图及引脚分布 iii。通道选择 iv。ADC转换模式 v。ADC寄存器和固件库函数列表 b)STM32ADC操作 i。寄存器方式操作ADC ii。库函数方式操作ADC iii。ADC操作实例 定时器 a)定时器基础知识 i。高级定时器 ii。基本定时器 iii。通用定时器 b)STM32定时器操作 i。寄存器方式操作定时器 ii。库函数方式操作定时器 iii。定时器操作实例 CAN总线设计 a)CAN总线基本工作原理 b)CAN协议的特点 c)CAN协议通信过程 d)CAN的报文格式 e)同步 f)CAN总线拓扑结构 g)CAN通信的软件设计 h)CAN通信实例20。3嵌入式操作系统UCOS uCOSIII操作系统原理 uCOSIII在CortexM4平台上的移植 uCOSIII多任务编程 uCOSIII多任务间通信 uCOSIII同步与互斥 uCOSIII中断处理20。4嵌入式操作系统FreeRTOS 初识FreeRTOS 移植FreeRTOS到STM32 FreeRTOS启动流程 任务管理 消息队列 信号量 互斥量 事件 软件定时器 任务通知 内存管理 中断管理 CPU使用率统计20。5项目2:基于STM32的智能小车20。6物联网高级应用开发20。6。1ZigBee应用开发 ZigBee基本概念 a)设备类型 b)协议栈规范 c)路由 ZStack协议栈总体设计 a)任务初始化 b)任务调度 c)时间管理 d)原语通信 cc2530编程 a)开发环境搭建 b)cc2530GPIO控制 c)cc2530中断 d)cc2530定时器 e)cc2530串口通信 f)cc2530组网20。6。2蓝牙Mesh Mesh概述 Mesh网络基本概念 设备管理 BLE设备 20。6。3NBIoT NBIoT物联网行业解决方案 NBIoT硬件平台介绍及使用 AT指令 CoAP通信 MQTT88 电信云平台对接及使用 华为云平台对接及使用 20。6。4项目3:智能温室大棚控制系统21。嵌入式Linux系统移植及驱动开发21。1嵌入式平台软硬件框架分析 硬件平台分析 a)马士兵硬件平台的架构 b)马士兵平台启动过程概述 uboot a)uboot原理与工作过程 b)uboot编译与使用方法 c)uboot源码修改与分析 d)启动logo修改 Linux内核 a)Linux4。x5。x内核源码架构 b)嵌入式Linux内核编译方法 c)嵌入式Linux内核裁剪过程 根文件系统 a)嵌入式Linux根文件系统工作原理 b)根文件系统的制作过程 c)uboot、内核映像、文件系统烧写 d)开机自启动程序设置 ARM体系结构 a)ARM处理器的原理与架构 b)CortexA35处理器架构 c)GPIO控制方法 d)ARM处理器C语言编程方法 e)ARM处理器汇编编程方法21。2设备驱动开发 Linux的内核模块 字符设备驱动模型 MMU与IO内存映射 misc设备驱动模型 内存管理与分配 Linux内核中断驱动设计 内核同步机制自旋锁、信号量、互斥锁与等待队列等 Linux内核时间管理 设备驱动的platform模型 内核设备驱动管理如何将设备驱动编译到内核。 Linux输入子系统模型 LinuxIIC子系统 LED灯、蜂鸣器、按键驱动设计实例 温湿度传感器、可燃气体传感器驱动设计实例 ADC驱动设计实例 人体红外传感器设计实例22。物联网综合项目实施方案22。1智能停车场管理系统 面向对象程序设计 opencv图像处理 传感器编程 TCP编程 udp编程 STL容器 MySQL数据库 Sqlite3数据库 文件IO22。2基于STM32的智能小车 STM32编程 FreeRTOS 红外传感器编程 超声波测距编程 直流电机编程 蓝牙编程 红外遥控 LC1602A显示编程22。3智能温室大棚控制系统 STM32编程 FreeRTOS操作系统 ZigBee编程 传感器编程 RFID编程 NBIoT23。AIoT企业级项目开发23。1基于ZigBee的智能物流仓储系统 STM32 FreeRTOS ZigBee组网技术 RFID 传感器编程 NBIoT23。2人工智能工业分拣系统 嵌入式Linux Python编程 Qt编程 STM32开发 机械臂开发 TensorFlow开发 AI语音识别技术 AR开发(了解)23。3智能家居控制系统 嵌入式Linux开发 QT编程 传感器开发 数据库开发 音视频开发 语音识别 蓝牙Mesh组网23。4智慧教室终端 嵌入式Linux开发 并发编程 socket编程 QT开发 传感器编程 Sqlite3数据库 语音识别 人脸识别23。5智能无人小车 嵌入式Linux Python编程 PyQt编程 ROS操作系统 Opencv Slam TensorFlow开发 AI语音识别技术23。6基于NBIoT的共享单车 STM32开发 GPS编程 NBIoT模块编程 NBIoT通信