- 博客(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各个存储单元类型详解
寄存器是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绘制三维显示背景
单独使用vtkAxesActor能够绘制出坐标轴,但是会随着鼠标操作旋转和平移时,在三维窗口中移动。搭配vtkOrientationMarkerWidget 的话能够在三维窗口的widget中,再放置一个小的widget,专门放置vtkAxesActor,可以达到停留在窗口左下角,只随着鼠标旋转的目的。只需要在上述代码中,创建一个新的Actor以及对应的Mapper和PlaneSource,然后向renderer中添加一个额外的Actor,并通过vtkCamera来设定我们当前的视角,提升观感。
2024-05-21 18:35:03
1381
1
原创 win10配置CLion2022+ubuntu20.04远程部署
windows CLion在jetson nx的ubuntu20.04上远程部署
2024-03-29 16:58:23
957
原创 VTK9.2.0+Qt5.14.0 绘制点云
为了显示结构光重建后的点云,开发QT5.14.0+VTK9.2.0的上位机软件,用于对结构光3D相机进行控制,并接收传输回来的3D数据,显示在窗口中。
2024-03-22 14:32:22
2883
16
原创 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
立体视觉-raftstereo-推理模型
2025-06-12
Camera Projection Loss based Camera Calibration
2024-11-22
KonIQ-10k based image assessment
2024-11-22
利用pointNet用于点云分割的工程
2024-11-22
基于对称跳跃连接的卷积自编码器的图像恢复方法
2024-11-22
一种基于相移编码器的定向目标检测算法
2024-11-22
一种基于结构光扫描技术的3D扫描系统
2024-11-22
嵌入式开发-usb驱动-vs2017测试libusb1.0.27工程
2024-05-09
opencv3.4.1编译时ffmpeg和ippicv所需的文件
2024-05-09
libssh2测试工程
2024-03-29
VTK-vs2017-build by leaf
2023-12-13
3D点云数据压缩-Draco demo
2023-12-11
计算机视觉-多路径反射环境光抑制-格雷码结构光-3D重建
2023-10-13
Micro phase shift - matlab code and doc
2023-10-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅