机器视觉中的特征提取【0】:什么是特征提取,特征提取有什么作用?

article/2025/8/30 6:08:26

1.什么是特征提取?

特征提取的英文叫做feature extractor,它是将一些原始的输入的数据维度减少或者将原始的特征进行重新组合以便于后续的使用。简单来说有两个作用:减少数据维度,整理已有的数据特征。

这里我给一个例子来解释特征提取的第二个作用。那就是我们很熟悉的奖学金评定,我们知道学生的文化课成绩,道德分数,以及各种其他竞赛的成绩。摆在奖学金评定委员会面前的任务就是如何知道一个学生是否具有获得奖学金的特征呢?最简单的来看,假如我们道德成绩不好,比如考试抄袭,我们对此无法容忍,所以已经发现道德成绩不好就有一票否决权。但是对于其他特征就没那么好办了。

这个时候我们就会遇到总分或者加权分等。而这个过程就是特征提取的过程。简单来说,我们就是要通过学生的很多维特征,然后得到一个新的特征,最后的特征是为了让奖学金评定委员会做决定,该授予哪些学生奖学金名额。

对于第一个作用——减少数据维度,我们可以这么理解:我们知道有的时候原始数据的特征很多,而且有的高度相关,有的却又和最终的目的没有关系。比如说上面这个奖学金评定的例子中,我们不仅有学生的文化课成绩,还有学生的身高,去图书馆的次数,年龄,以及家庭环境等等。那么这些数据是否和我们的奖学金评定相关呢?比如说大学中有国家励志奖学金,这类奖学金对家庭收入偏下的同学有倾斜,这时候我们就无法忽略家庭背景。

此外,我么知道有些数据特别巨大,比如等会要讲的图像,每个图像有很多数据,这时候如果直接拿这些原始数据去计算则会非常缓慢,这对我们实时运行没有好处。

2.特征提取有什么作用?

以上就说到特征提取的两个作用,这里重点标出:
1. 减少数据维度
2. 提取或整理出有效的特征供后续使用

3.机器视觉中的特征提取?

本篇博客实际上主要为了机器视觉中的特征提取做准备,后续博客将会系统的介绍机器视觉中的特征提取方法,特别是图像和深度学习相关的特征提取方法

我们知道我们对图像或者视频会做很多的应用,比如分类——判断一个图像属于哪一类,比如给一张包含有猫或者狗的照片,机器要告诉我们这里面是狗还是猫。实际上我们前面的奖学金评定的例子就是一个分类问题,给定学生的相关信息,然后将他们分为授予奖学金的一类和不授予奖学金的一类。但是图像中数据要比奖学金评定中的多得多。

这个时候有人就会问,一个特征怎么表示呢?这也是我这个转专业的人在刚开始比较不懂的问题。实际上特征就是数,如果非要用数学语言表示的话,我们可以理解成两个向量空间。一个向量空间是我们熟悉的有实际意义的空间,比如(数学成绩,英语成绩,发表论文数量,发表论文质量等等),另一个向量空间就是数字,比如(92,100,5,1.0等)
在这里插入图片描述
实际上,我们在计算的时候就是用那些数字去计算某个学生的特征。所以,特征可以理解成数字。而且还可以认为数值越大,特征越强烈(一般我们这么规定)。想象一下在奖学金评定时,你的总分是全校最高的,那么你也就是第一个被选为授予奖学金的人。

但是我们图像领域则没有这么好理解的特征的实际含义。我们很难知道一个图像中猫有怎样的特征,而且特征可能是变化的。因此我们的机器视觉中的任务就是如何去找到一个合适的不变的特征,来衡量我们的目标判断结果。

但是我们机器视觉中的特征提取则有类似的道理,那就是特征就是数字,数值越大,特征越强烈
简单来看,机器视觉领域是这样的一个过程,如下图:
在这里插入图片描述
**一张猫的图片作为输入,然后得到新的特征,然后我们根据这些新的特征计算是否属于猫。**至于怎么根据新的特征计算,那就可以和我们之前奖学金评定一样,可以使用加权平均,或者直接使用平均,虽然可能方法不同,但上层的概念就是一样的。

4.博客后续

我们理解到这里,是刚刚开始机器视觉的第一步,这里我要先抛出一些问题供大家思考,当作抛砖引玉:

  1. 为何图像的特征很难提取,它存在着哪些问题和哪些挑战?
  2. 这些特征需要满足什么条件,也就是说特征的特征是怎样的?
  3. 卷积神经网络作为特征提取的基本原理是什么?
  4. 卷积神经网络的各个版本在改进的过程中遵循了怎样的基本规律?面对如此多的卷积神经网络,我们该何选择?

另外,这里也说一下自己个人感受,由于鄙人是换了专业的,直接到了机器视觉和深度学习领域,因此对图像的基本知识不是那么了解。但是这里也告知后来者(据说转AI方向的人很多),了解深度学习需要一定的各个专业的基础知识。在机器视觉领域,我们想要了解卷积神经网络,则最好理解图像中的各种滤波原理,如边缘提取提取等。

至于怎么去了解这些专业基础知识,我想就不能简单的回答了。但是作为一个换专业的人,或者半路出家的人,毫无疑问,我们必然要花费比那些专业出身的人花更多的精力去了解。我个人认为,系统性的方法并不一定就是最好的方法,相反,一定的查漏补缺是学习过程中十分必要的方法。

欢迎订阅本博客的后续博客。后续博客将主要着眼于卷积神经网络在特征提取中的发展过程及其基本原理,也就是理论部分。

5.后续论文列表:

1 AlexNet, ZFNet - ImageNet Classification with Deep Convolutional Neural Networks - Visualizing and Understanding Convolutional Networks
2 GoogleNet (Inception, Inception v2-v3) - Going Deeper with Convolutions - Rethinking the Inception Architecture for Computer Vision
3 VGGNet Very deep convolutional networks for large-scale image recognition
4 ResNet Deep Residual Learning for Image Recognition
5 Inception v4, Inception-ResNet Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
6 PolyNet PolyNet: A Pursuit of Structural Diversity in Very Deep Networks
7 ResNeXt Aggregated Residual Transformations for Deep Neural Networks
8 Residual Attention Net Residual Attention Network for Image Classification
9 DenseNet Densely Connected Convolutional Networks
10 FractalNet FractalNet: Ultra-deep neural networks without residuals
11 DualPath Net Dual Path Networks
12 SENet Squeeze-and-Excitation Networks
13 FPNet Feature Pyramid Networks for Object Detection
14 NASNet, PNASNet - Learning Transferable Architectures for Scalable Image Recognition - Progressive Neural Architecture Search
15 Dilated Convolutions Dilated Residual Networks
16 Deformable Convolutions Deformable Convolutional Networks
17 DiCENet DiCENet: Dimension-wise Convolutions for Efficient Networks
18 XceptionNet
19 ShuffleNet
20 MobileNets

为何要点赞?

如果本文解决了你的困惑,不妨点个赞鼓励一下。
不管你信不信,也不管你同不同意,实际上,你的每一次点赞都标志着你自身的进步。而打赏乃是点赞的高级形式
曾经有无数个点赞的机会,但是我都没有好好珍惜,假如时光可以倒流,我一定为他们也为自己点赞。


http://chatgpt.dhexx.cn/article/rRF4eZcK.shtml

相关文章

c语言结构体学习整理(结构体初始化,结构体指针)

渣渣c的c语言学习之路 1.关于c语言的结构体: 首先我们为什么要用到结构体,我们都已经学了很多int char …等类型还学到了同类型元素构成的数组,以及取上述类型的指针,在一些小应用可以灵活使用,然而,在我们实际应用中…

C语言----初始结构体详解

此文是作者初次学习C语言的时候,写的笔记博文,如有错误请及时指正,谢谢!!! 目录 1,什么是结构体 2. 结构体的声明 2,1结构体声明 2,2结构体成员的类型 2,…

openVAS 介绍

含义及作用: OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。 OpenVAS 的功能包括非认证测试、认证测…

040 OpenVAS的下载与安装

文章目录 一:OpenVAS的下载二:OpenVAS的安装2.1:中文版本步骤2.2:英文版本步骤 一:OpenVAS的下载 OpenVAS是开源的网络漏洞扫描器,自从Nessus收费了之后,分支出来的免费的 官网:htt…

Linux 漏洞扫描 openvas

什么是OpenVAS OpenVAS是一款开源的漏洞扫描攻击,主要用来检测网络或主机的安全性。其强大的扫描能力来自于集成数万个漏洞测试程序,这些测试程序以插件的形式提供,可以从官方网站免费更新. 一套完整的OpenVAS系统如下图显示 ① 客户层组件 …

关于openvas

目录 一:什么是openvas 二:作者 三:系统简介 四:建立架构 五:openvas功能 六:OpenVAS的核心组件 七:OpenVAS部署 八:openvas的组件构成 一:什么是openvas OpenV…

openvas

目录 一、openvas的简介 1、简介 2、建立的构架 二、openvas的环境 三、openvas的组件构成 四、openvas安装及使用 一、openvas的简介 1、简介 OpenVAS是开放式漏洞评估系统,也可以说它是⼀个包含着相关⼯具的⽹络扫描器。其核⼼部件是⼀个服务器,包括…

风险评估系统OpenVAS配置使用教程说明

penVAS是一款免费的开放式风险评估工具,可以检测远程系统和应用程序中的安全问题。最初作为Nessus一个子工具,被称为 GNessUs。其特点就是允许继续免费开发。最早是由Portcullis Computer security公司的渗透测试人员发布的,之后由Slashdot网…

OpenVas 漏洞扫描器使用教程

Openvas简介 Openvas是开源的,是Nessus项目分支,用于管理目标系统的漏洞,检测目标网络或主机的安全性。它的评估能力来源于数万个漏洞测试程序,openvas 早起版本还有一个客户端,现在的版本已经不提供客户端程序&#…

OpenVAS介绍

一、背景: OpenVAS(Open Vulnerability Assessment System)是开放式漏洞评估系统,其核心部分是一个服务器。该服务器包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。OpenVAS不同与传统的漏洞扫描…

openVAS简介

文章目录 openVAS一、openVAS开发团队二、openVAS背景三、openVAS作用四、openVAS部署kali部署部署openVAS镜像简单使用新建目标(target)新建任务(tasks)开始扫描扫描详情下载报告 openVAS O p e n V A S 是 开 放 式 漏 洞 评 估…

OpenVAS 安装及基本配置

OpenVAS 安装及基本配置 1 .概要 系统简介 OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。建立架构 OpenVAS是…

5.数据验证

数据验证 1、数据绑定失败:比如需要数字却输入了字母; 2、数据不合法:可以认为是业务错误,通过自定义验证器验证,如用户名长度必须在5-20之间,我们却输入了100个字符等; 3、错误对象&#xff1a…

认证篇——消息认证码

目录 一、消息认证码介绍 1)消息认证码的使用步骤: 2)消息认证码的密钥配送问题: 3)消息认证码的实例: 4)消息认证码的实现: 二…

获得验证信息

用的最多的验证信息为URL,TEXT,TITLE 以百度为例 from selenium import webdriverurl "https://www.baidu.com/" driver webdriver.Chrome() driver.get(url) driver.maximize_window() ### 获取当前页面的title title driver.title prin…

密码框验证信息

效果展示&#xff1a; 代码展示 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><link rel"stylesheet" type"text/css" href"fontss2/iconfont.css" /><style&g…

信息认证技术

这个章节会介绍一些比较有意思的东西&#xff0c;例如哈希函数&#xff0c;数字签名&#xff0c;身份认证等&#xff01; 1.一个安全的认证 系统应满足什么样的条件&#xff1f; 合法的接受者能够检验所接受消息的合法性和真实性 合法的发送方对所发送的消息无法进行否认 除了合…

验证登录信息

验证登录信息 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术&#xff1a;Visual Studio 作者&#xff1a;李继金 撰写时间&#xff1a;2019年 5月24日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 每个项目都会有登录页面&#xff0c;…

如何识别验证码

http://www.jianblog.com/2009/02/09/574/ 周俭 Blog 基于OpenCV的PHP图像人脸识别技术 二月 9, 2009 at 10:13 上午 由 catch Filed under PHP, 编程 今天无意中发现用OpenCV可以实现人脸识别。找个时间研究下用来识别验证码看可行不&#xff1f;呵呵。。 安装测试了一下&am…

功能验证流程

下图显示了功能验证流程&#xff1a; 这个验证过程可以被分解成三个主要阶段&#xff1a; 制定验证策略和验证计划&#xff1b; 创建验证平台&#xff0c; 运行和调试&#xff1b; 覆盖率分析和回归测试&#xff1b; &#xff11; 制定验证策略和验证计划阶段 制定验证策略和验…