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

图像处理中底层、高层特征、上下文信息理解

1.图像的语义信息:


图像的语义分为视觉层、对象层和概念层。
视觉层即通常所理解的底层,即颜色、纹理和形状等等,这些特征都被称为底层特征语义;
对象层即中间层,通常包含了属性特征等,就是某一对象在某一时刻的状态;
概念层是高层,是图像表达出的最接近人类理解的东西。
通俗点说,比如一张图上有沙子,蓝天,海水等,视觉层是一块块的区分,对象层是沙子、蓝天和海水这些,概念层就是海滩,这是这张图表现出的语义。

2.图像的底层、高层特征:


2.1图像的低层特征:
图像底层特征指的是:轮廓、边缘、颜色、纹理和形状特征。
边缘和轮廓能反映图像内容;如果能对边缘和关键点进行可靠提取的话,很多视觉问题就基本上得到了解决。图像的低层的特征语义信息比较少,但是目标位置准确;

2.2图像的高层特征:
图像的高层语义特征值得是我们所能看的东西,比如对一张人脸提取低层特征我们可以提取到连的轮廓、鼻子、眼睛之类的,那么高层的特征就显示为一张人脸。高层的特征语义信息比较丰富,但是目标位置比较粗略。
愈深层特征包含的高层语义性愈强、分辨能力也愈强。我们把图像的视觉特征称为视觉空间 (visual space),把种类的语义信息称为语义空间 (semantic space)

3.我们是如何通过神经网络来判别这是一只猫的?

 训练好的神经网络会在复杂运算后得到关于一张图片的响应值(可以是实数,也可以是实向量),我们会根据这个响应值按照预先设置的先验规则来得到最终的判别值。比如我们的规则是这个值大于0.5就判别为猫,小于0.5就判别为非猫。我们的网络得到0.8,所以判别为猫。

响应值是如何计算出的?

那么关键就在于最后的神经网络的响应值是如何得到的?请允许锦恢进行一段潦草的说明。

由于卷积神经网络每一个卷积核在单层中只能计算相邻区域的像素点的响应,所以,在第一层中,我们的网络只能计算出每一个小的像素区域的响应值,比如,第一层的某个卷积核就只能计算下图中蓝框框出来的区域中的所有像素的响应值:


 

这片单个卷积核在原图上能够计算的响应区域被我们称为该卷积的感受野。很明显,第一层的卷积核的感受野很小,这么小的感受野对应的像素点是什么?石灰?沙发?如此小的感受野区域是极难得到关于这个像素是什么这样的信息的,讲得认真点,小感受野对应区域的特征空间太小啦,小到无法与标签空间构成满射。事实上,这就是我们所说的图像的语义信息,因此小的像素区域是难以得到关于图像的高阶语义信息的,因为感受野太小了。

我们继续,进入卷积层的第二层:

第二层基于第一层卷积进行卷积,很明显,它对应的感受野会比第一层卷积核的感受野大,能够计算原图更大区域对应区域的响应值,比如下图中橙色区域对应的区域。

实际神经网络工作时得到的响应值可不是上图的原图,此处只是为了描述方便才贴的原图

事实上,第一层的卷积核在提取区域的同时,还会对所提取区域的色彩,纹理模式等信息进行计算,这种计算可以看成一种临时的隐性编码。因此,到第二层卷积层时,卷积核得到的不仅是一组像素点在更大的原图区域上的响应,还有颜色,纹理等编码信息,用于分类猫猫的特征空间变大了。在这一层中,网络可能得到了原图的轮廓信息,梯度信息等等。

后面的图懒得画了。。。

待神经网络运行到了最后一层时,卷积核的感受野已经能够几乎覆盖原图所有区域,而且每层传递的隐性的编码信息已经将原本的特征空间张得很大了,此时便可以很方便得使用线性分类器:

来区分了。

因此,非常非常不科学地讲,为什么深层地特征图具备更加丰富的语义信息呢?我认为主要有两点:

  • 深层网络的感受野更大,大感受野下才存在一定的高阶语义。
  • 深层网络所积累的特征空间更大。

4.上下文信息理解

从语义角度出发,举例说明。

 问,中央的两位球员在做什么?

那首先第一步,我得找到球员。

而事实上,计算机看着这玩意就是一堆像素,一个像素是分辨不出球员的,因此需要一个窗口,这个窗口在整张图中滑动,并找到球员的头,身体,手臂等等。

这个窗口就是每个像素点的上下文(context),也即邻域信息,其可以自然表征图像的局部语义。

好的,我们记录下来球员每个部位的姿态了,那么下一个问题来了,他在干啥?

当我们仅仅着眼于上下文时,其实并无法获知他在干嘛,他可能是在投篮,也可能是在跳高,甚至可能是在跳舞。但是如果将全图的元素,包括篮球,球场,观众都综合下来,就可以确定他在投篮了。全图的综合就是全局信息(global)。全局信息可以协助更好地描述局部语义信息,早期的分割方法中的ASPP模块就有这种思想。

那其实这个问题已经解决了,但是这相当于我们用小孔浏览了一圈然后把图中所有元素拼合在一起,但其实这样并不好。图中存在一些东西它们距离很远,但是有很强的语义联系,就像这张图中的球员和篮球,如果能同时涵盖二者,就可以直接理解这幅图。这种关系叫做远距依赖性(long distance dependency),这种依赖不仅存在于图像中,更是存在于视频的不同帧里,非常推荐读一下non local那篇文章,作为前transformer时代一个自注意力模型,讲得很清楚。

ok,图内的信息我们基本提取完了,那我们来回答他到底在做什么?那其实会发现以下回答都是正确的: 1.在运动,2.打篮球,3.投篮。你会发现其实123有隶属关系,你要回答哪个仅仅取决于问问题的人想要哪个层次的回答。这种层次就是语义粒度,粒度这个词常见的一种场合是细粒度分类,比如分出这个动物是猫是狗就属于粗粒度,而分出这只猫属于哪个品种,就属于细粒度了。

参考

​​​​c对图像中语义信息、高层和底层特征的理解

深度学习(图像领域)中总是提到的上下文信息,全局信息,长距离依赖,粒度分别是什么意思呢,有什么区别?

相关文章:

图像处理中底层、高层特征、上下文信息理解

1.图像的语义信息: 图像的语义分为视觉层、对象层和概念层。 视觉层即通常所理解的底层,即颜色、纹理和形状等等,这些特征都被称为底层特征语义; 对象层即中间层,通常包含了属性特征等,就是某一对象在某一时刻的状态&a…...

负载均衡的算法(静态算法与动态算法)

1.静态算法 静态算法是不考虑服务器动态负载的算法,包括: (1)轮转算法:轮流将服务请求(任务)调度给不同的节点(即:服务器)。 (2)加…...

mac安装jdk

1、下载jdk(我的电脑要下载arm版,截图不对) Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/#jdk17-mac 2、双击安装...

WIN11+OPENCV4.8 编译及下载失败处理方法

1. 基础准备 1. 下载Opencv和Contrib库 Opencv:Releases opencv/opencv GitHub Contrib:Tags opencv/opencv_contrib GitHub 2. 安装Visual Studio 或 MinGW64 MinGW:Tags opencv/opencv_contrib GitHub 这里安装1.12.0 MinGW 。 以…...

万宾科技智能井盖传感器怎么使用?

时代在进步,科技在更新,人们身边的万事万物都在随着时代的脚步不断的前进。各种各样高科技技术在城市基础设施建设的过程中得到应用,很多智能产品不仅施工方便,而且可以向政府部门提供精准的数据,提高了相关管理人员的…...

Server Name Indication(SNI),HTTP/TLS握手过程解析

Server Name Indication(SNI)是一种TLS扩展,用于在TLS握手过程中传递服务器的域名信息。在未使用SNI之前,客户端在建立TLS连接时只能发送单个IP地址,并且服务器无法知道客户端请求的具体域名。这导致服务器需要使用默认…...

react项目实现文件预览,比如PDF、txt、word、Excel、ppt等常见文件(腾讯云cos)

使用腾讯云文档预览&#xff0c;需要开通文档预览功能&#xff0c;该功能需要收费的。 使用限制 如果需要图片预览、视频或音频可以使用获取下载链接。 页面代码 <button onClick() > {handleClick(myself/文档.xlsx)}>预览</button><div style{{ height:…...

ES SearchAPI----Query DSL语言

文章目录 Getting Startedmatch_all查询全部sort排序from\size分页_source指定字段 match匹配查询match_phrase短语匹配multi_match多字段匹配range范围查询bool复合查询must必须匹配&#xff0c;可贡献得分must_not必须不匹配&#xff0c;可贡献得分should可有可无&#xff0c…...

【STM32】HAL库——串口中断只接收到两个字符

【STM32】HAL库——串口中断只接收到两个字符 一、问题描述二、解决方法三、原因分析 一、问题描述 环境&#xff1a;STM32CubeMX(6.7.0)MDK-ARM(V5.36.0.0)STM32F103C8T6 使用XCOM发送字符串&#xff08;总共8个字符&#xff09;&#xff0c;单片机进行解析为ModBus协议失败…...

页面html结构导出为word或pdf

一、使用场景和原理 需要将当前页面(一般详情页面)或者dom容器中的内容保存/截图&#xff0c;并且导出为word或者pdf 导出word:获取dom结构直接转化为word导出 导出pdf:用canvas生成当前页面或者dom范围的快照&#xff0c;参考截图功能&#xff0c;然后将生成的canvas转为pdf内…...

Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 详解

解析: 理解 Object.prototype.toString.call(), instanceof, 和 Array.isArray() 是 JavaScript 中重要的类型检查工具。以下是一个较为详细的解释和示例代码&#xff0c;帮助你理解它们的工作原理和使用场景 Object.prototype.toString.call()&#xff1a; Object.prototyp…...

自学(黑客技术)方法——网络安全

如果你想自学网络安全&#xff0c;首先你必须了解什么是网络安全&#xff01;&#xff0c;什么是黑客&#xff01;&#xff01; 1.无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&#xff0c;例如 Web 安全技术&#xff0c;既有 Web 渗透2.也有 Web 防…...

CVE-2023-46227 Apache inlong JDBC URL反序列化漏洞

项目介绍 Apache InLong&#xff08;应龙&#xff09;是一站式、全场景的海量数据集成框架&#xff0c;同时支持数据接入、数据同步和数据订阅&#xff0c;提供自动、安全、可靠和高性能的数据传输能力&#xff0c;方便业务构建基于流式的数据分析、建模和应用。 项目地址 h…...

MySQL几种方法的数据库备份

MySQL几种方法的数据库备份_mysql备份的几种方式-CSDN博客 MySQL有几个方法来备份 最近博客一直想写点。可是不知道写什么&#xff0c;感觉自己近期的知识没有什么添加&#xff0c;今天想到了一篇能够写的博客。曾经试过依据data目录备份MySQL。可是从来没有成功过。前几天帮助…...

CI/CD:GitLab-CI 自动化集成/部署 JAVA微服务的应用合集

CI/CD&#xff1a;GitLab-CI 自动化集成/部署 JAVA微服务的应用合集 CI/CD&#xff1a;GitLab-CI 自动化集成/部署 JAVA微服务的应用合集安装DockerGitLabGitLab-Runner阿里云容器仓库 GitLab-CIJava微服务的GitLab-CI应用 CI/CD&#xff1a;GitLab-CI 自动化集成/部署 JAVA微服…...

Flask 上传文件,requests通过接口上传文件

这是一个使用 Flask 框架实现文件上传功能的示例代码。该代码定义了两个路由&#xff1a; /upload&#xff1a;处理文件上传请求。在该路由中&#xff0c;我们首先从请求中获取上传的文件&#xff0c;然后将文件保存到本地磁盘上&#xff0c;并返回一个字符串表示上传成功。 /…...

kvm webvirtcloud 如何添加直通物理机的 USB 启动U盘

第一步&#xff1a;查看USB设备ID 在物理机上输入 lsusb 命令 rootubuntu:/media/usb1# lsusb Bus 002 Device 002: ID 0781:5581 SanDisk Corp. Ultra Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 0424:2514 Microchip Technolo…...

html- a标签包裹img标签, 点击图片无法跳转问题记录及解决方法

html- a标签包裹img标签, 点击图片无法跳转问题记录及解决方法 首先明确我们的目标, 就是a标签包裹的内容, 都能点击后以后直接跳转 可以通过更改html结构和css解决: <div v-for"(item, index) in newsData" :key"index" class"flexcol">&…...

Halcon转OpenCV实例--保险丝颜色识别(附源码)

导 读 本文主要介绍Halcon转OpenCV实例--保险丝颜色识别(附源码)。 实例来源 实例来源于Halcon例程color_fuses.hdev--classify fuses by color 下面是Halcon实例代码和实现效果: * color_fuses.hdev: classify fuses by colordev_update_window (off)* ***** step: set up …...

制造业中的微小缺陷检测——应用场景分析与算法选择(YoloV8/CANet)

一、缺陷检测任务 缺陷检测的任务通常可以分为三个主要阶段&#xff0c;包括缺陷分类、缺陷定位和缺陷分割。 1.缺陷分类 缺陷分类是检测过程的第一步&#xff0c;目的是将检测到的缺陷区域分类为不同的类别&#xff0c;通常是根据缺陷的性质或类型进行分类。分类的类别包括…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...