当前位置: 首页 > news >正文

计算机视觉读书系列(1)——基本知识与深度学习基础

研三即将毕业,后续的工作可能会偏AI方向的计算机视觉方面,因此准备了两条线来巩固计算机视觉基础。

一个是本系列,阅读经典《Deep Learning for Vision System》,做一些总结跑一些例子,也对应本系列文章

二是OpenCV实践系列,根据官方自学OpenCV使用方法,对应"OpenCV-Python自学系列"。

后续准备在实际项目中引入一些目前的大模型的东西,视觉语言模型在传统CV任务上的理解和实践等。


本期主要包括基础知识和深度学习介绍。本篇主要以概念为主

一、计算机视觉通识

1.1 计算机器视觉

        视觉系统传感设备 + 解释设备

1.2 计算机视觉的应用

        略

1.3 计算集视觉处理流程

        计算机视觉处理流程:输入数据——预处理——特征提取——机器学习模型。

        以图像分类算法为例,其流程为:从视觉设备输入一张图像、对图像进行预处理(标准化、重采样、模糊、旋转、颜色变换等等)、特性提取(输出为特征向量)、将特征喂到分类模型中、输出概率(该概率代表输入相片是该类别的概率)

1.4 图像输入

        图像坐标系:原点为最左上角,横着为x,向右为正;竖着为y,向下为正。(注意,在代码张对图像数据,也即矩阵,进行索引时,仍然按照直观上的行列进行索引)。

        图像映射:图像时多层矩阵的组合,每个矩阵中的元素值可看作该点坐标的映射,也即z=f(x,y),z表示坐标为(x,y)的像素值。

        通道:通常情况下,灰度图像为单通道,取值范围0-255,0为黑色,255为白色。彩色图像由三通道组成,R(红色)G(绿色) B(蓝色)。

1.5 图像预处理

        预处理一:将图像由彩色转化为灰度降低计算复杂性。对于那些颜色不是很重要的特征而言,可使用该方法。

        预处理二:重采样固定模型输入尺寸。

        预处理三:数据增强。

        等等。。。

        理论:没有一个方法或一个策略能适合于所有的任务。

1.6 特征提取

        特征定义:

        在机器学习过程中,我们希望将原始数据转换为特征向量(一维向量,能简单表示整个类别),再将特征向量展示于我们的学习算法

        如何选择一个好的特征(如何提取出好的特征)?

        传统特征提取和DL的区别:

二、深度学习基础

 2.1 理解感知机

        感知机的构成主要包括以下几个方面:输入向量、权重向量、神经函数、输出。如图

        感知机如何进行学习:感知机通过测试和误差从他的错误中进行学习。

2.2 多层感知机

        单层的感知机能力有限(线性问题),无法解决复杂情况的问题。因此使用多层神经元的感知机,也即多层感知机。关于多层感知机的概念需要清楚的是:

       隐含层的数量:输入层于输出层之间的网络被称为隐含层,隐含层越多其模型拟合能力越强,但容易过拟合。 

        激活函数:在某个神经元进行加权求和后进行映射操作,是神经网络具备非线性拟合能力的关键。

        误差函数:用于衡量模型的预测结果和真实结果之间差距的函数。

        优化器:基于模型现有误差对模型进行调整的优化算法。

        Batch-Size:采用MiniBatch方式进行训练的情况下,每个批次的包含样本的多少。

        训练轮数:整个训练进行的轮次数。

        学习率:(优化过程中)学习速度的控制。

2.3 激活函数

       激活函数的目的:往神经网络中引入非线性。

       线性激活函数:

        步型函数:

        Sigmoid函数:将无限连续的变量转移到简单的0-1之间的概率。广泛用于分类中。

        softmax函数:对Sigmoid函数的泛化,Sigmoid只能处理单类问题,而sigmoid能处理多类型分类中的概率计算问题。

        tanh函数:这个函数在隐含层中表现往往比sigmoid函数更好,因为使用tanh会使得数据的均值更接近于0而不是sigmoid的0.5,使得后续的训练更加简单。

        ReLU函数:ReLU函数被认为是目前最优秀的(state-of-the-art)的激活函数。

        Leaky ReLU函数:虽然用得不多,但通常略优于ReLU,主要是在小于0是提供了小幅度的导数。

2.4 前馈过程

        神经网络的前馈过程,加权求和(矩阵乘法)——激活函数——加权求和——激活函数...

        其计算过程可表示为:

        表示矩阵乘法可为:

2.5 误差函数

        常用的误差函数主要由两大类,MSE(Mean Square Error)和Cross Entropy Error。

        MSE主要用于回归问题,用于衡量两个向量在空间中的欧式距离的大小。

        交叉熵函数(Cross Entropy Error):量化预测概率和目标概率之间的差距。

         参数描述如下:

2.6 优化算法

        Batch Gradient Descent:逐步的根据梯度信息对误差进行优化。

        梯度:其方向代表了误差下降最快的方向,梯度仅仅提供误差下降的方向信息。

        学习率:决定了迭代速度。

       Batch GD将所有数据放在一个Batch中,进行训练,每一个参数更新都是计算了所有训练数据集后的结果。

        Stochastic Gradient Descent(SGD):在每次参数更新时只随机选择一组样本数据计算误差。

         在实际应用中SGD表现要由于Batch GD。

         Mini-Batch Gradient Descent(MBGD):将数据集按一定的尺寸分割为不同批次,每计算一个批次就进行一次参数更新。

        其余优化算法:Adam、Adagrad、RMSprop等...

2.7 反向传播

        根据链式求导法制对每个参数求偏导,获得梯度,进而计算其参数的改正值。

        对网络中某个参数的求解可如下:

 


相当较为基础,笔记较为简略,欢迎批评交流。

下一期:卷积

共勉。

相关文章:

计算机视觉读书系列(1)——基本知识与深度学习基础

研三即将毕业,后续的工作可能会偏AI方向的计算机视觉方面,因此准备了两条线来巩固计算机视觉基础。 一个是本系列,阅读经典《Deep Learning for Vision System》,做一些总结跑一些例子,也对应本系列文章 二是OpenCV实…...

怎么查看navicat的数据库密码

步骤1:打开navicat连接数据库工具&#xff0c;顶部的文件栏-导出结果-勾选导出密码-导出 步骤2&#xff1a;导出结果使用NotePad或文本打开&#xff0c;找到&#xff0c;数据库对应的的Password"995E66F64A15F6776“”的值复制下来 <Connection ConnectionName"…...

webrtc前端播放器完整案例

https://download.csdn.net/download/jinhuding/89961792...

GORM优化器和索引提示

在使用 GORM 进行数据库操作时&#xff0c;优化器和索引提示可以帮助你提高查询性能。GORM 提供了一些方法来利用这些特性。 优化器提示 优化器提示&#xff08;Optimizer Hints&#xff09;是数据库系统提供的功能&#xff0c;用于指导查询优化器如何处理查询。不同的数据库…...

linux驱动-i2c子系统框架学习(1)

可以将整个 I2C 子系统用下面的框图来描述&#xff1a; 可以将上面这一 I2C 子系统划分为三个层次&#xff0c;分别为用户空间、内核空间和硬件层&#xff0c;内核空间就包括 I2C 设备驱动层、I2C 核心层和 I2C 适配器驱动层&#xff0c; 本篇主要内容就是介绍 I2C 子系统框架中…...

元戎启行嵌入式面试题及参考答案

介绍下 CAN 通信原理 控制器局域网(CAN)是一种串行通信协议,主要用于汽车、工业自动化等领域的电子控制单元(ECU)之间的通信。 其通信原理是基于多主站架构。在总线上,多个节点(设备)都可以主动发起通信。CAN 协议使用差分信号来传输数据,通过两条信号线 CAN_H 和 CAN…...

【EasyExcel】EasyExcel导出表格包含合计行、自定义样式、自适应列宽

目录 0 EasyExcel简介1 Excel导出工具类设置自定义表头样式设置自适应列宽添加合计行 2 调用导出工具类导出Excel表3 测试结果 0 EasyExcel简介 在数据处理和报表生成的过程中&#xff0c;Excel是一个非常常用的工具。特别是在Java开发中&#xff0c;EasyExcel库因其简单高效而…...

es数据同步(仅供自己参考)

数据同步的问题分析&#xff1a; 当MySQL进行增删改查的时候&#xff0c;数据库的数据有所改变&#xff0c;这个时候需要修改es中的索引库的值&#xff0c;这个时候就涉及到了数据同步的问题 解决方法&#xff1a; 1、同步方法&#xff1a; 当服务对MySQL进行增删改的时候&…...

apt镜像源制作-ubuntu22.04

# 安装必要的软件 sudo apt-get install -y apt-mirror # 编辑/etc/apt/mirror.list,添加以下内容 set base_path /var/spool/apt-mirror # 指定要镜像的Ubuntu发布和组件-null dir jammy-updates main restricted universe multiverse # 镜像的Ubuntu发布和组件的URL-n…...

libaom 源码分析: 预测编码过程梳理

AV1 预测编码中核心技术 AV1(AOMedia Video 1)作为一种开源的视频编码格式,其预测编码核心技术主要包括以下几个方面: 分区树分割模块: AV1利用多类型分割模式,递归地对图像/视频序列进行分区,以捕捉更丰富的空间信息,从而提升编码效率。这包括新的方向预测分割模式及…...

从0开始学习Linux——Yum工具

往期目录&#xff1a; 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 上一个章节我们简单了解了Linux中常用的一些文本编辑器&#xff0c;本次教程我们将学习yum工具。 一、Yum简介 Yum&#xff08;全名…...

【Linux】Linux管道揭秘:匿名管道如何连接进程世界

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 &#x1f308;C专栏&#xff1a;C 文章目录 1.什么是管道 &#xff1f;2. 管道的类型2.1 匿…...

【LeetCode】【算法】155. 最小栈

LeetCode 155. 最小栈 题目描述 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int …...

3.3 windows,ReactOS系统中页面的换出----1

系列文章目录 文章目录 系列文章目录3.3 页面的换出MiBalancerThread()MmTrimUserMemory&#xff08;&#xff09;MmPageOutVirtualMemory&#xff08;&#xff09; 3.3 页面的换出 在前一节中我们看到&#xff0c;如果有映射的页面已经被倒换到磁盘上即倒换文件中&#xff0c…...

QCustomPlot添加自定义的图例,实现隐藏、删除功能(二)

文章目录 实现步骤:详细代码示例:实现原理和解释:使用方法:其他参考要实现一个支持复选框来控制曲线显示和隐藏的自定义 QCPLegend 类,可以通过继承 QCPLegend 并重写绘制和事件处理方法来实现,同时发出信号通知曲线的状态变更。 实现步骤: 继承 QCPLegend 类,添加绘…...

Linux云计算 |【第五阶段】CLOUD-DAY8

主要内容&#xff1a; 掌握DaemonSet控制器、污点策略&#xff08;NoSchedule、Noexecute&#xff09;、Job / CronJob资源对象、掌握Service服务、服务名解析CluterIP&#xff08;服务名自动发现&#xff09;、&#xff08;Nodeport、Headless&#xff09;、Ingress控制器 一…...

岛屿数量 广搜版BFS C#

和之前的卡码网深搜版是一道题 力扣第200题 99. 岛屿数量 题目描述 给定一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的矩阵&#xff0c;你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成&#xff0c;并且四周都是水域。…...

hive切换表底层文件类型以及分隔符

1、改底层文件存储类型&#xff0c;但是一般只会在数据文件与期望类型一致的时候使用&#xff0c;比如load等方式时发现建表时没指定对这样的&#xff0c;因为这个语句不会更改具体的底层文件内容&#xff0c;只改元数据 ALTER TABLE 表名 SET FILEFORMAT 希望类型;2、更改数据…...

ChatGPT o1与GPT-4o、Claude 3.5 Sonnet和Gemini 1.5 Pro的比较

全新的ChatGPT o1模型&#xff08;代号“Strawberry”&#xff09;是OpenAI的最新进展&#xff0c;专注于以前的AI模型难以应对的领域&#xff1a;高层次推理、数学和复杂编程。OpenAI设计o1模型以花费更多时间思考问题&#xff0c;使其在需要逐层推理的任务中提高准确性。本文…...

asp.net文件防盗链

URLRewriter实现 可以参考下面的文章 代码 .net framework 新建asp.net framework的web项目&#xff0c;新建AntiTheftChainHandler using System.Web;namespace AntiTheftChainStu01.Handler {public class AntiTheftChainHandler : IHttpHandler{public bool IsReusable…...

【日志】力扣58.最后一个单词的长度//14.最长公共前缀//28. 找出字符串中第一个匹配项的下标

2024.11.6 【力扣刷题】 58. 最后一个单词的长度 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/length-of-last-word/?envTypestudy-plan-v2&envIdtop-interview-150 int lengthOfLastWord(char* s) {int count 0;for (int i strlen(s) - 1; i…...

华为杯”第十五届中国研究生数学建模竞赛-B题:光传送网建模与价值评估(续)

目录 4. 问题二 光传送网规划 4.1 基本假设 4.2 模型建立 4.3 子问题一 4.2 子问题二 4.5 子问题三 5. 问题三 改善星座图 5.1 问题简述 5.2 问题分析 5.3 建模与问题求解 5.3.1 方案一 5.3.2 方案二 6. 模型评价 6.1 模型的优点 6.2 模型的缺点 参考文献 本文篇幅较长,分为上…...

android 使用xml设置背景图片和圆角

使用xml设置背景图片和圆角 <?xml version"1.0" encoding"utf-8"?> <layer-list xmlns:android"http://schemas.android.com/apk/res/android"><item><shape><solid android:color"android:color/transparen…...

数据结构,问题 E: 表达式括号匹配

题目描述 假设一个表达式有英文字母&#xff08;小写&#xff09;和数字、运算符&#xff08;&#xff0c;—&#xff0c;*&#xff0c;/&#xff09;和左右小&#xff08;圆&#xff09;括号构成&#xff0c;以“”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号…...

国家宠物美容师职业技能等级评价(高级)理论考试题

国家宠物美容师职业技能等级评价 理论考试复习参考范围 高级/三级 宠物美容师&#xff08;高级&#xff09;理论考试题 一 判断题 犬只的世界只有黑白灰三种&#xff0c;通过颜色呈现的深浅度进行辨识&#xff08;A &#xff09; A 对 B 错 美国养犬俱乐部简称AKC&#xf…...

Spring挖掘:(AOP篇)

学习AOP时,我们首先来了解一下何为AOP 一. 概念 AOP&#xff08;面向切面编程&#xff0c;Aspect Oriented Programming&#xff09;是一种编程技术&#xff0c;旨在通过预编译方式或运行期动态代理实现程序功能的统一管理和增强。AOP的主要目标是在不改变原有业务逻辑代码的…...

十四届蓝桥杯STEMA考试Python真题试卷第二套第四题

来源:十四届蓝桥杯STEMA考试Python真题试卷第二套编程第四题:糖果罐调整 该题解通过贪心策略在每一步都选择对当前状态最有利的操作,从而达到最少调整次数的目标。 题目描述 现有 N 罐糖果,且已知每罐糖果的初始数量。现给出两个数值 L 和 R(L≤R),需要把每罐糖果的数…...

单元测试怎么做

单元测试是软件开发中非常重要的一部分&#xff0c;能够确保代码的正确性、可靠性和可维护性。对于 Vue 项目来说&#xff0c;单元测试主要关注的是测试组件及其相关功能是否正常。下面是如何在 Vue 项目中进行单元测试的详细步骤&#xff0c;包括测试框架的选择、测试工具的配…...

移动应用开发 实验二:标准身高计算器

文章目录 准备工作一&#xff0c;创建Android Studio项目二&#xff0c;创建活动模块三&#xff0c;设计用户界面&#xff08;一&#xff09;设置页面布局&#xff08;二&#xff09;添加标题文本控件&#xff08;三&#xff09;设计体重输入框&#xff08;四&#xff09;设计性…...

金华迪加现场大屏互动系统 mobile.do.php 任意文件上传漏洞复现

0x01 产品描述&#xff1a; ‌ 金华迪加现场大屏互动系统‌是由金华迪加网络科技有限公司开发的一款专注于增强活动现场互动性的系统。该系统设计用于提供高质量的现场互动体验&#xff0c;支持各种大型活动&#xff0c;如企业年会、产品发布会、展览展示等。其主要功能包…...