计算机视觉基础知识(十五)--卷积神经网络

news2025/1/16 3:49:07

卷积神经网络简介

  • CNN--卷积神经网络,是一种前馈神经网络;
  • 不同于传统的只有线性连接的神经网络;
  • CNN具有卷积(convolution)操作、池化(pooling)和非线性激活函数映射等;
  • 经典CNN网络有Alex-Net,VGG-Nets,Resnet等;
  • 卷积神经网络对计算机图像识别的应用非常成功;
  • 同以往的网络不同,卷积神经网络可以接受多维向量;

3通道卷积图示

o(0,2,0)=\sum x[:,:,0]\times w_0[:,:,0]+\sum x[:,:,1]\times w_0[:,:,1]+\sum x[:,:,2]\times w_0[::,2]+b_0 

o(0,2,1)=\sum x[:,:,0]\times w_1[:,:,0]+\sum x[:,:,1]\times w_1[:,:,1]+\sum x[:,:,2]\times w_1[::,2]+b_1 

卷积

  • 把一张大图片分解成好多小部分,依次对小部分进行识别;
  • 通常将一张图片分解成多个3*3或5*5的小片,分别识别,将结果集合一起输出给下层网络;
  • 该方法对图像识别很有效,对不同区域识别,把识别结果综合给出最后的结果;

最大池化

池化的作用

  •  卷积操作产生太多的数据;
  • 网络的运算量会非常巨大;
  • 数据参数冗余易导致过度拟合;
  • 池化层对这些数据进行压缩;

卷积神经网络的内部操作

  • 黑白图片的厚度为1;
  • 彩色图片的厚度为3;
  • 图片输入到神经网络;
  • 卷积神经网络将图片的长和宽进行压缩;
  • 图片的厚度显著增加;
  • 最后图片的形状变为一个长宽很小,厚度很高的像素块;
  • 将上述结果放入全连接神经网络中处理;
  • 最后链接一个分类器(softmax)
  • 给出图片的分类结果;

卷积核

  • 图片采样器也可称为共享权值;
  • 在图片上采集信息;
  • 卷积核有自己的长宽;
  • 也可以定义自己的步长stride;
  • 表示为每跨多少步进行一次信息抽离;
  • 步长越大越容易丢失图片信息;
  • 对抽取的信息进行像素的加权求和得到feature Map;
  • 增加了采集结果的厚度;
  • 卷积用来不断地提取特征;
  • 每提取一个特征,增加一个feature Map;
  • 采集后的图片厚度不断增加;

卷积神经网络的思想

  • 高斯滤波、sobel滤波的卷积核都是事先设定好的;
  • 从一个随机滤波器开始;
  • 根据目标,用某种方法不断调整卷积核;
  • 直到卷积核的值能够满足我们的目标要求;
  • 这就是卷积神经网络(Convulutional Neural Network,CNN)的思想;
  • 可调整的滤波器是CNN的卷积部分;
  • 如何调整滤波器是CNN的神经网络的训练部分;

卷积神经网络的操作细节

  • 卷积滤波器和神经网络两个思想相结合;
  • 卷积滤波器就是一套权值参数;
  • 神经网络(除了全连接外)可有其他拓扑结构;
  • 左边平面含有nxn个格子;
  • 每个格子中是一个【0,255】的整数值;
  • 左边的平面就是输入图像,也是神经网络的输入;
  • 右边的平面也是nxn个格子;
  • 每个格子是一个神经元;
  • 每个神经元根据位值连接着左侧平面上的相应位值的3x3范围内的值;
  • 每个连接具有一个权值;
  • 所有神经元的连接都一样,边界上的需要Padding操作;
  • 右边神经元的输出就是神经网络的输出;

卷积神经网络与全连接神经网络的区别

  • 不是全连接的;
  • 右侧的神经元不是连接上全部输入;
  • 只是连接了卷积核尺寸范围内的像素;
  • CNN能够把我局部图像特征;
  • AlphaGo从棋局局部状态提取信息;
  • 就是基于上述局部连接特性;
  • 同时卷积核的权值少了很多;
  • 右侧平面上的神经元共享9个权值;
  • 神经网络只有9个参数需要调整;
  • 本质上卷积神经网络就是一个卷积滤波器;
  • 卷积核的参数需要经过训练确定;
  • 这是一个拓扑结构特别简单的CNN;

卷积神经网络分类器的实现图示

图像增强

  • 深度学习对数据集的大小有一定要求;
  • 若原始的数据集较小,无法满足网络模型的训练要求;
  • 图像增强对原始图像进行处理以扩充数据集;
  • 能够在一定程度上提升模型性能;
  • 图像增强在原始图像的基础上对数据进行一定的改变;
  • 增加了样本的数量;
  • 数据的标签值不改变

图像增强的种类

  • 自我增强;
  • 通过一定手段增强图像中的感兴趣区域;
  • 直至从图像中脱颖而出;
  • 正常思维下常用方法;
  • 削弱别人;
  • 增强自我的反方法;
  • 通过一定手段将不感兴趣的区域削弱;
  • 直至感兴趣的区域脱颖而出;

图像增强常用方法

  • 翻转、平移、旋转、缩放
  • 分离单个r,g,b三个颜色通道;
  • 添加噪声;
  • 直方图均衡化;
  • Gamma变换;
  • 反转图像的灰度;
  • 增加图像的对比度;
  • 缩放图像的灰度;
  • 均值滤波;
  • 中值滤波;
  • 高斯滤波;

常见的卷积神经网络

AlexNet

  • 2012年ImageNet冠军获得者Hinton和其学生Alex Krizhevsky设计;
  • 2012年之后,更多的神经网络被提出

AlexNet网络结构

  • 一张原始图片被resize到(224,224,3);
  • 使用步长为4,大小为11的卷积核,卷积图像,输出的特征层为96层,输出形状为(55,55,96);
  • 使用步长为2,大小为3的卷积核,最大池化图像,输出的形状为(27,27,96);
  • 使用步长为1,大小为5的卷积核,卷积图像,输出的特征层为256层,形状为(27,27,256);
  • 使用步长为2,大小为3的卷积核,最大池化图像,输出的形状为(13,13,256);
  • 使用步长为1,大小为3的卷积核,卷积图像,输出层特征为384层,形状为:(13,13,384);
  • 使用步长为1,大小为3的卷积核,卷积图像,输出层特征为384层,形状为:(13,13,384);
  • 使用步长为1,大小为3的卷积核,卷积图像,输出层特征为256层,形状为:(13,13,256);
  • 使用步长为2,大小为3的卷积核,卷积图像,输出层特征为256层,形状为:(6,6,256);
  • 最后两个全链接层,最后输出为1000类;

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

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

相关文章

【Linux】--- 详解Linux软件包管理器yum和编辑器vim

目录 一、Linux软件包管理器 - yum1.1 yum和软件包是什么1.2 Linux系统(Centos)的生态1.3 yum相关操作1.4 yum本地配置 二、Linux编辑器 - vim使用2.1 vim的基本概念2.2 vim命令模式命令集2.3 vim末行模式命令集2.4 关于vim的几个相关问题 一、Linux软件包管理器 - yum 1.1 yu…

Codeforce Monsters Attack!(B题 前缀和)

题目描述: 思路: 本人第一次的想法是先杀血量低的第二次想法是先搞坐标近的第三次想法看到数据量这么大, 我先加个和看看貌似我先打谁都行,由此综合一下, 我们可以把每一个不同的坐标当作一轮从最小的坐标开始&#x…

Vue+SpringBoot打造在线课程教学系统

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…

机器学习打分函数在分子对接中的应用系列-GB_Score

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 文章目录 前言一、GB-Score是什么?二、文献复现 -训练和验证环境1. GB score验证虚拟环境的配置2. Usage1- Preparing ligand and protein file2- Generating features3 - Repeat and extend current…

打印水仙花数---c语言刷题

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 题述 求出0~100000之间的所有“水仙花数”并输出。 “水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153&#…

openssl3.2 - crypto-mdebug被弃用后, 内存泄漏检查的替代方法

文章目录 openssl3.2 - crypto-mdebug被弃用后, 内存泄漏检查的替代方法概述笔记查看特性列表openssl3.2编译脚本 - 加入enable-crypto-mdebug看看有没有替代内存诊断的方法?main.cppmy_openSSL_lib.hmy_openSSL_lib.c备注备注END openssl3.2 - crypto-mdebug被弃用后, 内存泄…

sonar-java 手写一个规则-单元测试分析

前言 最近做项目,定制sonar规则,提高Java代码质量,在编写的sonar规则,做验证时,使用单元测试有一些简单的心得感悟,分享出来。 自定义规则模式 sonar的自定义规则很简单,一般而言有2种模式可…

解决vulhub漏洞环境下载慢卡死问题即解决docker-valhub漏洞环境下载慢的问题

解决vulhub环境下载慢/卡 当前环境为:ubuntu20 1.在 cd /etc/docker/目录下创建或修改daemon.json文件 sudo touch daemon.json编辑daemon.json文件 sudo vim daemon.json2.填写阿里云镜像地址: { "registry-mirrors":["https://6kx…

UE5 C++ Gas开发 学习记录(三)

添加AuraPlayerState,AuraAbilitySystemComponentBase和AuraAttributeSet 在Build.cs里添加 // Copyright Epic Games, Inc. All Rights Reserved. using UnrealBuildTool; public class MyGas : ModuleRules { public MyGas(ReadOnlyTargetRules Target) : base(Target) { P…

Android pixel6网页线刷官方镜像

背景 p6-7系pixel更新Android 13,首次引入了防回滚机制,Android13系统检测到属于Android12版本的旧bootloader就会直接红字警告拒绝引导,多次引导就会成为收藏品!(除非充钱) 今天收到了新的pixel6,想着以后刷机刷内核肯定频繁,就先打个预防针。 网页线刷官方镜像 查…

RabbitMQ-消息队列:优先级队列、惰性队列

20、优先级队列 在我们系统中有一个订单催付的场景,我们的客户在天猫下的订单,淘宝会及时将订单推送给我们,如果在用户设定的时间内未付款那么就会给用户推送一条短信提醒,很简单的一个功能对吧。 但是,天猫商家对我…

如何增加层次厚度?

Q 老师,我在做一个斧头武器,如何在平面上增加厚度和层次呢? A 选中这几个线,点连接就会出现中线,把中线稍作调整即可~

[嵌入式系统-35]:RT-Thread -20- 新手指南:在Keil MDK-ARM 模拟器上运行RT-Thread

目录 前言: 一、Keil MDK-ARM 模拟器概述 1.1 Keil概述 1.2 Keil MDK-ARM 1.3 Keil MDK-ARM软件仿真模拟器 1.4 Keil模拟器支持的CPU类型 二、Keil MDK ARM安装 前言: 一般嵌入式操作系统因为它的特殊性,往往和硬件平台密切相关连&am…

【C++精简版回顾】12.友元函数

1.友元函数 1.class class MM { public:MM(int age,string name):age(age),name(name){}friend void print(MM mm); private:int age;string name;void print() {cout << age << "岁的" << name << "喜欢你" << endl;} }; f…

DAY31--learning English

一、积累 1.stiff 2.curve 3.pungent 4.mellow 5.marinate 6.drain 7.corrupt 8.magnet 9.liver 10.stew 11.maid 12.sonogram 13.folk 14.anecdote 15.altar 16.spaghetti 17.ammunition 18.shield 19.beacon 20.hanger 二、练习 1.牛津原译 stiff /stɪf/ ( stiffer stiff…

编程的基础:理解时间和空间复杂度

编程的基础&#xff1a;理解时间和空间复杂度 时间复杂度空间复杂度示例常数时间复杂度 O(1)线性时间复杂度 O(n)线性对数时间复杂度 O(n log n)二次时间复杂度 O(n^2)指数时间复杂度 O(2^n) 空间复杂度示例常数空间复杂度 O(1)线性空间复杂度 O(n)线性对数空间复杂度 O(log n)…

流浪动物救助平台:Java开发的实践与思考

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

获取tensorflow lite模型指定中间层的输出

以mobilenet v2为例子&#xff0c;我已经训练好了模型&#xff0c;有tflite格式和onnx格式两种模型的权重文件&#xff0c;我想获取tflite模型在推理阶段neck部分的输出。 查看onnx模型得到neck最后一层位置 使用netron查看onnx模型结构 从name中能知道Reshape是neck的最后一…

【蓝桥杯】拓扑排序

一.拓扑排序 1.定义&#xff1a; 设G&#xff08;V&#xff0c;E&#xff09;是一个具有n个顶点的有向图&#xff0c;V中的顶点序列称为一个拓扑序列&#xff0c;当且仅当满足下列条件&#xff1a;若从顶点到有一条路径&#xff0c;则在顶点序列中顶点必在之前。 2.基本思想…

前端学习---- 前端HTML基本元素的介绍

一&#xff1a;显示相关的HTML基础知识 1. 推荐的前端编写工具 2. VScode的html速写规则&#xff08;从a标签开始再用&#xff09; ①、&#xff01;&#xff1a;代表生成html的基本框架元素 ②、html元素&#xff1a;直接书写html,不需要加<>,按回车会自动生成 ③、{}…