当前位置: 首页 > 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…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...