深度学习中的预训练与微调:从基础概念到实战应用全解析
摘要
本文系统解析深度学习中预训练与微调技术,涵盖核心概念、技术优势、模型复用策略、与迁移学习的结合方式,以及微调过程中网络参数更新机制、模型状态分类等内容。同时深入分析深层神经网络训练难点如梯度消失/爆炸问题,为模型优化提供理论支撑。适合深度学习开发者及研究者快速掌握迁移学习核心技术。
关键词:预训练;微调;迁移学习;梯度消失;模型复用
一、预训练与微调:核心概念解析
3.7.1 什么是预训练和微调
1. 预训练:构建通用特征提取器
假设我们需要训练一个图像分类模型,传统流程是随机初始化网络参数,通过反向传播不断调整参数使损失函数最小化。当模型在训练集上达到满意效果后,保存此时的参数——这个过程即为预训练(Pre-Training)。
预训练的本质是让模型在大规模通用数据上学习基础特征,例如图像中的边缘、纹理、简单几何形状等,这些特征对多种下游任务具有普适性。
2. 微调:适配特定任务的精细化调整
当面临一个与预训练任务相似的新任务(如从“动物分类”转向“猫狗分类”),直接使用预训练模型的参数作为初始化,再基于新数据集对参数进行局部调整,这个过程称为微调(Fine Tuning)。
微调无需从头训练,而是站在预训练模型的“肩膀”上,通过少量迭代让模型适应新数据的分布差异,显著降低训练成本。
3. 核心区别与联系
- 预训练:关注通用特征提取,目标是让模型具备基础的语义理解能力;
- 微调:聚焦特定任务适配,通过参数优化让通用特征与具体任务目标对齐。
二者结合形成“预训练+微调”范式,成为解决小样本学习、跨域迁移等问题的核心技术。
二、预训练与微调的核心作用:解决深层网络训练困境
3.7.2 为什么需要预训练?——应对数据稀缺与过拟合
深层神经网络面临“网络越深,所需标注数据量呈指数级增长”的难题。若直接使用小数据集训练,易陷入过拟合,导致模型泛化能力差。
解决方案:
利用大规模公开数据集(如ImageNet包含120万张图像)进行预训练,将其作为特征提取器。例如VGG、Inception等经典模型开放预训练参数,用户只需在新任务上微调,即可快速获得高性能模型。这种方式既节省计算资源,又能利用预训练模型的泛化能力,避免从头训练的低效性。
三、预训练模型复用的三种策略:从冻结到全量训练
3.7.3 如何复用预训练模型?
复用流程分为三步:
- 删除原始分类器:预训练模型的最后一层分类器针对特定任务(如ImageNet的1000类),需替换为新任务的分类器(如二分类的“猫/狗”);
- 添加新分类器:根据新任务输出维度设计全连接层;
- 选择微调策略:根据数据集大小和任务相似性,选择以下三种策略之一。
策略1:训练整个模型
- 适用场景:新数据集足够大(与预训练数据规模相当),且任务差异较大(如从图像分类转向目标检测)。
- 优势:充分利用预训练模型的网络结构,通过全量训练让所有参数适应新任务。
- 缺点:需大量计算资源,训练时间长。
策略2:冻结低层,训练高层
- 核心逻辑:神经网络低层学习通用特征(如边缘、纹理),高层学习任务特定特征(如“猫的耳朵”“狗的鼻子”)。
- 操作方法:冻结预训练模型的前N层(如卷积基),仅训练新添加的分类器及部分高层网络。
- 调参技巧:
- 小数据集+多参数:冻结更多层,避免过拟合;
- 大数据集+少参数:开放更多层训练,挖掘深层特征潜力。
策略3:完全冻结卷积基
- 极端场景:任务差异极小(如同一类物体的子类别分类),或计算资源受限。
- 实现方式:将预训练模型的卷积基作为固定特征提取器,仅训练最后分类层。
- 优势:训练速度极快,适合快速验证想法或部署轻量化模型。
四、预训练与迁移学习:四象限法则指导模型选择
3.7.4 迁移学习中的数据匹配策略
迁移学习包含三个核心环节,其中“选择预训练模型”和“数据相似性分析”是关键。
1. 数据相似性四象限模型
根据数据集大小和与预训练数据的相似性,将任务分为四个象限:
- 象限1(大数据,不相似):如从ImageNet(自然图像)转向医疗影像分类,需解冻部分高层网络,重点调整与任务相关的特征。
- 象限2(大数据,相似):如从ImageNet转向商品图片分类,可直接微调全模型,充分利用预训练特征。
- 象限3(小数据,不相似):如小样本医疗影像分类,需冻结大部分层,仅训练分类器,避免过拟合。
- 象限4(小数据,相似):如细粒度动物分类(预训练数据包含同类物种),冻结卷积基,微调分类层即可至。
2. 经验法则
- 小数据集定义:单类样本少于1000张时,视为小数据场景;
- 相似性判断:基于常识判断,如ImageNet含猫狗图像,适用于宠物分类;不含癌细胞图像,不适用医疗任务。
五、微调过程揭秘:参数更新机制与模型状态
3.7.5 微调时参数一定更新吗?
是的,微调本质是“带初始值的继续训练”,与从头训练的唯一区别是初始化方式:
- 从头训练:随机初始化参数,梯度下降方向完全由新数据决定;
- 微调:用预训练参数初始化,梯度下降在已有特征空间上优化,更新幅度通常小于从头训练至。
3.7.6 微调模型的三种状态
状态 | 训练范围 | 特点 | 适用场景 |
---|---|---|---|
状态一:仅推理 | 不更新任何参数 | 速度最快,资源消耗最低 | 模型部署、实时推理 |
状态二:训练分类层 | 仅更新最后分类层参数 | 快速适配类别变化(如从1000类→10类) | 任务输出维度变化小的场景 |
状态三:全量训练 | 更新所有可训练参数 | 精度最高,耗时最长 | 任务差异大或追求极致性能时 |
至 |
六、深层网络训练难题:梯度消失、爆炸与权重退化
3.7.7 为什么深层网络难以训练?
1. 梯度消失:反向传播的“信号衰减”
- 现象:深层网络反向传播时,梯度逐层相乘导致前层梯度趋近于0,浅层参数更新缓慢。
- 数学本质:假设激活函数导数绝对值小于1,每经过一层,梯度乘以该导数,经L层后梯度衰减为((<1)^L),呈指数级下降。
- 典型案例:早期Sigmoid网络因导数范围在(0,0.25),深层网络常陷入“梯度消失死区”。
2. 梯度爆炸:反向传播的“信号失控”
- 现象:梯度在反向传播中不断累积,导致参数更新幅度过大,模型权重溢出(NaN值)。
- 常见场景:循环神经网络(RNN)处理长序列时,权重矩阵连乘易引发数值不稳定。
3. 权重矩阵退化:特征空间的“维度坍塌”
- 本质问题:深层网络的权重矩阵乘积趋近于低秩矩阵,输入空间被压缩成“细丝状”,仅少数方向影响输出(图2)。
- 可视化证据:Duvenaud等人发现,随着层数增加,权重矩阵的秩快速下降,模型有效自由度减少至。
七、实战建议:如何高效应用预训练与微调
- 数据集评估:
- 小数据且相似:优先冻结卷积基,仅微调分类层(状态二);
- 大数据且不相似:解冻部分高层,结合学习率衰减策略(如余弦衰减)防止过拟合。
- 模型选择:
- 图像分类:首选VGG、ResNet等结构清晰的模型;
- 复杂任务(检测/分割):使用Mask RCNN、YOLO等预训练框架。
- 调参技巧:
- 初始学习率设为预训练阶段的1/10~1/100,避免破坏预训练特征;
- 采用梯度裁剪(Gradient Clipping)应对梯度爆炸,设置权重范数约束防止过拟合。
八、总结
预训练与微调技术通过“通用特征提取+特定任务适配”的模式,打破了深度学习对海量标注数据的依赖,成为现代AI落地的核心技术之一。
相关文章:
深度学习中的预训练与微调:从基础概念到实战应用全解析
摘要 本文系统解析深度学习中预训练与微调技术,涵盖核心概念、技术优势、模型复用策略、与迁移学习的结合方式,以及微调过程中网络参数更新机制、模型状态分类等内容。同时深入分析深层神经网络训练难点如梯度消失/爆炸问题,为模型优化提供理…...
EMC-148.5MHz或85.5辐射超标-HDMI
EMC 148.5MHz或85.5辐射超标-HDMI 遇到了一台设备过不了EMC ,经排查主要是显示器的HDMI问题 解决办法看看能否更换好一点的HDMI线缆...
DeepSeek系列(9):团队协作最佳实践
团队知识库构建 在知识经济时代,团队知识的有效管理和传递是组织核心竞争力的关键。DeepSeek可以成为打造高效团队知识库的得力助手,让知识管理从繁重工作变为自动化流程。 知识库架构设计 多层次知识结构 一个高效的团队知识库应具备清晰的层级结构,DeepSeek可以协助:…...
信息系统项目管理工程师备考计算类真题讲解十
一、立项管理 1)折现率和折现系数:折现也叫贴现,就是把将来某个时间点的金额换算成现在时间点的等值金额。折现时所使用的利率叫折现率,也叫贴现率。 若n年后能收F元,那么这些钱在现在的价值,就是现值&am…...
第1章 基础知识
1.1 机器语言 1.2 汇编语言的产生 用汇编语言编写程序的工作过程如下: 1.编写程序:汇编程序包括汇编指令、伪指令、其他符号,如下图。其中,“伪指令”并不是由计算机直接执行的指令,而是帮助编译器完成“编译”的符号。 2.编译:将汇编程序转换成机器码。 3.计算机执行。 …...
16.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Github Action
GitHub Actions 是 GitHub 提供的持续集成和持续部署(CI/CD)平台,它允许我们自动化软件开发工作流程。通过 GitHub Actions,我们可以构建、测试和部署代码,而无需手动干预。 一、基本概念 1.1 Workflow(工作流) 工作…...
MySQL 事务隔离级别详解
以下是 MySQL 支持的四种事务隔离级别及其特性,按并发安全性从低到高排列: 1. 读未提交 (Read Uncommitted) 问题: 脏读 (Dirty Read):事务可读取其他事务未提交的数据。不可重复读 (Non-repeatable Read)&am…...
A. Ambitious Kid
time limit per test 1 second memory limit per test 256 megabytes Chaneka, Pak Chaneks child, is an ambitious kid, so Pak Chanek gives her the following problem to test her ambition. Given an array of integers [A1,A2,A3,…,AN][A1,A2,A3,…,AN]. In one o…...
C19-while循环及for循环等价引入
一 while的表达式 //while的表达式有三个 #include <stdio.h> int main() { int sum; int data1; //第一个表达式,条件的初始值while(data<100){ //第二个表达式,条件的临界值sumsumdata;data; //第三个表达式,条件变化}printf("0至100的和是:%d\n",sum);…...
华为盘古OS深度评测:构建AI自进化系统的实践密码
华为盘古OS通过分布式AI内核与自适应学习框架的深度耦合,重新定义操作系统级智能能力。实测显示其AI任务调度效率较传统系统提升17倍,本文从智能体编排、持续学习机制、端云协同架构三个维度,解析如何基于DevKit 3.0打造具备认知进化能力的下…...
SpringBoot UserAgentUtils获取用户浏览器 操作系统设备统计 信息统计 日志入库
介绍 UserAgentUtils 是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备等相关信息,这些信息通常包含在接口请求的 User-Agent 字符串中。 这个库可以用于解析用户代理头,以提…...
PCL绘制点云+法线
读取的点云ASCII码文件,每行6个数据,3维坐标3维法向 #include <iostream> #include <fstream> #include <vector> #include <string> #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pc…...
DataStreamAPI实践原理——计算模型
引入 Apache Flink 是一个框架和分布式处理引擎,用于在 无边界 和 有边界 数据流上进行有状态的计 算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。Flink可以处理批数据也可以处理流数据,本质上,流处理…...
【那些年踩过的坑】Docker换源加速详细教程(截至2025年4月)
由于各种网络政策,在国内访问DockerHub速度会非常缓慢,大家一般都会采取更换镜像源的方式来进行加速。但是,2024.6之后,由于政策的加强,大部分常见的镜像源已经无法使用,可能在更换镜像源后出现如下报错信息…...
【MCP】详细了解MCP协议:和function call的区别何在?如何使用MCP?
本文介绍了MCP大模型上下文协议的的概念,并对比了MCP协议和function call的区别,同时用python sdk为例介绍了mcp的使用方式。 1. 什么是MCP? 官网:https://modelcontextprotocol.io/introduction 2025年,Anthropic提出…...
交换机之配置系统基本信息(Basic Information of the Configuration System for Switches)
交换机之配置系统基本信息 本文章中的信息都是基于一些特定实验环境写的。文章中使用的所有设备最初均采用缺省配置启动。如果不按初始配置,有可能会导致本文中的部分或全部步骤失败。如果您使用的是真实网络设备,请确保您已经了解所有使用过的命令影响。…...
贝叶斯算法学习
贝叶斯算法学习 贝叶斯算法基础与原理应用场景主要分类优缺点简单示例代码实现 贝叶斯算法是基于贝叶斯定理的一种统计学习方法,在机器学习、数据挖掘、自然语言处理等领域有广泛应用。以下是其原理、应用和示例的详细介绍: 贝叶斯算法基础与原理 贝…...
Java 日志:掌握本地与网络日志技术
日志记录是软件开发中不可或缺的一部分,它为开发者提供了洞察应用程序行为、诊断问题和监控性能的手段。在 Java 生态系统中,日志框架如 Java Util Logging (JUL)、Log4j 和 Simple Logging Facade for Java (SLF4J) 提供了丰富的功能。然而,…...
线程池单例模式
线程池的概念 线程池是一种线程使用模式。 一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。…...
物联网安全解决方案介绍:有效利用现有的下一代防火墙
管理物联网设备安全的挑战 如今,随着IoT(物联网)的普及,可以集中管理相机、打印机、传感器、电器、机床等各种设备,并分析和有效利用从这些设备收集的数据。这些设备已成为商业环境中不可或缺的一部分,但设备的多样化使其难以管理。与PC、服务器和网络设备不同,识别物联…...
Java社区门诊系统源码 SaaS医院门诊系统源码 可上线运营
Java社区门诊系统源码 SaaS医院门诊系统源码 医院门诊系统适用于:社区卫生服务站、门诊部、诊所、村卫生室等,有上百家医疗机构正常使用;包括医保结算。 系统功能 (一)后端管理系统功能 用户管理:提供用…...
如何在 Windows 10 中使用 WSL 和 Debian 安装 Postgresql 和 Postgis
安装 Postgresql 和 Postgis 的常规方法需要设置多个二进制文件,并且工作流程通常在图形用户界面 (GUI) 上进行。我们希望找到一种在 Windows 10 中安装 Postgresql 和 Postgis 的方法,同时保留 Linux 的 shell 体验。本教程展示了在 Windows 10 中的 De…...
[论文解析]Mip-Splatting: Alias-free 3D Gaussian Splatting
Mip-Splatting: Alias-free 3D Gaussian Splatting 论文地址:https://arxiv.org/abs/2403.17888 源码地址:https://github.com/autonomousvision/mip-splatting 项目地址:https://niujinshuchong.github.io/mip-splatting/ 论文解读 两个主…...
MongoDB 入门使用教程
MongoDB 入门使用教程 MongoDB 是一个开源的 NoSQL 数据库,使用文档(JSON-like)存储数据,与传统的关系型数据库不同,它不依赖表结构和行列的约束。MongoDB 提供了强大的查询能力,支持高效的数据存储和检索…...
PowerBI动态路径获取数据技巧
PowerBI动态路径获取数据技巧 场景一:同事接力赛——不同电脑共用模板 (想象一下:小王做完报表要传给小李,结果路径总对不上怎么办?) 这种情况就像接力赛交接棒,每台电脑的账户名不同࿰…...
【数据结构】优先级队列
目录 1. 优先级队列概念 2. 优先级队列的模拟实现 2.1 堆的概念 2.2 堆的存储方式 2.3 堆的创建 2.3.1 向下调整的时间复杂度 2.3.2 建堆时间复杂度 2.3.3 向上调整的时间复杂度 2.4 堆的插入与删除 3. 堆的应用 4. 常用接口介绍 4.1 PriorityQueue的特性 4.2 Pri…...
Myweb项目——面试题总结
一.项目描述 项⽬概述:本项⽬在云服务上开发了⼀个后端服务器与前端⻚⾯为⼀体的⾳乐专辑 鉴赏⽹站,旨在为⽤⼾提供丰富的⾳乐专辑信息展⽰和优 质的浏览体验。 主要内容及技术: 后端开发:利⽤ C 语⾔构建后端服务器,…...
用高德API提取广州地铁线路(shp、excel)
目录 结果示例html文件——直观看出输出的效果excel文件——包括地铁的具体信息完整代码网络上现有的地铁数据要么过于老旧且不便于更新,要么过于定制化限定于具体的城市无法灵活调整得到自己真正想要的那部份数据。而使用高德的API可以非常方便得到全国各地的地铁数据,而且可…...
leetcode110 平衡二叉树
一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。 递归:…...
二、信息时代社会结构的转变
到了信息时代,以及在核武器的前提下,上述的社会结构的逻辑,就有了一个根 本性的转变,就是暴力的成本和收益,都在下降。 暴力的成本在降低。比如说枪支,它的制造和分发都变得非常容易。现在我们都 知道有 3D 打印,它就好像工业时代的印刷机,印刷圣经或者书籍,使知识更加 普及和容…...
Vue2+ElementUI实现无限级菜单
使用Vue2和ElementUI实现无限级菜单,通常菜单数据以树形结构存储,每个菜单包含多个子菜单 ,子菜单又可以继续包含更深层次的子菜单项。所以,需要使用递归形式,完成子项菜单的渲染。 这里,结合Element UI界面的el-menu和el-submenu组件来构建菜单结构,有子菜单时使用el-s…...
YTJ笔记——FFT、NCC
FFT算法 快速傅里叶算法 为了计算两个多项式相乘(卷积),将多项式系数表示法转换成点值表示法 F(g(x)∗f(x))F(g(x))F(f(x)) 超详细易懂FFT(快速傅里叶变换)及代码实现_傅立叶变换编程-CSDN博客 NCC算法…...
模型 隐含前提
系列文章分享模型,了解更多👉 模型_思维模型目录。隐藏的思维地基,决策的无声推手。 1 隐含前提模型的应用 1.1 金融投资决策—科技股估值隐含前提的验证 行业:金融投资 应用方向:投资逻辑验证 背景解读࿱…...
大模型微调与蒸馏的差异性与相似性分析
大模型微调与蒸馏的差异性分析 一、定义与核心目标差异 大模型微调 在预训练大模型基础上,通过少量标注数据调整参数,使模型适应特定任务需求。核心目标是提升模型在特定领域的性能,例如医疗影像分析或金融预测。该技术聚焦于垂直场景的精度…...
Ubuntu下安装vsode+qt搭建开发框架(一)
Ubuntu下安装vsode+qt搭建开发框架(一) g++的编译环境,这里不介绍,可点击这里查看 查看一下当前的g++环境 g++ --version g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copyin…...
单片机-89C51部分:3、创建工程
飞书文档https://x509p6c8to.feishu.cn/wiki/Mzhnwb1qni6YkykJtqXc17XMnre 创建工程 首先创建一个文件夹,用来存放工程文件,文件夹名称最好为英文,例如Demo1。 打开软件KEIL,上方菜单栏选择Project ->new uVision Project&am…...
从零实现 registry.k8s.io/pause:3.8 镜像的导出与导入
以下是为 registry.k8s.io/pause:3.8 镜像的导出与导入操作定制的完整教程,适用于 Kubernetes 集群中使用 containerd 作为容器运行时的场景。本教程包含详细步骤、常见问题解析及注意事项。 从零实现 registry.k8s.io/pause:3.8 镜像的导出与导入 背景说明 Kuber…...
详解Adobe Photoshop 2024 下载与安装教程
Adobe Photoshop下载安装和使用教程 Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑和创造工作,…...
thinking-intervention开源程序用于DeepSeek-R1等推理模型的思维过程干预,有效控制推理思考过程
一、软件介绍 文末提供程序和源码下载 thinking-intervention开源程序用于DeepSeek-R1等推理模型的思维过程干预,有效控制推理思考过程。基于论文 《Effectively Controlling Reasoning Models through Thinking Intervention》 实现的思维干预技术,用于…...
Qt 5.15 编译路径吐槽点
在Qt 5.15以前,勾选“Shadow build”会自动将编译文件放在同一个目录下(区分编译器类型、Qt版本、debug和release等),可将代码文件和编译文件区分开,用户不用操心。但是奇葩的是,这个功能Qt 5.15居然失效了…...
【机器学习-线性回归-3】深入浅出:简单线性回归的概念、原理与实现
在机器学习的世界里,线性回归是最基础也是最常用的算法之一。作为预测分析的基石,简单线性回归为我们理解更复杂的模型提供了完美的起点。无论你是机器学习的新手还是希望巩固基础的老手,理解简单线性回归都至关重要。本文将带你全面了解简单…...
【MCP Node.js SDK 全栈进阶指南】中级篇(5):MCP客户端高级开发
在前面的系列文章中,我们主要关注了服务器端的开发,包括基础服务器构建、资源设计、身份验证与授权以及错误处理与日志系统。本篇文章将转向客户端,探讨MCP TypeScript-SDK在客户端开发中的高级应用。 客户端开发是MCP应用的重要组成部分,它连接了用户与服务器,提供了交互…...
RASP技术在DevOps中的安全应用
随着新技术的不断演进,DevOps开发模式不断被利用,Web应用程序的开发相比过往更高效。随之而来的是保护这些应用程序同样面临着巨大挑战,黑客的攻击手段不断多变,而DevOps团队成员却不都是安全专家,难以保证应用程序的安…...
2025.04.26-饿了么春招笔试题-第三题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 魔法网格变换计数 问题描述 LYA是一位魔法研究学者,她正在研究一种特殊的魔法网格。这个网格有 n n n...
Linux线程与进程:探秘共享地址空间的并发实现与内
Linux系列 文章目录 Linux系列前言一、线程的概念二、线程与地址空间2.1 线程资源的分配2.2 虚拟地址到物理地址的转换 三 、线程VS进程总结 前言 在Linux操作系统中,线程作为CPU调度的基本单位,起着至关重要的作用。深入理解线程控制机制,是…...
数据结构手撕--【堆】
目录 编辑 定义结构体: 初始化: 插入数据: 删除: 取堆顶元素: 堆销毁: 判断堆是否为空: TopK问题: 堆其实是完全二叉树 物理结构:二叉树的层序遍历(…...
MySQL基本命令--系统+用户+表
前言:在当今数据驱动的时代,关系型数据库依然是构建信息系统的中坚力量,而MySQL作为开源领域中最广泛使用的数据库管理系统之一,以其高性能、稳定性和易用性赢得了开发者和企业的青睐。无论是在小型博客系统中承担数据存储职责&am…...
4.23-4.26学习总结 HTML—CSS常见标签和样式
页部导航栏: flex样式: 表单标签: (25行是设置点击按钮) 表单项标签: 搜索表单区域: 底部版权区域: 总结:...
使用Django框架表单
使用Django框架表单 文章目录 使用Django框架表单[toc]1.使用Form类构建表单2.表单字段与Widget控件 1.使用Form类构建表单 【创建项目和应用】 PS C:\Users\ls> cd E:\Python\ PS E:\Python> django-admin.exe startproject FormSite PS E:\Python> cd .\FormSite\…...
OpenCV第6课 图像处理之几何变换(缩放)
1.简述 图像几何变换又称为图像空间变换,它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。几何变换并不改变图像的像素值,只是在图像平面上进行像素的重新安排。 根据OpenCV函数的不同,本节课将映射关系划分为缩放、翻转、仿射变换、透视等。 2.缩放 2.1 函数…...