当前位置: 首页 > news >正文

您必须尝试的 4 种经典特征提取技术!

一、说明

        特征提取如何实现?其手段并不是很多,有四个基本方法,作为AI工程师不能不知。因此,本篇将对四种特征提取给出系统的方法。

二、概述

        图像分类长期以来一直是计算机视觉领域的热门话题,并希望能够保持这种状态。为什么不应该呢?随着一次又一次的装备,它配备了机器来回答一个非常基本的问题!“我看到了什么?”尽管听起来引人入胜,但这个问题的答案不仅满足了人们对模仿我们自己的感知和决策能力的事物的渴望,而且开辟了无数的创造性可能性领域。生成式人工智能的最新进展通过利用这些辨别能力来创造创新和创造力的手段,从而改变了范式,以剪切优雅实现了显然不可逾越的壮举。然而,这个领域的每一个进步都围绕着视觉理解的概念,即有效辨别的能力。

        特征提取在确定识别模型的性能方面起着重要作用。基于CNN的特征提取提供了一个自动化框架,但它缺乏可解释性,并且计算成本很高。相反,传统的特征提取技术是劳动密集型的,可能需要领域知识才能在特定情况下成为CNN的更好替代品。在本文中,我们将探讨用于图像分类的 4 种经典特征提取技术。

  1. 定向梯度的直方图
  2. 本地二进制模式
  3. 加博尔过滤器
  4. 灰度共现矩阵

        为了简化理解,下面给出了该技术的逐步说明以及描述性解释。

三、定向梯度直方图 (HOG)

        HOG表示图像中局部梯度的分布。它计算小图像块中的梯度大小和方向,并形成这些方向的直方图,可用作分类的特征。

 

  • 将图像分成小单元格。
  • 计算每个像元中每个像素的梯度(幅度和方向)。
  • 在每个单元格内创建渐变方向的直方图。
  • 归一化直方图以考虑照明和对比度的局部变化。
  • 连接归一化直方图以形成表示图像的最终特征向量。

四、本地二进制模式 (LBP)

        LBP 捕获图像中的局部纹理信息。它根据每个像素的强度值与相邻像素的比较为每个像素定义二进制模式。这些模式的直方图可用作分类特征。

 

  • 将图像划分为小区域(例如,3x3 邻域中的像素)。
  • 阈值中心像素值并将其与其相邻像素进行比较。
  • 如果邻居的值大于或等于,则为其分配二进制值 1;否则,分配 0。
  • 将二进制模式转换为十进制数。
  • 在整个图像中构建十进制值的直方图以创建 LBP 特征表示。

五、加博尔过滤器

Gabor滤波器是一组调谐到不同频率和方向的线性滤波器。它们捕获图像中的局部频率和方向信息。Gabor 滤波器响应可用作纹理分类的特征。

 

  • 定义一组Gabor滤波器,这些滤波器是由高斯包络调制的复杂正弦波模式。
  • 将每个Gabor滤波器与输入图像进行卷积。
  • Gabor滤波器响应突出显示图像中的不同频率和方向信息。
  • 从过滤后的响应中提取特征,通常使用均值、方差或直方图等技术。
  • 生成的特征表示捕获以不同频率和方向存在的纹理和结构信息。

六、灰度共现矩阵 (GLCM)

灰度共现矩阵(GLCM)是另一种用于图像分类的经典特征提取技术。GLCM 根据像素的强度值捕获像素之间的空间关系。

图片 : 5 — 作者

  • 将图像转换为灰度(如果尚未转换为灰度)。
  • 定义距离和角度(或角度集)以指定像素对的相对位置。
  • 通过计算指定距离和角度处像素强度对的出现次数来创建共现矩阵。
  • 对矩阵进行归一化以获得像素强度共现的概率。
  • 从归一化GLCM中提取统计特征(例如,对比度,能量,熵)来表示图像。

七、关键要点

  1. HOG(定向梯度直方图)
  • 有效检测图像中的对象边缘和形状。
  • 对照明和对比度的变化具有鲁棒性。
  • 广泛用于行人检测和物体识别任务。
  • 提供简单有效的图像渐变表示形式。

2. LBP(局部二进制模式)

  • 有效地描述图像中的局部纹理图案。
  • 对照明和对比度的变化不敏感。
  • 可用于纹理背景中的面部识别、纹理分类和对象检测。
  • 易于计算,需要最少的计算资源。

3. GLCM(灰度共现矩阵):

  • 捕获有关图像中纹理和结构的二阶统计信息。
  • 对像素强度之间的空间关系敏感。
  • 常用于纹理分析、遥感和医学成像。
  • 提供对比度、能量和熵等功能,有助于区分不同的纹理。

4. 加博尔过滤器

  • 非常适合捕获图像中的纹理和频率信息。
  • 强调图像的特定频率和方向分量。
  • 适用于纹理分割、指纹识别和人脸识别等任务。
  • 可以组合成一个对各种频率和方向特征进行编码的特征集。

八、结论

        在本文中,我们讨论了四种经典的特征提取技术,它们可以用作计算昂贵的卷积技术的有效替代方案。此外,还简要介绍了这些技术的用例、优缺点。上述技术可以单独使用或组合使用,以产生出色的效果。因此,您应该尝试一下这些技术,并使它们成为您武器库的一部分。

        关注 Medium,了解更多与计算机视觉相关的内容。

        直到下一次,保持幸福!

九、引用

  1. N. Dalal 和 B. Triggs,“用于人类检测的定向梯度直方图”,2005 年 IEEE 计算机学会计算机视觉和模式识别会议 (CVPR'05),美国加利福尼亚州圣地亚哥,2005 年,第 886-893 卷第 1 卷,doi:10.1109/CVPR.2005.177。
  2. A. Hadid,“局部二元模式方法及其在面部分析中的应用”,2008 年第一届图像处理理论、工具和应用研讨会,突尼斯苏塞,2008 年,第 1-9 页,doi:10.1109/IPTA.2008.4743795。
  3. Haralick,Robert & Shanmugan,K&Dinstein,Itshak。(1973). 图像分类的纹理.IEEE 跨系统人网络。3.
  4. KAFUO, ASMAA & DIAF, SAMERA & GONIFEDA, AISHA & ALSHATOURI, ZAMZAM & Baba, Abdullatif.(2017). Gabor滤波及其应用研究综述.10.13140/RG.2.2.11079.50085.

纳比尔汗

 

相关文章:

您必须尝试的 4 种经典特征提取技术!

一、说明 特征提取如何实现?其手段并不是很多,有四个基本方法,作为AI工程师不能不知。因此,本篇将对四种特征提取给出系统的方法。 二、概述 图像分类长期以来一直是计算机视觉领域的热门话题,并希望能够保持这种状态。…...

Unity中Shader的遮罩的实现

文章目录 前言一、遮罩效果的实现主要是使用对应的纹理实现的,在属性中暴露对应的遮罩纹理,对其进行采样后,最后相乘输出即可二、如果需要像和主要纹理一样流动,则需要使用和_Time篇一样的方法实现流动即可 前言 Unity中Shader的…...

架构师成长之路|Redis key过期清除策略

Eviction policies maxmemory 100mb 当我们设置的内存达到指定的内存量时,清除策略的配置方式决定了默认行为。Redis可以为可能导致使用更多内存的命令返回错误,也可以在每次添加新数据时清除一些旧数据以返回到指定的限制。 当达到最大内存限制时,Redis所遵循的确切行为是…...

ubuntu20.04使用privoxy进行http代理转http代理,并定制http代理头(hide-user-agent的使用方法)

#sudo apt-get update;sudo apt install -y privoxy #sudo apt remove privoxyprivoxy --version; rootfv-az1239-825:/tmp# privoxy --version Privoxy version 3.0.28 (https://www.privoxy.org/) rootfv-az1239-825:/tmp# 安装完毕后,先停止服务,修改配置文件,再启动服…...

任意文件读取

文章目录 渗透测试漏洞原理任意文件读取1. 任意文件读取概述1.1 漏洞成因1.2 漏洞危害1.3 漏洞分类1.4 任意文件读取1.4.1 文件读取1.4.2 任意文件读取1.4.3 权限问题 1.5 任意文件下载1.5.1 一般情况1.5.2 PHP实现1.5.3 任意文件下载 2. 任意文件读取攻防2.1 路径过滤2.1.1 过…...

微信小程序餐饮外卖系统设计与实现

摘 要 随着现在的“互联网”的不断发展。现在传统的餐饮业也朝着网络化的方向不断的发展。现在线上线下的方式来实现餐饮的获客渠道增加,可以更好地帮助餐饮企业实现更多、更广的获客需求,实现更好的餐饮销售。截止到2021年末,我国的外卖市场…...

一文速览嵌入式六大出口

嵌入式行业的前景确实十分广阔,并且在许多领域都发挥着重要作用。以下是一些关键点,说明嵌入式系统的发展潜力和前途: 1. 物联网(IoT):嵌入式系统是实现智能家居、智能城市、智能工厂等物联网设备的核心。物…...

华为云云服务器评测 | 宝塔8.0镜像应用

目录 🍒写在前面 🍒产品优势 🍒购买服务器 🍒服务器配置 🍒登录宝塔页面 🦐博客主页:大虾好吃吗的博客 🦐专栏地址:闲谈专栏地址 写在前面 云耀云服务器L实例是新一代开箱…...

构建简单的Node.js HTTP服务器,发布公网远程访问的快速方法

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…...

ModaHub魔搭社区:向量数据库产业的现状与技术挑战

I. 向量数据库的崛起 什么是向量数据库 在过去的一段时间里,向量数据库逐渐在数据库领域崭露头角。那么,什么是向量数据库呢?简单来说,向量数据库是一种专门设计用来处理向量数据的数据库。这些向量数据可以是物理测量、机器学习模型输出、地理空间数据等。向量数据库使用…...

pmp和软件高项哪个含金量高?

人们常将PMP和高项放在一起比较,因为这两种证书都适用于项目经理职位,它们有高达60%的知识点重合度。在决定考哪一种证书之前,人们常常会感到困惑。 下面看一下pmp和软考高项的差异。 发证机构不同 PMP(Project Management Professional)是…...

手把手教你用Vite构建第一个Vue3项目

写在前面 在之前的文章中写过“如何创建第一个vue项目”,但那篇文章写的是创建vue2的 项目。 传送门如何创建第一个vue项目 打开Vue.js官网:https://cn.vuejs.org/,我们会发现Vue 2 将于 2023 年 12 月 31 日停止维护 虽然Vue2的项目还不少&#xff0…...

美创科技获通信网络安全服务能力评定(应急响应一级)认证!

近日,中国通信企业协会公布通信网络安全服务能力评定2023年第一批获证企业名单。 美创科技获得应急响应一级资质,成为2023年第一批获证企业之一! 通信网络安全服务能力评定是对通信网络安全服务单位从事通信网络安全服务综合能力的评定&#…...

计算机视觉与人工智能在医美人脸皮肤诊断方面的应用

一、人脸皮肤诊断方法 近年来,随着计算机技术和人工智能的不断发展,中医领域开始逐渐探索利用这些先进技术来辅助面诊和诊断。在皮肤望诊方面,也出现了一些现代研究,尝试通过图像分析技术和人工智能算法来客观化地获取皮肤相关的…...

RCU501 RMP201-8 KONGSBERG 分布式处理单元

RCU501 RMP201-8 KONGSBERG 分布式处理单元 AutoChief600使用直接安装在主机接线盒中的分布式处理单元。进出发动机的所有信号都在双冗余CAN线路(发动机总线)上传输。 所有不重要的传感器都可以与K-Chief 600报警和监控系统共享,只需要一个主机接口。这一原则大大…...

说说 MVCC 的工作原理?

分析&回答 多版本并发控制(MVCC) InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现。这两个列,一个保存了行的创建时间,一个保存行的删除时间,并不是实际的时间,而是系统版本号。每开始一个新的事务&am…...

微信小程序请求接口返回的二维码(图片),本地工具和真机测试都能显示,上线之后不显示问题

请求后端接口返回的图片&#xff1a; 页面展示&#xff1a; 代码实现&#xff1a; :show-menu-by-longpress"true" 是长按保存图片 base64Code 是转为base64的地址 <image class"code" :src"base64Code" alt"" :show-menu-by-long…...

Python小知识 - 1. Python装饰器(decorator)

Python装饰器&#xff08;decorator&#xff09; Python装饰器是一个很有用的功能&#xff0c;它可以让我们在不修改原有代码的情况下&#xff0c;为已有的函数或类添加额外的功能。 常见的使用场景有&#xff1a; a. 函数缓存&#xff1a;对于一些计算量较大的函数&#xff0c…...

如何访问GitHub

1、手动修改hosts 1.1、查找到最新的GitHub的hosts信息 通过链接&#xff1a;https://raw.hellogithub.com/hosts 进行查找最新的GitHub的hosts信息 1.2、查找到hosts文件位置 先找到 hosts 文件的位置&#xff0c;不同操作系统&#xff0c;hosts 文件的存储位置也不同&…...

【广州华锐互动】智能变电站AR仿真实训系统大大提高培训的效率和质量

随着电力行业的不断发展&#xff0c;变电站的建设和运维变得越来越重要。传统的变电站运维培训方式存在着诸多问题&#xff0c;如难以真实模拟变电站运行环境、信息传递不及时、难以掌握实际操作技能等问题。而智能变电站AR仿真实训系统可以为变电站运维人员带来全新的培训方式…...

手写Mybatis:第11章-流程解耦,封装结果集处理器

文章目录 一、目标&#xff1a;结果集处理器二、设计&#xff1a;结果集处理器三、实现&#xff1a;结果集处理器3.1 工程结构3.2 结果集处理器关系图3.3 出参参数处理3.3.1 结果映射Map3.3.2 结果映射封装3.3.3 修改映射器语句类3.3.4 映射构建器助手3.3.5 语句构建器调用助手…...

金融风控数据分析-信用评分卡建模(附数据集下载地址)

本文引用自&#xff1a; 金融风控&#xff1a;信用评分卡建模流程 - 知乎 (zhihu.com) 在原文的基础上加上了一部分自己的理解&#xff0c;转载在CSDN上作为保留记录。 本文涉及到的数据集可直接从天池上面下载&#xff1a; Give Me Some Credit给我一些荣誉_数据集-阿里云…...

ceph对象三元素data、xattr、omap

这里有一个ceph的原则&#xff0c;就是所有存储的不管是块设备、对象存储、文件存储最后都转化成了底层的对象object&#xff0c;这个object包含3个元素data&#xff0c;xattr&#xff0c;omap。data是保存对象的数据&#xff0c;xattr是保存对象的扩展属性&#xff0c;每个对象…...

使用 BERT 进行文本分类 (03/3)

一、说明 在使用BERT&#xff08;2&#xff09;进行文本分类时&#xff0c;我们讨论了什么是PyTorch以及如何预处理我们的数据&#xff0c;以便可以使用BERT模型对其进行分析。在这篇文章中&#xff0c;我将向您展示如何训练分类器并对其进行评估。 二、准备数据的又一个步骤 …...

Leetcode Top 100 Liked Questions(序号236~347)

236. Lowest Common Ancestor of a Binary Tree 题意&#xff1a;二叉树&#xff0c;求最近公共祖先&#xff0c;All Node.val are unique. 我的思路 首先把每个节点的深度得到&#xff0c;之后不停向上&#xff0c;直到val相同&#xff0c;存深度就用map存吧 但是它没有向…...

MySQL数据库学习【基础篇】

&#x1f4c3;基础篇 下方链接使用科学上网速度可能会更加快一点哦&#xff01; 请点击查看数据库MySQL笔记大全 通用语法及分类 DDL: 数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;DML: 数据操作语言&#xff0c;用来对数据库表中的…...

Kubernetes技术--k8s核心技术Service服务

1.service概述 Service 是 Kubernetes 最核心概念,通过创建 Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。 2.service存在的意义 -1:防止pod失联(服务发现) 我们先说一下什么叫pod失联。 -2:...

OpenHarmony 应用 ArkUI 状态管理开发范例

本文转载自《#2023 盲盒码 # OpenHarmony 应用 ArkUI 状态管理开发范例》&#xff0c;作者&#xff1a;zhushangyuan_ 本文根据橘子购物应用&#xff0c;实现 ArkUI 中的状态管理。 在声明式 UI 编程框架中&#xff0c;UI 是程序状态的运行结果&#xff0c;用户构建了一个 UI …...

二、QTableWidget 类 clear() 和 clearContents() 的区别及程序崩溃原因分析

问题描述&#xff1a;区分 QTableWidget 类的 clear() 和 clearContents() 的用法&#xff0c;以及可能由于这两个方法使用不当导致程序崩溃的原因分析 Qt 官方文档对 QTableWidget 类的 clear() 方法描述如下&#xff1a; [slot] void QTableWidget::clear() Removes all ite…...

spring boot 项目中搭建 ElasticSearch 中间件 一 postman 操作 es

postman 操作 es 1. 简介2. 环境3. postman操作索引3.1 创建索引3.2 查看索引3.3 查看所有索引3.4 删除索引 4. postman操作文档4.1 添加文档4.2 查询文档4.3 查询全部文档4.4 更新文档4.5 局部更新文档4.6 删除文档4.7 条件查询文档14.8 条件查询文档24.9 条件查询文档 limit4…...