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

计算机图形学中的深度学习

文章目录

  • 零、前言
    • 0.课程考核
    • 1.课程大纲
    • 2.前置知识
    • 3.教材
    • 4.课程大纲
    • 5.相关课程 Relevant Courses
  • 一、计算机图形学
    • 1.本章学习目标
    • 2.图形学的应用
    • 3.SIG Graph papers
  • 二、基本图形生成算法
    • 1.本章学习目标
    • 2.图形API
    • 3.OpenGL
      • (1)什么是OpenGL
      • (2)OpenGL 的基本组件:顶点、坐标、颜色、纹理
      • (3)OpenGL 2D
      • (4)OpenGL 3D
    • 4.Direct X 3D
    • 5.法线贴图Normal Map
  • 三、3D图形中的数学基础
    • 1.坐标
    • 2.点积、叉积
      • (1)点运算
      • (2)代数运算:加法、减法、乘法、与、或、非
    • 3.图形学中常用的矩阵运算
    • 4.图形表达、空间几何求交
    • 5.向量、矩阵、几何的程序实现
    • 6.直方图
    • 7.拟合与插值
      • (1)插值、内插、外插
  • 四、图形变换
    • 1.线性变换
    • 2.变换 Transformations
    • 3. 图像处理 Image Processing
  • 五、三维场景绘制基础
  • 六、真实感图形光照处理
    • 1.照明 Lighting
    • 2.全局光照:Global illumination
  • 七、纹理映射技术
    • 1.纹理映射 Texture mapping
  • 八、场景组织与管理技术
  • 九、游戏特效绘制技术
    • 1.游戏引擎 Game Engine
  • 十、地形绘制技术
  • 十一、阴影绘制技术
  • 十二、碰撞检测技术
  • 十三、计算机动画技术
    • 1.动画 Animation
  • 十四、GPU硬件加速技术

零、前言

0.课程考核

1.最后交一篇报告

该课程讲的水分较大。好在要求也不高。任课老师:GY
建议课上自学OpenGL


1.课程大纲

在这里插入图片描述
在这里插入图片描述


2.前置知识

Prerequisites (前置知识)

  • Linear algebra (线性代数)
  • Familiarity with: (熟悉)
    ①Vectors (dot products, cross products…) (向量的点乘和叉乘)
    ②Matrices (矩阵)
    ③C++ or Java
    ④Object oriented programming (面向对象编程)
    ⑤3D点云

图形学、嵌入式、硬件:要求 C/C++


3.教材

《计算机图形图像技术》、《3D计算机图形学》
https://kesen.realtimerendering.com/
Z-library:https://zh.z-lib.gs/

在这里插入图片描述


4.课程大纲

在这里插入图片描述


5.相关课程 Relevant Courses

①Image Synthesis Techniques:图像合成技术
②Numerical Methods:数值方法、计算方法
③Computer Animation:计算机动画
④Geometric Algorithm:几何算法
⑤Geometric Modeling:几何建模
⑥Differential Geometry:微分几何
⑦Machine Learning:机器学习

中望:CAD
UG
SolidWorks、Ansys



一、计算机图形学

1.本章学习目标

①计算机图形学的定义和研究范畴
②计算机图形学的历史和应用领域
③图形系统构成及输入输出设备
④计算机图形学的发展热点


2.图形学的应用

1.游戏开发 (Video games)):游戏里的3D模型和动画都是图形学的成果
2.影视特效:电影、电视特效 (Movie,TV special effects)。像那些好莱坞电影里的CGI,肯定离不开图形学。
3.虚拟现实、增强现实 (Virtual and Augment Reality):VR/AR需要实时渲染,这也是图形学的应用
4.工业设计 (Industrial design):CAD软件里的三维建模和可视化应该属于图形学
5.机器人技术:环境建模和路径规划,三维感知可能涉及图形学
6.广告与电子商务:虚拟试衣、AR试妆,这些实时图像处理也是图形学的应用
①虚拟试穿:电商平台(如ASOS)的AR试衣间、美妆滤镜(如L’Oréal的虚拟口红试色)。
②3D广告:交互式产品展示(如汽车360度在线浏览)。广告和营销里的3D产品展示、互动广告,同样需要图形学技术。
7.医学成像:CT和MRI的三维重建,这也是图形学的应用
8.地理信息系统(GIS)和地图制作 :三维地形渲染可能用到了图形学技术。GlS (Geographic Information SystemsMedical visualization。
9.建筑与城市规划、建筑可视化:比如用BIM做建筑模型,实时渲染展示。
BIM技术:Revit等软件实现建筑模型的可视化与协作。
②城市仿真:数字孪生城市(如智慧交通系统规划)。
10.数据可视化 (Scientific visualization):科学计算和商业分析中的三维图表
①科学可视化:气候模型、分子结构的三维动态展示。
②商业分析:交互式3D图表(如股票市场趋势的立体呈现)。
9.计算机界面设计:比如图形用户界面(GUI)和触摸交互,图形学在这里也有应用
11.教育与培训中的模拟器 (Simulation):
①飞行模拟器:飞行员训练中的真实感驾驶舱环境。需要实时渲染和物理模拟,这也是图形学的范畴。
②虚拟实验室:化学实验模拟(如Labster)、历史场景重建。
12.军事与航天
①军事和航天中的模拟训练、战场可视化
②战场模拟:战术训练系统、无人机路径规划。
③航天器设计:火星探测器着陆环境的三维建模。
13.文化遗产保护:比如用3D扫描重建古迹,这也属于图形学的应用。
①3D扫描与重建:数字化保存古迹(如敦煌壁画、帕特农神庙)。
②虚拟博物馆:在线浏览文物(如大英博物馆的3D藏品库)。
14.艺术创作与设计领域:数字绘画、雕塑软件,可能用到了图形学的算法
①数字艺术:工具如Procreate、ZBrush用于绘画与雕塑。
②生成艺术:算法生成动态视觉作品(如NFT艺术)。
15.未来趋势
①实时渲染突破:光线追踪技术普及(如NVIDIA RTX),提升游戏与影视画质。
②AI驱动图形:GAN生成逼真纹理、NeRF实现照片级3D重建。
③元宇宙应用:图形学支撑虚拟世界的构建(如Decentraland中的虚拟地产)。


3.SIG Graph papers

一、SIGGRAPH 2023 获奖论文精选611
最佳论文奖
Split-Lohmann Multifocal Displays
机构:卡耐基梅隆大学
贡献:提出近眼3D显示器技术,支持人眼对不同距离内容的自然聚焦,提升沉浸式3D视频与游戏的体验。
亮点:解决了传统3D显示器的视觉疲劳问题,通过多焦点层实现动态景深调节。
Globally Consistent Normal Orientation for Point Clouds
机构:山东大学、香港大学等
贡献:提出平滑目标函数,从随机法向点云中生成全局一致的法向场,显著提升3D重建精度。
应用:自动驾驶、虚拟现实中的高精度环境建模。
3D Gaussian Splatting for Real-time Radiance Field Rendering
机构:蔚蓝海岸大学、马克斯・普朗克研究所
贡献:基于3D高斯分布的辐射场实时渲染(≥30fps),训练速度与质量均达SOTA水平。
意义:为实时高质量虚拟场景生成提供新方法。
荣誉提名论文
GestureDiffuCLIP(北京大学):结合CLIP的语音驱动手势合成系统,支持多模态风格控制6。
Sag-Free Hair Simulation(腾讯光子工作室):提出四阶段无下垂头发模拟框架,解决动态发型的稳定性问题11。
二、时间检验奖(Test of Time Award)611
表彰过去十年对领域产生深远影响的论文:
Functional Maps: A Flexible Representation of Maps Between Shapes (2012)
贡献:提出“功能映射”理论,成为形状匹配领域的基石,推动几何处理算法的标准化。
Eulerian Video Magnification (2012)
应用:通过放大视频中的微小运动,应用于医疗监测(如脉搏检测)与工程振动分析。
HDR-VDP-2 (2011)
影响:首个跨亮度条件的视觉质量评估指标,被工业界广泛用于HDR内容优化。
三、SIGGRAPH 2025 前瞻研究19
Diffusion as Shader: 3D-aware Video Diffusion
亮点:基于CogVideox5B的3D点云控制视频生成,支持从单图生成动态视频,结合3D跟踪技术提升可控性1。
Adobe MotionBridge 统一模型
功能:支持多模态控制(关键帧、轨迹、掩码等),实现高精度视频插帧与编辑,如通过轨迹笔画控制物体运动或镜头视角9。
技术突破:基于DiT架构的分类编码策略,区分内容与运动控制信号,减少生成歧义。



二、基本图形生成算法

1.本章学习目标

①了解图形光栅化的基本原理
②掌握直线的 DDA和 Bresenham算法
③掌握圆的生成算法
④了解其他图形的光栅化算法


2.图形API

1.应用编程接口API

以前软件开发缺乏标准,一种代码就只是对应着一种硬件和一种系统。这样导致的结果是开发的过程会非常繁琐。这是时候就需要一个中间层在不同的软件和不同的硬件中进行沟通,就是API。API是执行一组相关操作的标准函数集合。图形API是一组执行基本操作的函数。程序可以直接通过这些函数进行构建不需要访问更底层的东西。API的意义在于简化编程的操作。

图形API是针对GPU的图形库,用于渲染2D、3D矢量图形的跨语言、跨平台的应用编程接口。

DirectX由微软定义,支持平台有Windows、Xbox。

OpenGL由Khronos定义支持平台有Windows、MacOS、Linux,Andriod、IOS。

OpenGL是一种图形API,DirectX是许多种API的集合体,其中也包括图形API,比如Direct3D。它就相当于是游戏引擎,显卡驱动和系统层之间的桥梁。


3.OpenGL

学习资料:
1.一小时入门OpenGL
2.我的博文:OpenGL


(1)什么是OpenGL

OpenGL (Open Graphics Library开放式图形库) 是一种用于渲染 2D 和 3D矢量 图形的跨语言、跨平台的应用程序编程接口(API)。

OpenGL 提供了大量的底层的图形渲染函数API,这些函数可以直接与图形硬件进行通信交互,实现高效的图形渲染:
①跨平台
②提供许多用于绘制图形的函数
③广泛应用于各种图形应用中,常见于:视频游戏、数据可视化
这个API接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。

OpenGL 是一个基于状态的系统,也就是说,你可以通过设置一系列的选项来改变它的行为。这些选项会影响到 OpenGL 后续的渲染操作。例如,你可以设置颜色、光照模型、混合模式等状态,这些状态会在绘制图形时使用。

OpenGL的高效实现(利用图形加速硬件)存在于Windows,部分UNIX平台和MacOS。这些实现一般由显示设备厂商提供,而且非常依赖于该厂商提供的硬件。开放源代码函数库Mesa是一个纯基于软件的图形API,它的代码兼容于OpenGL。但是,由于许可证的原因,它只声称是一个“非常相似”的API。

OpenGL规范由1992年成立的OpenGL架构评审委员会(ARB)维护。ARB由一些对建立一个统一的、普遍可用的API特别感兴趣的公司组成。根据OpenGL官方网站,2002年6月的ARB投票成员包括3Dlabs、Apple Computer、ATI Technologies、Dell Computer、Evans & Sutherland、Hewlett-Packard、IBM、Intel、Matrox、NVIDIA、SGI和Sun Microsystems,Microsoft曾是创立成员之一,但已于2003年3月退出。


(2)OpenGL 的基本组件:顶点、坐标、颜色、纹理

OpenGL 通过一系列的基本组件和概念来定义和渲染 3D 图形。下面是其中的一些基本组件:

①顶点(Vertex):
顶点是构成图形的基本元素。一个顶点主要包含位置信息,但也可能包含颜色、法线、纹理坐标等其他信息。在 OpenGL 中,顶点数据通常存储在顶点缓冲对象(VBO)中,并通过顶点数组对象(VAO)来管理。
②坐标(Coordinates):
OpenGL 使用坐标来描述顶点的位置。在 3D 空间中,每个顶点都有一个三维坐标(x, y, z)。在 OpenGL 中,所有的坐标都被归一化到一个叫做裁剪空间(Clip Space)的立方体中,这个立方体的中心位于原点,长度、宽度和高度都是 2。
③颜色(Color):
颜色用于描述顶点或者片元的颜色。在 OpenGL 中,颜色通常由红、绿、蓝三个分量来表示,每个分量的值在 0 到 1 之间。有时候还会有一个额外的分量 alpha,用于表示颜色的透明度。
④纹理(Texture):
纹理是一个图像,可以被映射到图形的表面上,增加图形的细节。每个顶点都可以有一个或多个纹理坐标,用于指定纹理的哪一部分应该被映射到顶点上。在 OpenGL 中,纹理数据通常存储在纹理对象中。
⑤着色器(Shader):
着色器是运行在 GPU 上的小程序,用于控制图形的渲染过程。顶点着色器(Vertex Shader)用于处理顶点数据,片元着色器(Fragment Shader)用于计算像素的颜色。
⑥帧缓冲(Frame Buffer):
帧缓冲是一个内存区域,用于存储渲染的结果。在渲染过程中,OpenGL 会将图形绘制到帧缓冲中。帧缓冲中的数据最终可以被复制到屏幕上,或者被保存为图像文件。


(3)OpenGL 2D

在这里插入图片描述


(4)OpenGL 3D

在这里插入图片描述


4.Direct X 3D

在这里插入图片描述


5.法线贴图Normal Map

最直接的区别就是法线贴图是凸出的还是凹陷的。

在这里插入图片描述



三、3D图形中的数学基础

1.坐标

x,y,z。一般z取贴地面,这样令z=0,x和y放在中心,方便旋转。

在这里插入图片描述


2.点积、叉积

(1)点运算

在这里插入图片描述


(2)代数运算:加法、减法、乘法、与、或、非

1.加法
加法:去除叠加性噪声

2.减法

3.乘法
抠图、前景区域

4.与
求交集

5.非
取反


3.图形学中常用的矩阵运算


4.图形表达、空间几何求交


5.向量、矩阵、几何的程序实现


6.直方图

在这里插入图片描述
在这里插入图片描述


7.拟合与插值

(1)插值、内插、外插

插值、内插和外插是数值分析中常用的概念,主要用于通过已知的数据点推测未知的数值。它们的区别在于估算的位置相对于已知数据点的关系。

1.插值(Interpolation):
插值是指在已知数据点之间进行估算,目的是通过已知的点来推测未知的中间点的值。插值通常用于在已有数据点之间填补缺失的数值。
例如,如果你知道在时间点 t 1 t1 t1 t 2 t2 t2 之间的某些数值,插值可以帮助你估算时间点 t 1 t1 t1 t 2 t2 t2​ 之间的其他值。

2.内插(Interpolate):
内插与插值的概念基本相同,是指在已知数据点的区间内进行值的估算。在数学中,内插通常指在已知数据范围内部,利用某种方法(如线性插值、拉格朗日插值等)推算未知值。
例如,在 x 1 ≤ x ≤ x 2 x_1≤x≤x_2 x1xx2 之间的某个 x x x 值进行内插。

3.外插(Extrapolation):
外插是指通过已知数据点外的推测,估算超出数据范围之外的未知值。外插不保证精确,因为它是根据已有数据点的趋势延伸推算出来的。
比如,在已知数据点的区间之外,你希望推测 x > x 2 x>x_2 x>x2​ 或 x < x 1 x<x_1 x<x1​ 时的值,这就是外插。

总结:

  • 插值 (Interpolation):在已知数据点之间进行估算。
  • 内插 (Interpolate):一般指在已知数据点区间内进行估算。
  • 外插 (Extrapolation):推算已知数据点范围之外的值。



四、图形变换

1.线性变换

1.线性变换
在这里插入图片描述

2.平移变换不是线性变换
在这里插入图片描述


2.变换 Transformations

在这里插入图片描述


3. 图像处理 Image Processing

图像去噪与超分辨率:深度残差网络 SuRDCNN 可在单一模型中同时完成高斯噪声去除与图像超分辨率重建,通过残差学习提升去噪和放大效果。

多尺度融合 GAN(MFGAN):该方法利用多尺度生成对抗网络同时恢复噪声干扰下的图像,显著增强图像视觉质量。

风格迁移与语义分割:利用自编码器和条件 GAN,实现图像风格迁移和场景/物体的深度语义分割,可应用于电影特效与增强现实。



五、三维场景绘制基础

神经辐射场 NeRF:NeRF 使用多层感知机(MLP)对场景进行体渲染建模,通过对每条摄像机射线采样并优化体密度与视角相关辐射量,实现高质量新视角图像合成。

多尺度与实时化改进:mip-NeRF 利用多尺度表征抗锯齿,BARF 在训练中同时优化相机姿态,PlenOctrees 和 SNeRG 则将预训练的 NeRF 烘焙到稀疏八叉树或体素网格,实现实时渲染。

神经纹理映射 Neural Textures:Deferred Neural Rendering 采用神经纹理替换传统纹理贴图,利用深度网络生成视角相关的屏幕空间特征,实现更真实细节。



六、真实感图形光照处理

1.照明 Lighting

深度 BRDF 参数估计:Deep Image-Based Adaptive BRDF Measure 使用 CNN 从单张图像估计双向反射分布函数(BRDF)参数,辅助传统渲染的重要性采样。

神经预积分光照 Neural-PIL:Neural-PIL 网络将光照积分操作替换为深度查询,可同时分解形状、反射率和光照,实现实时分解与重映射。


2.全局光照:Global illumination

神经全局光照渲染:Superposed Deformable Feature Fields 利用可变形特征场捕捉光照的多次反弹(如焦散),生成复杂全局光照效果。

Neural Radiance Caching:NVIDIA 通过一个小型神经网络在 RTX GPU 上实时提供超过每秒 10 亿次全局光照查询,显著提高渲染效率。



七、纹理映射技术

1.纹理映射 Texture mapping

传统纹理映射:将 2D 图像贴到 3D 表面以增加细节和色彩特征,无需高复杂度几何建模。

神经纹理:Neural Textures 方法学习 2D 神经纹理,并在延迟神经渲染(Deferred Neural Rendering)管线中生成屏幕空间特征,实现动态视角下的高保真表面细节。



八、场景组织与管理技术

1.场景图生成(Scene Graph Generation):
深度学习方法可自动从图像或渲染数据中提取物体节点和它们之间的关系,构建场景图网络。

2.方法综述:
ScienceDirect 对 138 篇场景图生成论文进行了系统综述,涵盖 2D/3D 场景图的特征表示与解析算法。



九、游戏特效绘制技术

1.游戏引擎 Game Engine

粒子系统优化:基于深度学习的粒子系统可以通过网络预测参数,生成烟、火、爆炸等特效,并自动调整效果以适应场景。

深度学习超采样(DLSS):NVIDIA DLSS 在 Unreal Engine 和 Unity HDRP 中集成,利用 RTX GPU 的 Tensor Cores 实时对低分辨率帧进行 AI 超采样,显著提升帧率和图像质量。



十、地形绘制技术

程序化与噪声方法:传统地形生成依赖分形噪声和高度图算法。

深度学习地形生成:利用 GAN(如 multiscale-fusion GAN)对高程和纹理进行联合生成,实现真实感地形的自动化生产。



十一、阴影绘制技术

传统阴影映射与阴影体:Shadow Mapping 与 Shadow Volume 为实时阴影渲染提供基础。
深度学习阴影分解:NeRFactor 方法通过神经场优化同时恢复表面法线、反射率和光照,可在任意光源下生成自然硬/软阴影。



十二、碰撞检测技术

图形学加速结构:AABB、OBB、KD-tree 等用于加速碰撞检测的经典算法。
图神经网络(GNN):使用 GNN 进行连续碰撞检测(Continuous Collision Detection),提高仿真交互的准确性和效率。



十三、计算机动画技术

1.动画 Animation

  • 深度强化学习动画:DeepMimic 将示例动作片段与深度强化学习相结合,训练角色在物理模拟中模仿多样化、高动态范围的动作,如翻转和漫步。

  • 动作生成与骨骼网络:利用 LSTM 或 Transformer 架构从有限样本学习生成自然骨骼动画,可应用于实时角色控制与虚拟试衣。



十四、GPU硬件加速技术

  • GPU 与深度学习:GPU 天然适合大规模并行矩阵运算,可将训练时间从天级缩短至小时级,广泛用于深度学习模型训练与推理。

  • Tensor Cores 加速:RTX 系列 GPU 内置 Tensor Cores,可高效执行混合精度运算,是 DLSS、NeRF 等神经渲染技术实时化的硬件基础。

相关文章:

计算机图形学中的深度学习

文章目录 零、前言0.课程考核1.课程大纲2.前置知识3.教材4.课程大纲5.相关课程 Relevant Courses 一、计算机图形学1.本章学习目标2.图形学的应用3.SIG Graph papers 二、基本图形生成算法1.本章学习目标2.图形API3.OpenGL(1)什么是OpenGL(2)OpenGL 的基本组件&#xff1a;顶点…...

RockyLinux9.3-24小时制

在 RockyLinux 9.3 中&#xff0c;默认时间格式为 12 小时制&#xff0c;调整为 24 小时制 案例一&#xff1a;在 RockyLinux 9.3 中&#xff0c;默认时间格式为 12 小时制&#xff0c;调整为 24 小时制案例二&#xff1a;时间显示英文调整为中文endl 案例一&#xff1a;在 Roc…...

25.2linux中外置RTC芯片的PCF8563实验(测试)_csdn

1、硬件原理图分析 知道了这些引脚我们还是按照老习惯&#xff01; 配置镜像和设备树文件&#xff01; 2、修改设备树 2.1、添加或者查找 PCF8563 所使用的 IO 的 pinmux 配置 打开stm32mp15-pincrtl.dtsi 文件&#xff0c;查找节点I2C4: 也就是中断引脚并不需要配置pinctrl…...

高性能 WEB 服务器 Nginx:多虚拟主机实现!

Nginx 配置多虚拟主机实现 多虚拟主机是指在一台 Nginx 服务器上配置多个网站 在 Nginx 中&#xff0c;多虚拟主机有三种实现方式&#xff1a; 基于IP地址实现多虚拟主机 基于端口号实现多虚拟主机 基于域名实现多虚拟主机 1 基于域名实现多虚拟主机 在 Nginx 中配置多个…...

C++ 的类型排序

0.前言 在 C 中&#xff0c;我编写了一个 tuple-like 模板&#xff0c;这个模板能容纳任意多且可重复的类型&#xff1a; template<typename... Ts> struct TypeList {};// usage: using List1 TypeList<int, double, char, double>; using List2 TypeList<…...

[计算机网络]拓扑结构

拓扑结构一般会在计网教材或课程的第一章计网的分类那里接触到&#xff0c;但实际上计网的拓扑结构并不只是第一章提到的总线型、星型、树型、网状、混合型那几种类型那么简单&#xff0c;学完了后面的数链层以后对拓扑结构会有新的体会&#xff0c;所以特别单独总结成一篇博客…...

C#方法返回值全解析:从基础语法到实战技巧

摘要&#xff1a;方法返回值是C#编程的核心概念之一。本文将带你彻底掌握返回值声明、void方法特性&#xff0c;以及如何通过返回值实现优雅的流程控制&#xff08;文末附完整示例代码&#xff09;。 返回值的基础法则 类型声明原则 有返回值&#xff1a;必须在方法名前声明…...

修复笔记:SkyReels-V2 项目中的 torch.cuda.amp.autocast 警告和错误

#工作记录 一、问题描述 在运行项目时&#xff0c;出现以下警告和错误&#xff1a; FutureWarning: torch.cuda.amp.autocast(args...) is deprecated. Please use torch.amp.autocast(cuda, args...) instead.with torch.cuda.amp.autocast(dtypepipe.transformer.dtype), …...

【TF-BERT】基于张量的融合BERT多模态情感分析

不足&#xff1a;1. 传统跨模态transformer只能处理2种模态&#xff0c;所以现有方法需要分阶段融合3模态&#xff0c;引发信息丢失。2. 直接拼接多模态特征到BERT中&#xff0c;缺乏动态互补机制&#xff0c;无法有效整合非文本模态信息 改进方法&#xff1a;1. 基于张量的跨模…...

SONiC-OTN代码详解(具体内容待续)

SONiC-OTN代码详解 &#xff08;具体内容待续&#xff09; 基于AI的源代码解析工具的产生使得代码阅读和解析变得越来越高效和简洁&#xff0c;计划通过这样的工具对SONiC在OTN领域的应用做一个全自动的解析&#xff0c;大部分内容会基于AI工具的自动解析结果。这样做的目的是…...

牛客周赛90 C题- Tk的构造数组 题解

原题链接 https://ac.nowcoder.com/acm/contest/107500/C 题目描述 解题思路 数组a是不可以动的&#xff0c;所以我们可以把a[i]*b[i]*i分成两组&#xff0c;分别为a[i]*i以及b[i] 然后策略就很明显了&#xff0c;让更大的b[i]匹配更大的a[i]*i 详细实现见代码。 代码&am…...

[ML]通过50个Python案例了解深度学习和神经网络

通过50个Python案例了解深度学习和神经网络 摘要:机器学习 (Machine Learning, ML)、深度学习 (Deep Learning, DL) 和神经网络 (Neural Networks, NN) 是人工智能领域的核心技术。Python 是学习和实践这些技术的首选语言,因为它提供了丰富的库(如 scikit-learn、Te…...

vue3 - keepAlive缓存组件

在Vue 3中&#xff0c;<keep-alive>组件用于缓存动态组件或路由组件的状态&#xff0c;避免重复渲染&#xff0c;提升性能。 我们新建两个组件&#xff0c;在每一个组件里面写一个input&#xff0c;在默认情况下当组件切换的时候&#xff0c;数据会被清空&#xff0c;但…...

自由学习记录(58)

Why you were able to complete the SpringBoot MyBatisPlus task smoothly: Clear logic flow: Database → Entity → Service → Controller → API → JSON response. Errors are explicit, results are verifiable — you know what’s broken and what’s fixed. Sta…...

短信侠 - 自建手机短信转发到电脑上并无感识别复制验证码,和找手机输验证码说再见!

自建手机短信转发到电脑上并无感识别复制验证码 一、前言 项目开发语言&#xff1a;本项目使用PythonRedisC#开发 你是否也遇到过这样的场景&#xff1a; 正在电脑上操作某个网站&#xff0c;需要输入短信验证码手机不在身边&#xff0c;或者在打字时来回切换设备很麻烦验证码…...

课程10. 聚类问题

课程10. 聚类问题 聚类此类表述的难点K 均值法让我们推广到几个集群的情况如果我们选择其他起始近似值会怎样&#xff1f; 结论在 sklearn 中的实现 如何处理已发现的问题&#xff1f;层次聚类Lance-Williams 算法Lance-Williams 公式在Scipy中实现 示例DBSCANDBSCAN 算法 聚类…...

深度学习中的数据增强:提升食物图像分类模型性能的关键策略

深度学习中的数据增强&#xff1a;提升食物图像分类模型性能的关键策略 在深度学习领域&#xff0c;数据是模型训练的基石&#xff0c;数据的数量和质量直接影响着模型的性能表现。然而&#xff0c;在实际项目中&#xff0c;获取大量高质量的数据往往面临诸多困难&#xff0c;…...

QT设计权限管理系统

Qt能够简单实现系统的权限设计 首先我们需要一个登陆界面 例如这样 然后一级权限&#xff0c;可以看到所有的内容&#xff0c;不设置菜单栏的隐藏。 然后其他权限&#xff0c;根据登陆者的身份进行菜单栏不同的展示。 菜单栏的隐藏代码如下&#xff1a; ui->actionuser-…...

从上帝视角看文件操作

1.为什么使用文件? 如果没有文件,我们写的程序中的数据是存储在电脑的内存中,当程序退出时,内存被回收后,数据就丢失了,等下次运行程序,是无法看到上次程序的数据的。(比如我们在程序中写通讯录时,联系人的相关数据都是放在内存中的,当程序退出时,这些数据也会随之消…...

【51单片机6位数码管显示时间与秒表】2022-5-8

缘由数码管 keil proteus 为什么出现这种情况呢&#xff1f;-编程语言-CSDN问答 #include "reg52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64}; //共阴0~F消隐减号 unsigned char cod…...

从头训练小模型: 4 lora 微调

1. LoRA (Low-Rank Adaptation) LoRA是一种高效的参数高效微调&#xff08;Parameter-Efficient Fine-Tuning, PEFT&#xff09;方法&#xff0c;原理是通过低秩分解的方式对预训练模型进行微调。 相比于全参数微调&#xff08;Full Fine-Tuning&#xff09;&#xff0c;LoRA…...

前端开发,文件在镜像服务器上不存在问题:Downloading binary from...Cannot download...

问题与处理策略 问题描述 在 Vue 项目中&#xff0c;执行 npm i 下载依赖时&#xff0c;报如下错误 Downloading binary from https://npm.taobao.org/mirrors/node-sass//v4.14.1/win32-x64-72_binding.node Cannot download "https://npm.taobao.org/mirrors/node-sa…...

Debezium Binlog协议与事件转换详解

Debezium Binlog协议与事件转换详解 1. MySQL Binlog通信机制 1.1 连接建立流程 #mermaid-svg-eE88YFqcTG9kUWaZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-eE88YFqcTG9kUWaZ .error-icon{fill:#552222;}#mer…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】4.1 日期时间标准化(时区转换/格式统一)

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 PostgreSQL数据分析实战&#xff1a;数据清洗之日期时间标准化&#xff08;时区转换/格式统一&#xff09;4.1 日期时间标准化&#xff1a;从混乱到有序4.1.1 数据乱象&…...

基于Hive + Spark离线数仓大数据实战项目(视频+课件+代码+资料+笔记)

精品推荐&#xff1a;基于Hive Spark离线数仓大数据实战项目&#xff0c;共23节课&#xff0c;供学习参考。 项目介绍项目中 docker 使用项目环境搭建项目数仓分层项目业务分析sqoop 数据采集python 数据采集项目 ODS 层创建DWD 层构建DWS 层构建项目回顾&#xff08;一&…...

【深入浅出MySQL】之数据类型介绍

【深入浅出MySQL】之数据类型介绍 MySQL中常见的数据类型一览为什么需要如此多的数据类型数值类型BIT&#xff08;M&#xff09;类型INT类型TINYINT类型BIGINT类型浮点数类型float类型DECIMAL(M,D)类型区别总结 字符串类型CHAR类型VARCHAR(M)类型 日期和时间类型enum和set类型 …...

从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 4 |IMU 死算与校正:惯性导航在资源受限环境的落地

Part 4 |IMU 死算与校正:惯性导航在资源受限环境的落地 本章聚焦 ESP32-S3 平台上如何利用 LSM6DS3 IMU 实现 死算(Dead Reckoning),并结合 零速更新(ZUPT) 或 磁力计辅助 进行 漂移校正,最终通过 EKF/UKF 融合提升定位精度。 一、传感器简介与校准 LSM6DS3 主要参数 加速…...

【iOS】 方法交换

【iOS】 方法交换 method-swizzling 文章目录 【iOS】 方法交换 method-swizzling前言什么是method-swizzling相关API方法交换的风险在load方法中保证只加载一次要在当前类的方法中进行交换如果方法依赖于cmd 方法交换的应用 前言 之前看过有关于消息转发的内容,这里我们可以简…...

PostgreSQL 的 ANALYZE 命令

PostgreSQL 的 ANALYZE 命令 ANALYZE 是 PostgreSQL 中用于收集数据库对象统计信息的关键命令&#xff0c;这些统计信息对于查询优化器生成高效执行计划至关重要。 一 ANALYZE 命令 1.1 基本语法 ANALYZE [ ( option [, ...] ) ] [ table_and_columns [, ...] ] ANALYZE [ …...

初识 iOS 开发中的证书固定

引言 在移动应用安全领域&#xff0c;HTTPS/TLS 是数据传输的第一道防线&#xff0c;但仅依赖系统默认的证书验证仍有被中间人&#xff08;MITM&#xff09;攻击的风险。Certificate Pinning&#xff08;证书固定&#xff09;通过将客户端信任“钉”在指定的服务器证书或公钥上…...

2025 年如何使用 Pycharm、Vscode 进行树莓派 Respberry Pi Pico 编程开发详细教程(更新中)

micropython 概述 micropython 官方网站&#xff1a;https://www.micropython.org/ 安装 Micropython 支持固件 树莓派 Pico 安装 Micropython 支持固件 下载地址&#xff1a;https://www.raspberrypi.com/documentation/microcontrollers/ 选择 MicroPython 下载 RPI_PIC…...

设计模式每日硬核训练 Day 17:中介者模式(Mediator Pattern)完整讲解与实战应用

&#x1f504; 回顾 Day 16&#xff1a;责任链模式小结 在 Day 16 中&#xff0c;我们学习了责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;&#xff1a; 将请求沿链传递&#xff0c;节点可选择处理或传递下一节点。实现了请求发送者与多个处理者的解耦…...

文章记单词 | 第63篇(六级)

一&#xff0c;单词释义 vegetable [ˈvedʒtəbl] n. 蔬菜&#xff1b;植物人&#xff1b;生活单调乏味的人&#xff1b;adj. 蔬菜的&#xff1b;植物的faint [feɪnt] adj. 模糊的&#xff1b;微弱的&#xff1b;虚弱的&#xff1b;v. 昏倒&#xff0c;昏厥&#xff1b;n. 昏…...

ES类的索引轮换

通过以下请求方法创建一个名为 “tiered-storage-policy” 的 ISM policy&#xff1a; PUT _plugins/_ism/policies/tiered-storage-policy {"policy": {"description": "Changes replica count and deletes.","schema_version": 1,…...

小白机器人假想:分布式关节控制——机器人运动的未来模式?

引言 在机器人技术快速发展的今天&#xff0c;控制架构的创新往往能带来突破性进展。作为一名机器人爱好者&#xff0c;我最近思考了一个大胆的设想&#xff1a;如果机器人的每个关节都配备独立的动作存储器和处理器&#xff0c;并通过高速光纤网络与中央"驱动总脑"…...

LangChain4j +DeepSeek大模型应用开发——9 优化硅谷小鹿

1.预约业务的实现 这部分我们实现硅谷小鹿的查询订单、预约订单、取消订单的功能 创建MySQL数据库表 CREATE DATABASE xiaolu; USE xiaolu; -- 创建预约表 appointment CREATE TABLE appointment (id BIGINT NOT NULL AUTO_INCREMENT COMMENT 主键ID&#xff0c;自增, -- 主…...

Oracle VirtualBox 在 macOS 上的详细安装步骤

Oracle VirtualBox 在 macOS 上的详细安装步骤 一、准备工作1. 系统要求2. 下载安装包二、安装 VirtualBox1. 挂载安装镜像2. 运行安装程序3. 处理安全限制(仅限首次安装)三、安装扩展包(增强功能)四、配置第一个虚拟机1. 创建新虚拟机2. 分配内存3. 创建虚拟硬盘4. 加载系…...

Day110 | 灵神 | 二叉树 | 根到叶路径上的不足节点

Day110 | 灵神 | 二叉树 | 根到叶路径上的不足节点 1080.根到叶路径上的不足节点 1080. 根到叶路径上的不足节点 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者一开始没看懂&#xff0c;只能通过部分的例子&#xff0c;原因是把路径和小于limit的都给删了…...

超详细讲解C语言转义字符\a \b \r \t \? \n等等

转义字符 C语言有一组字符很特殊&#xff0c;叫做转义字符&#xff0c;顾名思义&#xff0c;改变原来的意思的字符。 1 \? ??)是一个三字母词&#xff0c;在以前的编译器它会被编译为] (??会被编译为[ 因此在以前输入(are you ok ??)就会被编译为are you ok ] 解决这个…...

TensorFlow 多卡训练 tf多卡训练

目录 export TF_GPU_ALLOCATORcuda_malloc_async &#x1f527; 具体作用 优势 &#x1f9e9; 依赖条件 ✅ 设置方式&#xff08;Linux/macOS&#xff09; export TF_GPU_ALLOCATORcuda_malloc_async 是设置 TensorFlow 使用 CUDA 异步内存分配器 的环境变量。这个设置可…...

数据结构--树状数组

树状数组&#xff08;Fenwick Tree&#xff09; 概述 树状数组是一种用于高效处理动态数组中前缀和查询的数据结构。它能够在 O ( l o g n ) O(log n) O(logn) 时间复杂度内完成以下操作&#xff1a; 更新数组中的元素O(logn)查询数组前缀和O(logn) 数组&#xff1a; O(1)…...

如何使用python保存字典

在Python中&#xff0c;可以通过多种方式将字典&#xff08;dict&#xff09;保存到文件中&#xff0c;并能够随时读取恢复。以下是几种常见的方法&#xff1a; 1. 使用 json 模块&#xff08;推荐&#xff09; 适用场景&#xff1a;需要人类可读的文件格式&#xff0c;且数据不…...

C和指针——预处理

预处理是编译前的过程&#xff0c;主要对define&#xff0c;include以及一些编译器定义的内容进行替换 #define的本质就是替换 1、例子 #define FOREVER for(;;) 2、例子 #define TEMPD "1231231231\ 123123123" \\如果太长了&#xff0c;可以用\换行 3、例子——可…...

windows python ta-lib安装

https://github.com/TA-Lib/ta-lib/releases windows安装ta-lib指令 pip install --no-cache-dir https://github.com/cgohlke/talib-build/releases/download/v0.6.3/ta_lib-0.6.3-cp310-cp310-win_amd64.whl...

机器学习+多目标优化的算法如何设计?

一、核心问题与设计思路 机器学习&#xff08;ML&#xff09;与多目标优化&#xff08;MOO&#xff09;的结合旨在解决两类核心问题&#xff1a; 利用ML提升MOO算法的性能&#xff1a;通过机器学习模型预测解的质量、优化搜索方向或加速收敛&#xff1b;利用MOO优化ML模型的多…...

爬虫管理平台-最新版本发布

TaskPyro 是什么&#xff1f; TaskPyro 是一个轻量级的 Python 任务调度平台&#xff0c;专注于提供简单易用的任务管理和爬虫调度解决方案。它能够帮助您轻松管理和调度 Python 任务&#xff0c;特别适合需要定时执行的爬虫任务和数据处理任务。 官方文档&#xff1a;https:/…...

SpringCloud教程 — 无废话从0到1逐步学习

目录 什么是微服务&#xff1f;​ 微服务与单体架构的区别 微服务主要用法概念 远程调用 服务注册/发现&注册中心 配置中心 服务熔断&服务降级 1&#xff09;服务熔断 2&#xff09;服务降级 API 网关 环境准备 Nacos OpenFeign Gateway Sentinel Sea…...

Webug4.0通关笔记12- 第17关 文件上传之前端拦截(3种方法)

目录 一、文件上传前端拦截原理 二、第17关 文件上传(前端拦截) 1.打开靶场 2.构造php脚本 3.源码分析 &#xff08;1&#xff09;js源码 &#xff08;2&#xff09;服务器源码 &#xff08;3&#xff09;总结 4.渗透实战 &#xff08;1&#xff09;禁用js法 &#…...

使用synchronized关键字同步Java线程

问题 在Java多线程编程中&#xff0c;你需要保护某些数据&#xff0c;防止多个线程同时访问导致数据不一致或程序错误。 解决方案 在需要保护的方法或代码段上使用synchronized关键字。 讨论 synchronized关键字是Java提供的同步机制&#xff0c;用于确保在同一时刻只有一…...

从头训练小模型: 2 监督微调SFT

简介 从头训练小模型是我个人对大语言模型(LLM)学习中的重要部分。 通过对一个小规模模型的最小化复现实践&#xff0c;我不仅能够深入理解模型训练的基本流程&#xff0c;还可以系统地学习其中的核心原理和实际运行机制。这种实践性的学习方法让我能够直观地感受模型训练的每…...