视觉处理基础1

目录

一、CNN

1. 概述

1.1 与传统网络的区别

1.2 全连接的局限性  

1.3 卷积思想

1.4 卷积的概念

1.4.1 概念

1.4.2 局部连接

1.4.3 权重共享

2. 卷积层

2.1 卷积核

2.2 卷积计算

2.3 边缘填充

2.4 步长Stride

2.5 多通道卷积计算  

2.7 特征图大小计算方法

2.9 卷积参数共享


一、CNN

视觉处理三大任务:图像分类、目标检测、图像分割

1. 概述

卷积神经网络Convolutional Neural Network,CNN)是一种专门用于处理具有网格状结构数据的深度学习模型。

CNN网络主要有三部分构成:卷积层、池化层和全连接层构成,其中卷积层负责提取图像中的局部特征;池化层用来大幅降低运算量并特征增强;全连接层类似神经网络的部分,用来输出想要的结果。

1.1 与传统网络的区别

1.2 全连接的局限性  

  • 参数量巨大
  • 表达能力太有限

1.3 卷积思想

卷:从左往右,从上往下

积:乘积,求和

1.4 卷积的概念

1.4.1 概念

Convolution,输入信息与卷积核(滤波器,Filter)的乘积。

1.4.2 局部连接
  • 局部连接可以更好地利用图像中的结构信息,空间距离越相近的像素其相互影响越大。

  • 根据局部特征完成目标的可辨识性。

1.4.3 权重共享
  • 图像从一个局部区域学习到的信息应用到其他区域。

  • 减少参数,降低学习难度。

2. 卷积层

2.1 卷积核

卷积核用来提取图像中的特征,卷积核本质是矩阵,在定义时需要考虑:

  • 卷积核的个数:卷积核的个数决定了其输出特征矩阵的通道数

  • 卷积核的值:卷积核的值是自定义的,根据想要提取的特征来进行设置,后续进行更新。

  • 卷积核的大小:常见的卷积核有1×1、3×3、5×5等,一般都是奇数 × 奇数。

2.2 卷积计算

卷积的过程是将卷积核在图像上进行滑动计算,每次滑动到一个新的位置时,卷积核和图像进行点对点的乘积,并将其求和得到一个新的值,然后将这个新的值加入到特征图中,最终得到一个新的特征图。

2.3 边缘填充

在图像四周填充数值。

Padding的作用

(1)保持图像大小不变,。

(2)更好的保护了图像边缘数据的特征。

2.4 步长Stride

卷积层通常按照步长为1来移动卷积核。

Stride的设置需注意:

(1)stride太小:重复计算较多,计算量大,训练效率降低;

(2)stride太大:会造成信息遗漏,无法有效提炼数据背后的特征;

2.5 多通道卷积计算  

计算方法如下:

(1)当输入有多个通道(Channel), 例如RGB三通道, 此时要求卷积核需要有相同的通道数

(2)卷积核通道与对应的输入图像通道进行卷积。

(3)将每个通道的卷积结果按位相加得到最终的特征图。

2.7 特征图大小计算方法

  • 输入图像大小: W x W

  • 卷积核大小: F x F

  • Stride: S(步长)

  • Padding: P(零填充的方式)

  • 输出图像大小: N x N

2.9 卷积参数共享

一个卷积核一个偏置参数

数据是 32×32×3 的图像,用 10 个 5×5 的filter来进行卷积操作,所需的参数有多少个呢?

需要 卷积核参数:5×5×3×10 个 ,偏置参数:10个

需要参数总数:5×5×3×10+10

import torch
import os
import matplotlib.pyplot as plt
import torch.nn as nnimg = plt.imread('data/test.png')# numpy转tensor: HWC-->CHW-->NCHW  链式调用
img  =torch.tensor(img).permute(2,0,1).unsqueeze(0)
print(img.shape)conv = nn.Conv2d(in_channels = 4,# 输入通道out_channels =3,# 输出通道kernel_size=(3,3),# 卷积核大小stride = 1,# 步长padding = 0,# 零填充
)out = conv(img)
print(out.shape)
plt.imshow(out[0][0].detach().numpy(),cmap='gray')
plt.show()

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

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

相关文章

泛化调用 :在没有接口的情况下进行RPC调用

什么是泛化调用? 在RPC调用的过程中,调用端向服务端发起请求,首先要通过动态代理,动态代理可以屏蔽RPC处理流程,使得发起远程调用就像调用本地一样。 RPC调用本质:调用端向服务端发送一条请求消息&#x…

C++ 之弦上舞:string 类与多样字符串操作的优雅旋律

string 类的重要性及与 C 语言字符串对比 在 C 语言中,字符串是以 \0 结尾的字符集合,操作字符串需借助 C 标准库的 str 系列函数,但这些函数与字符串分离,不符合 OOP 思想,且底层空间管理易出错。而在 C 中&#xff0…

【大数据学习 | Spark调优篇】Spark之内存调优

1. 内存的花费 1)每个Java对象,都有一个对象头,会占用16个字节,主要是包括了一些对象的元信息,比如指向它的类的指针。如果一个对象本身很小,比如就包括了一个int类型的field,那么它的对象头实…

【closerAI ComfyUI】物体转移术之图案转移,Flux三重控制万物一致性生图,实现LOGO和图案的精准迁移

更多AI前沿科技资讯,请关注我们:closerAI-一个深入探索前沿人工智能与AIGC领域的资讯平台 closerAIGCcloserAI,一个深入探索前沿人工智能与AIGC领域的资讯平台,我们旨在让AIGC渗入我们的工作与生活中,让我们一起探索AIGC的无限可能性! 【closerAI ComfyUI】物体转移术之图…

2025软考高级《系统架构设计师》案例模拟题合集

首先分享一下系统架构设计师资料合集,有历年真题、自学打卡表、精华知识点等,需要的留邮,打包分享! 1、在设计基于混合云的安全生产管理系统中,需要重点考虑5个方面的安全问题。设备安全、网络安全、控制安全、应用安全…

【C语言】递归的内存占用过程

递归 递归是函数调用自身的一种编程技术。在C语言中,递归的实现会占用内存栈(Call Stack),每次递归调用都会在栈上分配一个新的 “栈帧(Stack Frame)”,用于存储本次调用的函数局部变量、返回地…

LeetCode 438.找到字符串中所有字母异位词

LeetCode 438.找到字符串中所有字母异位词 思路🧐: 需要找到子串异位词,也就是只看该子串是否有相同字母而不管位置是否相同。分析题目发现只需要单调向前找异位词,则可以使用滑动窗口求解,注意这里每当左右边框长度大…

算法刷题Day8:BM30 二叉搜索树与双向链表

题目 牛客网题目传送门 思路 对二叉搜索树进行中序遍历,结果就是按序数组。因此想办法把前面遍历过的节点给记下来,记作pre。当遍历到某个节点node的时候,令前驱指向pre,然后让pre的后驱指向node。 代码 class TreeNode:def…

1.Git安装与常用命令

前言 Git中会用到的一些基本的Linux命令 ls/ll 查看文件目录 (ll可以看隐藏文件)cat 查看文件内容touch 创建文件vi vi编辑器 1.下载与安装 安装成功后鼠标右键会出现Git Bash和Git GUI Git GUI:GUI图形化界面 Git Bash:Git提供的命令行工具 当安装…

ultralytics-YOLOv11的目标检测解析

1. Python的调用 from ultralytics import YOLO import os def detect_predict():model YOLO(../weights/yolo11n.pt)print(model)results model(../ultralytics/assets/bus.jpg)if not os.path.exists(results[0].save_dir):os.makedirs(results[0].save_dir)for result in…

【AI系统】CANN 算子类型

CANN 算子类型 算子是编程和数学中的重要概念,它们是用于执行特定操作的符号或函数,以便处理输入值并生成输出值。本文将会介绍 CANN 算子类型及其在 AI 编程和神经网络中的应用,以及华为 CANN 算子在 AI CPU 的详细架构和开发要求。 算子基…

服务器与普通电脑有什么区别?

服务器和普通电脑(通常指的是个人计算机,即PC)有众多相似之处,主要构成包含:CPU,内存,芯片,I/O总线设备,电源,机箱及操作系统软件等,鉴于使用要求…

hhdb数据库介绍(10-33)

管理 数据归档 归档记录查询 功能入口:“管理->数据归档->归档记录查询” 需要确保配置的归档用户对数据归档规则所在的逻辑库具备CREATE权限,以及对原数据表具有所有权限。 清理归档数据 (一)功能入口:“…

重学设计模式-工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)

在平常的学习和工作中,我们创建对象一般会直接用new,但是很多时候直接new会存在一些问题,而且直接new会让我们的代码变得非常繁杂,这时候就会巧妙的用到设计模式,平常我们通过力扣学习的算法可能并不会在我们工作中用到…

微服务springboot详细解析(一)

目录 1.Spring概述 2.什么是SpringBoot? 3.第一个SpringBoot程序 4.配置参数优先级 5.springboot自动装配原理 6.SpringBootApplication&SpringApplication.run 7.ConfigurationProperties(prefix "") 8.Validated数据校验 29、聊聊该如何写一…

华为HarmonyOS 让应用快速拥有账号能力 -- 2 获取用户头像昵称

场景介绍 如应用需要完善用户头像昵称信息,可使用Account Kit提供的头像昵称授权能力,用户允许应用获取头像昵称后,可快速完成个人信息填写。以下只针对Account kit提供的头像昵称授权能力进行介绍,若要获取头像还可通过场景化控…

供应链系统设计-何为“前”“中”“后”台系统

概述 大家看文章或交流的时候,经常听到听到XX前台系统、XX中台系统、XX后台系统。而且经常容易混淆并且系统边界定义模糊不清,今天就和大家讨论一下什么是前台、中台和后台系统。 不知道大家对于“康威定律”是否熟悉。在这里简单的给大家介绍一下&…

vue中使用socket.io统计在线用户

目录 一、引入相关模块 二、store/modules 中封装socketio 三、后端代码(nodejs) 一、引入相关模块 main.js 中参考以下代码 ,另外socketio的使用在查阅其它相关文章时有出入,还是尽量以官方文档为准 import VueSocketIO from vue-socket.io import SocketIO from socket.io-…

「Mac畅玩鸿蒙与硬件35」UI互动应用篇12 - 简易日历

本篇将带你实现一个简易日历应用,显示当前月份的日期,并支持选择特定日期的功能。用户可以通过点击日期高亮选中,还可以切换上下月份,体验动态界面的交互效果。 关键词 UI互动应用简易日历动态界面状态管理用户交互 一、功能说明…

【AI系统】推理系统介绍

推理系统介绍 推理系统是一个专门用于部署神经网络模型,执行推理预测任务的 AI 系统。它类似于传统的 Web 服务或移动端应用系统,但专注于 AI 模型的部署与运行。通过推理系统,可以将神经网络模型部署到云端或者边缘端,并服务和处…