计算机视觉基础(10)——深度学习与图像分类

前言

传统视觉算法采用手工设计特征与浅层模型,而手工设计特征依赖于专业知识,且泛化能力差。深度学习的出现改变了这一状况,为视觉问题提供了端到端的解决方案。在之前的课程中,我们已经学习了图像分类的传统知识。在本节课中,我们将学习到图像分类融合深度学习的方法

一、视觉算法设计流程的演化

下面是传统视觉算法和深度学习算法的区别:

传统视觉算法采用手工设计特征与浅层模型

手工设计特征依赖专业知识(Domain knowledge),且泛化性能差

深度学习的出现改变了这一状况,为视觉问题提供了端到端的解决方案

接下来,我们以人脸识别任务为例,对传统方法和深度学习方法进行一个比较:

传统方法的思路如下:

深度学习方法的思路如下:

下面是深度学习方法的一些优点:

  • 深度模型更适合处理大数据,随着训练数据规模增大,性能不断提升。
  • 而浅层模型随训练数据的增加,性能提升不明显。

如下图所示:

并且,通过数据驱动的方式学出的深度特征,具有更强的泛化性能

二、分层级深度特征

在了解了深度学习视觉算法的设计流程之后,我们还需要学习一下分层级的深度特征。

不同层级的卷积层所学习到的图像特征具有分层的特性

浅层: 学习到图像的低级(Low-level)特征,如颜色、边缘、纹理

深层: 学到图像的高级(High-level)特征,如物体位置、语义类别

我们以AlexNet为例,对每一层卷积层进行说明:

1)AlexNet中第一层卷积的滤波器96x[11x11x3] 学到edge, color, blob 等底层特征,与手工设计滤波器组相似。

2)第二层对继续对角点和其他的边缘/颜色信息进行相应

3)第三层具有更复杂的不变性,捕获相似的纹理

4)第四层显示了显著的变化,并且更加类别具体化。而第五层显示了具有显著姿态变化的整个对象。

三、常见的深度神经网络类型

我们将依次介绍如下4种常见的深度神经网络类型,这在之前的深度学习课程上面也学习过,在此仅作为复习使用:

全连接网络 (Fully Connected Net)

卷积网络 (Convolution Net)

递归网络 (Recurrent Net)

Transformer

3.1  全连接网络

3.2  卷积网络

对于卷积神经网络,我们需要知道参数量的计算、卷积层的3个主要特点、卷积的过程和空洞卷积的概念和意义、上采样的概念和计算,批量归一化的定义和优缺点

3.2.1  卷积层参数量的计算

3.2.2  卷积层的特点(重要)

3.2.3  卷积的过程

3.2.4  卷积步幅

下图中的步幅 stride = 2

3.2.5  空洞卷积

3.2.6  池化层

池化的意义和作用如下:

使用某一位置相邻区域的总体统计特性来代替网络在该位置的输出

在尽量保留有用信息的同时,实现特征图降采样,提升感受野

1)最大值池化

2)平均值池化

3.2.7  上采样(反卷积)

3.2.8  批量归一化(重点)

参考文献:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, ICML 2015

BN的优缺点如下:

需要掌握Batch Norm、Layer Norm、Instance Norm和Group Norm这四个对应的表示形式:

3.3  递归网络

不是考查的重点,请感兴趣的读者移步参考下方链接:

【神经网络】递归神经网络 - 知乎 (zhihu.com)

3.4  Transformer

Transformer最早针对NLP任务设计,随后推广至视觉领域 (分类、检测、分割、跟踪)

Transformer最核心的模块是自注意力机制模块,该模块通过将输入特征间的相关性作为权重,对输入特征进行加权,实现管局关系建模

3.4.1  自注意力机制

参考链接:https://jalammar.github.io/illustrated-transformer/

3.4.2  多头注意力模块

3.4.3  常见的损失函数与优化器

四、图像分类

接下来我们将介绍最经典的一些图像分类模型:

4.1  ImageNet数据集

细粒度(Fine-Grained)图像分类是对图像种类进行更精细的划分:

随着旧模型的不断改进,新模型的不断提出,图像分类模型推陈出新,ImageNet精度逐年提升:

4.2  AlexNet

4.3  VGG

4.4  GoogleNet

4.5  ResNet

4.6  DenseNet

4.7  Vision Transformer

4.8  Swing Transformer

Swing Transformer 提出Window based Self-Attention:将输入图像分成互不重叠的Window,自注意机制在每一个Window中独立计算

总结

本文从视觉算法设计流程的演变入手,对比传统视觉算法和深度学习算法的优劣,引出深度学习算法,并依次介绍了深度特征、深度神经网络类型和图像分类的经典模型

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

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

相关文章

Go 泛型之类型参数

Go 泛型之类型参数 文章目录 Go 泛型之类型参数一、Go 的泛型与其他主流编程语言的泛型差异二、返回切片中值最大的元素三、类型参数(type parameters)四、泛型函数3.1 泛型函数的结构3.2 调用泛型函数3.3 泛型函数实例化(instantiation&…

RPN网络在图像处理中的应用

RPN(Region Proposal Network,区域建议网络)是深度学习中用于目标检测的关键组件之一,它通常与后续的目标检测网络(如Fast R-CNN、Faster R-CNN等)结合使用。RPN的主要作用是生成候选目标区域,从…

需求分析工程师岗位的职责描述(合集)

需求分析工程师岗位的职责描述1 职责: 1,负责需求调研,对需求进行分析,编写解决方案、需求规格说明书等 2,根据需求制作原型,并负责原型展示以及客户沟通等工作 3,负责向技术团队精确地传达业务…

C++力扣题目344--反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:s ["h","e…

【Linux系统基础】(2)在Linux上部署MySQL、RabbitMQ、ElasticSearch、Zookeeper、Kafka、NoSQL等各类软件

实战章节:在Linux上部署各类软件 前言 为什么学习各类软件在Linux上的部署 在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,…

带您了解目前AI在测试领域能够解决的那些问题

AI在测试领域主要应用场景 话不多说,直接给结论: 接口测试脚本的自动生成和校验(依赖研发ai工具)测试用例的自动生成UI自动化测试脚本的自动生成和校验测试文档的自动生成快速了解初涉的业务领域 关于ai对研发和测试的整体影响…

基于电商场景的高并发RocketMQ实战-NameServer内存中核心数据模型分析、内核级Producer发送消息流程

🌈🌈🌈🌈🌈🌈🌈🌈 【11来了】文章导读地址:点击查看文章导读! 🍁🍁🍁🍁🍁🍁&#x1f3…

统计和绘图软件GraphPad Prism mac功能特点

GraphPad Prism mac是一款专业的统计和绘图软件,主要用于生物医学研究、实验设计和数据分析。 GraphPad Prism mac功能和特点 数据导入和整理:GraphPad Prism 可以导入各种数据格式,并提供直观的界面用于整理、编辑和管理数据。用户可以轻松…

Django开发1

Django开发1 初识Django1.安装django2.创建项目2.1 在终端2.2 Pycharm 3. 创建app4.快速上手4.1 再写一个页面4.2 templates模板4.3 静态文件4.3.1 static目录4.3.2 引用静态文件 5.模板语法//Django开发案例:联通新闻中心6.请求和响应案例:用户登录7.数…

[java] 注释

目录 单行注释: 多行注释: 文档注释: doc标签 单行注释: 多行注释: 注意多行注释不能嵌套多行注释: 文档注释: 注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类。 doc标签 标签 描述 示例 …

“抓取再吸取的连续操作学习”研究工作发表于IEEE Trans. on Robotics:仿人手的柔性抓取,超人手的指背吸取!

长期以来,抓取一直被认为是机器人操作中一项重要而实际的任务。然而,实现对不同物体的稳健和有效的抓取具有挑战性,因为它涉及夹具设计、感知、控制和学习等。最近基于学习的方法在抓取各种新物体方面表现出优异的性能。然而,这些…

C语言用两个函数求最大公约数和最小公倍数

目录 1【c语言】(函数)写两个函数,分别求两个整数的最大公约数和最小公倍数。在主函数中输入两个数,分别调用这两个函数,并输出结果 2代码: 3运行代码: 4总结: 1【c语言】(函数)写两个函数,分别求两个整数的最大公约数和最小公倍数。在主函数中输入两…

C++初阶——类和对象

呀哈喽,我是结衣 C入门之后,我们就进入了C的初阶的学习了,在了解类和对象之前,我们还是先了解,面向过程和面向对象的初步认识。 在本篇博客中,我们要讲的内容有 1.面向过程和面向对象初步认识 2.类的引入 3…

浅析海博深造

文章目录 深造作用 留学种类 选专业 择校 申请流程 申请方式 深造作用 1、个人能力提升(学术专业、语言、新文化或新生活方式) 2、更好的职业发展(起点更高、结交新朋友或扩大社交圈) 3、北京上海落户优惠 4、海外居留福…

抖音小店无货源怎么做?全新玩法,全新的思路!

大家好,我是电商糖果 抖音小店已经不能拍单了,无货源模式是不是不能做了? 自从不能拍单的规则出来之后,问这个问题的朋友特别多。 糖果做无货源电商七年了,做过天猫,京东,闲鱼,20…

MySQL部署之yum安装

MySQL https://www.mysql.com //mysql官网 yum安装步骤 yum安装 清理环境 [rootmysql ~]# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -yuserdel -r mysql[rootmysql ~]# rm -rf /etc/my* && rm -rf /var/lib/mysql && rm -rf /use/bin/m…

HarmonyOS的装饰器之BuilderParam 理解

BuilderParam 装饰器 使用时间:当定义了一个子组件,并且子组件的build()中有一个布局在不同的父组件,实现效果不一样的时候,可以在子组件中用这个BuilderParam装饰器, 在父组件用Builder 装饰器进行实现,然…

Linux操作系统基础(一)系统和软件的安装

Linux操作系统简介 Linux是一种自由和开放源码的类Unix操作系统。该操作系统的内核由芬兰人林纳斯托瓦兹在1991年10月5日首次发布,再加上用户空间的应用程序之后,就成为了Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。 Linux…

【12.23】转行小白历险记-算法02

不会算法的小白不是好小白,可恶还有什么可以难倒我这个美女的,不做花瓶第二天! 一、螺旋矩阵 59. 螺旋矩阵 II - 力扣(LeetCode) 1.核心思路:确定循环的路线,左闭右开循环,思路简…

RK3588-TVM-GPU推理模型

1.前言 之前的博客已经在RK3588上安装了tvm的mali-gpu的版本,我们整理一下思路,本文将从模型的转换和调用两个方面进行讲解,tvm使用的是0.10版本,模型和代码也都是tvm官方的案例。 2.onnx模型转换 将ONNX格式的ResNet50-v2模型转…