【GAMES101笔记速查——Lecture 19 Cameras,Lenses and Light Fields】
本章节内容:相机、棱镜、光场
计算机图形学的两种成像方法:
1.合成方法:光栅化、光线追踪(展示出现实没有的东西)
2.捕捉方法:相机(捕捉现实已有的东西)
目录
1 相机
1.1 针孔相机(Pinhole Image Formation)
1.2 视场(FOV)
(1)FOV一般定义
(2)视场FOV越窄,我们看到的东西会越远。
(3)焦距不变的情况下,传感器越大,视场FOV越大;传感器越小,视场FOV越小。
(4)手机如何做到拥有很大的FOV?焦距变小(右图所示)
1.3 曝光(Exposure)
1.2.1 有哪些因素在影响曝光(图片的亮度):光圈、快门、ISO
1.2.2 光圈、快门、ISO的协调关系
1.2.3 光圈:F数
1.2.4 快门
(1)快门速度的影响:运动模糊
(2)快门与光圈
(3)快门时间的应用
2. 镜头(Thin Lens Approximation)
2.1 理想薄透镜
2.1.1 薄透镜公式
2.1.2 推导
2.2 焦散(Defocus Blur)
2.2.1 弥散圆的大小(Circle of Confusion (CoC) Size)
2.2.2 光圈的明确定义
2.3 理想薄透镜渲染(Ray Tracing Ideal Thin Lenses)
2.3.1 薄透镜渲染步骤
2.4 景深(Depth of Field)
2.4.1 计算过程
2.4.2 演示网站
1 相机
相机里面发生了什么?
最简单的针孔相机:小孔成像
快门:控制光在多少分之一秒内进入相机
传感器:捕捉光,记录irradiance(来自各个方向的所有光)
为什么相机没有针孔或者棱镜不能成像?
如果这么操作,相当于直接把传感器放到人的面前,传感器上的任何一个点都会收集来自各个方向的信息,这个点不能区分来自各个方向的能量,此时它收集的是irradiance,不是radiance,结果就是所有东西都是糊的。(但也有人在研究用传感器直接区分不同方向的信息)
1.1 针孔相机(Pinhole Image Formation)
针孔相机成像
公元前,人们就已经发现了小孔成像的原理。
如果我们能用纸做一个小孔,那么我们可以拍出效果不错的场景。
针孔相机拍出来的东西没有深度可言,也就是说它拍摄到的所有东西都是清晰的。光线追踪也是采用的这种针孔摄像机模型。
(虚化现象是由于棱镜的存在,如果可以编程模拟出光线与棱镜的作用,那么就可以得到带有景深的渲染效果)。
1.2 视场(FOV)
焦距对视场的影响
有一个简单的相似三角形关系
虽然对于小孔不存在焦距的概念,但是我们定义“小孔和传感器之间的距离”为焦距f
那么此时就可以计算tan角度,并用它的大小来定义FOV
目前看起来,FOV和传感器的大小、焦距都有关系。
(1)FOV一般定义
所以人们规定:在定义FOV的时候,传感器大小默认固定为35mm,然后用对应的焦距来定义。
(2)视场FOV越窄,我们看到的东西会越远。
(3)焦距不变的情况下,传感器越大,视场FOV越大;传感器越小,视场FOV越小。
之前我们混淆使用了传感器和胶片的感念,实际上,传感器(sensor)和胶片(film)是不同的东西,对于渲染来说,传感器记录irradiance多大,而最后的film决定了最后存储为什么样的图片格式。
(4)手机如何做到拥有很大的FOV?焦距变小(右图所示)
1.3 曝光(Exposure)
曝光 = 曝光时间 * irradiance
辐射度量学考虑单位时间,而照相考虑的是整体时间
曝光时间:由快门控制
单位面积上的能量irradiance与什么有关:1.落到传感器上的光能 2.光圈大小
1.2.1 有哪些因素在影响曝光(图片的亮度):光圈、快门、ISO
光圈大小(瞳孔):由f-stop来控制光圈大小。光圈是仿照人的瞳孔设计的,暗处瞳孔放大,明亮处瞳孔缩小。
快门速度(眼皮):快门越快,快门开放时间越短,进入的光越少。
IOS增益(视觉细胞):IOS可以理解为一种后期处理,给sensor最后的结果乘上某个数。这个乘法可以发生在硬件上(传感器调节灵敏度),也可以后期加(已经生成了照片然后再处理)。
1.2.2 光圈、快门、ISO的协调关系
不同的光圈大小:F数越大,光圈越小
不同的快门速度:通常用分数表示,1/1000就是快门开放1ms
不同的ISO:增益倍数
改变光圈大小,光圈大时,照片变虚。
ISO越大,照片越noisy,大家普遍不愿意调大这个数:对整个信号直接乘以一个很大的数,会放大信号,但同时,也会放大噪声。
控制其他变量,通过调节ISO来使曝光一致,得到的结果如下 :
1.2.3 光圈:F数
F数:两种写法FN或者F/N,N就是f数
F数的非正式理解:就是光圈的直径分之一。
1.2.4 快门
机械快门:打开是有一个过程的。
(1)快门速度的影响:运动模糊
1.运动模糊
在快门打开的一段时间内,高速运动的物体发生了一段位移,这个过程被传感器都记录下来并平均,产生了运动模糊现象。用更长的快门时间会容易发生运动模糊。
2.运动模糊不一定是坏事
比如,为了体现赛车等一些物体的速度,运动模糊可以展现出这种动态。
3.拍视频
在不同时间对物体位置进行采样,采样是会有走样现象的,有运动模糊在一定程度上起到了反走样的效果。
4.Rolling shutter:超高速物体的扭曲:图片的不同位置记录的是不同时间进来的光。
(2)快门与光圈
下面的F数和快门速度的组合,基本可以实现同样的曝光。
如何理解?
直径从4到8,面积从1/16变到1/64,相当于缩小为原来的1/4。那么为了维持曝光不变,快门速度就要变成原来的4倍,也就是从1/60变到了1/15。
大光圈会造成浅景深
快门速度影响运动模糊
一般来说,需要在景深和运动模糊之间取平衡。
(3)快门时间的应用
1.高速摄影:快门时间更短,光圈更大, ISO更大。
2.延时摄影:快门时间很长、光圈更小,ISO更小。(俗称拉丝)
2. 镜头(Thin Lens Approximation)
目前的手机一般用透镜组
实际的透镜可能很复杂,光可能聚不到一点。
2.1 理想薄透镜
我们研究比较简单理想的情况。
1.平行于棱镜的光,经过透镜后可以集中到一个点
2.光路有可逆性,如果一个光线穿过焦点,那么会被透镜折射成一束平行光
3.薄透镜可以任意改变焦距(现代相机用透镜组的好处:最终的结果就好像是可以改变透镜的焦距)
2.1.1 薄透镜公式
过棱镜中心的光不改变方向
Z0:物距
Zi:相距
物理规律:见公式,这个公式反应了焦距、物距、相距,三者之间的关系。
即:如果要改变物距,相距一定会跟着改。
2.1.2 推导
蓝色的一对相似三角形
粉色的一对相似三角形
这个公式反应了焦距、物距、相距,三者之间的关系。
演示软件:
2.2 焦散(Defocus Blur)
2.2.1 弥散圆的大小(Circle of Confusion (CoC) Size)
还是用相似三角形解
把A移动到等式右边,可以发现弥散圆的大小和棱镜的大小(F数)成正比
2.2.2 光圈的明确定义
F数:焦距f/光圈直径A
F数计算举例见图
2.3 理想薄透镜渲染(Ray Tracing Ideal Thin Lenses)
一般我们都是从相机往任何一个像素中心去连,这样默认是一个小孔成像的模型,所有入镜的物体成像都是清晰的。
我们也完全可以模拟薄棱镜,并且渲染出这样的图片
2.3.1 薄透镜渲染步骤
1.确定传感器大小
2.确定透镜本身属性:焦距、光圈大小
3.确定透镜与场景目标的距离z0.
4.根据透镜公式,可以算出相距zi(传感器sensor和棱镜的距离)
5.在成像平面上选择一个点x’。
6.在透镜上选择一个点x’’。
7.连接这两个点,组成的光线会穿过透镜打到物体平面上,并且打到的点x’’’是确定的,可以计算的。
8.计算x’’到x’’’的radiance即可。
2.4 景深(Depth of Field)
景深:实际场景中的一段深度,它经过透镜后在成像平面附近的小区域内(CoC足够小)。
2.4.1 计算过程
2.4.2 演示网站
光圈越小,景深越大,看到的东西更多清晰(越接近小孔成像)
相关文章:
【GAMES101笔记速查——Lecture 19 Cameras,Lenses and Light Fields】
本章节内容:相机、棱镜、光场 计算机图形学的两种成像方法: 1.合成方法:光栅化、光线追踪(展示出现实没有的东西) 2.捕捉方法:相机(捕捉现实已有的东西) 目录 1 相机 1.1 针孔相…...
记录两次Unity编辑器和真机表现不符的情况,引用丢失等
如题,问题是在编辑器和打包在真机测试上的效果不一致。 首先,第一次遇到的问题是编辑器和真机上大量资源不符和丢失,多次对比表现为,异常和丢失内容都是两个版本之间变更的资源,判定为资源引用异常,尝试删…...
【Win】user32.SetWindowsHookExW - Notes
user32.SetWindowsHookExW user32.SetWindowsHookExW(idHook, lpfn, hMod, dwThreadId)用于在系统中安装钩子函数,以监视某些系统事件或消息。 Parameters idHook: int - 安装钩子的类型标识符;对应于不同的系统事件或消息类别。lpfn: callable - 指向…...
泷羽sec-linux
基础之linux 声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团…...
二叉树oj题解析
二叉树 二叉树的最近公共祖先什么是最近公共祖先?leetcode中求二叉树中最近公共祖先解题1.解题2. 根据二叉树创建字符串 二叉树的最近公共祖先 什么是最近公共祖先? 最近的公共祖先指的是这一棵树中两个节点中深度最大的且公共的祖先节点就是最近祖先节…...
python画图|无坐标轴自由划线操作fig.add_artist(lines.Line2D()函数
【1】引言 新发现了一种自由划线操作函数,和大家共享。 【2】官网教程 点击下述代码,直达官网: https://matplotlib.org/stable/gallery/misc/fig_x.html#sphx-glr-gallery-misc-fig-x-py 官网代码非常简洁,我进行了解读。 …...
Flutter封装Coap
前言 我们根据Coap数据通信流程写一个公共组件,用户只要在原本的组件外嵌套这个公共组件就可以使用Coap的功能,这样做更加的方便便捷。 具体步骤 封装一个udp函数 创建一个工厂函数,工厂函数初始化时监听广播数据发送广播函数:…...
openharmony napi调试笔记
一、动态库的编译 第一种openharmony交叉编译链配置方法 使用的编译环境是ubuntu20.04 1、使用vscode配置openharmony sdk交叉编译环境 首先下载openharmony的sdk,如native-linux-x64-4.1.7.5-Release.zip 解压后native目录下就是交叉编译用的sdk 在要编译的源…...
C++数据结构与算法
C数据结构与算法 1.顺序表代码模版 C顺序表模版 #include <iostream> using namespace std; // 可以根据需要灵活变更类型 #define EleType intstruct SeqList {EleType* elements;int size;int capacity; };// Init a SeqList void InitList(SeqList* list, int capa…...
MATLAB深度学习(六)——LSTM长短期神经网络原理与应用
LSTM的应用可以参见一个相当好的视频:小车倒立摆最优控制教程 - Part1 Simulink Simscape Multibody仿真建模_哔哩哔哩_bilibili 6.1 序列建模——循环神经网络 循环神经网络RNN是一类专门用于处理序列性数据x,,xn的神经网络结构,…...
利用Python爬虫获得1688按关键字搜索商品:技术解析
在电商领域,1688作为中国领先的B2B电商平台,其商品搜索功能对于商家来说具有极高的价值。通过获取搜索结果,商家可以更好地了解市场趋势,优化产品标题,提高搜索排名。本文将介绍如何使用Python编写爬虫,以获…...
Ajax学习笔记,第一节:语法基础
Ajax学习笔记,第一节:语法基础 一、概念 1、什么是Ajax 使用浏览器的 XMLHttpRequest 对象 与服务器通信2、什么是axios Axios是一个基于Promise的JavaScript库,支持在浏览器和Node.js环境中使用。相较于Ajax,Axios提供了更多…...
java基础知识(常用类)
目录 一、包装类(Wrapper) (1)包装类与基本数据的转换 (2)包装类与String类型的转换 (3)Integer类和Character类常用的方法 二、String类 (1)String类介绍 1)String 对象用于保存字符串,也就是一组字符序列 2)字符串常量对象是用双引号括起的字符序列。例如:&quo…...
修改bag的frame_id的工具srv_tools
在使用数据集导航或者建图时,bag中的点云或者其他话题的frame_id没有和需要的对应 1.创建工作空间 2.cd xxxx/src 3.git clone https://github.com/srv/srv_tools.git cd .. catkin_make source ./devel/setup.bash rosrun bag_tools change_frame_id.py -t /要改…...
浅谈丨功能安全测试,汽车的守护者
随着新能源汽车迅猛的发展,各类车型频频面世,同时辅助驾驶/自动驾驶等智驾功能也在不断迭代,使得整个汽车系统的复杂性越来越高,最终导致消费者不得不对如今的汽车质量和安全性提出质疑。 如何打破质疑? 那就不得不搬…...
了解M有SQL索引
目录 索引介绍 索引的优缺点 索引底层数据结构选型 Hash表 二叉查找树(BST) AVL树 红黑树 B 树& B树 索引类型总结 主键索引(Primary Key) 二级索引 聚簇索引与非聚簇索引 聚簇索引(聚集索引) 聚簇索引介绍 聚簇索引的优缺点 非聚簇索引(非聚集索引) 非聚簇…...
进程间通信5:信号
引入 我们之前学习了信号量,信号量和信号可不是一个东西,不能混淆。 信号是什么以及一些基础概念 信号是一种让进程给其他进程发送异步消息的方式 信号是随时产生的,无法预测信号可以临时保存下来,之后再处理信号是异步发送的…...
Excel把其中一张工作表导出成一个新的文件
excel导出一张工作表 一个Excel表里有多个工作表,怎么才能导出一个工作表,让其生成新的Excel文件呢? 第一步:首先打开Excel表格,然后选择要导出的工作表的名字,比如“Sheet1”,把鼠标放到“She…...
python oa服务器巡检报告脚本的重构和修改(适应数盾OTP)有空再去改
Two-Step Vertification required: Please enter the mobile app OTPverification code: 01.因为巡检的服务器要双因子认证登录,也就是登录堡垒机时还要输入验证码。这对我的巡检查服务器的工作带来了不便。它的机制是每一次登录,算一次会话…...
微信小程序下拉刷新与上拉触底的全面教程
微信小程序下拉刷新与上拉触底的全面教程 引言 在微信小程序的开发中,用户体验至关重要。下拉刷新和上拉触底是提高用户交互体验的重要功能,能够让用户轻松获取最新数据和内容。本文将详细介绍这两个功能的实现方式,结合实际案例、代码示例和图片展示,帮助开发者轻松掌握…...
第三十九章:Grafana 概述、Docker安装与验证指南
Grafana 概述、Docker安装与验证指南 一、Grafana 概述 Grafana 是一个跨平台的开源可视化分析工具,是目前网络架构和应用分析中最流行的时序数据展示工具。它主要用于大规模指标数据的可视化展示,并支持多种数据源和丰富的可视化插件。Grafana 使用Go语言开发,具备数据监…...
使用go实现流式输出
流式输出的深度剖析 之前一直在调用openai的key,只是照着文档进行流式调用,也只知其确是流式与api有所不同,而未成体系深究其实现原理。 就以openai的官方流式输出为切入。 概述 流式输出(Streaming Output)是 HTT…...
WebSocket详解、WebSocket入门案例
目录 1.1 WebSocket介绍 http协议: webSocket协议: 1.2WebSocket协议: 1.3客户端(浏览器)实现 1.3.2 WebSocket对象的相关事宜: 1.3.3 WebSOcket方法 1.4 服务端实现 服务端如何接收客户端发送的请…...
元组部分介绍
元组部分 元组的基本格式与特点 #1.元组 #基本格式: 元组名(元素1,元素2,元素3) #注意:所有元素包含在小括号内,元素与元素之间用逗号隔开,可以是不同的元素类型 #注意:…...
mfc100u.dll是什么?分享几种mfc100u.dll丢失的解决方法
mfc100u.dll 是一个动态链接库(DLL)文件,属于 Microsoft Foundation Classes (MFC) 库的一部分。MFC 是微软公司开发的一套用于快速开发 Windows 应用程序的 C 类库。mfc100u.dll 文件包含了 MFC 库中一些常用的函数和类的定义,这…...
企业数字化转型现状
国家数字经济战略背景 2018年以来,国家政府不断出台政策规范我国企业数字化治理市场。2018年9月颁布《关于发展数字经济稳定并扩大就业的指导意见》,支持建设一批数字经济创新创业孵化机构。积极推进供应链创新与应用,支持构建以企业为主导。…...
数据治理:在企业数据管理中的关键角色与实现路径——《DAMA 数据管理知识体系指南》读书笔记- 第 3 章
文章目录 1. 数据治理的核心内涵与战略价值2. 数据治理的驱动因素:不仅仅是合规3. 数据治理的组织模型:选择适合企业结构的运营模式4. 实施数据治理的关键步骤:战略、制度和文化5. 数据治理工具的选择:支持业务与流程的高效管理6.…...
树莓派2装FreeBSD14.1 Raspberry Pi2 install FreeBSD14.1 00000121:error:0A000086:SSL
树莓派2代的Model B采用Broadcom BCM2836 900MHz的四核SoC,1GB内存,是新一代开拓者,兼容1代B。相比之下,树莓派2的性能比1代提升6倍,内存翻了一番。Raspberry Pi 2不仅能跑全系列ARM GNU/Linux发行版,而且支…...
uniop触摸屏维修eTOP40系列ETOP40-0050
在现代化的工业与商业环境中,触摸屏设备已成为不可或缺的人机交互界面。UNIOP,作为一个知名的触摸屏品牌,以其高性能、稳定性和用户友好性,广泛应用于各种自动化控制系统、自助服务终端以及高端展示系统中。然而,即便如…...
uniapp+vue2重新进入小程序就清除缓存,设备需要重新扫码
代码 app.vue页面 <script>export default {onLaunch: function() {uni.removeStorageSync(equiId)}} </script>...
视频推拉流EasyDSS互联网直播点播平台技术特点及应用场景剖析
在数字科技日新月异的今天,视频直播和点播已经成为互联网内容传播的重要方式之一。而互联网直播点播平台EasyDSS作为功能强大的流媒体直播点播视频能力平台,提供了一站式的视频推拉流、转码、直播、点播、时移回放、存储等视频服务,广泛应用于…...
论文笔记 网络安全图谱以及溯源算法
本文提出了一种网络攻击溯源框架,以及一种网络安全知识图谱,该图由六个部分组成,G <H,V,A,E,L,S,R>。 1|11.知识图 网络知识图由六个部分组成,…...
抓住鸿蒙生态崛起的机遇,拥抱未来开发挑战
随着华为鸿蒙(HarmonyOS)的持续发展,鸿蒙生态正在迅速崛起,逐步在智能手机、智能穿戴、车载、家居等领域形成完整闭环。它不仅为开发者带来了新的机遇,还带来了技术上的挑战。如何抓住这些机遇并应对挑战,是…...
STM32WB55RG开发(5)----监测STM32WB连接状态
STM32WB55RG开发----5.生成 BLE 程序连接手机APP 概述硬件准备视频教学样品申请源码下载参考程序选择芯片型号配置时钟源配置时钟树RTC时钟配置RF wakeup时钟配置查看开启STM32_WPAN条件配置HSEM配置IPCC配置RTC启动RF开启蓝牙LED配置设置工程信息工程文件设置参考文档SVCCTL_A…...
ArcGIS应用指南:ArcGIS制作局部放大地图
在地理信息系统(GIS)中,制作详细且美观的地图是一项重要的技能。地图制作不仅仅是简单地将地理数据可视化,还需要考虑地图的可读性和美观性。局部放大图是一种常见的地图设计技巧,用于展示特定区域的详细信息ÿ…...
浅谈网络 | 传输层之TCP协议
目录 TCP 包头格式TCP 的三次握手TCP 的四次挥手TCP 的可靠性与"靠谱"的哲学TCP流量控制TCP拥塞控制 上一章我们提到,UDP 就像我们小时候一样简单天真,它相信“网之初,性本善,不丢包,不乱序”,因…...
Kotlin中的?.和!!主要区别
目录 1、?.和!!介绍 2、使用场景和最佳实践 3、代码示例和解释 1、?.和!!介绍 Kotlin中的?.和!!主要区别在于它们对空指针的处理方式。 ?.(安全调用操作符):当变量可能为null时,使用?.可以安全地调用其方法或属性…...
【漏洞复现】代付微信小程序系统 read.php 任意文件读取漏洞
免责声明: 本文旨在提供有关特定漏洞的信息,以帮助用户了解潜在风险。发布此信息旨在促进网络安全意识和技术进步,并非出于恶意。读者应理解,利用本文提到的漏洞或进行相关测试可能违反法律或服务协议。未经授权访问系统、网络或应用程序可能导致法律责任或严重后果…...
Python人工智能项目报告
一、实践概述 1、实践计划和目的 在现代社会,计算机技术已成为支撑社会发展的核心力量,渗透到生活的各个领域,应关注人类福祉,确保自己的工作成果能够造福社会,同时维护安全、健康的自然环境,设计出具有包…...
PyQt6+pyqtgraph折线图绘制显示
1、实现效果 2、环境: 确认已经安装pyqtgraph的模块,如果没有安装,使用命令安装: pip install pyqtgraph 3、代码实现: 绘制折线函数: import sys import random from PySide6.QtWidgets import QAppl…...
1-golang_org_x_crypto_bcrypt测试 --go开源库测试
1.实例测试 package mainimport ("fmt""golang.org/x/crypto/bcrypt" )func main() {password : []byte("mysecretpassword")hashedPassword, err : bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)if err ! nil {fmt.Println(err)…...
C语言菜鸟入门·关键字·union的用法
目录 1. 简介 2. 访问成员 2.1 声明 2.2 赋值 3. 共用体的大小 4. 与typedef联合使用 5. 更多关键字 1. 简介 共用体(union)是一种数据结构,它允许在同一内存位置存储不同的数据类型,但每次只能存储其中一种类型的…...
leetcode hot100【LeetCode 238.除自身以外数组的乘积】java实现
LeetCode 238.除自身以外数组的乘积 题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 …...
【测试工具JMeter篇】JMeter性能测试入门级教程(一)出炉,测试君请各位收藏了!!!
一、前言 Apache JMeter是纯Java的开源软件,最初由Apache软件基金会的Stefano Mazzocchi开发,旨在加载测试功能行为和测量性能。可以使用JMeter进行性能测试,即针对重负载、多用户和并发流量测试Web应用程序。 我们选择JMeter原因 是否测试过…...
嵌入式驱动开发详解3(pinctrl和gpio子系统)
文章目录 前言pinctrl子系统pin引脚配置pinctrl驱动详解 gpio子系统gpio属性配置gpio子系统驱动gpio子系统API函数与gpio子系统相关的of函数 pinctrl和gpio子系统的使用设备树配置驱动层部分用户层部分 前言 如果不用pinctrl和gpio子系统的话,我们开发驱动时需要先…...
使用 OpenCV 进行视频中的行人检测
在计算机视觉领域,行人检测是一个重要的研究方向,它在视频监控、自动驾驶、人机交互等领域都有着广泛的应用。本文将介绍如何使用 OpenCV 库来实现视频中的行人检测。 环境准备 首先,我们需要安装 OpenCV 库。可以通过以下命令来安装&#…...
py文件转pyd文件的那些坑
当编译py脚本文件发给客户使用时,为了保密源代码防止反编译,可以将py文件转换为pyd文件,然后使用pyinstaller工具转换为exe应用程序,但有时测试发现,py文件可以正常运行,转换为pyd文件后却有各种错误&#…...
go interface(接口)使用
在 Go 语言中,接口(interface)是一种抽象类型,它定义了一组方法,但是不实现这些方法。接口指定了一个对象的行为,而不关心对象的具体实现。接口使得代码更加灵活和可扩展。 定义接口 接口使用 type 关键字…...
前端---HTML(一)
HTML_网络的三大基石和html普通文本标签 1.我们要访问网络,需不需要知道,网络上的东西在哪? 为什么我们写,www.baidu.com就能找到百度了呢? 我一拼ping www.baidu.com 就拼到了ip地址: [119.75.218.70]…...
unsloth vlm模型Qwen2-VL、Llama 3.2 Vision微调案例
T4卡15G显卡训练 参考: https://github.com/unslothai/unsloth 按自己显卡cuda版本安装 免费colab微调代码: Qwen2-VL: https://colab.research.google.com/drive/1whHb54GNZMrNxIsi2wm2EY_-Pvo2QyKh?usp=sharing from unsloth import FastVisionModel # NEW instead …...