当前位置: 首页 > news >正文

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

相关文章:

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

本书基于真实数据集,全面系统地阐述现代计算机视觉实用技术、方法和实践,涵盖50多个计算机视觉问题。全书分为四部分:一部分介绍神经网络和PyTorch的基础知识,以及如何使用PyTorch构建并训练神经网络,包括输入数据缩放…...

4D 生物打印:将时间维度融入,打造个性化动态组织

4D 生物打印技术将时间维度融入 3D 生物打印,赋予打印出的结构动态变化的能力,使其更接近于真实组织和器官的特性。要实现这一目标,需要使用智能生物材料和智能设计策略。 智能生物材料 目前用于 4D 生物打印的智能生物材料主要包括形状记忆…...

银行清算业务功能测试解析

银行清算业务是指银行间通过账户或有关货币当地清算系统,在办理结算和支付中用以清讫双边或多边债权债务的过程和方法。按地域划分,清算业务可分为国内联行清算和国际清算。常见的清算模式包括实时全额清算、净额批量清算、大额资金转账系统及小额定时清…...

CVE-2024-6387漏洞预警:尽快升级OpenSSH

OpenSSH维护者发布了安全更新,其中包含一个严重的安全漏洞,该漏洞可能导致在基于glibc的Linux系统中使用root权限执行未经身份验证的远程代码。该漏洞的代号为regreSSHion,CVE标识符为CVE-2024-6387。它驻留在OpenSSH服务器组件(也…...

学习整理在php中使用PHPExcel读取excel表列数大于Z时读取不到的解决方案

php读取excel列数大于Z时读取不到 背景解决方案关键代码 背景 表格数据超过26列, 也就是在Z列之前没有AA列及以后的情况, 测试一直都没有问题,超过,就会获取不到数据了 解决方案 private function getExcelData(){//获取excel文…...

python sklearn机械学习-数据预处理

🌈所属专栏:【机械学习】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您…...

搜索引擎常用语法

引号 (" "): 用双引号将词组括起来,搜索引擎将返回包含完全相同短语的结果。 示例:"人工智能发展趋势" 减号 (-): 在关键词前加上减号可以排除包含特定词语的结果。 示例:人工智能 -机器学习(排除包含 “机器…...

华为智能驾驶方案剖析

华为ADS智驾方案始终坚持激光雷达毫米波雷达摄像头的多传感器融合路线,行业降本压力下硬件配置从超配逐步转向贴合实际需求,带动整体硬件成本下降。 1)单车传感器数量呈现下降趋势,包括激光雷达从3个减配至1个、毫米波雷达从6R减配至3R、摄像…...

DDR3(一)

目录 1 SDRAM1.1 同步动态随机存储器1.2 位宽1.3 SDRAM结构1.4 SDRAM引脚图 2 SDRAM操作指令2.1 读写指令2.2 刷新和预充电2.3 配置模式寄存器2.4 读/写突发2.5 数据屏蔽 SDRAM是DDR3的基础,在学习DDR3之前,我们先来学习一下SDRAM的相关知识。 1 SDRAM …...

Eureka与Spring Cloud Bus的协同:打造智能服务发现新篇章

Eureka与Spring Cloud Bus的协同:打造智能服务发现新篇章 在微服务架构中,服务发现是实现服务间通信的关键机制。Eureka作为Netflix开源的服务发现框架,与Spring Cloud Bus的集成,提供了一种动态、响应式的服务治理解决方案。本文…...

Kafka入门到精通(三)-Kafka

Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动&#xf…...

高校教师教学质量评估系统-计算机毕业设计源码03344

摘要 在高等教育中,教学质量是培养优秀人才的关键。为了提高教学质量,高校需要建立一套科学、有效的教师教学质量评估系统。本研究采用 SSM技术框架,旨在开发一款高校教师教学质量评估系统。 SSM框架作为一种成熟的Java开发框架,具…...

币界网讯,预计以太坊现货 ETF 将于 7 月中旬推出

刚刚 ETF Store 总裁 Nate Geraci 在 X (前Twitter)平台上宣布,备受数字货币市场期待的SEC以太坊现货 ETF提案,将于7 月中旬通过美国证券交易委员会(SEC)批准。Nate Geraci透露修订后的 S-1 文件将于 7 月 …...

【FFmpeg】avio_open2函数

【FFmpeg】avio_open2函数 1.avio_open21.1 创建URLContext(ffurl_open_whitelist)1.1.1 创建URLContext(ffurl_alloc)1.1.1.1 查找合适的protocol(url_find_protocol)1.1.1.2 为查找到的URLProtocol创建UR…...

技术成神之路:设计模式(二)建造者模式

1.定义 建造者模式(Builder Pattern)是一种创建型设计模式,它允许你分步骤创建复杂对象,而不必直接调用构造函数。建造者模式特别适合那些包含多个组成部分并且构造过程复杂的对象。 2. 结构 建造者模式的主要组成部分包括&#…...

基于Springboot+Vue+mysql仓库管理系统仓库进销存管理系统

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...

爬虫scrapy库精简使用大全

一、基本命令 创建项目 scrpay startproject myapp创建爬虫文件 scrapy genspider spider_name "https://www.baidu.com"运行爬虫文件 scrapy crawl spider_name一、使用代理ip 打开中间件middlewares.py,增加以下代码 class ProxyMiddleware:def process…...

Qt - 如何在新线程 (QThread)中使用一个进程 (QProcess)?

在Qt中,QThread 用于处理后台任务,而 QProcess 用于启动和管理外部程序。如果你想在一个新的 QThread 中使用 QProcess,你需要了解 QProcess 并不是专门为在特定线程中运行而设计的。实际上,QProcess 通常在创建它的线程&#xff…...

Qt绘制多线段

最近画辅助线有刚需。 画图准备增加绘制多线段功能。 有哪些方法呢&#xff1f; QPainter Class | Qt GUI 5.15.17 void QPainter::drawPolyline(const QPolygon &points) QPolygon Class | Qt GUI 5.15.17 QPolygon polygon; polygon << QPoint(10, 20) <&…...

去中心化革命:探索区块链技术的前沿

随着信息技术的飞速发展&#xff0c;区块链技术作为一种新兴的去中心化解决方案&#xff0c;正逐渐改变着我们的经济、社会和技术格局。本文将从区块链的基本原理、当前的应用实例以及未来的发展趋势三个方面&#xff0c;深入探讨区块链技术在革命性变革中的角色和影响。 1. 区…...

2024年湖南省各市科小申报时间(科技型中小企业申报流程、条件、好处)新政

湖南省各市科小申报时间流程 一、评价管理 省科技厅牵头负责科技型中小企业评价工作的组织和监督、实地核查、公示公告、入库登记及编号撤销和集中抽查工作&#xff0c;及时处理相关异议、投诉和举报信息。 各市州科技局负责科技型中小企业评价工作的具体实施&#xff0c;组…...

【JD-GUI】MacOS 中使用Java反编译工具JD-GUI

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明概念理解一、基础环境说明1.1 硬件环境1.2 软件环境 二、下载与安装2.1 选择对应版本2.2 解压运行排除异常&#xff1a;2.3 关于…...

C++:求梯形面积

梯形面积 已知上底15厘米&#xff0c;下底25厘米&#xff0c;问梯形面积值是多少&#xff1f; #include<iostream> using namespace std; int main() {//梯形的面积公式&#xff08;上底下底&#xff09; 高 2//上底变量、下底变量int s,d,h,m;s15;d25;h 2*150 * 2/s ;…...

学会python——在excel中写入数据(python实例十三)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3 .想Excel中写入数据 3.1 代码构思 3.2 代码实例 3.3 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的…...

Stable Diffusion【基础篇】:降噪强度(denoising strength)

提到降噪强度&#xff08;denoising strength&#xff09;&#xff0c;大家一定不会陌生&#xff0c;这个参数是图生图中最关键的参数之一。今天在Stable Diffusion Art网站看到一篇介绍降噪强度&#xff08;denoising strength&#xff09;的文章&#xff08;地址&#xff1a;…...

【Python】语法入门

文章目录 Python 基础语法&#xff1a;打印和变量打印和变量的基本语法打印变量 变量操作变量的命名规则打印和变量的应用场景示例&#xff1a;基本计算器 Python 基础语法&#xff1a;列表推导式列表推导式的基本语法基本示例带条件的列表推导式列表推导式的应用场景 Python 基…...

匠心独运:红酒与手工艺的很好结合

在岁月的长河中&#xff0c;红酒与手工艺都以其不同的魅力和技艺&#xff0c;书写着各自的故事。当这两者相遇&#xff0c;仿佛是一场跨越时空的对话&#xff0c;不仅展现了匠心独运的技艺之美&#xff0c;更在无声中诉说着对品质与生活的热爱。今天&#xff0c;就让我们一起探…...

第20章 Mac+VSCode配置C++环境

1. 下载VSCode VSCode下载地址在mac终端里输入xcode- select --install命令&#xff0c;根据提示安装xcode工具。 2. 安装插件&#xff08;4个&#xff09; 打开VScode&#xff0c;点击应用右侧菜单栏 C/C&#xff08;必装&#xff09; Code Runner&#xff08;必装&#xf…...

FactoryBean 原理简介

FactoryBean 首先是一个工厂类&#xff0c;它可以生产指定的Bean&#xff0c;特殊之处在于它可以向Spring容器中注册两个Bean&#xff0c;一个是它本身&#xff0c;一个是FactoryBean.getObject()方法返回值所代表的Bean。通过实现 FactoryBean 接口&#xff0c;你可以控制某个…...

Redis中hash类型的操作命令(命令的语法、返回值、时间复杂度、注意事项、操作演示)

文章目录 字符串和哈希类型相比hset 命令hget 命令hexistshdelhkeyshvalshgetallhmgethlenhsetnxhincrbyhincrbyfloat 字符串和哈希类型相比 假设有以下一种场景&#xff1a;现在要在 Redis 中存储一个用户的基本信息(id1、namezhangsan、age17)&#xff0c;下图表示使用字符串…...

UE5基本操作(二)

文章目录 前言相机的移动速度修改默认地图使用初学者内容包文件夹结构 总结 前言 在我们的上一篇文章中&#xff0c;我们已经介绍了一些Unreal Engine 5&#xff08;UE5&#xff09;的基本操作。UE5是一款强大的游戏开发引擎&#xff0c;它提供了许多工具和功能&#xff0c;使…...

React Navigation 和 Expo Router

React Navigation 是 React Native 社区最常用的导航库&#xff0c;其具有高度可定制性且性能良好的特性。它提供了一系列导航器&#xff08;如堆栈导航器、标签导航器、抽屉导航器等&#xff09;&#xff0c;可以满足绝大多数的页面导航需求。 Expo Router 是 Expo 官方最新发…...

如何使用python网络爬虫批量获取公共资源数据教程?

原文链接&#xff1a;如何使用python网络爬虫批量获取公共资源数据教程&#xff1f;https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608240&idx4&snef281f66727afabfaae2066c6e92f792&chksmfa826657cdf5ef41571115328a09b9d34367d8b11415d5a5781dc4c…...

常见位运算总结

1.基础位运算 左移 &#xff08;<<&#xff09;: 最左侧位不要了, 最右侧补 0 右移&#xff08;>>&#xff09;: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1) 按位取反&#xff08;~&#xff09;&#xff1a;如果该位为 0 则转为 1, 如果该位为 1 则转为…...

自动化任务工具 -- zTasker v1.94 绿色版

软件简介 zTasker 是一款功能强大的自动化任务管理软件&#xff0c;以其简洁易用、一键式操作而著称。软件体积小巧&#xff0c;启动迅速&#xff0c;提供了超过100种任务类型和30多种定时/条件执行方法&#xff0c;能够满足用户在自动化方面的多样化需求。 zTasker 支持定时任…...

mybatis mapper.xml 比较运算符(大于|小于|等于)的写法: 转义和<![CDATA[]]>

文章目录 引言I 使用xml 原生转义的方式进行转义II 使用 <![CDATA[ 内容 ]]>引言 应用场景:查询时间范围 背景:在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突 <![CDATA[]]> 比 转义符 来的繁琐 <![CDATA[]]> 表示xml解析器忽略…...

UE5的基本操作

涵盖了从建模、快捷键使用、界面操作到性能分析等多个方面&#xff0c;以下是一些关键点和技巧&#xff1a;12 建模操作&#xff1a; 使用Shift5切换到建模模式&#xff0c;可以通过Shapes创建基本图元如立方体、球体等。 利用Create面板中的工具&#xff0c;如polyext自由创…...

C++ 实现学生成绩管理系统

C 实现学生成绩管理系统 思路&#xff1a; 定义 Student 类&#xff0c;包含学生的基本信息和成绩。实现添加学生、删除学生、修改成绩、显示所有学生成绩和查找学生的功能。使用向量&#xff08;vector&#xff09;存储学生信息。 #include <iostream> #include <…...

Elasticsearch 第四期:搜索和过滤

序 2024年4月&#xff0c;小组计算建设标签平台&#xff0c;使用ES等工具建了一个demo&#xff0c;由于领导变动关系&#xff0c;项目基本夭折。其实这两年也陆陆续续接触和使用过ES&#xff0c;两年前也看过ES的官网&#xff0c;当时刚毕业半年多&#xff0c;由于历史局限性导…...

力扣1124.表现良好的最长时间段

力扣1124.表现良好的最长时间段 哈希表存最小的下标 当s[i] > 0 那么他到头可以构成一个合法时间段否则 找到之前的 s[i] - 1 的下标&#xff1a; 因为连续的前缀和一定只相差1若想算更小的s[i] - 2,s[i] - 3…一定会先算到s[i] - 1那么这些更小数必然在 s[i]−1 首次出现的…...

算法训练营day67

题目1&#xff1a; #include <iostream> #include <vector> #include <string> #include <unordered_set> #include <unordered_map> #include <queue>using namespace std;int main() {string beginStr, endStr;int n;cin >> n;ci…...

人工智能--图像语义分割

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a;专业知识 ​ 文章目录 &#x1f349;引言 &#x1f349;介绍 &#x1f348;工作原理 &#x1f34d;数据准备 &#x1f34d;特征提取 &#x1f34d;像素分…...

fl studio20和21用哪一个好?FL-Chan from FL Studio欣赏

最近接到很多小伙伴的私信&#xff0c;都在问我平时会使用哪些音乐软件&#xff0c;能不能给一些参考。其实每个人的使用习惯不一样&#xff0c;需求也不一样。以DAW为例&#xff0c;有些人就是喜欢FL Studio&#xff0c;有些人吹爆Studio One&#xff0c;还有些人习惯使用Cuba…...

OpenCV直方图计算函数calcHist的使用

操作系统&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code编程语言&#xff1a;C11 功能描述 图像的直方图是一种统计表示方法&#xff0c;用于展示图像中不同像素强度&#xff08;通常是灰度值或色彩强度&#xff09;出现的频率分布。具体来说…...

09 docker 安装tomcat 详解

目录 一、安装tomcat 1. tomcat镜像的获取 2. docker创建容器实列 3. 访问测试 404错误 4. 解决方案 5. 使用免修改版容器镜像 5.1. 运行实列的创建 5.2. 出现问题及解决&#xff1a; 6. 验证 OK 一、安装tomcat 1. tomcat镜像的获取 docker search tomcat #docker …...

44.实现管理HOOK点的链表对象

上一个内容&#xff1a;43.实现HOOK接管寄存器数据 以 43.实现HOOK接管寄存器数据 它的代码为基础进行修改 首先创建一个类 这里创建的名为HOOKPOINT.h HOOKPOINT.cpp文件里面的内容 #include "pch.h" #include "HOOKPOINT.h"HOOKPOINT::HOOKPOINT() {…...

Unity小知识

1.当我们把摄像机的内容渲染到RenderTexture上而不是屏幕上时,那么相机的Aspect默认会设置成和RenderTexture的分辨率一样.不过最终如果把RenderTexture作为贴图贴到模型上去的时候还是会被UV拉伸和缩小的。 2.要想自定义UnityPackage的内容&#xff0c;只要找到UnityProject/L…...

【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术

标题&#xff1a;【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术 Jupyter Notebook是一个流行的开源Web应用程序&#xff0c;允许用户创建和共享包含实时代码、方程、可视化和解释性文本的文档。而Git是一个广泛使用的分布式版本控制系统&#xff0c;用于跟…...

Python开发者必看:内存优化的实战技巧

更多Python学习内容&#xff1a;ipengtao.com Python是一种高级编程语言&#xff0c;以其易读性和强大的功能而广受欢迎。然而&#xff0c;由于其动态类型和自动内存管理&#xff0c;Python在处理大量数据或高性能计算时&#xff0c;内存使用效率可能不如一些低级语言。本文将介…...

Golang | Leetcode Golang题解之第214题最短回文串

题目&#xff1a; 题解&#xff1a; func shortestPalindrome(s string) string {n : len(s)fail : make([]int, n)for i : 0; i < n; i {fail[i] -1}for i : 1; i < n; i {j : fail[i - 1]for j ! -1 && s[j 1] ! s[i] {j fail[j]}if s[j 1] s[i] {fail[i…...