自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 cudaMalloc第一个参数为何是指针的指针

cudaMalloc() 是 CUDA 编程中用于在 GPU 显存(device memory)上分配空间的函数,类似于 C 语言中的 malloc(),但是它分配的是 显卡显存,而不是 CPU 内存。cudaMalloc() 函数的原型为:其中,有两个参数。第二个参数很简单,就是要分配的显存的大小。第一个参数,和molloc函数不同,它是二级指针。这里,就有个疑问,为什么第一个参数是二级指针?

2026-09-29 19:15:01 167

原创 开放词汇目标检测系列论文(3)--Grounding DINO

这篇论文的题目就是大名鼎鼎的“Grounding DINO: Marrying DINO with Grounded Pre-training for Open-Set Object Detection”,2024年发表在ECCV,已经被引用6300多次。

2026-09-22 12:27:05 188

原创 3D Gaussian Splatting中梯度反传求偏导的推导

在3DGS前向函数forward中,输出的是rendered_image(渲染影像)、radii(半径)、depth_image(逆深度图),其中radii未参与优化,因此可以不管radii的梯度。#这个是forward函数,输出的就是渲染影像、半径、深度图在前向结束后,3DGS采用的是颜色loss和深度loss(在没有参考深度时,该loss直接是设置为0,相当于没用)。颜色loss采用的是L1 loss和SSIM loss,深度loss采用的也是L1 loss。

2026-08-01 18:46:31 264

原创 图形学中的世界、相机、Clip(裁剪)、NDC等坐标系

在计算机视觉中,相机模型通常涉及到的坐标系有世界、相机、归一化平面、像素坐标系等。然而,在图形学里面,在NeRF、3D Gaussian Splatting等三维重建方法,在OpenGL中,会遇到一个NDC(Normalized Device Coordinates,归一化设备坐标)坐标系。这里,将仔细地讲解各个坐标系,以及推导公式。

2026-07-27 11:54:19 257

原创 基于Pytorch,如何用CUDA自己写算子?(一)

大家都知道,深度学习通过梯度反传去优化网络的参数。Pytorch作为具有代表性的深度学习库,对前向(Forward)和梯度反传(Backward)都封装的非常好。在日常的编程中,只需要调用Pytorch封装好的算子,就可以完成网络的设计和训练。但是,在一些任务中,有些算法没法用Pytroch封装好的算子去实现,需要自己实现。这个时候,则需要自己去写CUDA代码,自己去写Forward和Backward的代码。这个博客就是基于简单的案例去讲解,如何基于Pytorch,用CUDA自己写算子。

2026-07-23 14:41:59 228

原创 开放词汇目标检测系列论文(3)--GLIP

这篇论文的题目是“Grounded Language-Image Pre-training”,发表在CVPR 2022。这篇论文中的方法,也是大名鼎鼎Grounding DINO的基础。2、论文动机论文的核心目的是为了将目标检测(Object detection)任务,和短语定位(Phrase Grounding)任务相统一。该论文为了将目标检测任务转换为短语定位任务,将最后目标分类的head,替换为求取boundingbox的视觉特征和文本特征的相似性。这个是该论文的核心想法和贡献。

2026-07-22 15:45:39 288

原创 IMU的基础知识

静止标定法就是把IMU静止放一段时间,然后将陀螺仪均值近似为陀螺仪的零偏,加速度零偏稍微复杂一些,这里不过多叙述。加速度计测量的是自身坐标系下的加速度,而不是世界坐标系下的加速度。我们从IMU中拿到的数据包含角速度和加速度两部分,IMU 本身不能直接给位置,也不能直接给绝对姿态,需要通过积分得到运动状态。零偏:当IMU静止不动时,角速度和加速度应该为0,但实际不为0,而是一个较为固定的零偏值。在介绍加速度计的测量模型前,先简单介绍IMU中涉及的两个坐标系。,加速度计测量的是加速度。是加速度计测得的加速度,

2026-06-29 21:01:04 211

原创 Qt中emit发送信号用法

如果我的数据类型不是int、float、double等这些,而是我自己定义的Struct,该怎么办,比如说int a;float b;在完成struct的定义之后,加上一个宏Q_DECLARE_METATYPE(),这个的作用是让 Qt 的元类型系统认识这个类型。然后,就可以正常通过emit发送MyStruct类型的变量了,就可以把Mystruct当成int、float这些常见的变量使用了。值得注意的是,在emit之前,加上:这样就可以跨线程发送信号。

2026-06-15 14:00:21 200

原创 基于深度学习的MVS论文学习(1)SPE-MVS

该论文是发表在CVPR 2026上的论文,论文题目是《SPE-MVS: Spatial Position Encoding Enhanced Multi-View Stereo with Monocular Depth Priors》该论文思想上来说比较好,比较好地融合的单目深度图,用于引导MVS深度图的预测。

2026-06-14 19:59:49 209 1

原创 相机标定--张正友标定方法

为了学习张正友标定方法,建议先学习一下。

2026-06-12 19:01:28 286

原创 QT中对象间的父子关系

/新建一个window。同样,对于window对象,我们可以让它的父对象是上一层的界面(如果你先这么设计的话)。这个时候,label和button这两个空间的父对象就是window。则也会自动释放掉子对象button 和 label。是Qt对象内存管理机制的核心,父指针用于建立。,让Qt自动管理子对象的生命周期。在Qt中,构造函数的。

2026-06-02 18:40:23 183

原创 开放词汇目标检测论文系列(2)OV-DETR

该论文题目是“Open-Vocabulary DETR with Conditional Matching”,发表在ECCV 2022,发表单位是南洋理工大学和卡尔梅隆大学。该论文主要是将DETR这种方法扩展至开放词汇检测中,是一个开创性的工作。该论文的方法之所以能够可行,是因为它不是约束预测的bounding box 的类别和gt一致,而是只做一个判断,判断两个类别是否一致。也就是,它学习的是衡量两者之间是否一致的能力。但依旧存在以下问题:1)当需要检测的类别较大时,推理速度会很慢。

2026-05-28 18:58:22 214

原创 开放词汇目标检测系列论文(1)--ViLD

这篇论文的思想非常好,解决了传统思路速度慢的问题,但依旧解决不了proposal网络漏检测而引起的错误。个人觉得是可以改进提升的地方。此外,该论文的方法只对最后的proposal embedding做约束,没有将大模型充分利用到proposal的生成过程中,也是一个可以改进提升的地方。

2026-05-28 10:45:08 337

原创 OpenGL中的VAO, VBO, Shader简介

刚接触QT和OpenGL,被各种VAO,VBO,Shader的设置弄的头皮发麻,压根不晓得从何下手,这估计是OpenGL新手都会遇到的问题。今天,简单分享一下自己对这几个东西的理解。由于QT对OpenGL做了比较好的封装,使得使用起来更为便捷。因此,这里也将基于QT的封装去讲解OpenGL怎么用。在这个博客中,将以最简单的3D点云数据显示为例子去讲解。

2026-05-26 11:44:21 540

原创 OpenGL中的坐标系

模型矩阵(model matrix):局部坐标系--->世界坐标系视图矩阵(view matrix):世界坐标系--->相机坐标系投影矩阵(projection matrix):相机坐标系--->屏幕坐标系所以把从三维数据到屏幕的转换矩阵,叫做model-view-projection(mvp)矩阵。

2026-05-20 21:16:52 421

原创 欧拉角万向锁推导

本文介绍了欧拉角的基本设定和旋转矩阵转换方法,并推导了万向锁现象。首先定义了绕Z、Y、X轴旋转的偏航角(yaw)、俯仰角(pitch)和滚转角(roll)。通过三个旋转矩阵相乘得到最终转换公式。重点分析了万向锁发生的条件:当俯仰角为±90°时,偏航角和滚转角的效果等价,导致系统失去一个自由度。推导过程展示了此时旋转矩阵的简化形式,并通过三角恒等式证明了旋转效果的等价性,从而解释了万向锁现象的产生机制。

2026-05-18 22:11:59 62

原创 一文入门CUDA并行计算(有案例,有原理,有代码,有讲解)

从一个cuda并行案例出发,对cuda的原理和入门级代码怎么写,进行了详细的介绍。

2026-05-14 13:27:49 513

原创 手动打开 x64 native tools command prompt for VS 2022的几种方法

2、cd 到以下路径:(每个人电脑VS安装的路径不一样,可自行调整)1、打开快捷方式所在的目录,一般为。4、得到以下结果即表示正常。

2026-05-02 12:08:56 1319

原创 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失,错误修改

2、转换编码:打开要转换编码的代码文件,直接找到下图中的编码格式。然后点击确定,再直接保存代码文件即可。由于这个选项默认是隐藏的,需要先把它添加到菜单栏。

2026-04-24 18:33:38 145

原创 基于Cmake配置Opencv 4.12

,前往Cmake官网下载安装包安装即可,用Cmake将opencv编译成工程,如下图所示去设置路径。2、解压缩后,在opencv-4.12.0文件夹中新建一个project(名字可自己随便给)文件夹,主要是用来放Cmake之后的opencv工程。5、打开工程后,直接对整个工程进行编译,可先编译Debug库,再编译Release库。编译完后,单独编译一下install工程。4、稍等十分钟左右,VS的工程就生成好了,再点击Generate,获得工程,并用VS打开。1、下载opencv,直接到官网(

2026-04-24 17:00:45 127

原创 SuperSplat渲染视频教程

SuperSplate除了可以打开三维高斯溅射结果,并进行浏览、编辑等操作,还可以渲染出漂亮的视频。4)关键帧也可以删除(将小方块拖动到关键帧下面,点击“减号”就行);点击“播放”按钮,可以预览渲染的效果。注意:在输出视频的时候,要保证预浏览的视频处于停止状态,否则会出问题。5)当设置完关键帧之后,预览效果也满足要求后,点击“渲染-视频”按同样的方法,可以设置多个关键帧,如下图,我设置了第二个关键帧。然后,选择视频存储路径,即可完成渲染视频的导出。2)设置预览时候的帧率和总帧数,如下图所示。

2026-01-01 14:54:01 875

原创 SuperSplat使用教程

SuperSplat是一款基于Web的免费开源3D高斯溅射(3D Gaussian Splatting)显示、编辑工具,好用的很。在这篇博客中,将整理一些基本的教程。

2025-12-28 12:34:14 4135

原创 WinSCP安装和使用,高速拉取服务器数据

在用VSCode下载文件时,突出一个慢,太不方便了,于是去找了下看,发现WinSCP可太好用了,操作也非常的方便。第三步,如下图,右边是服务器的数据(输入想下载的文件所在的地址),左边是本地的数据。右键文件夹,就可以快速下载了。第二步,下载下来后,直接默认安装即可,然后打开WinSCP,设置窗口如下。

2025-12-28 10:13:15 402

原创 VSCode上传文件到服务器

在本地电脑上新建一个文件夹,命名自己取,这里我取为“VSCode上传”,后续所有要上传到服务器的数据,都可以通过该文件夹。当然,在该文件夹下面也可以新建文件夹,例如取名为“数据1”、“数据2”,支持将“数据1”、“数据2”这种文件夹整体上传。,在VSCode界面上,按下“Ctrl+Shift+P”,输入SFTP:Config,如下图。,直接右键对应的文件或者文件夹,点击Upload Folder或者Upload File。这里,我已经安装了SFTP。然后,直接打开sftp.json,并修改,如下图。

2025-12-26 11:19:33 927

原创 针孔相机模型推导

学习多视几何、视觉SLAM、三维重建,包括最新的三维高斯溅射、神经辐射场等知识,最为最为基础的便是针孔相机模型。该模型描述的是真实世界(以米为单位)到相机拍摄的影像(以像素为单位)之间的关系。

2025-12-20 22:43:06 1028

原创 单应矩阵H推导及理解

和本质矩阵E、基本矩阵F不同,单应矩阵H描述的是位于同一平面上的点在两张图像直接的关系。这里,简单地推导一下H的表达式。

2025-12-20 16:25:16 1556

原创 变分自编码器(VAE)大白话理解

这个时候,再假设这个256维度骰子掷起来的时候,并不符合一个均匀分布,而是符合一个“特定的分布”,这个特定的分布可以认为是“所有猫的图像的分布”,那么这个骰子一投,得到1个256维度的值,就是一张猫的图片。因为采样的过程中,其实可以理解为对潜在特征加了个噪声,网络为了保证重构的效果,肯定是不希望有这个噪声的,那么网络就会倾向于将方差估计为0,那么就具备了确定性。显然,样本这个时候对应的是一个分布,而不是AE中一个特定的值,那么则具备了一定的生成性。按照直觉,图像是一个矩阵,怎么是一个概率分布的采样。

2025-12-19 21:11:53 595

原创 Linux的一些常见操作

2) 查看某个文件夹下面,所有文件的个数。

2025-12-18 19:41:05 100

原创 Xcode创建Objective C工程,并使用Pod进行库的设置

1、打开Xcode,选择new project,选择创建一个APP工程,如下图然后,取一个工程名字,这里我用的是默认的test,选择语言为Objective C语言,如下图点击Next之后,再选择一个工程路径,则完成了工程的创建。

2025-10-25 19:49:29 307

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除