计算机视觉:高级图像处理,满足您的所有需求。

news2024/11/18 9:24:22

  

一、说明

   特征提取是机器学习管道中的关键步骤,可增强模型在不同数据集上的泛化和良好表现能力。特征提取方法的选择取决于数据的特征和机器学习任务的具体要求。本文揭示图像处理的数学原理,实现增强的计算机视觉

在这里插入图片描述

二、关于计算机视觉的普遍问题

   在计算机视觉中,特征提取在将原始输入数据(如图像)转换为更易于分析和理解的格式方面起着关键作用。特征提取涉及从输入数据中识别和选择相关信息或特征。这些功能捕获数据的独特模式、结构或特征,使算法更容易解释和做出决策。计算机视觉中特征提取的主要目的包括:
   1. 降维:特征提取通常通过以更紧凑和有意义的形式表示数据来降低数据的维度。这种减少有助于更有效地处理和存储信息。
   2.突出显示相关信息:从图像中提取的特征会突出显示感兴趣的特定方面,例如边缘、角落、纹理或关键点。这些功能对于对象识别、图像分类和场景理解等任务至关重要。
   3.增强鲁棒性:通过关注基本特征,计算机视觉算法对照明条件的变化、视点变化以及可能影响图像中对象外观的其他因素变得更加稳健。
助长歧视:提取的特征用作区分不同对象或类的判别元素。它们捕获数据的独特方面,有助于准确识别和分类。
   4.为机器学习准备数据:特征提取是为机器学习模型准备数据的关键步骤。通过表示具有相关特征的图像,学习算法可以更好地概括数据中的模式和关系。
提高计算效率:提取相关特征可减少后续处理步骤的计算负载。它允许算法专注于数据中信息量最大的方面,从而实现更快、更高效的计算。
让我们更深入地研究一些特征提取方法的理论方面:

三、边缘检测:

   边缘检测旨在识别图像中强度发生显著变化的区域。边缘通常表示图像中的对象边界或重要结构。Canny 边缘检测器是一种流行的方法,涉及多个步骤,包括梯度计算、非最大值抑制和滞后边缘跟踪。

3.1 梯度算子

   边缘检测通常涉及计算图像强度的梯度。图像 f(x,y) 的梯度 (∇f) 是使用带有导数滤波器(例如,Sobel 或 Prewitt 算子)的卷积计算的:

在这里插入图片描述

   梯度 (M) 的大小计算公式为:
在这里插入图片描述
计算梯度幅度
方向(θ)确定为:
在这里插入图片描述

   Canny边缘检测器还涉及非最大值抑制和迟滞阈值。让我们深入了解它是如何运作的。

3.2 非最大值抑制:

   在计算每个像素的梯度幅度 (M) 和方向 (θ) 后,应用非最大值抑制以缩小边缘并仅保留梯度方向的局部最大值。这个想法是确保检测到的边缘沿梯度方向具有清晰而锐利的响应。

   对于每个像素,非最大值抑制涉及将像素的梯度幅度与其相邻像素在梯度方向上进行比较。如果像素处的梯度幅度大于其相邻像素,则保留该像素;否则,它将被抑制。

   设 M(x,y) 为梯度大小,θ(x,y) 为像素 (x,y) 处的梯度方向。非最大值抑制可以表示为:
在这里插入图片描述

   这里,M 1 和 M2 是两个相邻像素沿梯度方向的梯度大小。

3.3 迟滞阈值

   应用迟滞阈值来区分强边沿、弱边沿和噪声。它涉及设置两个阈值:高阈值(T 高)和低阈值(T低)。梯度幅度高于 T 高的像素被视为强边缘,而介于 T 低和 T高之间的像素被视为弱边缘。

   然后,该算法沿着强边进行跟踪,并将弱边连接到强边(如果它们形成连续路径)。这有助于在抑制噪点的同时保留边缘。

   滞后阈值可以表示为:
在这里插入图片描述

   此过程通常使用深度优先搜索或类似技术来实现,以跟踪和连接薄弱边缘,形成连贯的边缘贴图。

   总之,非极大值抑制可确保仅保留梯度方向上的局部最大值,而滞后阈值有助于区分强边和弱边,并将它们连接起来以形成更鲁棒的边缘贴图。

四、角落检测(Harris Corner Detection)

4.1 结构张量计算

   对于给定的像素 (x,y),第一步是计算结构张量 M,这是一个 2x2 矩阵,表示图像中的局部强度变化。结构张量定义为:
在这里插入图片描述

   张量计算
   其中 Ix 和 Iy 是像素 (x,y) 处的图像梯度,w(x′,y′) 是以 (x,y) 为中心的窗口函数。

4.2 转角响应功能

   转角响应函数 R 由结构张量 M 的特征值(λ 1 和 λ2)计算得出:
在这里插入图片描述

   这里,det(M) 是 M 的行列式,trace(M) 是 M 的迹线,k 是经验确定的常数(通常在 0.04 到 0.06 的范围内)。

4.3 拐角识别

   在计算每个像素的角响应函数后,通过选择具有高角响应值的像素来识别角。一种常见的方法是对角响应函数进行阈值设置阈值,并将响应值高于特定阈值的像素视为角
在这里插入图片描述

拐角识别

4.4 纹理特征分析

   局部二进制模式(LBP)是一种纹理分析方法,用于捕获图像中像素强度的局部模式。它对于表征图像中的纹理和图案特别有用。以下是 LBP 的详细说明:

   对于给定像素 (x,y),LBP 是通过将中心像素的强度与其相邻像素的强度进行比较来计算的。如果相邻像素的强度大于或等于中心像素的强度,则通过为其分配值 1 来生成二进制图案;否则,将分配值 0。对预定义的圆形邻域中的所有邻居重复此过程。

   设 P 为邻域中的采样点数,R 为圆形邻域的半径。像素 (x,y) 的 LBP 值计算如下:
在这里插入图片描述

这里
在这里插入图片描述

4.5 颜色直方图

   颜色直方图表示图像中颜色强度的分布。它提供了图像中存在的颜色的定量描述,这对于各种计算机视觉任务很有用。

   1)色彩空间转换:

   在计算颜色直方图之前,通常会将图像转换为分隔其颜色通道的颜色空间。常见的色彩空间包括 RGB(红色、绿色、蓝色)、HSV(色相、饱和度、值)或 LAB (CIELAB)。让我们假设 RGB 用于此解释。

   2)分箱:

   在颜色直方图中,颜色空间被划分为一组条柱或离散区间。每个箱子对应于一系列颜色强度。条柱的数量决定了直方图的粒度。例如,如果我们对 RGB 空间中的每个颜色通道使用 256 个 bin,我们将覆盖所有可能的强度(0 到 255)。

   3)直方图的计算:

   对于图像中的每个像素,颜色值被量化到相应的条柱中。落入每个图格的像素计数被累加以形成直方图。

   在数学上,设 H(ci) 是颜色通道 i 的直方图,其中 i 可以是红色 (R)、绿色 (G) 或蓝色 (B)。直方图的计算公式为:
在这里插入图片描述

   每个通道的色彩量化
这里:

N 是条柱数。
δ 是狄拉克 delta 函数,当 ci 落在第 j 个 bin 内时,它等于 1,否则等于 0。

4.6 定向梯度直方图 (HOG):

   定向梯度直方图 (HOG) 是一种广泛用于计算机视觉中用于目标检测的特征描述符。它捕获有关图像中局部渐变方向的信息。HOG算法包括以下步骤:

   对于图像中的每个像素,计算梯度大小和方向。这可以使用带有 Sobel 滤波器的卷积或任何其他梯度计算方法来完成。按照前面对边缘检测的解释,计算 G:梯度幅度和 θ:梯度方向。

   将图像分成小单元(例如,8x8 像素)。每个单元格都包含梯度方向的局部直方图。对于每个单元格,计算梯度方向的直方图。直方图是通过根据梯度大小的方向将梯度大小累积到条柱中来创建的。将单元格分组为更大的块(例如,2x2 单元格)。对每个块内的直方图进行归一化,以提高对照明和对比度变化的不变性。将所有块的归一化直方图连接起来,形成图像的最终 HOG 描述符。

   数学:

   设 M 是单元格数,N 是直方图中的条柱数,B 是块数。HOG 描述符 H 的形成方式如下:

H = [ H 1 , H 2 , . . . , H B ] H=[H 1,H2,...,HB] H=[H1H2,...,HB]

   其中每个 Hb 是块 b 的归一化直方图。归一化通常使用 L2 范数完成:
在这里插入图片描述

   在这里,ε 是一个添加到分母上的小常数,以避免除以零。

   HOG 描述符可用于各种计算机视觉任务,例如对象检测和行人识别。

五、主成分分析(PCA)

   PCA 是一种降维技术,用于将高维数据转换为低维空间,同时保留最重要的信息。它通常应用于图像数据、特征向量或任何有利于降维的数据集。

   PCA 首先使数据均值居中,确保每个特征的均值为零。计算协方差矩阵以了解不同特征之间的关系。求协方差矩阵的特征向量和特征值。选择与最大特征值对应的前 K 个特征向量。按降序对特征值进行排序,并选择前 K 个特征向量以形成矩阵。将以均值为中心的数据投影到所选主成分所跨越的子空间上。

5.1 关键概念:

   特征值和特征向量:特征值表示沿相应特征向量方向的方差量。特征值越大,表示变异性越显著的方向。
主成分:主成分是协方差矩阵的特征向量。每个主成分表示原始特征空间中的一个方向。
   方差保留:PCA 允许用户根据要保留的数据中所需的方差量来选择要保留的主成分数量。
   降维:数据的维数从 D 维降低到 K 维 (K≤D)。
PCA 是预处理数据、降低噪声和提高机器学习算法效率的宝贵工具,尤其是在处理高维数据集时。

5.2 熵

   香农熵以克劳德·香农(Claude Shannon)的名字命名,是一组数据中不确定性或信息含量的度量。在信息论的背景下,它量化了与随机变量结果相关的意外或不可预测性的平均数量。

   概率分布为 P(x) 的离散随机变量的香农熵 (H) 公式由下式给出:
在这里插入图片描述

   香农熵
   这里:

  •    Xi 表示随机变量 X 的每个可能结果。
  •    P(习) 是 习 发生的概率。
  •    总和将涵盖所有可能的结果。

   1) 解释:熵越高表示数据中的不确定性或无序性越高,而熵越低表示可预测性越强。

   2) 单位:如果对数以 2 为底,则以位为单位测量熵。在实践中,对数的底数取决于概率的测量单位(例如,以 e e 为底的自然对数或以 10为底的对数)。

   3) 信息论中的熵:在信息论中,熵用于量化表示消息信息内容所需的平均位数或与从源接收符号相关的平均“惊喜”。

   在图像的上下文中,香农熵可用于测量像素强度中的信息量或复杂性。图像中具有更均匀像素强度的图像可能具有较低的熵,而具有不同强度的图像可能具有较高的熵。

   在训练机器学习模型之前,将特征提取方法作为预处理步骤应用。确保所选功能符合特定任务的要求。将提取的特征作为输入集成到机器学习模型(例如,SVM、随机森林、神经网络)中。根据提取的特征对超参数进行微调。

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

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

相关文章

DL/T645、IEC104转MQTT网关BE113

随着电力系统信息化建设和数字化转型的进程不断加速,对电力能源的智能化需求也日趋增强。健全稳定的智慧电力系统能够为工业生产、基础设施建设以及国防建设提供稳定的能源支持。在此背景下,高性能的工业电力数据传输解决方案——协议转换网关应运而生&a…

【动态规划】【图论】【C++算法】1575统计所有可行路径

作者推荐 【动态规划】【字符串】【行程码】1531. 压缩字符串 本文涉及知识点 动态规划汇总 图论 LeetCode1575统计所有可行路径 给你一个 互不相同 的整数数组,其中 locations[i] 表示第 i 个城市的位置。同时给你 start,finish 和 fuel 分别表示出…

github添加 SSH 密钥

1 打开终端 输入 ssh-keygen -t rsa -b 4096 -C "github邮箱地址"如果不需要密码可以一路回车 出现这个页面就是生存成功了 open ~/.ssh // 打开.ssh 找到id_rsa.pub复制出内容新建ssh密钥输入内容,保存即可

JavaWeb中的Filter(过滤器)和 Listener(监听器)

提示:这两个东西听起来似乎很难,实际上是非常简单的,按照要求写就行了,一定不要被新名词给吓到了。 JavaWeb中的Filter(过滤器) 一、Filter(过滤器)1.如何编写 Filter2.Filter 中的细…

webassembly003 TTS BARK.CPP

TTS task TTS(Text-to-Speech)任务是一种自然语言处理(NLP)任务,其中模型的目标是将输入的文本转换为声音,实现自动语音合成。具体来说,模型需要理解输入的文本并生成对应的语音输出&#xff0…

Day01-变量和数据类型课后练习-参考答案

文章目录 1、输出你最想说的一句话!2、定义所有基本数据类型的变量和字符串变量3、用合适类型的变量存储个人信息并输出4、定义圆周率PI5、简答题 1、输出你最想说的一句话! 编写步骤: 定义类 Homework1,例如:Homewo…

85 C++对象模型探索。数据语义学 - 继承多个类,且是虚基类的数据内存模型分析。虚基类表,虚基类表指针

前面我们分析了 继承多个类的情况。上一次分析的这样的情况: 今天看虚基类。先复习一下虚基类:类似下面这样的图 复习虚基类可以解决的问题: 在这之前先要复习一下多继承同一个爷爷类时带来的问题 空间问题 效率问题 二义性问题 //虚基类问…

数据库管理-第141期 DG PDB - Oracle DB 23c(20240129)

数据库管理141期 2024-01-29 第141期 DG PDB - Oracle DB 23c(20240129)1 概念2 环境说明3 操作3.1 数据库配置3.2 配置tnsname3.3 配置强制日志3.4 DG配置3.5 DG配置建立联系3.6 启用所有DG配置3.7 启用DG PDB3.8 创建源PDB的DG配置3.9 拷贝pdbprod1文件…

TCP/IP网络模型

大家好我是苏麟 , 今天聊聊TCP/IP四层网络模型 . 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 应用层 最上层的,也是我们能直接接触到的就是应用层(Application Layer),我们电脑或手机使用的应用软件都…

测试ASP.NET Core项目调用EasyCaching的基本用法(InMemory)

EasyCaching属于开源缓存库,支持基本缓存方式及高级缓存用法,提高用户操作缓存的效率。EasyCaching支持的缓存方式包括以下类型,本文学习最基础的InMemory方式的基本用法。   EasyCaching.InMemory包属于基于内存的缓存库,使用的…

C语言——指针进阶(四)

目录 一.前言 二.指针和数组笔试题解析 2.1 二维数组 2.2 指针笔试题 三.全部代码 四.结语 一.前言 本文我们将迎来指针的结尾,包含了二维数组与指针的试题解析。码字不易,希望大家多多支持我呀!(三连+关注&…

JavaWeb后端登录校验功能(JWT令牌技术,Cookie技术,Session,拦截技术,过滤器)

目录 一.登录校验功能(解决直接通过路径访问) 1.实现思路 二.会话技术 ​编辑 1.Cookie技术 2.Session 3.令牌技术 1.简介 2.如何生成和解析 3.令牌的使用 三.Filter过滤器 1.什么是过滤器 2.实现步骤: 3.过滤器执行流程 4.拦截路径 5.过…

349. 两个数组的交集(力扣LeetCode)

文章目录 349. 两个数组的交集题目描述数组解题set容器解题该思路数组版解题 349. 两个数组的交集 题目描述 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入&a…

【Linux】Linux下多线程

需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;优惠多多。&#xff08;联系我有折扣哦&#xff09; 文章目录 1. 前置&#xff1a;进程地址空间和页表1.1 如何看待进程地址空间和页表1.2 虚拟地址…

练习12.6_横向射击_Python编程:从入门到实践(第3版)

编写一个游戏&#xff0c;将一艘飞船放在屏幕左侧&#xff0c;并允许玩家上下移动飞船。在玩家按空格键时&#xff0c; 让飞船发射一颗在屏幕中向右飞行的子弹&#xff0c;并在子弹从屏幕中消失后将其删除。 ship_shooting.py import pygame import sys from leftship impor…

​ArcGIS Pro 如何批量删除字段

在某些时候&#xff0c;我们得到的图层属性表内可能会有很多不需要的字段&#xff0c;如果挨个去删除会十分的麻烦&#xff0c;对于这种情况&#xff0c;我们可以使用工具箱内的字段删除工具批量删除&#xff0c;这里为大家介绍一下使用方法&#xff0c;希望能对你有所帮助。 …

[C++历练之路]C++中的继承小学问

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; &#x1f354;前言&#xff1a; C中&#xff0c;继承是一种面向对象编程的重要概念&#xff0c;它允许一个类&#xff08;子类/派生类&#xff09;从另一个类&#xff08;父类/基类&#xff09;继承属性和方法。继承是…

C语言系列-整数在内存中的存储大小端字节序

&#x1f308;个人主页: 会编程的果子君 ​&#x1f4ab;个人格言:“成为自己未来的主人~” 目录 整数在内存中的存储 大小端字节序和字节序判断 什么是大小端 为什么会有大小端 练习 整数在内存中的存储 在讲解操作符的时候&#xff0c;我们就讲过了下面的内容 整数的2…

HashMap基本使用

特点&#xff1a; ①HashMap是Map里面的一个实现类。②没有额外需要学习的特有方法&#xff0c;直接使用Map里面的方法就可以了。③特点都是由键决定的&#xff1a;无序、不重复、无索引④HashMap跟HashSet底层原理是一模一样的&#xff0c;从名字可以看出来&#xff0c;都是哈…

MySQL原理(一)架构组成(2)逻辑模块组成

总的来说&#xff0c;MySQL可以看成是二层架构&#xff0c;第一层我们通常叫做SQL Layer&#xff0c;在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的&#xff0c;包括权限判断&#xff0c;sql解析&#xff0c;执行计划优化&#xff0c;query cache的处理等等&…