PyTorch计算机视觉实战:目标检测、图像处理与深度学习

本书基于真实数据集,全面系统地阐述现代计算机视觉实用技术、方法和实践,涵盖50多个计算机视觉问题。全书分为四部分:一部分介绍神经网络和PyTorch的基础知识,以及如何使用PyTorch构建并训练神经网络,包括输入数据缩放、批归一化、超参数调整等;第二部分介绍如何使用卷积神经网络、迁移学习等技术解决更复杂的视觉相关问题,包括图像分类、目标检测和图像分割等;第三部分介绍各种图像处理技术,包括自编码器模型和各种类型的GAN模型;第四部分探讨将计算机视觉技术与NLP、强化学习和OpenCV等技术相结合来解决传统问题的新方法。本书内容丰富新颖,语言文字表述清晰,应用实例讲解详细,图例直观形象,适合PyTorch初中级读者及计算机视觉相关技术人员阅读。
在这里插入图片描述

编辑推荐

适读人群 :适合PyTorch初中级读者及计算机视觉相关技术人员阅读
深度学习是近年来计算机视觉应用在多个方面取得进步的驱动力。本书以实践为驱动,结合具体应用场景,基于真实数据集全面系统地介绍如何使用PyTorch解决50多个计算机视觉问题。
首先,你将学习使用NumPy和PyTorch从头开始构建神经网络(NN),并了解调整神经网络超参数的最佳实践。然后,你将学习如何使用卷积神经网络(CNN)和迁移学习完成图像分类任务,并且理解其中的工作原理。随后,你将学习二维和三维多目标检测、图像分割、人体姿态估计等多个实际任务,并使用R-CNN、Fast R-CNN、Faster R-CNN、SSD、YOLO、U-Net、Mask R-CNN、Detectron2等框架实现这些任务。在自编码器和GAN部分,本书将指导你学习面部表情替换、面部图像生成和面部表情处理技术。之后,你将学习如何将计算机视觉与NLP技术(LSTM、transformer等)和强化学习技术(深度Q学习等)相结合,实现OCR、图像标题生成、目标检测和汽车自动驾驶智能体等应用。最后,你将学习如何将神经网络模型部署到AWS云等实际应用场景。

内容简介

本书基于真实数据集,全面系统地阐述现代计算机视觉实用技术、方法和实践,涵盖50多个计算机视觉问题。全书分为四部分:di一部分(第13章)介绍神经网络和PyTorch的基础知识,以及如何使用PyTorch构建并训练神经网络,包括输入数据缩放、批归一化、超参数调整等;第二部分(第410章)介绍如何使用卷积神经网络、迁移学习等技术解决更复杂的视觉相关问题,包括图像分类、目标检测和图像分割等;第三部分(第1113章)介绍各种图像处理技术,包括自编码器模型和各种类型的GAN模型;第四部分(第1418章)探讨将计算机视觉技术与NLP、强化学习和OpenCV等技术相结合来解决传统问题的新方法。本书内容丰富新颖,语言文字表述清晰,应用实例讲解详细,图例直观形象,适合PyTorch初中级读者及计算机视觉相关技术人员阅读。

前  言

人工智能(AI)已经成为一股强大的力量,正在推动一些日常使用的现代应用程序的发展,正在以一种曾经只存在于我们幻想中的方式重塑这个世界。人工智能曾经仅存在于少数实验室,隶属于计算机科学学科。然而,由于优秀理论的爆炸式发展、计算能力的提高和数据的可用性,该领域自2000年以来开始呈指数级增长,而且没有任何放缓的迹象。
人工智能已经一次又一次地证明,只要拥有正确的算法和足够的数据,它就可以在有限的人工干预下自学任务,并产生与人类判断相匹敌甚至有时超过人类判断的结果。无论你是新手还是运营大型组织的老手,都有充分的理由去了解人工智能的工作原理。神经网络是人工智能算法中最灵活的一类,已被广泛应用于各个领域,包括结构化数据、文本和视觉领域。
本书从神经网络的基础开始讲解,涵盖了50多个计算机视觉方面的应用。首先,你将使用NumPy和PyTorch从头开始构建神经网络(NN),然后学习调整神经网络超参数的最佳实践。随着学习的深入,你将学习CNN以及主要用于图像分类的迁移学习技术,还将了解在构建NN模型时需要注意的实际问题。
接下来,你将学习多目标检测、图像分割,并使用R-CNN、Fast R-CNN、Faster R-CNN、SSD、YOLO、U-Net和Mask R-CNN架构等技术实现这些任务,还将学习使用Detectron2框架来简化构建神经网络的具体过程,这些神经网络主要用于目标检测和人体姿态估算。之后,你将实现三维目标检测。
随后,你将学习自编码器和GAN,重点是图像处理和生成。这里将使用VAE、DCGAN、cGAN、Pix2Pix、CycleGAN、StyleGAN2、SRGAN和风格迁移来实现用于各种任务的图像处理。
最后,学习将计算机视觉与其他技术相结合来解决传统问题,包括将NLP和计算机视觉进行结合,执行OCR、图像标题生成、用transformer进行目标检测;通过结合强化学习和计算机视觉技术来实现汽车自动驾驶智能体;如何使用OpenCV库将一个NN模型投入具体的生产过程,以及传统的计算机视觉技术。
目标读者
本书是为PyTorch初中级读者准备的,目标是使读者熟练掌握基于深度学习和PyTorch的计算机视觉技术。对于刚开始学习神经网络的读者而言,本书也很有用。阅读本书需要具备Python编程语言和机器学习的基础知识。
主要内容
第1章介绍神经网络的工作原理。首先,你将学习与神经网络相关的关键术语。然后,你将了解构建模块的工作细节,并在一个小数据集上从头开始构建神经网络。
第2章介绍如何使用PyTorch。在学习使用PyTorch构建神经网络模型的不同方法之前,你将了解创建和操作张量对象的方法。这里仍将使用一个小数据集,以便你了解使用PyTorch的细节。
第3章结合前面两章涉及的所有内容,帮助你理解各种神经网络超参数对模型准确度的影响。在学完本章后,你将掌握如何在实际数据集上使用神经网络。
第4章详细介绍使用普通神经网络面临的挑战,你将了解为何卷积神经网络能克服传统神经网络的各种限制。你将深入了解CNN的工作细节,并了解其中的各种组件。然后,你将学习处理图像的最佳实践。本章将使用真实世界的图像,并学习使用CNN实现复杂图像分类的工作原理。
第5章介绍如何解决现实世界中的图像分类问题。你将了解多种迁移学习架构,并了解它们是如何显著提高图像分类准确度的。然后,使用迁移学习实现人脸关键点检测和对年龄、性别进行估计。
第6章提供在实际构建和部署图像分类模型时需要注意的要点。实际上,你将看到在真实数据上进行数据增强和批归一化的优点。此外,还将了解类激活映射为何有助于对CNN模型的预测结果进行解释。学完本章后,你就可以解决大多数图像分类问题,并利用前面讨论的模型来处理定制的数据集。
第7章奠定目标检测的基础,你将学习用于构建目标检测模型的各种技术。然后,通过一个案例了解基于区域建议的目标检测技术,在这个案例中,你将实现一个用于定位图像中卡车和公交车的模型。
第8章首先展示区域建议架构的局限性,介绍解决区域建议架构问题的更多高级架构的工作细节。我们将在相同的数据集(卡车与公交车的目标检测)上实现所有的架构,这样就可以对比每个架构的工作原理。
第9章建立在前几章的基础上,帮助你构建模型,以确定各种类别目标和目标实例在图像中的位置和轮廓。我们将针对道路图像和普通家庭图像实现具体的应用。学完本章后,你将能够通过使用PyTorch构建模型的方式解决关于图像分类、目标检测/分割的问题。
第10章总结前几章的学习内容,用几行代码实现对目标的检测和分割,通过构建模型来实现人群计数和图像着色应用。最后,你还将了解如何在真实数据集上进行三维目标
检测。
第11章为图像修改奠定基础。首先学习用于压缩图像和生成新图像的自编码器。然后学习欺骗模型的对抗性攻击。之后实现图像风格迁移。最后实现一个自编码器来生成深度虚拟图像。
第12章首先介绍GAN的工作原理,然后学习虚拟人脸图像的生成技术以及如何使用GAN生成一些有趣的图像。
第13章将图像处理升级到一个新的水平。我们将实现一个GAN模型,用于将目标从一个类别转换到另外一个类别,由草图生成图像,并操作定制图像,以便生成特定风格的图像。学完本章后,你就可以组合应用自编码器和GAN进行图像处理了。
第14章为你学习结合使用计算机视觉技术与其他技术奠定基础。你将学习如何使用小样本和零训练样本完成图像分类。
第15章介绍各种自然语言处理技术的工作细节,如词嵌入、LSTM和transformer,你将使用transformer实现一些应用程序,如图像标题生成、OCR等。
第16章首先介绍强化学习术语和状态价值。在学习深度Q学习的过程中,你将了解强化学习和神经网络的结合使用方式。通过学习,你将实现一个玩Pong游戏的智能体和一个用于汽车自动驾驶的智能体。
第17章介绍将模型部署到生产环境的最佳实践。在将模型迁移到AWS公有云之前,你将了解如何在本地服务器上部署模型。
第18章详细介绍如何使用OpenCV实用程序创建5个有趣的应用程序。学完本章后,你将了解辅助深度学习的实用程序,以及在内存或推理速度有相当大限制的场景中可以替代深度学习的实用程序。
学习本书的软硬件要求
本书覆盖的软硬件 操作系统要求
存储空间最低128GB
内存最低8GB
Intel i5 或更高的处理器
NVIDIA 8 GB以上显卡——GTX1070或更好的显卡
网速最低50Mbit/s Windows、Linux和macOS
Python 3.6及更高版本 Windows、Linux和macOS
PyTorch 1.7 Windows、Linux和macOS
Google Colab(可在任何浏览器上运行) Windows、Linux和macOS

请注意,本书中几乎所有的代码都可以使用Google Colab运行,通过单击GitHub 各章notebook中的Open in Colab按钮即可实现。

目录

CONTENTS
目  录
译者序
前言
第一部分 面向计算机视觉的
深度学习基础知识
第1章 人工神经网络基础 2
1.1 比较人工智能与传统机器学习 3
1.2 人工神经网络的构建模块 4
1.3 实现前向传播 6
1.3.1 计算隐藏层的值 6
1.3.2 应用激活函数 7
1.3.3 计算输出层的值 9
1.3.4 计算损失值 9
1.3.5 前向传播的代码 11
1.4 实现反向传播 14
1.4.1 梯度下降的代码 15
1.4.2 使用链式法则实现
反向传播 17
1.5 整合前向传播与反向传播 20
1.6 理解学习率的影响 22
1.7 总结神经网络的训练过程 28
1.8 小结 29
1.9 课后习题 29
第2章 PyTorch基础 30
2.1 安装PyTorch 30
2.2 PyTorch张量 32
2.2.1 初始化张量 33
2.2.2 张量运算 34
2.2.3 张量对象的自动梯度 37
2.2.4 PyTorch的张量较
NumPy的ndarrays
的优势 38
2.3 使用PyTorch构建神经网络 39
2.3.1 数据集、数据加载器和
批大小 45
2.3.2 预测新的数据点 48
2.3.3 实现自定义损失函数 49
2.3.4 获取中间层的值 50
2.4 使用序贯方法构建神经网络 51
2.5 保存并加载PyTorch模型 54
2.5.1 state dict 54
2.5.2 保存 55
2.5.3 加载 55
2.6 小结 55
2.7 课后习题 56
第3章 使用PyTorch构建深度
神经网络 57
3.1 表示图像 57
3.2 为什么要使用神经网络进行
图像分析 62
3.3 为图像分类准备数据 64
3.4 训练神经网络 66
3.5 缩放数据集以提升模型准确度 71
3.6 理解不同批大小的影响 74
3.6.1 批大小为32 75
3.6.2 批大小为10 000 79
3.7 理解不同损失优化器的影响 80
3.8 理解不同学习率的影响 83
3.8.1 学习率对缩放数据集
的影响 83
3.8.2 不同学习率对非缩放
数据集的影响 88
3.9 理解不同学习率衰减的影响 90
3.10 构建更深的神经网络 93
3.11 理解不同批归一化的影响 94
3.11.1 没有批归一化的非常小
的输入值 96
3.11.2 经过批归一化的非常小
的输入值 98
3.12 过拟合的概念 100
3.12.1 添加dropout的影响 100
3.12.2 正则化的影响 102
3.13 小结 106
3.14 课后习题 106
第二部分 物体分类与目标检测
第4章 卷积神经网络 108
4.1 传统深度神经网络的问题 108
4.2 CNN的构建模块 111
4.2.1 卷积 112
4.2.2 滤波器 113
4.2.3 步长和填充 114
4.2.4 池化 115
4.2.5 整合各个构建模块 116
4.2.6 卷积和池化的图像平移
不变性原理 117
4.3 实现CNN 117
4.3.1 使用PyTorch构建基于
CNN的架构 118
4.3.2 基于Python的前向传播 121
4.4 使用深度CNN分类图像 123
4.5 实现数据增强 127
4.5.1 图像增强 127
4.5.2 对一批图像执行数据增强
及collate_fn的必要性 137
4.5.3 用于图像平移的数据
增强 140
4.6 特征学习结果的可视化 143
4.7 构建对真实图像进行分类
的CNN 153
4.8 小结 161
4.9 课后习题 162
第5章 面向图像分类的迁移学习 163
5.1 迁移学习简介 163
5.2 理解VGG16架构 164
5.3 理解ResNet架构 174
5.4 实现人脸关键点检测 178
5.5 多任务学习—实现年龄估计
和性别分类 186
5.6 torch_snippets库简介 195
5.7 小结 200
5.8 课后习题 200
第6章 图像分类的实战技术 201
6.1 生成CAM 201
6.2 数据增强和批归一化 207
6.3 模型实现的实践要点 212
6.3.1 处理不平衡数据 212
6.3.2 分类图像中目标的大小 213
6.3.3 训练数据和验证数据
之间的差异 213
6.3.4 扁平层中的节点数 214
6.3.5 图像的大小 214
6.3.6 使用OpenCV实用程序 214
6.4 小结 215
6.5 课后习题 215
第7章 目标检测基础 216
7.1 目标检测简介 216
7.2 为训练图像样本创建真值 217
7.3 理解区域建议 220
7.3.1 使用SelectiveSearch
生成区域建议 221
7.3.2 实现用于生成区域建议
的SelectiveSearch 222
7.4 理解IoU 224
7.5 非极大抑制 226
7.6 mAP 226
7.7 训练基于R-CNN的定制目标
检测器 227
7.7.1 R-CNN的工作细节 227
7.7.2 基于定制数据集实现
R-CNN目标检测模型 228
7.8 训练基于Fast R-CNN的定制
目标检测器 241
7.8.1 Fast R-CNN的工作细节 242
7.8.2 基于定制数据集实现Fast R-CNN目标检测模型 242
7.9 小结 249
7.10 课后习题 249
第8章 目标检测进阶 250
8.1 现代目标检测算法的组成 250
8.1.1 锚盒 250
8.1.2 区域建议网络 252
8.2 基于定制数据集训练Faster
R-CNN 254
8.3 YOLO的工作细节 260
8.4 基于定制数据集训练YOLO 265
8.4.1 安装Darknet 265
8.4.2 设置数据集格式 267
8.4.3 配置架构 268
8.4.4 训练和测试模型 269
8.5 SSD模型的工作细节 270
8.6 基于定制数据集训练SSD
模型 274
8.7 小结 278
8.8 课后习题 278
第9章 图像分割 279
9.1 探索U-Net架构 279
9.2 使用U-Net实现语义分割 283
9.3 探索Mask R-CNN架构 288
9.3.1 RoI对齐 290
9.3.2 掩码头部 291
9.4 使用Mask R-CNN实现实例
分割 292
9.5 小结 305
9.6 课后习题 306
第10章 目标检测与分割的应用 307
10.1 多目标实例分割 307
10.1.1 获取和准备数据 308
10.1.2 训练用于实例分割的
模型 312
10.1.3 对新图像进行推断 313
10.2 人体姿态检测 315
10.3 人群计数 316
10.4 图像着色 325
10.5 面向点云的三维目标检测 330
10.5.1 理论 330
10.5.2 训练YOLO模型实现
三维目标检测 334
10.6 小结 337
第三部分 图像处理
第11章 自编码器与图像处理 340
11.1 理解自编码器 340
11.2 理解卷积自编码器 346
11.3 理解变分自编码器 351
11.3.1 VAE的工作机制 352
11.3.2 KL散度 353
11.3.3 构建VAE模型 353
11.4 图像对抗性攻击 357
11.5 图像风格迁移 360
11.6 生成深度虚拟图像 366
11.7 小结 375
11.8 课后习题 375
第12章 基于GAN的图像生成 376
12.1 GAN模型简介 376
12.2 使用GAN生成手写数字 378
12.3 使用DCGAN生成人脸图像 383
12.4 实现条件GAN模型 391
12.5 小结 399
12.6 课后习题 400
第13章 高级GAN图像处理 401
13.1 使用Pix2Pix GAN模型 401
13.2 使用CycleGAN模型 410
13.3 在定制图像上使用StyleGAN
模型 418
13.4 超分辨率GAN 426
13.4.1 架构 427
13.4.2 编码SRGAN 428
13.5 小结 429
13.6 课后习题 430
第四部分 计算机视觉与其他技术
第14章 使用小样本进行模型训练 432
14.1 实现零样本学习 432
14.2 实现小样本学习 437
14.2.1 构建Siamese网络 438
14.2.2 原型网络的工作细节 444
14.2.3 关系网络的工作细节 445
14.3 小结 446
14.4 课后习题 446
第15章 计算机视觉与NLP 447
15.1 RNN模型简介 447
15.1.1 RNN架构的应用场景 448
15.1.2 探索RNN的结构 449
15.1.3 为什么需要存储记忆 449
15.2 LSTM架构简介 450
15.2.1 LSTM的工作细节 451
15.2.2 使用PyTorch实现
LSTM 453
15.3 生成图像标题 453
15.4 转录手写图像 465
15.4.1 CTC损失的工作细节 466
15.4.2 计算CTC损失值 467
15.4.3 手写转录的代码实现 468
15.5 使用DETR进行目标检测 476
15.5.1 transformer的工作细节 476
15.5.2 DETR的工作细节 479
15.5.3 目标检测的代码实现 482
15.6 小结 485
15.7 课后习题 485
第16章 计算机视觉与强化学习 486
16.1 强化学习基础知识 486
16.1.1 计算状态价值 487
16.1.2 计算状态–行为价值 488
16.2 实现Q学习 489
16.2.1 Q值 489
16.2.2 了解Gym环境 490
16.2.3 构建Q表 491
16.2.4 探索–利用机制 493
16.3 实现深度Q学习 495
16.4 目标固定的深度Q学习 501
16.5 实现自动驾驶智能体 508
16.5.1 安装CARLA环境 508
16.5.2 训练自动驾驶智能体 511
16.6 小结 518
16.7 课后习题 519
第17章 模型的实际应用部署 520
17.1 API基础知识 520
17.2 在本地服务器上创建API并
进行预测 521
17.2.1 安装API模块和依赖项 522
17.2.2 图像分类器的支持组件 522
17.3 将API部署到云端 525
17.3.1 Docker镜像与Docker
容器 526
17.3.2 创建Docker容器 526
17.3.3 在云端发布并运行
Docker容器 530
17.4 小结 535
第18章 使用OpenCV实用程序
进行图像分析 536
18.1 图像中的单词检测 536
18.2 图像中的车道线检测 542
18.3 基于颜色的目标检测 544
18.4 构建全景图像 546
18.5 图像中的车牌检测 550
18.6 小结 552
附录 课后习题答案 554

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前端VUE】VUE3第一节—vite创建vue3工程

什么是VUE Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0…

深入了解自动化:聊聊什么项目适合做自动化测试?

自动化测试 什么是自动化测 什么是自动化测试? 随着软件产业的不断发展,市场对软件周期的要求越来越高,于是催生了各种开发模式,如大家熟知的敏捷开发,从而对测试提出了更高的要求。此时,产生了自动化测试…

Linux高并发服务器开发(十)反应堆模型和线程池模型

文章目录 1 epoll反应堆2 线程池流程代码 3 复杂版本线程池代码 1 epoll反应堆 文件描述符 监听事件 回调函数 进行封装 创建socket设置端口复用绑定监听创建epoll树将监听文件描述符lfd上epoll树,对应的事件节点包括:文件描述符,事件epoll…

Taogogo Taocms v3.0.2 远程代码执行漏洞(CVE-2022-25578)

前言 CVE-2022-25578 是一个存在于 Taogogo Taocms v3.0.2 中的代码注入漏洞。此漏洞允许攻击者通过任意编辑 .htaccess 文件来执行代码注入。 漏洞详情 漏洞描述:攻击者可以利用此漏洞上传一个 .htaccess 文件到网站,并在文件中注入恶意代码&#xf…

苹果手机怎么刷机?适合小白的刷机办法!

自己的苹果手机用时间长了,有些人想要为自己的手机重新刷新一下,但又不知道怎么刷机。不要慌现在就来给大家详细介绍一下苹果手机怎么刷机,希望可以帮助到大家。 iPhone常见的刷机方式,分为iTunes官方和第三方软件两种刷机方式。 …

【elementui】记录解决el-tree开启show-checkbox后,勾选一个叶结点后会自动折叠的现象

第一种解决方案&#xff1a;设置default-expand-keys的值为当前选中的key值即可 <el-treeref"tree"class"checkboxSelect-wrap":data"treeData"show-checkboxnode-key"id":expand-on-click-node"true":props"defau…

第T3周:天气识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、前期工作 本文将采用CNN实现多云、下雨、晴、日出四种天气状态的识别。较上篇文章&#xff0c;本文为了增加模型的泛化能力&#xff0c;新增了Dropout层并…

拉曼光谱入门:1.光谱的分类与散射光谱发展史

一、光谱是什么&#xff1f; 在一个宁静的午后&#xff0c;年轻的艾萨克牛顿坐在他母亲花园里的一棵苹果树下&#xff0c;手握一块精致的三棱镜。他沉思着光的奥秘&#xff0c;意识到光并非单一的白色&#xff0c;而是一种由多彩色组成的复杂结构。 他决心进行一次实验&#xf…

浅析C++函数重载

浅析C函数重载 C语言和C函数调用的不同 C语言会进行报错 C能成功运行并且自动识别类型 由此可以看出&#xff0c;C在函数调用时进行了调整&#xff0c;使其支持函数重载&#xff0c;那么我们就来看看进行了哪些调整吧&#x1f60e; 分析函数调用 首先我们要知道&#xff0c…

2024企业数据资产化及数据资产入表方案梳理

01 数据资产入表&#xff1a;是一个将组织的各类数据资产进行登记、分类、评估和管理的流程。 数据资产包括&#xff1a;客户信息、交易记录、产品数据、财务数据等。 做个比喻吧&#xff1a;数据资产入表就像是给公司的数据资产做“人口普查”—— ①找出公司有哪些数据找…

macos m2 百度paddleocr文字识别 python

创建了一个虚拟环境&#xff1a;conda create -n orc python3.11.7 进入虚拟环境后执行2条命令 pip install paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple​ ​ 安装好后&#xff0c;在网…

204.贪心算法:分发饼干(力扣)

以下来源于代码随想录 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 对孩子的胃口进行排序sort(g.begin(), g.end());// 对饼干的尺寸进行排序sort(s.begin(), s.end());int index s.size() - 1; // 从最大的饼…

严蔚敏数据结构(C语言版)吴伟民宁编著清华大学计算机系列教材+题集+配套题库+笔记+习题PDF电子版

今天分享的是 严蔚敏数据结构&#xff08;C语言版&#xff09;题集配套题库笔记习题PDF电子版 注&#xff1a;本资源搜集于网络&#xff0c;仅供学习交流&#xff0c;严禁用于商业用途 内容简介&#xff1a; “数据结构”是计算机程序设计的重要理论技术基础&#xff0c;它…

ArcTs布局入门04——相对布局 媒体查询

如果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧 扫描下面的二维码关注公众号。 本文将探讨相对布局与媒体查询&#xff0c;为啥把他们放到一起呢&#xff1f;主要是因为相对布局在响应式的场景下做得不太好&#xff0c;一般情况下和媒体查询&#xff08;不同尺…

MySQL之备份与恢复(二)

备份与恢复 定义恢复需求 如果一切正常&#xff0c;那么永远也不需要考虑恢复。但是&#xff0c;一旦需要恢复&#xff0c;只有世界上最好的备份系统是没用的&#xff0c;还需要一个强大的恢复系统。 不幸的是&#xff0c;让备份系统平滑工作比构造良好的恢复过程和工具更容易…

WebRtc实现1V1音视频通话

WebRtc实现1V1音视频通话 简介应用场景共享桌面的基本原理传统共享桌面WebRTC 共享桌面 相关API基本使用调用本地摄像头播放约束设置 媒体协商过程协议协议的交换与传输 WebRTC 通信过程ICE Candidate&#xff08;ICE 候选者&#xff09; 1V1视频通话 简介 WebRTC&#xff0c;名…

新版本发布丨昂辉科技EasySAR-Configurator V1.2.0再启航

昂辉科技新一代跨平台高性能AUTOSAR配置工具EasySAR-Configurator V1.2.0全新版本重磅发布&#xff01;产品基于Web架构前后端分离的方式开发&#xff0c;可提供SaaS部署&#xff0c;能够实现精准配置和最大限度的代码裁剪&#xff0c;且配备标准的约束限制、配置验证、代码生成…

jenkins 发布服务到linux服务器

1.环境准备 1.1 需要一台已经部署了jenkins的服务器&#xff0c;上面已经集成好了&#xff0c;jdk、maven、nodejs、git等基础的服务。 1.2 需要安装插件 pusblish over ssh 1.3 准备一台额外的linux服务器&#xff0c;安装好jdk 2.流程描述 2.1 配置jenkins&#xff0c;包括p…

如何将 Apifox 的自动化测试与 Jenkins 集成?

CI/CD &#xff08;持续集成/持续交付&#xff09; 在 API 测试 中的主要目的是为了自动化 API 的验证流程&#xff0c;确保 API 发布到生产环境前的可用性。通过持续集成&#xff0c;我们可以在 API 定义变更时自动执行功能测试&#xff0c;以及时发现潜在问题。 Apifox 支持…

二叉树的最近公共祖先-二叉树

236. 二叉树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09; ​ 递归 lson、rson左右子树&#xff1b; 深度优先遍历&#xff0c;遍历到p或者q就返回ture&#xff1b; class Solution { public:TreeNode* ans;bool dfs(TreeNode* root, TreeNode* p, TreeNode* q){i…