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

  

一、说明

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

在这里插入图片描述

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

   在计算机视觉中,特征提取在将原始输入数据(如图像)转换为更易于分析和理解的格式方面起着关键作用。特征提取涉及从输入数据中识别和选择相关信息或特征。这些功能捕获数据的独特模式、结构或特征,使算法更容易解释和做出决策。计算机视觉中特征提取的主要目的包括:
   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.mzph.cn/news/655486.shtml

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

相关文章

pytest框架的基本使用

1. 测试框架的作用 测试框架不关系用例的内容 它关心的是:用例编排和结果收集 2. pytest框架的特点 1. 适用于python语言 2. 用法符合python风格 3. 有丰富的生态 3. 安装pytest框架 1. 新建一个项目 2. 在项目终端窗口输入如下命令,用于安装py…

python字典JSON 和csv文件

JSON与Python字典 Python中的字典与JSON非常类似而且支持嵌套结构。Json通过key取值的过程和python字典通过索引取值过程完全一致。JavaScript数据类型(值)对应的Python数据类型(值) JSONPythonobjectdictarraylist/tuplestring…

使用Hutool工具包解析、生成XML文件

说明&#xff1a;当我们在工作中需要将数据转为XML文件、或者读取解析XML文件时&#xff0c;使用Hutool工具包中的XMLUtil相关方法是最容易上手的方法&#xff0c;本文介绍如何使用Hutool工具包来解析、生成XML文件。 开始之前&#xff0c;需要导入Hutool工具包的依赖 <de…

uniapp瀑布流实现

1. 图片瀑布流&#xff1a; 不依赖任何插件&#xff0c;复制即可见效&#xff1a; <template><view class"page"><view class"left" ref"left"><image class"image" v-for"(item,i) in leftList" :k…

260:vue+openlayers 通过webgl方式加载矢量图层

第260个 点击查看专栏目录 本示例介绍如何在vue+openlayers中通过webgl方式加载矢量图层。在做这个示例的时候,采用vite的方式而非webpack的方式。这里的基础设置需要改变一下。 ol的版本7.5.2或者更高。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文…

【webrtc】‘ninja.exe‘ 不是内部或外部命令,也不是可运行的程序及vs2019 重新构建m98

werbtc 就是用ninja.exe 来构建找到了自己以前构建的webrtc 原版 m98 【m98 】webrtc ninja 构建 、example、tests 及OWT- P2P 项目P2PMFC-E2E-m98G:\CDN\rtcCli\webrtc-checkout\src找到了自己的deptools的路径 deptools里确实没有ninja.exe D:\SOFT\depot_tools\third_party…

14.STM32F4 LCD屏幕字体图片取模软件应用介绍(LCD之二)

一、文字取模软件应用 PCtoLCD2002取模软件主要是针对汉字、字母、数字、符号进行取模。可以根据下图说明对取模软件进行设置。 &#xff08;1&#xff09;界面介绍 &#xff08;2&#xff09;软件设置 &#xff08;3&#xff09;字符取摸举例&#xff1a; ①取摸字体&#…

二叉树及其相关例题

目录 1.树 1.树的基本概念 2.结点之间的的关系描述&#xff08;还是看上面的图&#xff09; 3.结点之间的属性描述 4.有序树和无序树 5.森林 6.遍历顺序 1.前序遍历&#xff1a;从根结点——>根结点左子树——>根结点的右子树&#xff08;中 左 右&#xff…

R语言学习case7:ggplot基础画图(核密度图)

step1: 导入ggplot2库文件 library(ggplot2)step2&#xff1a;带入自带的iris数据集 iris <- datasets::irisstep3&#xff1a;查看数据信息 dim(iris)维度为 [150,5] head(iris)查看数据前6行的信息 step4&#xff1a;画图展示 plot2 <- ggplot(iris,aes(Sepal.W…

海外云手机运营Instagram攻略

Instagram是世界著名的社交媒体平台&#xff0c;有着10亿实时用户&#xff0c;是跨境电子商务的优质流量来源。平台以女性用户为主&#xff0c;购物倾向高&#xff0c;转化率好。它被公认为外贸行业的优质社交媒体流量池。那么&#xff0c;如何使用海外云手机吸引Instagram上的…

表贴式PMSM的直接转矩控制(DTC)MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 表贴式PMSM的直接转矩控制(DTC),直接使用滞环控制对转矩和磁链进行控制&#xff0c;相对于传统的FOC控制而言&#xff0c;其不需要进行解耦变换&#xff0c;在此次的有以下几点需要注意&#xff1a…

血细胞分类项目

血细胞分类项目 数据集&#xff1a;血细胞分类数据集数据处理 dataset.py网络 net.py训练 train.py拿训练集的几张图进行预测 数据集&#xff1a;血细胞分类数据集 https://aistudio.baidu.com/datasetdetail/10278 数据处理 dataset.py from torchvision import transfor…

2024-01-29 ubuntu 用脚本设置安装交叉编译工具链路径方法,设置PATH环境变量

一、设置PATH环境变量的方法,建议用~/.bash_profile的方法&#xff0c;不然在ssh登录的时候可能没有设置PATH. 二、下面的完整的脚本&#xff0c;里面的echo "export PATH$build_toolchain_path:\$PATH" >> $HOME/.bashrc 就是把交叉编译路径写写到.bashrc设置…

Netty源码二:服务端创建NioEventLoopGroup

示例 还是拿之前启动源码的示例&#xff0c;来分析NioEventLoopGroup源码 NioEventLoopGroup构造函数 这里能看到会调到父类的MultiThread EventLoopGroup的构造方法 MultiThreadEventLoopGroup 这里我们能看到&#xff0c;如果传入的线程数目为0&#xff0c;那么就会设置2倍…

/etc/profile错误,命令失效

source /etc/profile后所有命令失效 执行 export PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 修改后 执行:wq! 执行:w !sudo tee %

TCP_拥塞控制

引言 24年春节马上就要到了&#xff0c;作为开车党&#xff0c;最大的期盼就是顺利回家过年不要堵车。梦想是美好的&#xff0c;但现实是骨感的&#xff0c;拥堵的道路让人苦不堪言。 在网络世界中&#xff0c;类似于堵车的问题也存在&#xff0c;而TCP&#xff08;Transmissi…

(一)Spring 核心之控制反转(IoC)—— 配置及使用

目录 一. 前言 二. IoC 基础 2.1. IoC 是什么 2.2. IoC 能做什么 2.3. IoC 和 DI 是什么关系 三. IoC 配置的三种方式 3.1. XML 配置 3.2. Java 配置 3.3. 注解配置 四. 依赖注入的三种方式 4.1. 属性注入&#xff08;setter 注入&#xff09; 4.2. 构造方法注入&a…

【更新】人工智能-55个工具变量汇总(2024年更新)

一、引言 工具变量是一种在统计学和计量经济学中常用的技术&#xff0c;用于处理因果关系研究中的内生性问题。内生性问题通常是由于遗漏变量、双向因果关系或测量误差等原因造成的&#xff0c;这会导致估计结果出现偏误。工具变量的使用可以帮助解决这一问题 整理收集了CSSC…

Android MediaCodec 简明教程(四):使用 MediaCodec 将视频解码到 Surface,并使用 SurfaceView 播放视频

系列文章目录 Android MediaCodec 简明教程&#xff08;一&#xff09;&#xff1a;使用 MediaCodecList 查询 Codec 信息&#xff0c;并创建 MediaCodec 编解码器Android MediaCodec 简明教程&#xff08;二&#xff09;&#xff1a;使用 MediaCodecInfo.CodecCapabilities 查…

【大数据】Flink SQL 语法篇(二):WITH、SELECT WHERE、SELECT DISTINCT

Flink SQL 语法篇&#xff08;二&#xff09; 1.WITH 子句2.SELECT & WHERE 子句3.SELECT DISTINCT 子句 1.WITH 子句 应用场景&#xff08;支持 Batch / Streaming&#xff09;&#xff1a;With 语句和离线 Hive SQL With 语句一样的&#xff0c;语法糖 1&#xff0c;使用…