基于Pytorch的计算机视觉
文章平均质量分 96
NumPy 和 PyTorch 从头开始构建神经网络( NN ),然后学习调整 NN 超参数的最佳实践。随着我们的进步,您将了解 CNN,即专注于图像分类的迁移学习。您还将了解在构建 NN 模型时要注意的实际方面
Sonhhxg_柒
Save your heart for someone who cares. #愿岁月清净 抬头遇见皆是柔情#
展开
-
【DL】探索扩散模型:关键概念和应用的综合指南
人工智能中扩散模型的迭代过程是其功能的一个基本方面,涉及多次迭代或步骤以生成高质量的输出。为了理解这个过程,让我们更深入地研究扩散模型的工作原理。扩散模型是生成模型,旨在捕获给定数据集的基础分布。他们学习通过迭代地改进输出来生成类似于训练数据的新样本。该过程从初始输入或“噪声”样本开始,该样本通过模型。然后,模型应用概率变换来迭代更新样本,使其更接近所需的输出。在每次迭代期间,扩散模型都会生成潜在变量,充当数据的中间表示。这些潜在变量捕获训练数据中存在的基本特征和模式。原创 2023-07-31 10:26:18 · 559 阅读 · 0 评论 -
【CV】稳定扩散模型(Stable Diffusion)
我们将看到如何从这个模型过渡到可以根据文本描述有效生成图像的文本条件模型,并以称为稳定扩散 (SD) 的模型作为案例研究。不过,在介绍 SD 之前,我们将首先了解条件模型的工作原理,并回顾导致我们今天拥有的文本到图像模型的一些创新。原创 2023-05-27 18:51:47 · 3063 阅读 · 5 评论 -
【CV】扩散模型(Diffusion Models)
2020 年底,一类鲜为人知的称为扩散模型的模型开始在机器学习领域引起轰动。研究人员弄清楚了如何使用这些模型生成质量高于以往技术的合成图像。随后出现了一系列论文,提出了改进和修改的建议,进一步提高了质量。到 2021 年底,像 GLIDE 这样的模型在文本到图像的任务上展示了令人难以置信的结果,几个月后,这些模型通过 DALL-E 2 和 Stable Diffusion 等工具进入了主流。这些模型使任何人都可以轻松地生成图像,只需输入他们想要看到的内容的文本描述即可。原创 2023-05-24 11:51:59 · 444 阅读 · 0 评论 -
【CV】第 18 章:使用 OpenCV 实用程序进行图像分析
在本节中,我们将了解如何在不利用深度学习的情况下在干净的图像中识别机器打印的单词。除了图像拼接之外,他的技术流水线(关键点识别、识别两幅图像之间的匹配关键点、识别要执行的变换以及执行变换)在图像配准等应用中非常有用,其中一个图像需要叠加在另一个之上。从前面的截图可以看出,预训练的级联分类器可以准确识别车牌的位置。在前面的代码行中,我们只获取那些面积大于 5 像素的轮廓,并且只获取边界框高度在 5 到 100 像素之间的那些轮廓(这样,我们消除了那些太小,可能是噪声,大边界框可能包含整个图像)。原创 2022-10-28 15:29:48 · 1036 阅读 · 3 评论 -
【CV】第 17 章:将模型移至生产
重要的是我们知道如何创建一个 API(用户可以通过它与模型交互),将其包装为一个独立的应用程序(以便它可以部署在任何计算机上),并将其发送到云端——这样任何拥有所需 URL 和凭据的人都可以与模型进行交互。我们还将了解如何部署。在该predict方法中,我们从预定义的路径加载图像,在将图像传递forward给模型的方法之前对其进行预处理,并将输出包装在字典中,同时返回预测的类及其置信度。虽然这是创建应用程序的合乎逻辑的结果,但同样重要的是,我们将其部署在任何无法访问我们的计算机或模型的人都可以访问的地方。原创 2022-10-28 13:12:53 · 988 阅读 · 5 评论 -
【CV】第 16 章:结合计算机视觉和强化学习
在上一章中,我们了解了如何将 NLP 技术(LSTM 和 Transformer)与基于计算机视觉的技术相结合。在本章中,我们将学习如何将基于强化学习的技术(主要是深度 Q 学习)与基于计算机视觉的技术相结合。我们将首先学习强化学习的基础知识,然后学习与识别如何计算与在给定状态下采取行动相关的值(Q 值)相关的术语。接下来,我们将学习填充 Q 表,它有助于识别与给定状态下的各种操作相关的值。此外,我们将学习在由于大量可能状态而无法提出 Q 表的场景中识别各种动作的 Q 值;原创 2022-10-28 13:12:28 · 2139 阅读 · 3 评论 -
【CV】第 15 章:结合计算机视觉和 NLP 技术
在上一章中,我们了解了如何在数据点数量最少的情况下利用新颖的架构。在本章中,我们将换位思考,了解如何将() 与广泛使用的() 家族中的算法结合使用(截至撰写本文时)书)在() 中开发利用计算机视觉和 NLP 的解决方案。为了理解 CNN 和 RNN 的结合,我们将首先了解 RNN 的工作原理及其变体——主要是()——以了解它们如何应用于预测给定图像作为输入的注释。之后,我们将了解另一个重要的损失函数,称为() l oss 函数,然后将其与 CNN 和 RNN 结合使用以执行手写图像的转录。原创 2022-10-28 09:51:25 · 768 阅读 · 1 评论 -
【CV】第 14 章:用最少的数据点训练
我们的任务是识别与查询图像(测试图像)具有最高相似性的已知图像(训练图像)的类别。从前面可以看出,在模型的前 5 个预测中,我们可以正确预测约 73% 的图像,其中包含训练期间不存在类的对象。在本章中,我们将学习基于度量的架构,该架构提出了一个最佳度量,欧几里得距离或余弦相似度,将相似的图像组合在一起,然后在新图像上进行预测。现在我们已经看到了通过零样本分类在训练中不存在某个类别的图像时进行预测的场景,在下一节中,我们将学习如何构建一个模型来预测图像中的对象类别(如果有)训练集中一个类的几个例子。原创 2022-10-28 09:51:06 · 575 阅读 · 1 评论 -
【CV】第 13 章:用于处理图像的高级 GAN
在合成网络的前几层添加的 1 x 512 向量有助于图像中存在的整体姿势和大规模特征,例如姿势、面部形状等,(因为它们负责生成4 x 4、8 x 8 的图像,等等——这是前几张图像,将在后面的层中进一步增强)。在无监督方法中,我们将指定输入和输出,但是,我们不会提供输入和输出之间的一一对应关系,而是期望 GAN 学习这两个类的结构,并将图像从一个类到另一个,我们将在 CycleGAN 中学习。想象一个场景,我们有成对的相互关联的图像(例如,对象边缘的图像作为输入,对象的实际图像作为输出)。原创 2022-10-28 09:50:41 · 1538 阅读 · 2 评论 -
【CV】第 11 章:自动编码器和图像处理
在前面的章节中,我们学习了图像分类、检测图像中的对象以及分割图像中对象对应的像素。在本章中,我们将学习如何使用自编码器在低维中表示图像,并通过使用变分自编码器利用图像的低维表示来生成新图像。学习以较少的维度表示图像有助于我们在很大程度上操纵(修改)图像。我们将学习利用低维表示来生成新图像以及基于两个不同图像的内容和风格的新图像。接下来,我们还将学习如何修改图像以使图像在视觉上保持不变,但是,与图像对应的类从一个更改为另一个。原创 2022-10-27 19:24:47 · 3023 阅读 · 6 评论 -
【CV】第 10 章:目标检测和分割的应用
此外,我们将学习如何计算图像中人群中的人数,然后学习如何利用分割技术来执行图像着色 . 最后,我们将了解 YOLO 的修改版本,通过使用从 LIDAR 传感器获得的点云来预测对象周围的 3D 边界框。你将如何解决这个问题?我们正在调整 ground truth 的大小,因为我们的网络的输出将缩小到原始大小的 1/8 ,因此我们将地图乘以 64,以便图像像素的总和将按比例缩小到原始人群数数。在本节中,我们将学习如何检测图像中的多个人,以及使用 Detectron2 检测图像中存在的人的各个身体部位的关键点。原创 2022-10-27 09:43:31 · 493 阅读 · 3 评论 -
【CV】第 9 章:图像分割
在上一章中,我们学习了检测图像中存在的对象,以及与检测到的对象对应的类。在本章中,我们将更进一步,不仅在对象周围绘制一个边界框,而且通过识别包含对象的确切像素。除此之外,在本章结束时,我们将能够挑选出属于同一类的实例/对象。在本章中,我们将通过了解 U-Net 和 Mask R-CNN 架构来了解语义分割和实例分割。我们试图通过图像 分割()实现的简洁图像如下:让我们开始吧!探索U-Net 架构想象一个场景,你得到一张图像并被要求预测哪个像素对应于哪个对象。原创 2022-10-27 09:42:31 · 2806 阅读 · 3 评论 -
【CV】第 8 章:高级物体检测
在上一章中,我们了解了 R-CNN 和 Fast R-CNN 技术,它们利用区域提议来生成图像中对象位置的预测以及与图像中对象对应的类。此外,我们了解了推理速度的瓶颈,这是因为有两种不同的模型——一个用于区域建议生成,另一个用于对象检测。在本章中,我们将学习不同的现代技术,例如 Faster R-CNN、YOLO 和(),通过使用单个模型在单次镜头中对对象类别和边界框进行预测,从而克服了缓慢的推理时间。我们将从了解锚框开始,然后继续了解每种技术的工作原理以及如何实现它们以检测图像中的对象。原创 2022-10-27 09:09:25 · 949 阅读 · 2 评论 -
【CV】第 7 章:目标检测基础
到目前为止,在前面的章节中,我们学习了执行图像分类。想象一下我们将计算机视觉用于自动驾驶汽车的场景。不仅需要检测道路图像是否包含车辆、人行道和行人的图像,识别这些物体的位置也很重要。我们将在本章和下一章学习的各种对象检测技术将在这种情况下派上用场。在本章和下一章中,我们将学习一些用于执行对象检测的技术。我们将首先学习基础知识——使用名为 的工具标记边界框对象的基本事实,ybat使用该方法提取区域建议,并使用() 度量和均值selectivesearch定义边界框预测的准确性平均精度指标。原创 2022-10-27 09:09:10 · 843 阅读 · 3 评论 -
【CV】第 6 章:图像分类的实际方面
在现实世界中,您会遇到具有不同属性的图像——例如,一些图像可能更亮,一些可能在边缘附近包含感兴趣的对象,而一些图像可能比其他图像更不稳定。在前面的代码中,我们在输入图像之上有一个转换管道——这是一个调整图像大小的管道(128在这种情况下,它确保一个维度的最小尺寸为 ),然后从中央。此外,在增强图像时,我们可以对稀有类图像进行过度采样,以增加它们在总体中的混合。中看到的,如果我们在 flatten 层中有更多的节点,那么当 flatten 层在连接到最后的密集层之前,我们将有非常多的参数。原创 2022-10-26 15:56:33 · 1376 阅读 · 5 评论 -
【CV】第 5 章:图像分类的迁移学习
在上一章中,我们了解到,随着训练数据集中可用图像数量的增加,模型的分类准确率不断提高,以至于包含 8000 张图像的训练数据集在验证数据集上的准确率高于包含 1,000 张图像的训练数据集。然而,为了训练模型,我们并不总是可以选择数百或数千张图像以及它们相应类别的基本事实。这就是迁移学习的用武之地。迁移学习是一种将通用数据集上的模型学习迁移到感兴趣的特定数据集的技术。通常,用于执行迁移学习的预训练模型在数百万张图像上进行训练(这些图像是通用的,而不是我们感兴趣的数据集),并且这些预训练模型现在已经针对我们感原创 2022-10-26 14:25:54 · 1959 阅读 · 11 评论 -
【CV】第 4 章:介绍卷积神经网络
到目前为止,我们已经了解了如何构建深度神经网络以及调整其各种超参数的影响。在本章中,我们将了解传统深度神经网络在哪些方面不起作用。()的内部工作原理,然后再了解它们的一些主要超参数,包括步幅、池化和过滤器。接下来,我们将利用 CNN 以及各种数据增强技术来解决传统深度神经网络精度不高的问题。在此之后,我们将了解 CNN 中特征学习过程的结果是什么样的。最后,我们将把我们的学习放在一起来解决一个用例:我们将通过说明图像是包含狗还是猫来对图像进行分类。原创 2022-10-26 11:30:09 · 410 阅读 · 8 评论 -
【CV】第 3 章:使用 PyTorch 构建深度神经网络
在上一章中,我们学习了如何使用 PyTorch 编写神经网络。我们还了解了神经网络中存在的各种超参数,例如批量大小、学习率和损失优化器。在本章中,我们将学习如何使用神经网络进行图像分类。本质上,我们将学习如何表示图像并调整神经网络的超参数以了解它们的影响。为了不引入太多的复杂性和混乱,我们在上一章只介绍了神经网络的基本方面。但是,我们在训练网络时会调整更多输入。通常,这些输入被称为。与神经网络中的参数(在训练期间学习)相比,这些输入是由构建网络的人提供的超参数。原创 2022-10-26 10:53:00 · 3250 阅读 · 30 评论 -
【CV】第 2 章:PyTorch 基础知识
在某些情况下,我们可能必须实现针对我们正在解决的问题定制的损失函数——尤其是在涉及对象检测/生成对抗网络(GAN) 的复杂用例中。PyTorch 为我们提供了通过编写自己的函数来构建自定义损失函数的功能。MSELoss在本节中,我们将实现一个自定义损失函数,该函数与预构建的函数执行相同的工作nn.Module:return x# 92.75344.同样,当我们使用我们在步骤 2# 92.7534请注意,结果匹配。我们使用了内置MSELoss函数并将其结果与我们构建的自定义函数进行了比较。原创 2022-10-26 10:52:41 · 648 阅读 · 12 评论 -
【CV】第 1 章:人工神经网络基础
训练神经网络是通过重复两个关键步骤,即以给定的学习率进行前向传播和反向传播,为神经网络架构得出最佳权重的过程。在前向传播中,我们对输入数据应用一组权重,将其传递给定义的隐藏层,对隐藏层的输出执行定义的非线性激活,然后通过乘以隐藏层将隐藏层连接到输出层层节点值与另一组权重来估计输出值。然后,我们最终计算出对应于给定权重集的整体损失。对于第一次前向传播,权重的值是随机初始化的。在反向传播中,我们通过在减少整体损失的方向上调整权重来减少损失值(误差)。此外,权重更新的幅度是梯度乘以学习率。原创 2022-10-26 09:10:41 · 888 阅读 · 15 评论