- 博客(45)
- 收藏
- 关注
原创 从彩色图像到三维点云:深度图与相机参数的作用
彩色图像 (RGB):存储了每个像素的颜色信息 (R, G, B),但不包含空间距离。深度图 (Depth Map):每个像素存储的不是颜色,而是该点到相机的距离 Z 值。区别:RGB → “看起来是什么颜色”;Depth → “离我多远”。有了深度,就能把 2D 像素点投影到 3D 空间,形成点云。步骤深度相机流程彩色图像流程输入RGB + 深度图只有 RGB深度获取相机直接输出深度学习模型预测内参必需必需单帧点云内参 + 深度 → 点云内参 + 预测深度 → 点云外参 / 位姿。
2025-09-24 17:43:43
538
原创 TensorRT Engine 的跨平台通用性问题与部署策略
TensorRT Engine(也称 plan 文件)本质上是一个经过底层 CUDA 内核编译优化的二进制文件。包含了模型权重(来自 ONNX、Caffe、TensorFlow、PyTorch 等)。包含了算子优化信息(例如算子融合、精度选择、张量布局)。包含了针对目标 GPU 架构编译的 CUDA 内核。因此,一个 engine 文件既像模型,又像编译后的二进制程序。模型权重 + 算子优化 + 针对 GPU 编译的 CUDA 内核。因此 engine 与。
2025-09-16 11:59:53
1068
原创 C++部署深度学习模型进行实时推理TensorRT
在这篇文章里,我们来聊聊一个完整的:如何用 TensorRT 10 + CUDA + OpenCV CUDA 写一个推理引擎类TrtEngine,实现从的完整流程。如果你刚接触 TensorRT,可能会觉得 API 很复杂,名字也容易混乱。没关系,我们从实际工程代码入手,逐块来讲清楚每一步。
2025-09-03 15:19:27
1107
1
原创 为什么实际工程里 C++ 部署深度学习模型更常见?为什么大家更爱用 TensorRT?
C++成为深度学习模型部署首选,因其稳定性和低延迟优势,适合工业设备和医疗场景。主流框架分为通用型(ONNXRuntime、OpenVINO)和硬件专用型(TensorRT、NCNN等),其中TensorRT凭借算子融合、精度优化等技术,在NVIDIA GPU设备上性能优势显著。但CPU设备或模型更新频繁时,ONNXRuntime更具灵活性。总体而言,NVIDIA GPU上位机场景中,TensorRT是最佳选择。
2025-09-03 10:45:54
1227
原创 实时视频流检测与显示的工程实践 —— 基于 C++ 与 ONNX Runtime 的策略
在实际生产环境中,要实现摄像头视频流的实时检测与显示多线程流水线(采集-推理-显示解耦)。最新帧优先丢帧策略,避免延迟堆积。内存预分配与复用,减少抖动。自适应抽帧与降分辨率,保证延迟预算。监控与容错,确保 7×24 稳定运行。这样才能在工业环境中同时满足低延迟 + 高可靠性 + 可扩展性的要求。
2025-08-28 16:07:12
712
原创 C++ + ONNX Runtime 在工业 AI 部署中的应用全景解析
工业 AI 部署的核心诉求是低延迟、稳定性、跨平台性。主流任务涵盖分类、检测、分割、关键点、OCR、异常检测、时序预测、多模态。部署方式包括端侧推理、边缘推理、云端推理,现实中往往是混合使用。嵌入式设备算力已经足够跑轻量模型,端侧推理在工业中占主流。C++ + ONNX Runtime 是当前工业部署的事实标准,既能跑在嵌入式,也能扩展到 GPU/服务器。不同任务需要定制化预处理与后处理,但核心推理框架是一致的。👉 对于想进入工业 AI 部署的开发者,
2025-08-28 14:09:13
520
原创 KD树详解:多维数据高效搜索的利器
KD树作为一种高效的多维数据结构,在低到中等维度的空间中表现出色,特别适用于需要频繁进行最近邻和范围搜索的应用场景。其结构简单、搜索效率高,使其在计算机科学的多个领域得到了广泛应用。然而,随着维度的增加,KD树的性能受到限制,同时动态更新操作也较为复杂。尽管如此,通过各种改进和变种,KD树仍然在许多实际应用中发挥着重要作用。理解KD树的结构和操作原理,不仅有助于在实际项目中选择合适的数据结构,还能为优化搜索和查询性能提供理论基础。随着技术的发展,KD树及其变种将继续在多维数据处理领域中展现其独特的价值。
2024-10-28 01:17:24
2490
1
原创 PCL库中的算法封装详解
Point Cloud Library(PCL)是一个广泛应用于三维点云处理的开源库,涵盖了从基础数据结构到高级算法的丰富功能。PCL通过面向对象的设计和模块化的架构,将各种算法封装成独立的类,使得用户能够方便地调用和组合这些算法以完成复杂的点云处理任务。本文将详细探讨PCL库中算法的封装方式,涵盖其设计理念、类结构、模板编程、继承与多态、输入输出接口、常见算法类及其使用示例,帮助读者深入理解并高效利用PCL进行三维点云处理。
2024-10-28 01:06:18
1629
原创 在平面模型上提取凹多边形的点云处理
首先,我们从一个.pcd文件中加载点云数据,并通过直通滤波(PassThrough)去除噪声。滤波器用于减少点云中无效点,以便更清晰地提取感兴趣的表面。以上代码首先读取点云数据,然后通过设置z轴范围的阈值[0, 1.1],去除该范围之外的噪声点。处理后,保留的点云数据存储在中。本文介绍了从平面点云模型中提取凹多边形轮廓的全过程。我们首先对原始点云数据进行滤波以去除无关噪声,然后通过 RANSAC 算法提取平面模型,紧接着将平面点云投影到平面上,最后使用提取出平面上的凹多边形轮廓。
2024-10-27 01:12:37
816
原创 点云处理中的多项式重构、平滑与法线估计
多项式重构是对点云数据的局部表面进行拟合的一种方法。它通过在一个点的邻域中拟合一个多项式曲面来估计该区域的形状。这个方法可以帮助我们在点云的离散数据点之间找到平滑的表面,使表面更连续。这对于表面建模、特征提取等操作尤为重要。选择邻域点:对每个目标点,选择它附近一定半径或最近的几个邻居点作为邻域。拟合多项式:在这个邻域中,使用多项式拟合一条或一个曲面来描述该区域的表面。通常选择二次或三次多项式,既可以提供足够的平滑度,又不会过度耗时。估计法线。
2024-10-27 01:03:40
1647
原创 常见的点云数据存储格式及其应用
随着三维扫描技术的广泛应用,点云数据在多个领域(如建筑、自动驾驶、医学影像和地理信息系统)中发挥了重要作用。点云是通过激光雷达(LiDAR)、结构光、时间飞行(ToF)等技术采集的三维数据点的集合,用于表示物体或环境的三维结构。这些点云数据需要有效的存储格式来满足不同的应用需求。本文将介绍几种常见的点云存储格式及其特点。
2024-10-23 01:00:14
1599
原创 使用PCL从点云生成深度图并可视化
/ 设置噪声水平// 最小探测距离// 边缘宽度在生成深度图时,我们需要模拟传感器的位姿(位置和方向),这是通过一个仿射变换矩阵sensorPose来实现的。定义了坐标系,通常使用相机坐标系。noiseLevel和minRange分别用来控制噪声水平和最小采集距离。本文介绍了如何使用PCL从点云生成深度图并进行可视化。通过调整角度分辨率、视角范围和传感器位置等参数,用户可以生成精确的深度图。PCL提供了强大的点云处理和可视化功能,使得处理和展示3D数据变得更加简单高效。
2024-10-22 14:49:29
1131
原创 点云处理中的三种近邻搜索方法:K近邻、体素内近邻和半径内近邻搜索
K 近邻搜索是一种高效查找最近K个点的方式,适合需要寻找固定数量邻居的应用场景,如特征提取和物体识别。体素内近邻搜索利用八叉树或其他分割方式将空间划分为更小的单元,适用于空间分割和数据降采样等场景,能够降低计算复杂度。半径内近邻搜索则用于在给定半径范围内查找所有邻居点,适合局部特征提取、滤波和密度分析等应用。不同的搜索方式适用于不同的应用需求,选择合适的搜索方式可以显著提高点云处理的效率和准确性。
2024-10-22 00:45:23
2476
原创 KdTree与八叉树的比较:如何在多维空间中有效管理数据
KdTree和八叉树KdTree更加通用,适用于任意维度的数据查找和最近邻问题,常用于点云的配准、机器学习中的KNN等场景。八叉树则专注于三维空间的管理和查找,适合用于三维建模、空间渲染、环境感知等任务中。根据具体应用需求选择合适的数据结构,可以极大地提高程序的运行效率和数据处理能力。无论是需要处理多维数据还是管理三维场景,理解和掌握这两种数据结构都是非常有价值的技能。
2024-10-21 23:58:41
1362
原创 PCL点云库 概览
PCL 是一个功能强大且灵活的开源库,覆盖了从点云创建、处理到可视化的各个方面。无论是基础的点云操作,还是复杂的配准、特征提取和分割,PCL都提供了丰富的接口和工具。通过掌握PCL的核心功能,您可以轻松地处理来自各种3D传感器的数据,在计算机视觉、机器人、无人驾驶等领域中实现复杂的点云处理任务。
2024-10-20 10:51:36
1886
原创 QML 模块划分与导入机制详解
因此,在使用 QML 开发应用时,开发者需要根据应用的具体需求,有针对性地导入所需的模块,而不是依赖某个模块自动加载其他模块。导入一个模块时,QML 只加载该模块的相关功能,而不会自动引入其子模块或其他相关模块。导入一个模块时,并不会自动导入它的子模块或其他相关模块的功能。:开发者可以根据项目的具体需求选择需要的模块,不会引入不必要的依赖,确保项目的结构清晰且可维护。语句指定模块的版本号。:导入一个模块时,只会加载该模块的功能,不会自动导入相关的子模块。在 QML 中,模块是相互独立的,必须通过明确的。
2024-10-04 01:34:32
1248
1
原创 Qt 6 相比 Qt 5 的主要提升与更新
Qt 6的一大重要目标是利用现代硬件的性能,充分发挥C++17标准的优势。为此,Qt 6 对核心库进行了重构,使其在内存管理和执行效率上有显著的提升。模块化设计:Qt 6 采用了更加灵活的模块化设计,让开发者可以按需引入必要的功能模块,而不必加载所有的库。这种优化不仅降低了项目的体积,还提高了构建效率。C++17 支持:Qt 6 在语言层面引入了对 C++17 标准的支持,使得代码更加简洁、现代化,利用 C++17 的新特性对 Qt 的核心进行优化,提升了框架的执行效率和内存管理。Qt 6相比Qt 5。
2024-10-04 01:19:07
5222
原创 Qt 3D、QtQuick、QtQuick 3D 和 QML 的关系
Qt 3D是 Qt 框架中的一个模块,专门用于处理三维图形渲染和场景管理。它提供了构建 3D 应用所需的全面 API,包括渲染、动画、物理引擎集成、骨骼动画、粒子系统等功能。通过Qt 3D,开发者可以在三维空间中创建实体,并为这些实体添加组件,如网格、材质、灯光、摄像机等,来定义它们的外观和行为。Qt 3D适用于需要对 3D 场景有精细控制的应用,如游戏、仿真、数据可视化和虚拟现实。开发者可以使用C++或QML。
2024-10-04 01:16:43
1578
原创 Qt Quick 3D 入门:QML 3D场景详解
Qt Quick 3D 是 Qt 6 中引入的一个模块,旨在为用户提供便捷的 3D 场景管理和渲染工具。与 Qt 5 中的 Qt 3D 模块相比,QtQuick3D 更加简化,且集成了 Qt Quick 的能力,让 2D 和 3D 内容的结合更加自然。要显示 3D 内容,首先需要创建一个View3D,这是 QtQuick3D 中的主要容器,类似于 2D 场景中的Item。View3D是一个 3D 场景的承载体,所有 3D 内容都将在这个视图中渲染。
2024-10-04 01:06:22
4561
4
原创 深度图详解
深度图是为计算机视觉和3D处理提供深度信息的核心数据类型。它通过各种方法生成,广泛用于机器人、自动驾驶、3D建模、虚拟现实等领域。尽管深度图的生成和处理过程中可能面临噪声、分辨率和遮挡等挑战,但通过算法的优化和传感器的进步,深度图的应用将会更加广泛和准确。
2024-10-03 00:59:10
5006
原创 3D点云处理详解
随着技术的进步,3D点云在多个领域的应用越来越广泛。无论是自动驾驶、机器人导航、地理信息系统(GIS)还是医学图像处理,点云都扮演着关键角色。本文将深入探讨3D点云的基础概念、获取方式、处理方法及常用工具,帮助理解点云的全面处理流程。什么是点云?点云是一组以三维坐标(X、Y、Z)表示的点集,用来描述物体的表面或整个场景。这些点可以通过多种传感器捕捉,如激光雷达(LIDAR)、深度摄像头、激光扫描仪等。点云提供了一个物体或场景的几何形状,但通常不包含纹理信息,因此其主要用于几何分析和重建。点云的获
2024-10-03 00:41:49
2067
原创 Qt 中的 QChartView
QChartView是用于图表可视化的控件,它能够将QChart中的内容渲染出来,并展示给用户。QChart管理所有图表相关的数据和逻辑,QChartView则负责将其绘制到界面上,允许用户与图表进行交互。QChartView是 Qt 中强大的图表展示控件,它不仅支持多种图表类型,还提供了丰富的交互操作和高质量的图表渲染能力。通过QChartView,开发者可以轻松实现复杂的数据可视化功能,适用于实时监控、数据分析、报告生成等多个企业应用场景。在实际开发中,QChartView结合QChart。
2024-10-02 13:28:29
2833
原创 Qt 中的 QListWidget、QTreeWidget 和 QTableWidget:简化的数据展示控件
和都是基于 Qt 的高级封装控件,提供了更为直接的项操作方式。项模型封装:不需要单独设置模型,直接通过项()管理数据。简化操作:与QListViewQTreeViewQTableView等纯视图控件相比,它们的使用更为简单,适合小型数据集或简单展示需求。适用场景:适用于不需要复杂数据模型、或数据量较小的应用场景。在需要更复杂的数据展示和交互时,QListViewQTreeView和QTableView等基于模型/视图架构的控件可能是更好的选择。
2024-10-01 22:27:00
1576
原创 Qt 中的模型/视图架构:控件与数据模型的关系
视图(View)功能:视图负责将数据以某种方式展示给用户。它不直接持有数据,而是从模型获取数据并将其渲染到界面上。常见的视图控件包括QListViewQTreeViewQTableView等。作用:视图通过展示模型中的数据,向用户提供可交互的界面。用户可以通过视图进行数据选择、排序、编辑等操作。模型(Model)功能:模型负责存储和管理数据。它为视图提供了一个标准化的接口,使得视图可以从模型中获取数据并展示,而不需要关心数据的具体存储方式。作用。
2024-10-01 22:00:27
1392
原创 C++ 部署深度学习模型的学习路线
C++ 部署深度学习模型是一项复杂的任务,涉及 C++ 基础、深度学习框架的使用、GPU 编程、模型优化、并行编程和跨平台部署等多个方面。通过遵循上述学习路线,你将逐步掌握 C++ 部署深度学习模型所需的关键知识和技术,能够在实际生产环境中高效地进行模型部署和优化。
2024-10-01 06:57:32
2442
1
原创 常见的 C++ 库介绍
概述:C++ 标准库(STL)是 C++ 语言核心的一部分,提供了一组模板类和函数,支持常见的数据结构、算法和迭代器操作。STL 是每个 C++ 开发者在日常开发中不可或缺的工具。主要功能容器:如vectorlistmapset等,用于高效管理数据。算法:如sortfindfor_each,提供了常见的操作和搜索功能。迭代器:用于抽象访问容器元素,如begin()和end()。实用工具类:如处理字符串,和管理内存。应用场景。
2024-10-01 06:53:35
3359
原创 深入理解 C++11 Lambda 表达式及其捕获列表
本文将详细介绍 C++11 Lambda 表达式的捕获列表及其应用。什么是 Lambda 表达式?Lambda 表达式是定义在局部作用域中的匿名函数,它的语法结构如下:[capture]:捕获列表,用来定义 Lambda 表达式能够使用哪些外部作用域中的变量。:参数列表,类似于普通函数的参数。(可选):指定返回类型。如果不写,编译器会自动推断返回类型。:Lambda 函数体,包含需要执行的代码。其中,捕获列表是 Lambda 表达式的核心,它定义了 Lambda 内部如何访问外部的变量。
2024-09-30 18:00:41
2695
原创 序列化与反序列化
它是将存储或传输的格式化数据重新转换为程序中的对象或数据结构的过程。通过反序列化,程序可以从文件、网络中读取数据,并将其恢复成内存中的实际对象。例如,应用程序中的复杂对象(如自定义的类对象或数据结构)在序列化后可以转换为二进制格式、XML、JSON 等格式,然后通过网络传输或存储在磁盘中。我们可以通过序列化将该对象转换为 JSON 字符串,然后通过反序列化将 JSON 字符串还原为一个对象。,可以方便地在 Qt 中实现 JSON 数据的序列化和反序列化操作,适用于数据存储、网络传输等场景。
2024-09-30 00:14:35
815
原创 在 Qt 中构建和解析多层嵌套的 JSON 数据
一. 如何解析多层嵌套的 JSON 数据当从服务器获取复杂的 JSON 数据时,可能会遇到多层嵌套的结构。"age": 21,},这种 JSON 数据包含一个student对象,而student对象内部又嵌套了一个address对象。为了解析这样的 JSON 数据,我们需要递归地提取每一层的对象和字段。解析多层 JSON 的代码示例// 模拟一个多层的 JSON 响应"age": 21,},})";// 解析 JSON 文档// 获取 'student' 对象。
2024-09-29 23:59:08
3132
原创 使用Qt进行TCP和UDP网络编程
Qt 提供了强大的网络模块,用于支持基于TCP和UDP协议的网络通信。在Qt中,TCP 和 UDP 的实现分别使用 QTcpSocket、QTcpServer 和 QUdpSocket 类。TCP 提供了可靠的面向连接的通信方式,而 UDP 则提供了快速的、无连接的数据报传输方式。本文将详细介绍如何使用 Qt 实现 TCP 和 UDP 通信,并说明两者的区别与应用场景。
2024-09-29 23:37:18
1627
原创 深入掌握 Qt 中的数据库操作:从基础到高级技巧
Qt 提供了强大且灵活的数据库操作接口,允许开发者在 GUI 应用中轻松集成多种数据库系统。掌握了基本的 CRUD 操作后,进一步学习事务处理、批量操作、数据绑定、多线程查询等高级技巧,将帮助你构建更加高效和安全的应用程序。
2024-09-29 22:27:19
1761
原创 Qt6 中的 Qt Quick QML 3D:现代化 UI 和 3D 渲染的强大工具
是 Qt6 中的一个模块,专门用于简化 3D 内容在 QML 环境中的使用。它将 Qt Quick 的灵活性与 3D 渲染功能结合在一起,使开发者能够直接通过 QML 编写 3D 场景,而不需要深入了解底层的 OpenGL 或 Vulkan 等图形接口。这个模块特别适用于希望通过 QML 快速构建 3D 场景和交互的开发者,比如创建增强现实、游戏开发、数据可视化以及用户界面中的 3D 动画效果。Qt6 中的。
2024-09-29 10:18:35
1972
原创 Qt6 中相对于 Qt5 的新增特性及亮点
Qt 是一个领先的跨平台应用开发框架,涵盖了桌面、移动、嵌入式等多个平台。随着 Qt6 的发布,Qt 框架经历了重大升级和变革,带来了大量新特性和架构上的改进,使开发者可以更高效地开发现代化应用程序。本文将重点讨论 Qt6 相对于 Qt5 的新增特性,以及这些特性对开发体验和性能带来的提升。
2024-09-29 10:15:37
3088
原创 Qt6 相对于 Qt5 的提升与值得学习的
Qt 是一个广泛使用的跨平台应用开发框架,提供了丰富的功能库,支持 GUI、3D 渲染、网络通信、多媒体处理等多个方面。Qt6 于 2020 年发布,是 Qt 框架的最新版本,相对于 Qt5,带来了大量的改进和新特性。这使得 Qt6 更加现代化,性能更好,代码维护也更为简化。因此,学习 Qt6 是每个开发者提升技能的一个重要主题。
2024-09-29 10:11:47
4709
原创 Qt 中的多线程处理:多种方式的探索与应用
QThreadQt 提供了多种多线程机制,帮助开发者根据不同的任务场景灵活选择合适的工具。从基础的QThread管理到高级的,再到复用线程和轻量级的QTimer,每种方式都有其特定的应用场景。在复杂的多线程场景中,合理使用这些机制可以极大提升应用程序的性能和响应速度,避免阻塞主线程,提供更好的用户体验。根据不同的任务需求,可以选择:简单的后台任务,使用QThread或。并行数据处理,使用。处理大量短期任务,使用。轻量异步任务,使用QTimer。线程间同步,使用QMutexQSemaphore和。
2024-09-23 10:50:05
1594
原创 在企业开发中的并行计算与异步UI更新方式
在现代企业软件开发中,随着硬件性能的提升和并行处理需求的增加,并行计算与异步任务处理变得越来越重要。尤其是在处理复杂的后台任务时,我们需要选择合适的并发机制来提高应用的响应速度与性能。本文将探讨几种常见的并行计算与异步UI更新方式,并分析在实际企业开发中如何选择这些方式。
2024-09-23 09:14:26
612
原创 深入理解MFC:微软基础类库详解
MFC作为微软早期推出的C++类库,曾在Windows应用程序开发中占据重要地位。它通过对Windows API的封装和面向对象设计,为开发者提供了一种高效构建Windows桌面应用的方式。尽管如今有了许多更新、更现代的开发工具和框架,MFC依然在维护大型遗留系统或特定领域应用程序开发中具有不可忽视的价值。
2024-09-16 23:41:14
2216
原创 CLAHE自适应直方图均衡化算法的实现与应用
该代码能够处理彩色和灰度图像,且通过自适应的方式增强图像的局部对比度。对于彩色图像,它仅对亮度通道应用CLAHE,从而避免影响图像的色彩信息。而对于灰度图像,直接应用CLAHE即可。自适应直方图均衡化(CLAHE)是一种强大的图像增强技术,特别适用于局部对比度差的图像。通过将图像划分为多个小块,并对每个小块单独进行直方图均衡化,CLAHE能有效提高图像的视觉效果。在图像处理中,根据图像类型(彩色或灰度),选择适当的CLAHE操作,可以避免过度增强导致的噪声问题,同时显著提高图像质量。
2024-09-16 23:01:34
1440
原创 常见的颜色空间
在计算机视觉、图像处理、视频编码以及打印等领域,颜色空间是描述颜色的一种数学模型。不同的颜色空间有不同的应用场景和特性。本文将介绍几种常见的颜色空间及其通道构成。不同的颜色空间在不同应用场景下各有优势。例如,RGB适合图像显示,HSV、HSL更贴近人类感知,YUV和YCrCb用于视频压缩,LAB和XYZ在颜色校准中有重要地位。在图像处理、视频编码、打印和颜色校准中,合理选择颜色空间可以显著提升操作效果。
2024-09-16 22:49:09
1183
原创 Opencv中的标准直方图均衡化
直方图均衡化是一种图像增强技术,通过重新分配图像的像素值,使得图像的像素分布更加均匀,从而提高图像的整体对比度。通常用于增强图像的视觉效果,特别是在对比度较低的图像中。代码:void histogramEqualization(const cv::Mat& input, cv::Mat& output) {else {
2024-09-16 22:46:30
733
空空如也
文心一言插件开发中如何实现图片上传
2024-02-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅