卷积神经网络中的图像特征——以YOLOv5为例进行可视化

news2025/2/28 3:36:54

一、图像特征

1. 图像低层特征

  • 图像低层特征指的是:边缘、颜色和纹理等特征。
  • 低层特征的分辨率较高,包含较多的位置、细节信息,但其包含的语义信息较少,噪声较多。
  • 原始图像和浅层卷积网络输出的特征图属于低层特征,从低层特征图中可以看清轮廓、边缘等信息。

2. 图像高层特征

  • 图像的高层语义特征是指人所能理解的东西,比如沙发、狗、瓶子等。
  • 高层特征包含较多的语义信息,但其分辨率较低,对位置和细节的感知能力也较差。
  • 经过深层的卷积网络,可以有效归纳出语义信息,就是类似某个区域就是什么东西,并不需要显示具体的纹理信息。

3. 示例

  • 下面以YOLOv5网络为例,可视化展示了原始图像经过每一层网络后的输出特征图(共23层,逐层可视化),YOLOv5的网络结构如下:在这里插入图片描述
  • 原始输入图像
    在这里插入图片描述
    - Conv输出的的特征图(第0层的输出)
    在这里插入图片描述
    - Conv输出的特征图(第1层的输出)
    在这里插入图片描述
    - C3输出的特征图(第2层的输出)
    在这里插入图片描述
    - Conv输出的特征图(第3层的输出)
    在这里插入图片描述
    - C3后的特征图(第4层的输出)
    在这里插入图片描述
    - Conv输出的特征图(第5层的输出)
    在这里插入图片描述
    - C3输出的特征图(第6层的输出)
    在这里插入图片描述
    - Conv输出的特征图(第7层的输出)
    在这里插入图片描述
    - C3输出的特征图(第8层的输出)
    在这里插入图片描述
    - SPPF输出的特征图(第9层的输出)
    在这里插入图片描述
    - Conv输出的特征图(第10层的输出)
    在这里插入图片描述
    - Upsample输出的特征图(第11层的输出)
    在这里插入图片描述
    - Concat输出的特征图(第12层的输出)
    在这里插入图片描述
    - C3输出的特征图(第13层的输出)
    在这里插入图片描述
    - Conv输出的特征图(第14层的输出)
    在这里插入图片描述
    - Upsample输出的特征图(第15层的输出)
    在这里插入图片描述
    - Concat输出的特征图(第16层的输出)
    在这里插入图片描述
    - C3输出的特征图(第17层的输出)
    在这里插入图片描述
    - Conv输出的特征图(第18层的输出)
    在这里插入图片描述
    - Concat输出的特征图(第19层的输出)
    在这里插入图片描述
    - C3输出的特征图(第20层的输出)
    在这里插入图片描述
    - Conv输出的特征图(第21层的输出)
    在这里插入图片描述
    - Concat输出的特征图(第22层的输出)
    在这里插入图片描述
    - C3输出的特征图(第23层的输出)
    在这里插入图片描述

二、特征融合

1. 多尺度特征融合

  • 低层网络的感受野比较小,几何信息表征能力强,虽然分辨率高,但是语义信息表征能力弱。
  • 高层网络的感受野比较大,可以理解为CNN从更加全局的角度对图像做特征提取,因此产生更加高层次的语义信息,语义信息表征能力强,但是特征图的分辨率低,几何信息的表征能力弱(空间几何特征细节缺乏)。
  • 低层网络的几何信息高层网络的语义信息相融合,是提高检测和分割性能的重要手段。

2. FPN

  • FPN(特征图金字塔网络),主要解决的是物体检测中的多尺度问题,通过简单的网络连接改变,在基本不增加原有模型计算量的情况下,大幅度提升了小物体检测的性能。

  • 算法大致结构如下:一个自底向上的线路,一个自顶向下的线路,横向连接。
    在这里插入图片描述

  • 自底向上:
    自底向上的过程就是神经网络的前向传播过程,特征图经过卷积核计算,尺寸会越变越小。

  • 自上而下:
    自上而下的过程是把更抽象、语义更强的高层特征图进行上采样。

  • 横向连接:
    横向连接则是将上采样的结果和自底向上生成的相同大小的特征图进行融合,横向连接的两层特征在空间尺寸相同,这样做可以利用低层定位细节信息。

参考文章

关于encoder-decoder网络 - 特征融合

深度特征融合—高低层(多尺度)特征融合

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

CNN中的底层、高层特征、上下文信息、多尺度

多尺度特征融合

FPN(特征金字塔)结构笔记

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

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

相关文章

2023最新的接口自动化测试面试题

1、请结合你熟悉的项目,介绍一下你是怎么做测试的? -首先要自己熟悉项目,熟悉项目的需求、项目组织架构、项目研发接口等 -功能 接口 自动化 性能 是怎么处理的? -第一步: 进行需求分析,需求评审&#…

你好 ChatGPT, 帮我看下这段代码有什么问题?

点赞再看,动力无限。 微信搜「 程序猿阿朗 」。 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多系列文章。 今天一个很简单的功能,触发了一个 BUG,处理后我想起了最近爆火的 ChatGPT,于是我尝试测…

vscode开发的Vue家用电器维修服务系统nodejs+mysql

主要功能包括管理员:首页、个人中心、用户管理、维修员管理、维修信息管理、维修申请管理、维修处理管理、家电类别管理、配件信息管理、配件领用管理、维修结果管理、家电维修知识管理、公告信息管理、留言板管理,用户:首页、个人中心、维修…

Jenkins实现制作自定义镜像推送到Harbor上

Jenkins实现制作自定义镜像推送到Harbor上 1.首先需要Jenkins内部可以使用docker 在jenkins容器内部使用docker教程 2.选择对应的jenkins的job中 选择配置->构建->增加构建步骤(执行shell) mv target/*.jar docker/ docker build -t lover_story:$tag docker/ dock…

C语言进阶(一)—— 内存分区:变量和内存分布

1. 数据类型1.1 数据类型概念什么是数据类型?为什么需要数据类型?数据类型是为了更好进行内存的管理,让编译器能确定分配多少内存。类型是对数据的抽象;类型相同的数据具有相同的表示形式、存储格式以及相关操作;程序中所有的数据都必定属于某种数据类型;数据类型可…

注解ConfigurationProperties、EnableConfigurationProperties的用法

1 ConfigurationProperties ConfigurationProperties主要作用就是将prefix属性指定的前缀配置项的值绑定到这个JavaBean上 ,通过指定的前缀,来绑定配置文件中的配置。这样的好处是将配置数据与JOPO进行转换,能够管理一个类别的所有配置信息&…

【零基础入门前端系列】—表单(七)

【零基础入门前端系列】—表单(七) 一、什么是表单 表单在Web网页中用来给访问者填写信息,从而采集客户信息端,使得网页具有交互功能。一般是将表单设计在一个HTML文档中,当用户填写完信息后做提交操作,于…

docker部署springboot项目

1、创建放置项目jar包和Dockerfile的文件夹 cd usr/ mkdir reggie cd reggie/ 2、上传Dockerfile和项目jar包 Dockerfile内容如下: # 基础镜像使用java FROM java:8 # 作者 MAINTAINER chenxiansheng # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /v…

ElasticSearch与Kibana入门(解决报错:can not run elasticsearch as root)

ElasticSearch安装和部署 es官网 window版 选择你要的版本 解压,bin下bat就可以启动,需要配置jdk18的环境 linux版 解压:tar zxvf elasticsearch-6.3.2.tar.gz 启动:bin下执行/elasticsearch 报错org.elasticsearch.boot…

C语言初级指针应用

目录 一.什么是指针以及如何获取地址 二.间接运算符(解引用运算符):* 三.声明指针 四.使用指针在函数进行通信 五.变量:名称,地址和值 一.什么是指针以及如何获取地址 指针是一个值为内存地址的变量(或…

RabbitMQ相关概念介绍

这篇文章主要介绍RabbitMQ中几个重要的概念,对于初学者来说,概念性的东西可能比较难以理解,但是对于理解和使用RabbitMQ却必不可少,初学阶段,现在脑海里留有印象,随着后续更加深入的学习,就会很…

电源自动测试系统-电源模块批量自动化测试方案ATECLOUD-Power

1、测试名称 基于ATECLOUD的电源模块测试方案 2、测试目的 提升电源模块测试效率,减少测试人员成本,降低测试专业知识要求,增加数据精准度,为企业提供专业决策的数据支持,从而降本增效。 3、测试设备 示波器、电子…

20230215小结

1 t-sne 原理:利用两个向量之间的欧式距离转化成条件概率分布,可以把高维度的数据转化为低维度(1000,64)-》(1000,2),原先每个样本有64维度,转化为2维 2 swi…

linux系统编程入门

一、搭建环境 1、安装 Linux 系统(虚拟机安装、云服务器) https://releases.ubuntu.com/bionic/ 2、安装 XSHELL、XFTP https://www.netsarang.com/zh/free-for-home-school/ 3、安装 visual studio code https://code.visualstudio.com/ 4、Linu…

Unreal Engine角色涌现行为开发教程

在本文中,我将讨论如何使用虚幻引擎、强化学习和免费的机器学习插件 MindMaker 在 AI 角色中生成涌现行为。 目的是感兴趣的读者可以使用它作为在他们自己的游戏项目或具体的 AI 角色中创建涌现行为的指南。 推荐:使用 NSDT场景设计器 快速搭建 3D场景。…

一种基于加密域的数字图像水印算法的设计与实现(附Matlab源码)

一种基于加密域的数字图像水印算法的设计与实现 项目介绍 毕设项目 题目:一种基于加密域的数字图像水印算法的设计与实现 随着数字媒体技术的发展,数字媒体版权的保护得到了越来越多人的重视,数字水印技术作为数字媒体版权保护的有效手段…

通达信交易接口以什么形式执行下单的?

通达信程交易接口 以API形式来执行下单接口,一般不再需要通过接口系统之间进行连接,通过直接调用通达信dll交易函数的方式直接进行交易,包括下单,撤单,查询资金股份、当日委托、当日成交等方面都能很快的执行出来。以a…

【JDK8】MyBatis源码导入Idea

1.背景 为了更好的将MyBatis的开发设计思想带到日常开发工作,将MyBatis源码导入到本地开发工具中(idea)。我自己在导入的时候碰到几个问题,耽误了自己一点时间,这里我把它们记下来,后边的小伙伴可不要踩我的坑。 Java版本&#x…

黑帽SEO是什么?做了真的能够一直保持排名?

随着Google演算法一次又一次的更新,现在愈来愈多人重视所谓的网站SEO。但是内行的人都知道,网站要提高排名并非一天两天的事,所以有些人就会使用不法手段想借此提高排名,这也就是常听到的「黑帽SEO」。但是做黑帽SEO真的能快速提高…

【爬虫+数据清洗+可视化分析】用Python分析哔哩哔哩“狂飙”的评论数据

一、背景介绍您好,我是马哥python说,一枚10年程序猿。2023开年这段时间,《狂飙》这部热播剧引发全民追剧,不仅全员演技在线,更是符合反黑主旋律,因此创下多个收视率记录!基于此热门事件&#xf…