自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (4)
  • 收藏
  • 关注

原创 cuda c best practices guide 第6章

OpenACC 是一组基于指令(pragma)的并行编程扩展,用于在 CPU 程序中标注代码段以在 GPU(或其他加速器)上并行执行。目标是以最小源码改动实现加速,常用于 C/C++ 与 Fortran。基于编译器的指令式模型(#pragma acc …),不需要手写 CUDA 内核。提供数据管理(copy, copyin, copyout, create, present 等)和并行化(kernels / parallel / loop)指令。

2025-11-26 13:43:31 298

原创 【cuda c编程指南第10章c++扩展】

在 CUDA 中,线程块(block)内的多个线程(thread)会并行执行,但线程间的内存访问顺序和执行顺序可能因 GPU 调度优化(如指令重排、缓存延迟)变得“不确定”。内存栅栏函数(Memory Fence Functions)强制“栅栏前的所有内存操作”必须在“栅栏后的所有内存操作”之前完成,同时确保这些操作的结果对指定范围的线程可见,从而解决线程间的“内存可见性”和“执行顺序”问题。CUDA 中最常用的内存栅栏函数是,以及更精细的等,其中。

2025-11-10 11:17:40 406

原创 【Cuda C编程指南第8章 性能指南】

是编译器指令,用于手动控制循环展开——通过将循环体“复制多份”替代循环控制逻辑(如条件判断、计数器递增),减少循环开销(如分支指令、寄存器占用),同时为编译器创造指令级并行(ILP)优化空间,提升GPU指令吞吐量。的核心价值是“减少循环控制开销、提升指令并行度”,是CUDA程序中实现“最大化指令吞吐量”(第8.4节)和“配合内存优化提升整体性能”的关键手段之一。常与共享内存配合,优化“块内数据复用”和“指令并行”,是CUDA性能优化的经典组合。本节为性能优化提供“顶层思路”,强调优化的核心逻辑是。

2025-10-27 16:13:59 737

原创 【Cuda C 编程指南第7章 硬件实现】

第7节围绕CUDA底层硬件架构展开,重点阐述了支撑GPU并行计算能力的两大核心技术——SIMT架构与硬件多线程,揭示了CUDA编程模型在硬件层面的实现原理,为理解GPU高效处理并行任务的机制提供了底层视角。

2025-10-24 14:55:51 350

原创 【Cuda C编程指南第6章part 2】

组件核心作用版本标识示例CUDA工具链(Toolkit)包含编译器(NVCC)、库(CUDA Runtime/CUBLAS等)、头文件等,用于开发CUDA程序CUDA驱动(Driver)连接操作系统与GPU硬件的底层接口,提供硬件控制能力535.xx、525.xx(驱动版本号)CUDA运行时(Runtime)程序运行时调用的API集合(如内存分配、内核启动),分为“静态链接”和“动态链接”两种模式随Toolkit版本绑定GPU计算能力(Compute Capability)

2025-10-24 11:29:27 1292

原创 【Cuda C编程指南第6章part 1】

要理解“页锁”(Page-Locked)的命名,需要先关联计算机内存管理的核心概念——

2025-10-23 17:30:00 841

原创 【Cuda C编程指南第5章】

cuda c指南第5章

2025-10-23 17:06:15 747

原创 cuda stream

本文介绍了CUDA Stream的基本概念及其应用。

2025-09-16 22:35:03 868

原创 cuda各个存储单元类型详解

寄存器是GPU最快的内存类型,kernel中没有什么特殊声明的变量都是放在寄存器中。· 速度最快,延迟极低,适合频繁访问的数据。· 每个线程私有,生命周期为线程的生命周期。· 数量有限,过多使用会导致溢出到局部内存(register spilling)。· 不能被线程间共享,不能通过指针访问。在 CUDA 中,变量是否被分配到寄存器由编译器(NVCC)根据代码结构、变量使用模式和硬件限制自动决定,开发者无法直接指定,但可以通过分析代码特征和编译反馈来判断。

2025-09-16 09:54:45 1096

原创 colmap+pycolmap带cuda编译

该过程中会下载.toml中的[build-system]中的requirements,若遇到问题,可以离线下载,并且切换到对应的分支即可,譬如pybind11_stubgen我下载遇到了问题,通过离线下载并切换到@sarlinpe/fix-2024-11分支。在安装vcpkg和colmap之前,需要先安装vs2022和CUDA v12.6,这部分这里就不复述,可以查看上一篇gsplat部署的文章。此时,会根据你的电脑显卡编译特定版本的colmap, 为了兼容更多显卡架构,可以用下面命令安装和编译。

2025-09-08 21:29:32 844 3

原创 gsplat在windows本地部署

3DGS的cuda提效和优化内存的版本gsplat,使得在有一定GPU计算能力的电脑上也能够尝尝3DGS的效果。我在2025年的开年之初尝试配置过gsplat,由于过程中遇到很多问题,最终还是有一些windows上字符编码的问题,没有跑通,最近看gsplat的github更新了3DGUT,优化了反射和二次折射,以及适用于非线性相机模型,如鱼眼相机等。在data目录下下载好了360_v2的数据,进入之后images文件夹是原始分辨率的图像,images_2是下采样系数为2的数据,以此类推。

2025-08-21 18:12:07 1937 3

原创 ROS2不同版本的区别

命名规则:按字母顺序命名,每个版本对应一种动物(如 Ardent Apalone、Foxy Fitzroy 等)。支持周期:LTS 版本支持 5 年(与 Ubuntu LTS 同步),非 LTS 版本支持 6-12 个月。依赖系统:主要适配 Ubuntu(如 Ubuntu 20.04 对应 Foxy,22.04 对应 Humble),同时逐步完善对 Windows、macOS、ROS 2 for Embedded Linux(REP 2000)的支持。核心目标。

2025-08-11 18:10:52 4839 1

原创 CVPR2020-通用相机标定模型

相机校准是 3D 计算机视觉的 “基石”—— 它通过建立像素与真实世界光线方向的映射关系,为立体深度估计、SLAM(同步定位与地图构建)、AR 导航等核心任务提供几何基础。传统上,相机校准依赖参数化模型,这类模型用 12 个左右的参数(如焦距、主点坐标、径向畸变系数)近似镜头光学特性,追求 “简洁高效”。但真实世界的镜头畸变往往复杂得多:手机摄像头的非对称畸变、自动驾驶中相机透过挡风玻璃的折射误差、鱼眼镜头的超大视场角扭曲…… 这些复杂畸变远超参数化模型的拟合能力,导致校准后残留系统性误差。

2025-08-11 17:32:05 1109

原创 3D TOF 安全防护传感器

立体安全防护传感器采用3D ToF技术实现毫米级精度三维空间监测,适用于工业自动化与机器人应用。相比传统二维防护,该传感器具备0.4-5米测距范围、25FPS帧率及24V供电特性,通过点云成像可自定义安全区域。其配套软件支持深度图像显示与ROI设置,当检测到入侵时能立即切断设备电源,视频演示展示了基于颜色编码的距离报警功能(红近蓝远),为作业区域提供智能立体防护。

2025-07-16 21:56:29 655

原创 Finite‑Element Approach to Camera Modelling and Calibration

《Finite-Element Approach to Camera Modelling and Calibration》摘要:该论文由德国摄影测量实验室T.Luhmann团队提出了一种基于有限元方法(FE)的相机标定技术。与传统布朗畸变模型相比,FE方法能够更精确地建模系统误差,包括镜头畸变、传感器不平整等效应,尤其适用于鱼眼镜头等非透视系统。方法通过将图像划分为网格区域,利用双线性/三线性插值计算校正值,并引入平滑约束条件优化结果。虽然该方法需要大量观测数据且主要适用于实验室高精度场景,但为复杂光学系统

2025-06-30 18:01:41 336

原创 Raftstereo视差估计与重建测试

RAFT-Stereo是一种基于深度学习的立体匹配算法,由普林斯顿大学的研究团队开发,在2021年的3DV会议上获得最佳学生论文奖。以下是其相关介绍:它是基于RAFT光流网络的新深度架构,旨在解决传统立体匹配算法中存在的局限性,尤其是在处理大视差变化和复杂场景时的挑战。其总体设计基于RAFT,引入了多级卷积GRU,能更有效地在图像中传播信息。主要组件:由特征提取器、相关金字塔和基于GRU的更新算子三个主要组件组成。

2025-06-13 10:35:10 1531 1

原创 opencv_stereoRectify源码解析

而是对原图的四个角点(0,0),(0,width-1),(height-1,0),(height-1,width-1), 先去除畸变,然后转为三维点,并通过步骤1和2的变换投影到新的像面上,求解这四个点的重心与图像重心的偏移为cx,cy。对极几何中,两个相机光心连线与像面的交点为极点,当连线与像面平行,交点位于无穷远的地方,基础矩阵具有特殊形式,使得左右图像上行的极线是对齐的。右相机投影矩阵为内参矩阵乘以RT,其中R为单位阵,T为光心连线向量(tx,0,0),因此,矩阵相乘后,在第一行第四列是tx*f。

2025-06-07 22:02:43 1473

原创 半遮挡检测算法 Detecting Binocular Half-Occlusions

本文分析【Detecting Binocular Half-Occlusions:Empirical Comparisons of Five Approaches】Geoffrey Egnal和Richard P. Wildes于2002年发表在IEEE Transactions on Pattern Analysis and Machine Intelligence上,这是1篇中科院1区的论文,值得学习。

2025-02-15 19:37:30 1376

原创 【Micro Phase Shifting, CVPR2012】

本文介绍了一种名为Micro Phase Shifting(微相移)的新型结构光技术,用于解决实际场景中形状恢复的问题,特别是在存在全局照明(如多路径反射、次表面散射等)和照明散焦效果时。这些效果会在恢复的形状中引入系统性误差。Micro Phase Shifting技术通过投影限定在狭窄的高频率带内的正弦波图案来克服这些问题。“Micro”意思就是指这些高频信号处于窄带范围内,很接近。本文与其他解决多路径反射问题的方法不同的是,其他方法多为分离原始信号与全局照明信号,而本文无需分离信号,是通过输入源的处理

2024-11-20 15:57:16 1046

原创 【Embedded Phase Shifting. CVPR2015】

这是一篇基于【Mohit Gupta发表的Micro Phase Shifting, cvpr2012】的改进工作,个人认为本文的主要贡献是在Gupta高频理论减弱场景内多路径反射影响的基础上,进一步地减弱了数据的波动,提高了测量的重复性。本文效果主要是与Gupta【文献1】和【时域展开的多频相移法,文献2】两个方法对比,突出其在少图像数据的情况下,能够达到更好的点云重建质量,进而无需额外的点云滤波后处理。

2024-11-19 11:25:48 1168

原创 【ceral】c++轻量的序列化库

在开发硬件产品时,会有一些参数配置文件,为了保密性或者传输,需要对其序列化处理,待到产品读取文件时,进行反序列化解码转化为设定的参数类型。

2024-10-29 14:37:36 848

原创 USB摄像头使用V4L2采集图像\视频

V4L2(Video for Linux Two)是Linux内核自带的一部分,专门用于处理视频设备的管理和控制。‌ V4L2框架提供了统一的API和抽象层,使得开发者可以编写通用的视频驱动程序,同时使用户空间的应用程序能够轻松地访问和控制视频设备‌。在linux的开发板上,为了对符合UVC协议的摄像头进行视频或图像采集时,若不方便安装第三库,可以使用linux内核自带的V4L2框架进行处理。

2024-10-29 13:18:39 905

原创 yolov5将推理模型导出为onnx

为了将前文[yolov5仅检测人物]部署到边缘计算平台,需要将pytorch的训练结果best.pt转换为onnx格式

2024-10-27 12:15:03 1214

原创 aarch64-opencv341交叉编译,并在arm上部署helloopencv

当需要在jetson xavier nx或者rk 3562等平台上开发关于视觉检测的工程时,由于arm板子资源不足或者不能联网等原因,通常在虚拟机上利用交叉编译器编译得到可执行程序,然后部署到arm板上。configure和generate完成后,在终端窗口中cd到opencv-build目录下,分别执行make和make install完成编译和安装。由此,得到可执行文件HelloOpencv,使用网线将虚拟机和开发平台连接,利用ssh将文件和.so的opencv库拷贝过去,

2024-10-24 13:35:48 665

原创 基于yolov5只进行人物目标检测

本项目背景是使用一个usb摄像头模组,在一定距离下检测人,并判断人是否进入设定的区域中。因此,需要一种目标检测模型,我们选择yolov5作为检测网络,把原来包含80类的coco数据集提取出包含人物的图像,重新训练一次。

2024-10-23 15:46:53 1789 3

原创 VTK9.2.0+QT5.14.0 实现三维点拾取并显示标签

通过鼠标交互,显示当前选取点的坐标值

2024-07-26 10:16:49 1288

原创 VTK9.2.0+QT5.14.0 实现点云深度和灰度信息的混合显示

基于vtk,在Qt窗口中实现三维点云深度和灰度信息融合显示的效果

2024-07-26 09:40:07 440 1

原创 VTK9.2.0+QT5.14.0绘制三维显示背景

单独使用vtkAxesActor能够绘制出坐标轴,但是会随着鼠标操作旋转和平移时,在三维窗口中移动。搭配vtkOrientationMarkerWidget 的话能够在三维窗口的widget中,再放置一个小的widget,专门放置vtkAxesActor,可以达到停留在窗口左下角,只随着鼠标旋转的目的。只需要在上述代码中,创建一个新的Actor以及对应的Mapper和PlaneSource,然后向renderer中添加一个额外的Actor,并通过vtkCamera来设定我们当前的视角,提升观感。

2024-05-21 18:35:03 1381 1

原创 ubuntu20.04安装cmake3.22.1

在ubuntu上安装指定版本的cmake操作步骤

2024-05-20 13:52:23 2504 1

原创 win10配置CLion2022+ubuntu20.04远程部署

windows CLion在jetson nx的ubuntu20.04上远程部署

2024-03-29 16:58:23 957

原创 多视图三维重建-SFM简介

掌握传统的多视图三维重建基本流程

2024-03-29 15:28:07 6492

原创 VTK9.2.0+Qt5.14.0 绘制点云

为了显示结构光重建后的点云,开发QT5.14.0+VTK9.2.0的上位机软件,用于对结构光3D相机进行控制,并接收传输回来的3D数据,显示在窗口中。

2024-03-22 14:32:22 2883 16

原创 Jetson Xavier NX开发环境配置——编译libusb-1.0.9

记录在开发板中编译libusb-1.0.9的过程和问题。

2023-12-13 21:30:45 334 1

原创 ubuntu搭建aarch64 cuda交叉编译环境记录

jetson xavier nx平台交叉编译环境

2023-10-16 20:02:47 3702 2

原创 VM虚拟机扩容

虚拟机扩容

2023-10-09 11:31:08 237 1

原创 Jetson nano嵌入式平台配置ip记录

Jetson nano配置ip,PC端使用网线与nano远程控制

2023-09-13 20:35:29 772 1

原创 3D视觉PnP问题

目前常用的pnp方法有很多,但是本人学习和查阅后发现比较零散,因此,**在这里将所学习的方法按照理解分类和总结,并且着重提出实现过程中或者原理上需要注意的点**。PnP是Perspective-n-Point的缩写,指在已知相机内参数的前提下,利用某角度下n个三维点与它们对应的图像点坐标,估算出此时拍摄位置的信息。

2022-12-10 15:52:37 3193

原创 Opencv外参估计cvFindExtrinsicCameraParams2原理解析(四)

本文对opencv在估计得到初始的外参之后,进一步迭代计算的推导详细分析,并注释代码段

2022-10-21 17:59:20 2178 9

原创 opencv焦距估计函数cvInitIntrinsicParams2D原理解析

在进行相机标定时,通常会包括内参初始化估计、外参初始化估计,以及非线性优化参数。在opencv中内参数估计主要在cvInitIntrinsicParams2D函数中实现,外参数估计在cvFindExtrinsicCameraParams2函数中实现。本文对内参数估计原理进行解析,外参数估计在我之前的博客中已经做了较为全面的原理解析。

2022-10-19 21:53:04 2451

原创 生成多频外差的光栅图像【Matlab】

在matlab中生成多频外差的光栅图像

2022-10-13 11:39:42 734

立体视觉-raftstereo-推理模型

文件为立体视觉的深度学习算法raftstereo的推理模型,用于双目拍摄图像、极线矫正并去除畸变后的视差估计,进一步的,利用标定好的相机内、外参数,获取点的三维坐标

2025-06-12

针对曲线边缘检测的算法

多尺度方法来检测噪声图像中的曲线边缘

2024-11-22

kimera-SLAM

用于实时的度量-语义视觉-惯性SLAM(Simultaneous Localization And Mapping,即同时定位与地图构建)的第三方库。

2024-11-22

Camera Projection Loss based Camera Calibration

一种新的方法来预测外部参数(基线、俯仰角和平移)和内部参数(焦距和主点偏移)。与现有方法不同,不是设计一个端到端的解决方案,而是一种新的表示方法,将相机模型方程作为神经网络整合到多任务学习框架中。通过新颖的相机投影损失(CPL)来估计所需的参数,该损失使用相机模型神经网络重建三维点,并使用重建损失来估计相机参数。通过多任务学习方法联合估计内部和外部参数的首创,该方法将分析方程与学习框架结合起来用于估计相机参数。

2024-11-22

KonIQ-10k based image assessment

深度学习方法在图像质量评估(IQA)方面的应用受到现有数据集规模小的限制。构建大规模数据集需要大量的资源,既要生成可发布的内容丰富,又要进行准确的标注。一种系统化和可扩展的方法来创建迄今为止最大的IQA数据集KonIQ-10k,包含10,073张质量评分的图像。这是第一个面向野外环境的数据集,旨在实现生态有效性,关注失真的真实性、内容的多样性以及与质量相关的指标。通过众包的方式,从1,459名众包工作者那里获得了120万个可靠的质量评分,为更通用的IQA模型铺平了道路。一个新颖的深度学习模型(KonCept512),在测试集(0.921 SROCC)以及当前最先进的数据库LIVE-in-the-Wild(0.825 SROCC)上显示出了出色的泛化能力。该模型的核心性能来自于InceptionResNet架构,比以往的模型以更高的分辨率(512x384)进行训练。相关性分析显示,KonCept512的性能类似于每个测试图像拥有9个主观评分

2024-11-22

利用pointNet用于点云分割的工程

点云是一种重要的几何数据结构。由于其不规则的格式,大多数研究者将这类数据转换为规则的3D体素网格或图像集合。然而,这样做会使数据变得不必要地庞大,并引发问题。该新型的神经网络,它可以直接处理点云,并且很好地尊重输入中点的排列不变性。为从物体分类、部件分割到场景语义解析等应用提供了统一的架构。尽管简单,PointNet却非常高效和有效。从经验上看,它展现出与最先进技术相当甚至更好的性能。从理论上讲,我们提供了分析,以理解网络学到了什么,以及为什么网络对输入的扰动和损坏具有鲁棒性。

2024-11-22

基于对称跳跃连接的卷积自编码器的图像恢复方法

图像恢复,包括图像去噪、超分辨率、图像修复等,是计算机视觉和图像处理中一个研究得非常深入的问题,也是低级图像建模算法的试验场。在这项工作中,提出了一个非常深的全卷积自编码网络用于图像恢复,这是一个具有对称卷积-反卷积层的编码-解码框架。该网络由多层卷积和反卷积操作符组成,学习从损坏的图像到原始图像的端到端映射。卷积层捕获图像内容的抽象,同时消除损坏。反卷积层有能力上采样特征图并恢复图像细节。为了解决更深层网络更难以训练的问题,通过跳跃连接对称地链接卷积层和反卷积层,通过这种方式,训练收敛得更快,并且能够获得更好的结果。

2024-11-22

一种基于相移编码器的定向目标检测算法

随着计算机视觉的迅猛发展,定向目标检测逐渐成为研究的热点。一种新颖的可微角度编码器——相移编码器(PSC),用于准确预测目标的方向,并提出了其双频版本(PSCD)。通过将不同周期的旋转周期性映射到不同频率的相位中,我们为由旋转对称性引起的定向目标检测中的各种周期性模糊问题提供了一个统一的框架。在此框架之上,定向目标检测中的常见问题,如边界不连续性和类似正方形的问题,以统一的形式优雅地得到解决。通过在三个数据集上进行视觉分析和实验,证明了我们方法的有效性和潜力。在需要高质量边界框的场景中,所提出的方法预计将提供有竞争力的性能。

2024-11-22

一种基于结构光扫描技术的3D扫描系统

一种基于结构光扫描技术的3D扫描系统,能够快速获取现实物体的三维几何信息,无需特殊设备 系统通过投影已知结构的光模式并捕捉其在物体上的变形来计算物体的三维位置,该系统在CPU和GPU上均有实现

2024-11-22

嵌入式开发-usb驱动-vs2017测试libusb1.0.27工程

使用libusb1.0.27库,在windows端上vs2017的IDE中搭建的测试USB驱动的c++工程,能够检测出当前windows设备上连接的USB设备信息,为进一步嵌入式USB通信做准备

2024-05-09

opencv3.4.1编译时ffmpeg和ippicv所需的文件

cmake vs2017+opencv3.4.1编译时ffmpeg和ippicv所需的文件 可能会受到网络服务器的原因下载失败,可以离线下载此文件包,然后放置.cache中

2024-05-09

Opencv+视频帧提取

基于Opencv,输入视频文件,将视频中所包含的图像帧,逐帧提取出来,工程中只配置了release,需要debug的可以自行配置

2024-03-29

libssh2测试工程

在windows上开发上位机软件,需要通过ssh方式,将windows端的文件,上传到嵌入式端。本工程利用libssh2的库,完成文件的上传和下载任务的测试

2024-03-29

VTK-vs2017-build by leaf

在windows环境下,使用cmake vs2017编译的VTK-8.2.0工程,包含examples和release动态库等,用源码自己编译的目的是包含了Qt组件包,能够在后续开发中和qt联合进行界面三维显示的开发

2023-12-13

3D点云数据压缩-Draco demo

利用draco工具测试对3百万个点的点云数据压缩的效率,根据测试结果来看,在i7-11th笔记本上,纯压缩的时间最快约为719ms。 在/Release文件夹下找到编译完成的draco_encoder.exe,cmd命令行中输入.ply点云格式压缩指令:draco_encoder.exe -point_cloud -i test.ply -o out.drc -cl 10

2023-12-11

计算机视觉-多路径反射环境光抑制-格雷码结构光-3D重建

论文《Structured Light 3D Scanning in the Presence of Global-Illumination》, CVPR 2011的matlab实现代码,主要思想是基于高频条纹信号抑制理论,结合格雷码的结构光编码方法,抑制多次路径反射的环境光的干扰

2023-10-13

Micro phase shift - matlab code and doc

论文Micro-phase shift的matlab实现代码,主要是用于抑制多路径环境光干扰,提供的一种基于高频理论和相移的方法

2023-10-13

vs2013_x64平台编译的ceres库

vs2013_x64平台编译的ceres库

2022-03-16

三维重建中的高斯牛顿法求解去畸变坐标

三维重建中的高斯牛顿法求解去畸变坐标

2022-02-07

圆形标志点中心提取c++工程

leaf-sub-pixel-edge-detect-master.zip

2021-12-04

SVD解算对应点集的刚体变换矩阵

SVD解算对应点集的刚体变换矩阵

2021-03-11

空空如也

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

TA关注的人

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