机器学习10-卷积和卷积核3

机器学习10-卷积和卷积核3

  • 纹理表示
  • 卷积神经网络
    • 全链接神经网络的瓶颈
    • 卷积网络中的卷积操作
      • 特征响应图组尺寸计算
  • 池化操作
    • 示例
  • 图像增强
    • 翻转
    • 随机缩放抠图
    • 色彩抖动
    • 其他方案
      • 1. 平移
      • 2. 旋转
      • 3. 拉伸
      • 4. 径向畸变
      • 5. 裁剪

纹理表示

在这里插入图片描述

在这里插入图片描述

如何去表示纹理?

基于卷积核组的纹理表示方法:利用卷积核组提取图像中的纹理基,利用基元的统计信息来表示图像中的纹理。

卷积核组

在这里插入图片描述

1.设计卷积核组
2.利用卷积核组对图像进行卷积操作获得对应的特征响应图组;
3.利用特征响应图的某种统计信息来表示图像中的纹理

在这里插入图片描述
在这里插入图片描述
ri ,哪种边缘信息的统计响应均值越高那么图中这个边缘种类就越多,记录这多个基元的响应图均值就记录了这张图的边缘信息。

在这里插入图片描述
颜色越浅均值越高。

1对应C
2===》A
3===》B

设计重点:
卷积核类型 (边缘条形以及点状)
卷积核尺度(3-6个尺度)
卷积核方向 (6个角度)

在这里插入图片描述

在这里插入图片描述

总结:
1.设计卷积核组;
2. 利用卷积核组对图像进行卷积操作获得对应的特征响应图组;
3.利用特征响应图的某种统计信息来表示图像中的纹理。

卷积神经网络

全链接神经网络的瓶颈

在这里插入图片描述
3072+1,120000+1 还有一个偏置b。全连接神经网络只适合处理小图像,处理大图像的计算量过大,速度会很慢。
如果使用卷积的方式,将图像卷积成几个特征,然后再将特征作为连接网络的输入层,可以大大减少计算量。

在这里插入图片描述
卷积核:

  • 不仅具有宽和高,还具有深度,常写成如下形式:
    宽度×高度×深度
  • 卷积核参数不仅包括核中存储的权值,还包括一个偏置值

卷积网络中的卷积操作

在这里插入图片描述
计算过程:

  • 将卷积核展成一个5x5x3的向量,同时将其覆盖的图像区域按相同的展开方式展成5x5x3的向量
  • 计算两者的点乘。
  • 在点乘的结果上加上偏移量
    数学公式:w^T *x + b
    w为卷积核的权值,b为卷积核的偏置

在这里插入图片描述

卷积神经网络中,卷积核可以按照指定的间隔进行卷积操作,这个间隔就是卷积步长。
在这里插入图片描述
在这里插入图片描述

特征响应图组尺寸计算

给定输入数据矩阵时,影响输出的特征图组尺寸大小的因素:

  • 卷积核的宽、高;
  • 是否采用边界填充操作;
  • 卷积步长;
  • 该层的卷积核个数

在这里插入图片描述

池化操作

在机器学习中,池化(Pooling)操作有以下几个重要作用:

    1. 降维
      池化层通过对输入数据进行下采样,减少数据的维度。例如,最大池化(Max Pooling)会在一个局部区域内选择最大值作为输出,这样可以将输入数据的尺寸缩小,减少后续层的计算量。
    1. 特征不变性
      平移不变性:池化操作使得模型对输入数据的小幅度平移具有不变性。例如,最大池化选择局部区域内的最大值,无论该最大值在局部区域内如何平移,池化结果不变。
      旋转不变性和缩放不变性:一定程度上,池化操作也能使模型对输入数据的小幅度旋转和缩放具有一定的不变性。
    1. 防止过拟合
      池化操作通过减少参数数量和计算量,能够在一定程度上防止模型过拟合。通过降低数据的复杂度,模型更容易学习到数据中的主要特征,而不是记住每个数据点的细节。
    1. 加速训练
      由于池化操作减少了数据的维度,网络中的参数数量也相应减少,这使得训练过程中的计算量减小,从而加速训练过程。
    1. 特征提取
      池化操作可以帮助提取数据中的主要特征。例如,平均池化(Average Pooling)可以提取局部区域内的平均特征,最大池化可以提取局部区域内最显著的特征。

常见的池化方法包括最大池化、平均池化和随机池化。不同的池化方法在不同的场景下有不同的应用效果。
常见的池化操作:
最大池化:使用区域内的最大值来代表这个区域
平均池化: 采用区域内所有值的均值作为代表。
池化层的超参数:池化窗口和池化步长

示例

在这里插入图片描述

图像增强

**存在的问题:**过拟合的原因是学习样本太少,导致无法训练出能够泛化到新数
据的模型。
数据增强: 是从现有的训练样本中生成更多的训练数据,其方法是利用多种能
够生成可信图像的随机变换来增加样本。
数据增强的目标: 模型在训练时不会两次查看完全相同的图像。这让模型能够
观察到数据的更多内容,从而具有更好的泛化能力

翻转

在这里插入图片描述

随机缩放抠图

在这里插入图片描述

以残差网络中的样本增强方法为例
输入要求:224x224的彩色图片
训练阶段:在不同尺度、不同区域随机扣取

1.在[256,480]之间随机选择一个尺寸L
2.将训练样本缩放至短边=L
3.在该样本上随机采样一个224×224的图像区域

测试阶段:按照一套预先定义的方式扣取
1.将图像缩放成5种尺寸:{224,256,384,480,640}
2.对每一个尺度的图像及其镜像图像,分别在其四个角及中间位
置扣取224×224区域,即可获得10个图像

色彩抖动

在这里插入图片描述
操作步骤:
1.利用主成分分析方法提取当前图像的色彩数
据([RGB])的主轴;
2.沿着主轴方向随机采样一个偏移;
3.将偏移量加入当前图像的每个像素。

其他方案

随机联合下述操作
平移
旋转
拉伸
径向畸变
裁剪

以下是对图像增强中涉及的平移、旋转、拉伸、径向畸变和裁剪操作的介绍:

1. 平移

  • 定义:平移是指在图像平面内将图像沿水平或垂直方向移动一定的距离。
  • 作用:可用于调整图像中感兴趣区域的位置,或者模拟图像在不同位置的情况。
  • 实现方法:通过改变图像中每个像素的坐标位置来实现。例如,将图像中每个像素的x坐标增加一个固定值表示水平平移,y坐标增加一个固定值表示垂直平移。

2. 旋转

  • 定义:旋转是将图像围绕一个中心点(通常是图像的中心)按一定角度进行转动。
  • 作用:可用于校正图像拍摄时的倾斜角度,或者为数据集增加旋转变化的数据以提高模型的泛化能力。
  • 实现方法:利用旋转矩阵来计算每个像素在旋转后的新坐标位置。旋转操作通常会导致图像出现空白区域,需要通过插值等方法来填充这些空白区域。

3. 拉伸

  • 定义:拉伸包括水平拉伸和垂直拉伸,是指改变图像在水平或垂直方向上的尺寸比例。
  • 作用:可以模拟图像在不同分辨率或显示比例下的情况,或者用于纠正图像的宽高比。
  • 实现方法:通过改变像素坐标的映射关系来实现。例如,水平拉伸可以通过将x坐标按一定比例缩放来完成。

4. 径向畸变

  • 定义:径向畸变主要出现在广角镜头拍摄的图像中,图像会呈现出从中心向边缘逐渐变形的情况,分为桶形畸变和枕形畸变。
  • 作用:在处理由广角镜头拍摄的图像时,校正径向畸变可以使图像恢复正常的几何形状。
  • 实现方法:通常采用基于相机标定参数的数学模型来进行校正,例如通过计算畸变系数来还原图像。

5. 裁剪

  • 定义:裁剪是指从原始图像中选取一个子区域作为新的图像。
  • 作用:可以去除图像中不相关的部分,聚焦于感兴趣的区域,或者用于调整图像大小。
  • 实现方法:通过指定裁剪区域的左上角坐标和右下角坐标来选择要保留的像素区域,去除其余部分。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ollama部署DeepSeek(windows or ubuntu)

Ollama(官网是https://ollama.com/)是一个专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计的开源框架。它简化了大型语言模型的部署过程,提供了轻量级与可扩展的架构,使得研究人员、开发人员和爱好者能够更加方便地在本地…

嵌入式知识点总结 操作系统 专题提升(五)-内存

针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。 目录 1.在1G内存的计算机能否malloc(1.2G)?为什么? 2.malloc能申请多大的空间? 3.内存管理有哪几种方式? 4.什…

Lucene 中的并发错误:如何修复乐观并发失败

作者:来着 Elastic Benjamin Trent 及 Ao Li 感谢 CMU PASTA 实验室开发的确定性并发测试框架 Fray,我们找到了一个棘手的 Lucene 漏洞并将其修复。 是的,另一个修复错误博客。但这个故事有一个转折,一位开源英雄突然出现并拯救了…

redis 缓存击穿问题与解决方案

前言1. 什么是缓存击穿?2. 如何解决缓存击穿?怎么做?方案1: 定时刷新方案2: 自动续期方案3: 定时续期 如何选? 前言 当我们使用redis做缓存的时候,查询流程一般是先查询redis,如果redis未命中,再查询MySQL,将MySQL查询的数据同步到redis(回源),最后返回数据 流程图 为什…

【分布式理论9】分布式协同:分布式系统进程互斥与互斥算法

文章目录 一、互斥问题及分布式系统的特性二、分布式互斥算法1. 集中互斥算法调用流程优缺点 2. 基于许可的互斥算法(Lamport 算法)调用流程优缺点 3. 令牌环互斥算法调用流程优缺点 三、三种算法对比 在分布式系统中,多个应用服务可能会同时…

【车载项目】 systemui下拉负一屏界面,通过语音输入:“中文模式/英文模式“,会闪现一下负一屏下层的画面

1、背景 【操作步骤】负一屏界面,语音输入:“中文模式/英文模式” 【预期结果】显示正常 【实际结果】 会闪现一下负一屏下层的文字 【发生概率】必现 systemui下拉负一屏界面,通过语音输入:“中文模式/英文模式”,会…

CSS 渐变效果详解——线性渐变与径向渐变

在现代前端开发中,CSS 渐变被广泛应用于网页背景、按钮、图形等元素的渲染。相较于使用图片,实现渐变可以减少资源请求,同时也更灵活。今天我们主要介绍两种常用的渐变类型:线性渐变(Linear Gradient)与径向…

【愚公系列】《Python网络爬虫从入门到精通》001-初识网络爬虫

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主&…

如何借鉴GitHub开源项目进行LabVIEW开发

在设备开发过程中,许多开发者选择借鉴GitHub等平台上的开源项目,特别是当目标程序没有LabVIEW版本时。比如,在本例中,我们看到一个开源的Micro-Manager项目,它主要使用Java、C、Python等编程语言。对于LabVIEW开发者来…

大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡

大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡 背景 前端开发接口请求,调试,联调,接入数据,前端必不可少工具,postman是一个非常好…

CSS3+动画

浏览器内核以及其前缀 css标准中各个属性都要经历从草案到推荐的过程,css3中的属性进展都不一样,浏览器厂商在标准尚未明确的情况下提前支持会有风险,浏览器厂商对新属性的支持情况也不同,所有会加厂商前缀加以区分。如果某个属性…

Docker Compose介绍及安装使用MongoDB数据库详解

在现代容器化应用部署中,Docker Compose是一种非常实用的工具,它允许我们通过一个docker-compose.yml文件来定义和运行多容器应用程序。然而,除了Docker之外,Podman也提供了类似的工具——Podman Compose,它允许我们在…

防火墙是什么?详解网络安全的关键守护者

当今信息化时代,企业和个人在享受数字生活带来的便利时,也不可避免地面对各种潜在的风险。防火墙作为网络安全体系中的核心组件,就像一道牢不可破的防线,保护着我们的数据和隐私不受外界威胁的侵害。那么防火墙是什么?…

畅游Diffusion数字人(16):由音乐驱动跳舞视频生成

畅游Diffusion数字人(0):专栏文章导航 前言:从Pose到跳舞视频生成的工作非常多,但是还没有直接从音乐驱动生成的工作。最近字节跳动提出了MuseDance,无需复杂的动作引导输入(如姿势或深度序列),从而使不同专业水平的用户都能轻松进行灵活且富有创意的视频生成。 目录 贡…

机器学习常用包matplotlib篇(一)简单图像绘制

前言 Matplotlib 是支持 Python 语言的开源绘图库,简单且完善。 一、环境配置 1.环境设置 在 Notebook 环境绘图时,需先运行 %matplotlib inline 命令,将绘制图形嵌入当前页面。在桌面环境绘图,无需上述命令,而是在…

深入理解指针初阶:从概念到实践

一、引言 在 C 语言的学习旅程中,指针无疑是一座必须翻越的高峰。它强大而灵活,掌握指针,能让我们更高效地操作内存,编写出更优化的代码。但指针也常常让初学者望而生畏,觉得它复杂难懂。别担心,本文将用通…

如何利用DeepSeek开源模型打造OA系统专属AI助手

利用DeepSeek开源模型打造OA系统专属AI助手,可以显著提升办公效率,增强信息检索和管理能力。 注册与登录DeepSeek平台 访问DeepSeek官网 访问DeepSeek的官方网站DeepSeek。使用电子邮件或手机号码注册账号并登录。 获取API Key 登录DeepSeek平台&am…

jupyter notebook中3种读图片的方法_与_图片翻转(上下翻转,左右翻转,上下左右翻转)

已有图片cat.jpg 相对于代码的位置,可以用./cat.jpg进行读取。 下面是3种读图片的方法。 1.python读图片-pillow 图片文件不适合用open去读取 用open读图片,易引发UnicodeDecodeError: gbk codec cant decode byte 0xff in position 0: illegal multib…

软考高级《系统架构设计师》知识点(一)

计算机硬件 校验码 码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,…

【原创精品】基于Springboot3+Vue3的学习计划管理系统

大家好,我是武哥,最近给大家手撸了一个基于SpringBoot3Vue3的学习计划管理系统,可用于毕业设计、课程设计、练手学习,系统全部原创,如有遇到网上抄袭站长的,欢迎联系博主~ 项目演示视频 https://www.bili…