【期末总复习】计算机视觉理论与实践

news/2024/11/29 10:00:08/

1、计算机视觉的三大任务

分类、检测(定位)、分割(语义和实例)

2、生成对抗网络的基本概念

生成对抗网络GAN是一种用于生成模型的机器学习框架。它由两个主要组件组成:生成网络和判别网络。生成网络试图生成与真实数据相似的样本,而判别网络则试图区分生成网络生成的样本和真实数据。

3、GAN网络的缺点,2014年GAN网络提出来时有哪些问题需要解决,现在还有什么问题需要解决

训练不稳定、模式塌陷、难以评估、训练时间和资源消耗大。

在2014年GAN提出时,一些问题需要解决,包括:

训练不稳定、模式塌陷、梯度消失和梯度爆炸

现在仍然存在一些问题需要解决,例如:

生成样本质量不稳定、模式塌陷仍然存在、训练时间和资源消耗

4、最基础的卷积神经网络的基本原理

卷积神经网络(Convolutional Neural Network,简称CNN)是一种深度学习模型,主要用于图像识别和计算机视觉任务。它的基本原理是通过多层卷积和池化操作来提取图像特征,并将这些特征输入到全连接层进行分类或回归。

下面是CNN的基本原理:

卷积层(Convolutional Layer):

卷积操作是CNN的核心,通过使用一组可学习的卷积核(或过滤器)在输入图像上滑动并进行局部相乘累加的方式来提取特征。卷积层可以有效地捕捉图像的空间结构信息。

激活函数(Activation Function):

在卷积层后面通常会使用非线性激活函数,如ReLU(Rectified Linear Unit),来增加网络的非线性能力。ReLU函数将所有负值设为零,保留正值不变。

池化层(Pooling Layer):

池化层的作用是在保留特征信息的同时减少参数数量,降低计算复杂度。常用的池化操作有最大池化(Max Pooling)和平均池化(Average Pooling),它们可以分别提取图像的最显著特征和平均特征。

全连接层(Fully Connected Layer):

在经过多层卷积和池化后,得到的特征图会被展平成一维向量,并输入到全连接层。全连接层的作用是将特征与目标类别进行关联,并输出最终的分类结果。

Dropout层:

为了防止过拟合(Overfitting),在全连接层之间通常会添加Dropout层。Dropout层随机地将一些神经元的输出置为零,可以减少神经元之间的共适应性,提高模型的泛化能力。

Softmax层:

在输出层,通常使用Softmax函数将模型的原始输出转化为类别的概率分布。Softmax函数可以将任意实数映射到0到1之间,并且所有输出的和为1。

通过堆叠多个卷积层、激活函数、池化层和全连接层,CNN可以从原始图像中学习到更高层次的特征表达,从而实现对图像内容的识别和分类。

5、为什么对图像进行恢复,图像恢复的概念,和图像增强之间有什么不一样

图像恢复:

图像恢复是指通过使用算法和技术来还原、修复损坏或退化的图像,使其恢复到原始或更接近原始的状态。图像损坏可能是由于传输错误、噪声、失真、模糊等原因引起的。图像恢复的目标是尽可能减少图像中的缺陷和失真,使图像更加清晰、准确。常见的图像恢复方法包括去噪、去模糊、填补缺失等。

图像增强:

图像增强是指通过算法和技术改善图像的视觉质量和可视化效果,使图像更易于理解、分析或展示。图像增强可以通过增加对比度、调整亮度、改善细节、增强边缘等方式来实现。图像增强的目标是提升图像的视觉效果,而不一定关注图像的原始信息。常见的图像增强方法包括直方图均衡化、滤波器、锐化等。

总结起来,图像恢复旨在修复损坏或退化的图像,使其回复到原始或更接近原始的状态;而图像增强旨在改善图像的视觉质量和可视化效果。

6、什么原因会导致图像质量不好

拍摄条件不理想、压缩损失、分辨率不足、噪点干扰、图像失真、剪裁变形、后期处理不当、传输损失

7、卷积神经网络中,输入层、输出层、全连接层、卷积层、1x1的卷积、3x3的卷积是怎么操作的,操作之后有什么用,以及卷积的操作和负相关之间有什么差别,图像的卷积和信号处理之间的卷积又有什么不同

在卷积神经网络(CNN)中,各个层的操作和作用如下:

输入层:

接收原始数据,例如图像或信号。

卷积层:

通过使用卷积核(即滤波器)对输入数据进行卷积操作。卷积操作可以提取出输入数据的特征,例如边缘、纹理等。

(1)1x1的卷积:1x1的卷积核在卷积层中应用,它主要用于调整特征通道的数量,即降低或增加特征的维度。这对于控制模型的复杂度和计算开销非常有用。

(2)3x3的卷积:3x3的卷积核在卷积层中应用,它是一种常用的卷积核大小。它能够捕捉到更加复杂的特征,如纹理、形状等。

全连接层:

在卷积层之后,可以添加全连接层来进行特征的组合和分类。全连接层的每个神经元与前一层的所有神经元相连接,用于将高级特征映射到类别标签。

操作之后的效果和用途如下:

(1)卷积操作:通过卷积操作,可以在图像或信号中提取出不同的特征,将输入数据转化为特征映射。这些特征映射可以用于图像分类、目标检测、分割等任务。

(2)调整特征通道:通过1x1的卷积操作,可以减少或增加特征通道的数量,从而调整模型的复杂度和计算开销。这对于在不损失重要信息的情况下减少模型参数非常有用。

(3)3x3的卷积:3x3的卷积核能够捕捉到更加复杂的特征,例如纹理、形状等。它比较常用,因为它可以通过多层3x3的卷积堆叠来模拟更大的卷积核,同时具有更少的参数。

卷积的操作和负相关之间的差别:

(1)卷积操作:卷积是一种数学操作,通过对输入数据和卷积核进行卷积运算,将输入数据转化为输出特征映射。

(2)相关操作:相关是卷积的一种变种操作,它与卷积非常相似,但在卷积核的翻转操作上有所不同。

卷积神经网络中的卷积操作和信号处理中的卷积有以下不同之处:

(1)输入数据的维度:在信号处理中,卷积操作通常应用于一维信号,如音频信号。而在卷积神经网络中,卷积操作通常应用于二维图像。

(2)卷积核的大小:在信号处理中,卷积核的大小通常是根据信号的性质和需求进行选择。而在卷积神经网络中,卷积核的大小是根据网络的结构和任务进行设计和调整。

(3)多通道处理:在卷积神经网络中,可以使用多个卷积核同时处理输入数据的不同通道。这样可以提取出更多的特征信息。而在信号处理中,一般只使用一个卷积核处理单通道信号。

总的来说,卷积神经网络中的卷积操作是一种有效的特征提取方法,可以应用于图像和信号处理等领域,但在具体实现上和传统的信号处理中的卷积存在一些差异。

8、训练深度学习算法最常用的方法是什么,怎么训练,怎么更新权重参数

(1)训练深度学习算法最常用的方法是:通过反向传播算法和梯度下降优化来更新权重参数。

首先,需要准备好训练数据集和相应的标签。然后,将数据输入到神经网络中进行前向传播,计算出网络的输出结果。接着,通过计算实际输出与期望输出之间的误差,使用反向传播算法计算出每个权重参数对误差的贡献。

反向传播算法会根据误差梯度,从输出层逐层向输入层反向传播,计算每个神经元的梯度。这些梯度将用于更新网络中的权重参数,以最小化误差。常用的梯度下降算法包括批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-Batch Gradient Descent),它们在更新权重时的方式略有不同。

在梯度下降的过程中,通过选择合适的学习率(learning rate),可以控制每次更新权重的步长。学习率过大可能导致错过最优解,而学习率过小可能导致训练速度过慢。因此,选择合适的学习率是权衡的关键。

训练过程通常是通过多次迭代进行的,每次迭代都会使用一部分训练数据(称为一个批次)进行前向传播、反向传播和权重更新。重复这个过程直到达到停止条件,例如达到一定的迭代次数或误差降低到某个阈值。

需要注意的是,训练深度学习算法需要大量的计算资源和时间。因此,在实际应用中,通常会使用现成的深度学习框架(如TensorFlow、PyTorch等)来简化训练过程。这些框架提供了高效的实现和优化算法,使得训练过程更加便捷和可靠。

10、了解变分自编码器

变分自编码器(VAE),常被用于生成数据,是常见的三种生成模型之一,它可以从训练数据中来建模真实的数据分布,然后再用学习到的模型和分布去生成、构建新的数据。

11、KL散度的概念

KL 散度,是一个用来衡量两个概率分布的相似性的一个度量指标。

当KL散度越大的时候,说明两者的差异程度越大;而当KL散度小的时候,则说明两者的差异程度小

12、深度学习中迁移学习怎么做、微调怎么做、预训练代表什么

在深度学习中,迁移学习是一种利用已经在大型数据集上训练好的模型来解决新的任务的方法。它的主要思想是将已经学到的知识迁移到新的任务上,从而加快新任务的学习过程和提高性能。

迁移学习的步骤如下:

(1)选择预训练模型:

选择一个在大规模数据集上训练好的模型作为基础模型。这个模型可以是在自然图像数据集上预训练的卷积神经网络(如ImageNet)或其他领域的模型。

(2)去除顶层:

将基础模型的顶层(全连接层)去除,因为这些顶层通常是与具体任务相关的。

(3)特征提取:

使用去除顶层的基础模型,将新的数据通过网络前向传播,得到其在基础模型中的特征表示。

(4)自定义顶层:

根据新任务的要求,添加一个新的顶层,即全连接层或其他适当的层。这个顶层将用于新任务的特定分类或回归。

(5)微调:

通过在新任务的数据上进行反向传播,更新整个网络的参数,包括基础模型和自定义顶层的参数。这个过程可以使模型更好地适应新任务的特点。

预训练是指在一个大规模数据集上训练一个深度神经网络模型,通常是为了学习通用的特征表示。这样的模型可以通过迁移学习应用于新的任务,以提高模型的性能和泛化能力。预训练可以是无监督的,例如自编码器或生成对抗网络,也可以是有监督的,例如在大规模标注数据集上进行分类任务的训练。

13、传统处理计算机视觉的思路,通过算子去提取图像的特征(特征工程),然后进行模型的建模

传统的计算机视觉处理思路通常包括以下步骤:

(1)图像预处理:

对图像进行预处理,包括调整大小、裁剪、灰度化、去噪等操作,以便更好地进行特征提取和模型建模。

(2)特征提取:

使用各种特征提取算子(如SIFT、HOG、LBP等)从图像中提取有用的特征。这些算子可以根据图像的局部纹理、边缘、颜色等信息来提取特征。

(3)特征选择和降维:

对提取的特征进行选择和降维,以减少特征的维度并去除冗余信息。常用的方法包括主成分分析(PCA)和线性判别分析(LDA)等。

(4)模型建模:

选择合适的机器学习算法(如支持向量机、决策树、随机森林等)或统计模型来构建图像分类或检测模型。特征向量作为输入,模型通过学习特征与标签之间的关系来进行分类或检测。

(5)模型评估和调优:

通过交叉验证、ROC曲线、精确度、召回率等指标来评估模型性能,并通过调整模型超参数、特征选择等方法进行模型的调优。

传统的特征工程方法需要手动设计算子和选择特征,这需要领域知识和专业经验。而深度学习则通过学习端到端的特征表示和模型训练,自动地从原始数据中学习特征和模式,无需手动设计特征提取算子,更加智能和自动化。

14、目标检测框架,框架之间的差距,两阶段目标检测框架和一阶段目标检测框架的代表模型是那些,以及代表模型的思想能够简单画出这个模型的结构图

目标检测框架是用于在图像或视频中检测和定位目标物体的算法和模型。框架之间的差距主要体现在设计思想、网络结构、推理速度和准确性等方面。

两阶段目标检测框架(Two-Stage Object Detection)和一阶段目标检测框架(One-Stage Object Detection)是目标检测领域的两个主要类别。

(1)两阶段目标检测框架的代表模型是Faster R-CNN(Region-Based Convolutional Neural Network)。

它的主要思想是先生成候选框,然后对每个候选框进行分类和边界框回归。其结构图如下:

输入图像 -> 基础网络(如ResNet) -> 候选框生成(Region Proposal Network) -> 特征提取 -> 分类和边界框回归

(2)一阶段目标检测框架的代表模型是YOLO(You Only Look Once)和SSD(Single Shot MultiBox Detector)。

这些模型主张在一个单一的卷积神经网络中同时进行目标分类和边界框回归,以实现实时目标检测。以YOLO为例,其结构图如下:

输入图像 -> 卷积网络 -> 特征提取 -> 目标分类和边界框回归

【综合设计】

1、数据收集,模型如何选择,模型长什么样,如卷积神经网络画出来

在进行数据收集和模型选择时,可以根据以下步骤进行:

(1)确定问题和目标:

明确你要解决的问题以及你的目标是什么。这有助于确定你需要收集哪些数据并选择适合的模型。

(2)数据收集:

根据你的问题和目标收集相关的数据。这可以包括从公开数据集中获取数据、爬取互联网数据、收集用户反馈等方法。

(3)数据预处理:

对收集到的数据进行预处理,包括数据清洗、去除噪声、缺失值处理、特征选择等。这一步骤是为了提高数据质量和模型性能。

(4)特征工程:

根据问题和数据的特点进行特征工程,包括特征提取、特征转换、特征缩放等。这一步骤的目的是提取有用的信息来训练模型。

(5)模型选择:

在选择模型时,可以考虑以下因素:

(6)问题类型:

根据问题类型选择适合的模型,例如分类问题可以选择决策树、支持向量机、神经网络等;回归问题可以选择线性回归、随机森林等。

(7)数据规模:

如果数据规模较小,可以选择简单模型,避免过拟合;如果数据规模较大,可以考虑使用复杂模型来提高性能。

(8)预测效果:

可以通过交叉验证、指标评估等方法来评估不同模型的预测效果,选择表现最好的模型。

(9)模型训练和评估:

使用选择的模型对预处理后的数据进行训练,并使用评估指标(如准确率、召回率、F1值等)来评估模型的性能。

(10)卷积神经网络的结构:

它通常由多个卷积层、池化层、全连接层和激活函数组成。卷积神经网络的结构可以通过绘制网络图来展示,示意图如下所示:

输入层 -> 卷积层 -> 池化层 -> 卷积层 -> 池化层 -> 全连接层 -> 输出层

在绘制网络图时,可以使用专门的库(如Graphviz)或绘图工具(如matplotlib)来可视化网络结构。

2、对比各种网络之间的差异如unet、ssd、CycleGANCGAN等一些生成对抗网络

(1)U-Net:

U-Net是一种用于图像分割任务的卷积神经网络。它的特点是具有对称的U形结构,包含了编码器和解码器部分。编码器用于提取图像特征,解码器用于生成分割结果。U-Net在医学图像分割等领域取得了很好的效果。

(2)SSD(Single Shot MultiBox Detector):

SSD是一种用于目标检测任务的卷积神经网络。它通过在不同尺度的特征图上应用多个预测层来检测不同大小的目标。SSD具有较高的检测速度和较好的准确性,被广泛应用于实时目标检测。

(3)CycleGAN:

CycleGAN是一种无监督的图像转换模型,用于将一个域中的图像转换为另一个域中的图像,而无需配对的训练数据。它通过两个生成器和两个判别器构成,其中一个生成器用于将图像从一个域转换到另一个域,另一个生成器用于反向转换。CycleGAN可以用于风格迁移、图像翻译等任务。

(4)CGAN(Conditional Generative Adversarial Network):

CGAN是一种生成对抗网络,它在传统的生成对抗网络的基础上引入了条件信息。CGAN通过在生成器和判别器中引入条件向量,使得生成器可以根据条件信息生成特定类别的样本。CGAN可以用于生成特定类别的图像、图像修复等任务。

【大纲感谢】

计算机视觉

单选20道,判断10道,名词解释5道,解答4道,综合设计2道(共20分)

  1. 计算机视觉的三大任务
  2. 生成对抗网络的基本概念
  3. GAN网络的缺点,2014年GAN网络提出来时有哪些问题需要解决,现在还有什么问题需要解决
  4. 最基础的卷积神经网络的基本原理
  5. 为什么对图像进行恢复,图像恢复的概念,和图像增强之间有什么不一样
  6. 什么原因会导致图像质量不好
  7. 卷积神经网络中,输入层、输出层、全连接层、卷积层、1x1的卷积、3x3的卷积是怎么操作的,操作之后有什么用,以及卷积的操作和负相关之间有什么差别,图像的卷积和信号处理之间的卷积又有什么不同
  8. 训练深度学习算法最常用的方法是什么,怎么训练,怎么更新权重参数
  9. 了解变分自编码器
  10. KL散度的概念
  11. 深度学习中迁移学习怎么做、微调怎么做、预训练代表什么
  12. 传统处理计算机视觉的思路,通过算子去提取图像的特征(特征工程),然后进行模型的建模
  13. 目标检测框架,框架之间的差距,两阶段目标检测框架和一阶段目标检测框架的代表模型是那些,以及代表模型的思想能够简单画出这个模型的结构图

综合设计:

1.数据收集,模型如何选择,模型长什么样,如卷积神经网络画出来

2.对比各种网络之间的差异如unet、ssd、CycleGAN、CGAN等一些生成对抗网络

@阿朸:https://blog.csdn.net/qq_56900491?type=blog


http://www.ppmy.cn/news/1324076.html

相关文章

外部配置文件和Class打包到jar 然后重新启动java -jar

我这边以bpvs-backend-2.0.0-SNAPSHOT.jar和application-dev.properties配置文件为例 一.将DeviceDataService.class和DeviceDataPushTOSEventListener.class替换到jar内部 步骤1:解压原始bpvs-backend-2.0.0-SNAPSHOT.jar 将两个class文件拷贝到jar目录下后cd到文…

使用java内置工具jar手动创建xxx.jar文件

平时我们一般都是在IDE工具中使用插件打包JAVA项目为 XXX.jar文件, 其实这个工作我们手动也可以完成, 也非常简单, 使用JDK自带的jar命令行工具即可. 用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ... jar用法示例 创建 jar: …

Linux消息队列

常用函数 //创建/获取消息队列 int msgget (key_t key, int msgflg); /* key : 为键值,ftok(); msgflg:IPC_CREAT - 创建,不存在即创建,已存在即获取,除非… IPC_EXCL - 排斥,已存在即失败。 */// 向消息队列发送消息 int msgs…

如何绘制出图像的色素分布直方图

效果 如图,可以展示出我们的图像的颜色分布直方图,表明的图像的亮和暗 实现可视化色素分布直方图方法 这里我们对我们的灰色图片和彩色图片进行了直方图显示 import cv2 import matplotlib.pyplot as plt image cv2.imread("test.jpg") # 彩色图片->…

【计算机硬件】2、指令系统、存储系统和缓存

文章目录 指令系统计算机指令的组成计算机指令执行过程指令的寻址方式(怎么样找到操作数?)1、顺序寻址2、跳跃寻址 指令操作数的寻址方式(怎么样找到操作数?)1、立即寻址方式2、直接寻址方式3、间接寻址方式…

Win10如何设置闹钟提醒?win10电脑自定义闹钟提醒的方法

上班族在繁忙的工作中,有时候需要在电脑上设置醒闹钟提醒,以确保按时完成工作或者提醒自己关注某些事项。想想一下,你在某一天需要参加一个重要的会议,为了不错过会议的开始时间,设置一个电脑上的醒闹钟提醒是十分必要…

游戏引擎支持脚本编程有啥好处

很多游戏引擎都支持脚本编程。Unity、Unreal Engine、CryEngine等大型游戏引擎都支持使用脚本编写游戏逻辑和功能。脚本编程通常使用C#、Lua或Python等编程语言,并且可以与游戏引擎的API进行交互来控制游戏对象、设置变量、执行行为等。使用脚本编程,游戏…

【MySQL】MySQL版本8+ 窗口函数 PERCENT_RANK 的使用

力扣题 1、题目地址 2346. 以百分比计算排名 2、模拟表 表:Students Column NameTypestudent_idintdepartment_idintmarkint student_id 包含唯一值。 该表的每一行都表示一个学生的 ID,该学生就读的院系 ID,以及他们的考试分数。 3、…