计算机视觉基础(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中独立计算

总结

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

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

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

相关文章

便捷记账本,批量筛选需要的账目明细

你是否曾因为无法管理自己的财务而感到烦恼?如果你正在寻找一款简单易用的记账软件,那么晨曦记账本将是你的不二之选,一起来看看这款软件是怎么使用的吧。 所需工具: 一个【晨曦记账本】软件 操作步骤: 步骤1&…

机器学习之实验过程01

import pandas as pd import numpy as np import matplotlib.pyplot as plt data_path = /home/py/Work/labs/data/SD.csv # 请确保您的数据文件路径是正确的 df = pd.read_csv(data_path) df.head() # 创建散点图 # 创建散点图 plt.figure(figsize=(10, 6)) plt.scat…

拓扑排序算法总结

知识概览 求图的拓扑序是图的宽搜的一个很经典的应用,拓扑序列是针对有向图来说的。 拓扑序列的定义是: 如果说一个点的序列满足对于图中的每条有向边(x, y),x都出现在y的前面,那就称这个序列是这个图的拓扑序列。 备注&#xff…

【Linux】Linux常见指令解析上

目录 1. 前言2. ls指令3. pwd指令4. cd指令3.1 cd常见快捷指令 4. touch指令5. mkdir指令6. rmdir指令 && rm指令 (重要)6.1 rmdir指令6.2 rm指令 7. man指令 1. 前言 这篇文章我们将详细介绍一下Linux下常见的基本指令。 2. ls指令 语法: ls [选…

FPFA.一种二倍频电路代码描述以及测量详情

一、前言 1、因为需要倍频电路所以找了个二倍频的电路,通过fpga实际测量发现经过倍频后的电路峰值降低。不过这个也正常,因为该电路只要过触发点就会开始发生波形变化,而电路的触发值不是峰值。​​​​​​​ 2、继续对电路做倍频后信号做二…

linux操作系统——进程(二) 进程状态

进程状态 你真正的理解了进程的状态嘛?特别是操作系统教材中学过的进程状态,你真的理解了吗? 教材上关于进程状态的说明 下面我们以下图为例: 这是教材上对操作系统的说明,但是它并没有详细的说明,这些状态具体是什么&#xf…

51单片机拆字程序实验

一、实验内容 1.基本要求 熟悉51仿真系统;设计并单步调试,实现将R5中数值(初值为本人学号后两位)拆分成两位独立的数据分别存于R6,R7中; 2.扩展要求 将R6,R7中的被拆出来的一位HEX数据转换为可显示的ASCII编码&…

安全实践:保障 Kubernetes 生产环境的安全性

▲ 点击上方"DevOps和k8s全栈技术"关注公众号 Kubernetes(简称 K8s)是一个强大的容器编排平台,广泛应用于生产环境中。然而,与其功能强大相对应的是对安全性的高要求。在生产环境中,我们必须采取一系列措施来…

【微服务】springboot整合kafka-stream使用详解

目录 一、前言 二、kafka stream概述 2.1 什么是kafka stream 2.2 为什么需要kafka stream 2.2.1 对接成本低 2.2.2 节省资源 2.2.3 使用简单 2.3 kafka stream特点 2.4 kafka stream中的一些概念 2.5 Kafka Stream应用场景 三、环境准备 3.1 搭建zk 3.1.1 自定义d…

JS中的Set和Map数据结构

新的数据结构出现,往往是为了解决之前的痛点,更快更便捷的实现代码逻辑。本篇文章咱们一起学习一下JS中Set和Map数据结构。 Set 定义 Set结构中储存的是值,类似于数组,但是储存的值具有唯一性。定义Set结构方式如下图&#xff1…

三菱人机交互GT Designer的安装

今天,与小编一起来学习三菱的GT Designer软件,下面就是小编记录的软件查找,安装的全过程,希望对你学习三菱有帮助。 目录 安装 选择官网下载安装包 解压安装包进行安装 创建一个工程 安装 选择官网下载安装包 三菱(中…

Linux怎么解压zip格式文件?

Linux解压命令zip是一种常见的文件压缩格式,用于把文件打包成一个zip文件,当我们需要共享或是发送时,能够更快速的发送,储存起来能够减少储存空间。那我们在Linux上怎么使用解压命令zip来解压zip格式文件呢?我们一起来…