计算机视觉基础课程知识点总结

图像滤波

相关: 核与图像同向应用,不翻转。

卷积: 核在应用前翻转,广泛用于信号处理和深度学习(现在常说的二维卷积就是相关)。

内积: 向量化的点积操作,是相关和卷积的一部分。

模板匹配:通过在图像中查找与模板匹配的区域,实现目标检测和识别。如人脸检测和工业检。

图像增强:通过滤波器处理图像,提高图像质量或突出特征。如边缘检测、去噪和锐化。

特征提取:通过滤波器提取图像中的重要信息,用于后续分析和识别。如角点检测、纹理分析和CNN中的特征提取。

滤波器:

Gabor:提取纹理和方向性边缘特征

Sobel:检测水平和垂直边缘

高斯:平滑图像,减少噪声

Laplacian of Gaussian:平滑图像并检测边缘。

边缘检测

如何使用高斯偏导数在图像处理中进行边缘检测:首先对图像进行高斯滤波,水平和垂直方向平滑处理,然后计算梯度的幅值边缘强度梯度方向边缘方向。接下来,通过非极大值抑制细化边缘,最后通过阈值处理和边缘连接来获取图像中的精细边缘。这一过程确保了边缘检测的准确性和连续性。

高斯偏导核结合了高斯平滑和微分运算的优点,在边缘检测、特征提取和图像去噪等方面有广泛应用。其核心思想是通过平滑图像减少噪声影响,然后计算图像梯度,获取图像的边缘和特征信息

在图像处理中,高斯滤波器的尺寸通常设置为 size=2×(3σ)+1,这样滤波器可以涵盖大部分高斯函数的范围,从而有效地平滑图像。差分图像c显示了两幅平滑图像之间的差异。通过比较可以发现,滤波器尺寸越大,差分越明显

Canny算子通过高斯滤波去噪、梯度计算找到潜在边缘、非极大值抑制细化边缘、双阈值检测分类边缘点、边缘连接形成连续边缘。这一系列步骤确保了边缘检测的准确性和细致性,使得Canny算子能够有效地获取“细边缘”。

拉普拉斯定理:用途清晰度检测

特征尺度

自动尺度选择的基本思想是通过构造对尺度变化敏感的函数f(多尺度都适用),计算其在多尺度上的响应,并选择响应值的局部极值点所对应的尺度作为图像特征的最佳尺度。这种方法使得在不同尺度上都能有效地检测到图像中的显著特征,从而实现多尺度特征提取。

通过计算尺度归一化拉普拉斯算子的响应,并找到其在不同尺度上的最大值,可以确定图像中特征的特征尺度。这使得特征检测在多尺度图像处理中更加准确和鲁棒。

SIFI分割

SIFT双塔结构,SIFT算法可以在不同尺度上检测图像中的关键点:高斯金字塔(这是通过对原始图像进行多次高斯模糊来构建的图像金字塔)是通过降采样得到的,所以可以大大减少后续处理中的计算量。在计算DoG金字塔时,由于每一层DoG金字塔只需要计算相邻两层高斯模糊图像的差分,而不需要重新计算高斯模糊,因此也节省了计算资源。这种金字塔结构有效地简化了SIFT算法中的尺度空间特征检测和描述子生成过程,提高了算法的效率和性能。

SIFT为确保关键点的方向不变性,SIFT通过计算图像梯度方向直方图来为每个关键点分配一个主要方向:计算图像梯度:在关键点的邻域内计算每个像素的梯度幅值和方向;创建方向直方图:在关键点邻域内(通常为16x16的邻域),对梯度方向进行统计,创建一个包含n个箱(每个箱覆盖360/n度)的方向直方图;权重投票:根据每个像素的梯度幅值对直方图进行加权投票。通常使用一个高斯权重函数,以关键点为中心,对邻域内的每个像素进行加权投票;确定主要方向:选取方向直方图中的最高峰作为关键点的主要方向。如果存在多个峰值接近主峰值的80%,也可以为该关键点分配多个方向。

SIFT描述子是基于关键点邻域的梯度信息生成的:构建描述子邻域:在关键点的邻域内划分子区域。计算梯度直方图:在每个子区域内,计算n个方向的梯度直方图。每个直方图包含n个箱。梯度方向和幅值计算:对每个子区域的每个像素点计算梯度方向和幅值,并根据方向和幅值对直方图进行加权投票。高斯加权:为每个像素点使用一个以关键点为中心的高斯权重进行加权。归一化:将向量归一化,以减小光照和对比度的影响。截断:为了增强鲁棒性,将描述子中大于某一阈值的元素截断。再次归一化:截断后再一次进行归一化,生成最终描述子。描述子可以在尺度、旋转和光照变化下具有很好的鲁棒性,有效地描述图像中的局部特征。 

视觉词典 

构造视觉词典:分块,根据提取特征分割;特征聚类,选择合适的聚类算法,聚类中心将成为视觉词典的词汇;每个图都可以看作是个视觉词汇,每个像素可以看作是文本

使用聚类来构造视觉词典的核心目的是通过将大量的局部特征描述符分组,生成有限数量的视觉单词,从而简化特征表示,减少数据维度,提升计算效率,并提高模型的鲁棒性和泛化能力。这一过程使得视觉词典能够有效地用于图像分类、物体识别和图像检索等任务。

神经网络

Naïve Bayesian是一种基于贝叶斯定理的概率分类算法,它假设特征之间相互独立。在实际应用中,我们通常使用朴素贝叶斯分类器进行分类,其决策规则是选择后验概率最大的。Linear classifier线性分类器是一类假设决策边界为线性函数的分类算法。常见的线性分类器包括感知机Perceptron、线性判别分析LDA和支持向量机SVM。线性分类器的目标是找到最佳的w和b,使得不同类别的样本尽可能被正确分开

K-Nearest Neighbors, KNN,K临近算法是一种基于实例的非参数分类算法。KNN通过计算新样本与训练集中所有样本的距离,选择距离最近的K个样本,然后根据这些样本的类别进行投票决定新样本的类。Naïve Bayesian分类器和线性分类器都基于决策规则来分类。Naïve Bayesian通过计算后验概率进行决策,而线性分类器通过线性函数的符号进行决策。KNN则是基于实例的决策规则,通过投票来决定新样本的类别。

交叉熵损失主要用于分类任务,特别是多类分类任务(Softmax激活函数的多类分类问题)常用于神经网络的训练,如CNN、RNN。

铰链损失主要用于二分类任务,SVM通常用于最大化分类间隔的分类问题。交叉熵损失优化目标是最小化预测分布与真实分布之间的差异,最大化正确类别的概率损失值越小,预测的概率分布越接近真实分布。铰链损失优化目标是最大化分类间隔,使得正类和负类之间的边界尽可能远。损失值越小,分类器越能够正确分类并且有较大的分类间隔。

链式法则传递倒数,方块为变量,圆点是运算符,计算图梯度反向传播

参数更新: 计算损失Loss,计算梯度,更新方向。标准梯度下降(整个训练集更新一次),随机梯度下降(每个样本更新一次),小批量梯度下降。

Small batch更好地利用现代硬件的并行计算能力,减少内存需求更快的参数更新和增强的噪声泛化能力避免重复计算,提高计算效率动态调整学习率更灵活的学习率调度策略更频繁的模型性能评估和更快的超参数调优更平滑的损失曲线,避免大幅度波动通过调整采样策略,改善不均衡数据的训练效果灵活处理不均匀数据

神经网络隐藏层的主要作用是通过非线性变换增强模型的表示能力,使其能够捕捉和表示复杂的非线性关系。线性学习模型只能处理线性关系,而神经网络通过引入隐藏层和非线性激活函数,能够处理复杂的模式识别和预测任务。通过多层隐藏层的设计,神经网络可以逐层提取特征,学习复杂的决策边界,从而实现对复杂数据的高效建模和预测。

Sigmoid激活函数容易引发梯度消失问题主要是由于其梯度在输入远离0时非常小。这个问题在深层神经网络中尤为严重,导致训练过程中梯度逐层衰减,使得模型难以学习和优化。通过使用替代激活函数、合适的权重初始化方法和归一化技术,可以有效缓解梯度消失问题。

卷积网络

感受野神经元的感受野在卷积计算中扮演了类似于生物视觉系统中感知局部图像的角色。通过分层次地扩大感受野,CNN能够逐步整合局部特征,形成对全局图像的理解。神经计算中,感受野的局部性允许并行处理图像的不同区域,大大提高了计算效率。权值共享在神经计算中,权值共享机制类似于生物视觉系统中神经元的重复性和一致性。在CNN中,卷积核在整个图像上共享权重,模拟了生物神经元在不同位置提取相同类型特征的过程。权值共享减少了模型的参数数量,降低了计算复杂度,同时保持了特征提取的一致性和可靠性。

小尺寸滤波的好处: 增强特征提取能力:更细致地捕捉局部特征;减少参数量:降低模型复杂度和过拟合风险;计算效率:减少计算量,加速训练和推理;更深的网络结构:构建更深的网络,提取更丰富的特征;增加非线性:引入更多非线性,提高模型学习复杂映射的能力。

1x1卷积特征通道的组合:跨通道信息融合和特征映射的重新加权维度变换:实现特征图的降维和升维计算效率的提升:在深度可分离卷积中大幅减少参数量和计算量改善网络结构和性能:提供灵活的维度变换和特征组合方式,减少参数量,提高训练效率和模型推广能力。

卷积计算Input volume: 32x32x3 :10 5x5 filters with stride 1, pad 2 Output: (32+2*2-5)/1+1 = 32 spatially, so 32x32x10 Params: 5*5*3 + 1 = 76 parameters => 76*10 = 760

数据增广在CNN中的意义增加训练数据的多样性:缓解过拟合,丰富特征空间提高模型的鲁棒性:应对输入变换,减少对噪声的敏感性提升模型的泛化能力:模拟现实世界的多样性,增强特征学习减少对大规模数据的依赖:在数据稀缺时生成更多的训练样本通过数据增广,CNN模型能够更好地学习和理解复杂的图像数据,提高在实际应用中的表现。

Dropout提升CNN:  Dropout通过在训练过程中随机“丢弃”部分神经元及其连接,防止模型过拟合,减少神经元之间的共适应性,模拟集成学习,并增加训练的随机性,从而显著提升了卷积神经网络的预测精度。

Momentum的作用: Momentum 通过在梯度下降过程中引入动量项,有助于加速收敛、减少振荡、帮助跳出局部最优解,从而显著提升了神经网络训练的效率和效果。通过使用 Momentum,优化算法能够更快、更稳定地找到损失函数的全局最优解,从而提高模型的性能和预测精度。

CNN改造

残差模块(Residual Block)设计思想跳跃连接(Skip Connection):直接将输入通过跳跃连接传递到输出,跳过中间的卷积层解决梯度消失问题:通过引入跳跃连接,使梯度可以直接从后层传递到前层,缓解梯度消失问题恒等映射(Identity Mapping):使网络更容易学习恒等映射,从而使深层网络的训练更加稳定和高效更深的网络:允许构建更深的网络层数,提高特征提取能力和模型表现残差模块通过这些设计使得深度神经网络能够更有效地进行训练,提升模型性能。

RPN全卷积网络:RPN是一个全卷积网络,直接在特征图上滑动窗口生成候选区域(proposals)锚点机制:在每个滑动窗口位置生成一组固定尺寸和比例的锚点(anchors),这些锚点作为候选区域的初始猜测两类输出:每个锚点输出两个值前景/背景分类:判定锚点是否属于前景(物体)或背景边界框回归:调整锚点以更好地拟合真实物体的边界框共享卷积层:RPN与目标检测网络(如Fast R-CNN)共享卷积层,减少重复计算,提高效率端到端训练:RPN与目标检测网络联合训练,实现端到端优化,提高候选区域生成的精度和速度。

RPN(Region Proposal Network)设计思路是通过一个卷积神经网络生成特征图,并在每个特征图位置生成一组不同尺度和宽高比的锚点。然后,使用1x1卷积层对这些锚点进行二分类(前景/背景)和回归调整(位置和尺寸),以生成候选区域。最后,通过非极大值抑制去除冗余区域,生成高质量的候选区域。这一过程与目标检测网络共享特征图,实现了高效的端到端训练和检测。

R-CNN到Fast R-CNN: R-CNN训练慢:需要分阶段训练,首先训练CNN,然后在提取的特征上训练SVM;检测慢:要划分很多个框resize像素再每个进行CNN前向传播,速度慢存储需求高:需要大量磁盘空间存储每个候选区域的特征Fast R-CNN单阶段训练:用多任务损失函数联合训练分类和回归任务只做一次卷积特征提取,ROI池化不按照像素而是按照区域,避免了重复计算,提高了速度和效率端到端训练:整个网络可以端到端训练,包括候选区域生成、特征提取、分类和回归,简化了训练流程。

全卷积网络(FCN)存在特征分辨率降低、感受野过大、边缘效应、计算量大、梯度消失、特征融合不充分和数据依赖性强等问题。为应对这些挑战,可采取反卷积、空洞卷积、跳跃连接、特征金字塔、数据增强和迁移学习等方法进行改进。

去除重叠框思路:非极大值抑制(Non-Maximum Suppression, NMS去除重叠框。步骤如下:排序:按照预测的置信度(confidence score)对所有候选框进行排序,从高到低选择最高分框:选择置信度最高的框作为基准框,保留这个框,并将其加入最终的输出列表计算重叠区域:计算基准框与其他候选框的重叠面积,通常使用交并比(IoU, Intersection over Union)作为衡量标准抑制重叠框:对于所有与基准框的IoU超过预设阈值的候选框,将其从候选框列表中移除,表示这些框被抑制,因为它们与基准框重叠过多重复:从剩余的候选框中重复步骤2-4,直到所有框都处理完毕。

AP计算的是折线图包围住的面积P1/1,R1/3->P2/2,R2/3->P2/3,R2/3->2/4,R2/3->P3/5,R3/3

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Go变量作用域精讲及代码实战

1. 变量的作用域概述 在编程中,变量的作用域(Scope)定义了变量在程序中的可见性和生命周期。理解变量的作用域对于编写健壮且可维护的代码至关重要。Go语言(简称Go)提供了几种不同的作用域类型,使得开发者可…

13600KF+3060Ti,虚拟机安装macOS 14,2024年6月

距离上次装macOS虚拟机已经有一段时间了,macOS系统现在大版本升级的速度也是越来越快了,由于Office只支持最新三个版本的macOS,所以现在保底也得安装macOS 12了,我这次是用macOS 14做实验,13和12的安装方式和macOS 14一…

Word同行内的文字如何左右分别对齐

先打开标尺(视图-标尺) 开右边,选一个制表位置,比如我选34 切回开始,点段落段落右下角 然后 然后 我修改为35(因为“6月13日”总共3个字符) 在文字中间按下Tab键,效果如下

视频生成模型 Dream Machine 开放试用;微软将停止 Copilot GPTs丨 RTE 开发者日报 Vol.224

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

《C++程序设计》银行管理系统

莫思身外无穷事 且尽生前有限杯 我们先来看一下项目需求: 【场景】 在日常生活中,我们普遍接触到窗口服务系统,如到银行柜台办理业务、景区现场购买门票等。当需要办理业务的顾客数超过窗口数量时,我们需遵循排队等待原则。 【需…

微服务 | Springboot整合Dubbo+Nacos实现RPC调用

官网:Apache Dubbo 随着互联网技术的飞速发展,越来越多的企业和开发者开始关注微服务架构。微服务架构可以将一个大型的应用拆分成多个独立、可扩展、可维护的小型服务,每个服务负责实现应用的一部分功能。这种架构方式可以提高开发效率&…

怎么用住宅代理IP?使用住宅代理IP有哪些好处?

如何使用住宅代理IP: 使用住宅代理IP主要涉及以下几个步骤: 选择合适的代理IP供应商: 考虑供应商的可靠性、代理IP的质量、速度、稳定性以及价格。选择信誉良好且服务稳定的供应商,确保获得高质量的代理IP服务。配置代理IP&#…

2024年中漫谈

不知不觉,2024年已来到了6月,博主不禁感叹时光易逝,岁月的车轮滚滚向前,永不止步,此刻无关贫穷与富裕,伟大与平凡。 于是乎,宇宙(时空)看似毫无终点,一望无垠…

辽宁普通测径仪升级智能测径仪后都有哪些改进?

关键字: 普通测径仪, 智能测径仪, 测径仪升级, 测径仪特点, 智能测径仪优势, 目前多数厂家测径仪的数据处理方式是单片机计算出最终结果,然后传输到工控机后期处理。这样的电路系统对轧钢现场的高温、高粉尘和强电磁干扰的环境适应性很差,使得同一厂家、…

芯片后端对于芯片设计公司的重要性

在芯片设计流程中,后端设计是一个至关重要的环节,它直接关系到芯片从设计到实际生产的转化,以及最终产品的性能、可靠性、成本和上市时间。 以下是为什么芯片后端非常重要的几个关键原因: 物理实现:后端设计是芯片从逻…

【APP移动端自动化测试】第二节.Appium介绍和常用命令代码实现

文章目录 前言一、Appium介绍和安装二、python代码功能实现 2.1 hello appium 参数详解 2.2 在脚本内启动其他app 2.3 获取app的包名和界面名 2.4 关闭app和驱动对象 2.5 安装和卸载以及是否安装app 2.6 将应用置于后台总结 前言 一、Appium介绍…

Vertical Layout 、Horizontal Layout 实验窗体自适应布局

实验目的 学习实验使用布局实现如下自适应界面 窗体邮件,布局设置为垂直布局 用同样的方法,添加groupbox,并右键设置为水平布局 拖入一个Horizontal Layout,然后拖入button,拖入 Horizontal Spacer 遇到一个问题&#…

openh264 帧内预测编码过程源码分析

函数关系 说明: 可以看到完成帧内预测编码的核心函数就是 WelsMdI16x16、WelsMdI4x4、WelsMdI4x4Fast 、WelsMdIntraChroma 四个函数。 原理 WelsMdI16x16函数 功能:针对16x16像素块的帧内模式决策过程: 局部变量申明;根据宏块…

三星公布尖端芯片进展 | 百能云芯

三星电子在本周三举办的年度晶圆制造盛会上,揭开了未来多项技术革新的神秘面纱,并宣布其晶圆制造业务将整合全球领先的记忆芯片、晶圆制造及封装服务,为AI芯片客户提供一站式服务,以加速其生产进程。 三星强调,客户仅需…

万元补贴助力开源项目!「GitCode 开源摘星计划」已开启

当我们谈到开源项目运作的痛点,都在谈什么?找不到对项目感兴趣的开发者,始终是几个人维护…代码托管平台上开源项目众多,得不到有力的流量支持,项目被淹没在茫茫列表里…社区运营要专人来做,成本太高… 这…

【StructueEngineering】Wind Load Combination Patterns风荷载组合模式

文章目录 Combination PatternsBasic Rules of Combinations组合的基本规律Specific Combination Patterns1. First 8 Combinations (1 to 8)2. Middle 8 Combinations (9 to 16)3. Last 8 Combinations (17 to 24) Summary of CombinationsKey Variables and Parameters with …

vue/react/js 常用的原生获取当前页面的url网址的相关方法

目录 第一章 场景 第二章 总结 第一章 场景 最近实现需求时遇到这么一种情况: 本地url —— 线上url —— 需求:需要将token清除掉 注意事项:token不是#/后面的参数,说明并不是我们前端返回的,vue路由的方法使用不…

python的a[:2]、a[:] 和a [::] 的区别

一、a[:2] 数据准备 import numpy as np X np.array([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[16,17],[18,19]]) print(X)形成矩阵 print (“X[: 2]:”, X[: 2]) ### :表示索引 0至1行; 二、a[:]和a [::] 在 Python 中,[:] 和 [::…

Vue30-自定义指令:对象式

一、需求:创建fbind指定 要用js代码实现自动获取焦点的功能! 二、实现 2-1、步骤一:绑定元素 2-2、步骤二:input元素获取焦点 此时,页面初始化的时候,input元素并没有获取焦点,点击按钮&…

CobaltStrike权限传递MSF

一、测试环境 操作系统: 1.VMware17 2.kali 6.1.0-kali5-amd64 3.Win10x64 软件: 1.cs4.0 2.metasploit v6.3.4-dev 二、测试思路 1.cs是一款渗透测试工具,但没有漏洞利用的模块,我们可以在拿到目标主机的权限后,将…