自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 opencv入门

Point 类用来表示二维坐标系中的一个点。OpenCV 提供了两个版本:Point2i(或简称 Point)用于整数坐标,Point2f 用于浮点数坐标。示例// 创建一个整数类型的点 (x=10, y=20)// 创建一个浮点类型的点// 在图像上绘制这个点// 创建一个100x100的黑色图像// 在点pt处绘制一个绿色圆圈。

2025-11-18 15:50:34 17

原创 RKNN-Toolkit2入门

RKNN-Toolkit2 的主要作用是在 x86 主机(Host)上将 ONNX、TensorFlow、Caffe 等模型转换为 .rknn 格式,然后部署到 瑞芯微(Rockchip)NPU 芯片(如 RK3566、RK3568、RK3588、RV1106 等)上进行推理。📌 详细解释:RKNN-Toolkit2 到底是什么?

2025-10-31 15:04:32 732

原创 tensorRT高级-使用onnxruntime进行onnx模型推理过程

8. 图像预处理(Letterbox + 归一化)和tensorrt是一样的。9. HWC → CHW + BGR → RGB + 归一化。12. 解码输出(YOLO 后处理)13. NMS 非极大值抑制。

2025-10-30 11:27:23 129

原创 tensorRT-UNet分割模型编译到推理

计算缩放因子 scale = min(target_w / img_w, target_h / img_h)使用 cv::warpAffine 进行仿射变换,将图像缩放到目标尺寸(如 512x512)类别图(uint8)使用 cv::INTER_NEAREST 防止类别混合。空白区域用灰色(114)填充(常见于 YOLO/UNet 系列)概率图(float)使用 cv::INTER_LINEAR 插值。模型输出形状:[B, H, W, C](C 为类别数)前处理的目标是将原始图像转换为模型输入所需的格式。

2025-10-27 13:23:02 315

原创 c++中tuple的基本用法

访问 tuple 元素:std::get<索引>(tuple)获取 tuple 大小:std::tuple_size。解包 tuple:std::tie(经典方式)使用 std::tuple 类型声明。

2025-10-27 11:09:13 108

原创 OpenCV C++ 中,访问图像像素三种常用方法

🔹 方法 2:指针访问 cv::Mat::ptr<>()(推荐用于遍历整行或全图)🔹 方法 1:cv::Mat::at<>() 方法(推荐用于调试和小规模访问)🔹 方法 3:迭代器访问(安全且适合 STL 风格编程)✅ OpenCV C++ 访问像素的三种方法。

2025-10-27 10:49:39 249

原创 retinaface tensorrt 无封装版本

这叫做 Bounding Box Regression(边界框回归),目的是: 把一个“先验框”(anchor/prior)通过学习到的偏移量,调整成更接近真实框(ground truth)的预测框。init_prior_box 函数是 人脸检测模型(如 RetinaFace、SSD、YOLO 的 Anchor 版本等)中生成“先验框”(Prior Boxes / Anchors)的核心函数。真实偏移量 (dx_real) = (gt_cx - anchor_cx) / anchor_sx。

2025-10-24 15:59:06 883

原创 tensorRT高级-yolov5模型编译到推理(无封装)

【代码】tensorRT高级-yolov5模型编译到推理(无封装)

2025-10-23 17:11:35 17

原创 shared_ptr 与 Lambda 删除器

🔍 核心问题:为什么 engine->infer() 没有执行 lambda?这行代码等价于:MyEngine* raw = engine.get();👉 它只是通过 shared_ptr 获取原始指针,然后调用方法。✅ 2. engine->infer():只是正常使用对象。管家(shared_ptr)收下了遗嘱,但不会立刻执行。✅ 1. shared_ptr 的构造:只保存,不执行。这才是 lambda 第一次也是唯一一次被执行。👉 但 不会立即执行 lambda!✅ 3. 析构时:删除器终于执行

2025-10-23 10:08:03 119

原创 基类派生类

【代码】基类派生类。

2025-10-23 09:41:24 358

原创 c11简单线程池

【代码】c11简单线程池。

2025-10-23 09:40:05 344

原创 c11智能指针 promise future

【代码】c11智能指针 promise future。

2025-10-23 09:39:26 249

原创 c11工厂函数

【代码】c11工厂函数。

2025-10-23 09:38:26 251

原创 c11条件变量

【代码】c11条件变量。

2025-10-23 09:35:50 68

原创 tensorRT基础-模型推理时动态shape的具体实现要点

1.

2025-10-22 14:14:10 25

原创 最简单的tensorrt程序,实现模型编译和推理

假设输入是 [1.0, 1.0, 1.0](即 x0=x1=x2=1),偏置 b = [0, 0]🔍 第二步:addFullyConnected 需要什么样的权重?🔢 第三步:你的权重数组如何排列?所以输出是 [3.5, 0.8]🧮 第五步:矩阵乘法示例。

2025-10-22 11:18:23 21

原创 cuda运行时API-内存的学习,pinnedmemory

Device To Host 的过程,等价于。Host To Device 的过程,等价于。

2025-10-17 09:33:13 22

原创 仿射变换逆变换

2025-09-22 09:00:19 110

原创 YOLO 模型前向推理全流程(以 YOLOv8 为例)

形状:(1, 4 * reg_max, 80, 80)、(1, 4 * reg_max, 40, 40)、(1, 4 * reg_max, 20, 20)形状:(1, 80, 80, 80)、(1, 80, 40, 40)、(1, 80, 20, 20)(COCO 80 类)实际使用时通过卷积解码为 (l, t, r, b) 四个距离(归一化到特征图尺度)将缩放后的图像(640×480)居中放置在 640×640 的画布上。前 4 行:[l, t, r, b](归一化的距离)填充短边(letterbox)

2025-09-16 18:05:33 107

原创 非极大值抑制(Non-Maximum Suppression, NMS)

即:IM 把变换后的点 (x’, y’) 映射回原始点 (x, y)。如果 IoU > 阈值,说明是重复检测,将那个低分框标记为“删除”。否则,保留这个框(因为它目前是置信度最高的未被删的框)。假设输入的检测框已经按置信度从高到低排序。如果当前框已被标记删除,跳过。计算它们与当前框的 IoU。最终返回所有未被删除的框。

2025-09-16 17:14:54 48

原创 std::initializer_list<int> 和 std::vector<int>

使用 std::initializer_list 和 std::vector 两种方式来构造 InputDims 类,并说明它们的区别。两者最终都会把数据存到 dims_ 这个 vector 成员变量中,区别只在于如何把数据传进来。为什么 InputDims 要同时支持两种构造方式?

2025-09-16 10:50:29 104

原创 C++ 中的 noexcept override

这样写出的代码,才是健壮、高效、可维护的现代 C++ 代码!

2025-09-16 10:23:39 40

原创 YOLO 检测前向推理流程

✅ YOLO 模型前向推理全流程(以 YOLOv5 为例)第一阶段:图像加载与预处理。

2025-09-15 17:40:21 146

原创 使用海康威视 SDK 实现软触发拍照(C语言完整示例 + 中文注释)

本文介绍了基于海康威视MVS SDK的软触发拍照C语言实现方案。文章摘要如下: 功能概述: 实现软触发控制工业相机精准拍摄 支持设备枚举、选择、取流控制 采用"拍一张→处理→再拍一张"的工作模式 关键技术: 使用MV_CC_SetCommandValue发送软触发指令 通过回调函数处理图像数据 多线程设计分离触发和图像处理逻辑 代码特点: 完整可运行的示例代码 详细中文注释 中文化打印信息 Linux环境测试通过 适用场景: 流水线检测 运动同步拍摄 需要精确控制拍摄时机的应用 注意事项

2025-09-05 19:41:34 505

原创 海康威视工业相机SDK开发实战:使用C/C++实现软件触发图像采集(含详细中文注释代码)

本文将带你从零开始,使用 海康MVS SDK(Machine Vision Software Development Kit),通过 C/C++语言 实现对海康工业相机的控制,重点演示如何配置 软件触发模式 并完成图像采集。而“软件触发”是触发模式中的一种,指通过 调用SDK函数发送命令 来触发相机采集一帧图像,无需外部硬件信号,非常适合调试和控制场景。本文通过一个完整示例,展示了如何使用海康MVS SDK 实现 软件触发图像采集,代码结构清晰,注释详尽,适合初学者快速上手。五、完整代码实现(含中文注释)

2025-09-05 17:59:56 904

原创 使用海康机器人相机SDK实现基本参数配置(C语言示例)

本文介绍了基于海康MVS SDK的相机控制程序开发,通过C语言实现了设备枚举、连接及参数读写功能。程序支持多种接口类型相机(GigE/USB/CameraLink等),可获取设备型号、IP地址等基本信息,并提供整型、浮点、枚举、布尔和字符串参数的读写操作。核心代码展示了SDK初始化、设备信息打印、参数设置等关键流程,采用do-while(0)结构进行错误处理,确保资源正确释放。该实现为机器视觉应用开发提供了基础框架。

2025-09-05 16:10:53 382

原创 记录相机触发相关

关闭触发模式(内部触发):当您需要预览图像来检查相机设置、调整曝光、对焦等参数时,通常会将触发模式设置为关闭(即内部触发模式)。硬触发(硬件触发):通过物理信号(例如电压变化)从外部设备发送到相机的触发输入端口,通知相机在特定时刻拍摄照片。硬触发(硬件触发):适用于需要高精度同步的场合,比如工业检测、科学研究等,其中外部设备(如传感器、PLC等)通过物理连线向相机发送触发信号。正式拍摄:倾向于采用外部触发(触发模式开启),无论是硬触发还是软触发,以实现对外部事件的响应或达到更高的同步精度。

2025-09-04 16:49:44 206

原创 设置麦克风和播放器default为usb设备

本文介绍了在Linux系统中重新安装和配置PulseAudio音频服务的完整流程。首先指导用户通过apt命令重新安装PulseAudio及其工具包,然后详细说明了启动服务、验证运行状态的方法。重点讲解了如何通过pactl命令查找USB麦克风设备,并设置默认录音设备,包括临时设置和永久配置两种方式。最后提供了验证配置是否成功的检查方法,确保音频输入输出设备正确设置。整个过程条理清晰,涵盖了从安装到配置的完整步骤。

2025-09-03 17:37:16 284

原创 ubuntu python程序开机自启动

将上述内容保存为:🔧 启用并启动服务。

2025-09-01 09:41:29 123

原创 烟雾传感器

1.烟雾传感器上电手机或者电脑搜索W开头的wifi,并连接。2.选择第二个 配置。

2025-08-28 13:14:29 136

原创 函数指针与回调函数(c++)

函数和函数指针这个函数叫 hello,它有一个地址(就像房间有门牌号一样)。我们想用一个变量来保存这个地址,这个变量就是“函数指针”。给函数指针赋值✅ 关键点hello 是函数名,它本身就表示“函数的地址”就是把 hello 的地址存到 ptr 中ptr(5);就是“调用 ptr 指向的那个函数”,和 hello(5) 效果一样。

2025-08-25 09:30:41 397

原创 eigen中四元数

Eigen库中的四元数使用指南:介绍了四元数的数学结构(q=w+xi+yj+zk)及其在Eigen中的实现(Quaternionf/d)。详细说明了四元数的构造方法(从旋转矩阵或欧拉角)、点旋转操作,并强调了构造参数(w,x,y,z)与内部存储[x,y,z,w]的顺序差异。提供了旋转矩阵与四元数相互转换的代码示例,以及复合旋转的正确计算顺序(yawpitchroll)。特别指出实际应用中容易混淆的参数顺序问题,帮助开发者正确使用四元数进行3D旋转操作。

2025-08-22 09:00:00 638

原创 图像中物体计数:基于YOLOv5的目标检测与分割技术

然而,当物体非常小且密集时,传统的目标检测方法可能会出现较大的误差。本文将介绍一种结合YOLOv5目标检测和图像分割技术的方法,以提高物体计数的准确性,并最终生成一个可以在手机端调用的SO文件。每个小区域的大小可以根据实际情况进行调整,一般来说,小区域的大小应该能够包含一定数量的物体,但又不至于过大,以免影响检测精度。YOLOv5是一种非常强大的目标检测模型,它能够在保证检测速度的同时,提供较高的检测精度。最后,我们将所有小区域的检测结果组合起来,得到整个图像的物体计数结果。3. 在手机端调用SO文件。

2025-08-21 20:43:11 631

原创 基于OpenCV的物体识别与计数

通过上述步骤,我们可以有效地从图像中识别并计数特定类型的物体。值得注意的是,实际应用中可能需要根据具体场景调整参数和算法细节,以达到最佳效果。本文将介绍一种使用OpenCV库实现的高效物体识别与计数方法,并提供一些代码片段以帮助理解各个步骤。计算每个轮廓的面积,并根据设定的面积阈值和其他条件统计符合条件的物体数量。对于每个被识别出的物体,还可以进一步进行距离变换、归一化处理等操作,以便更精确地描述物体特性。形态学操作,例如开运算和闭运算,用于清理图像中的小对象或连接邻近的对象,改善目标物体的完整性。

2025-08-21 13:38:25 624

原创 用 PCL 快速生成5种常见点云数据(附完整代码)

先从生成几种基本的点云数据开始吧!本文带你用 PCL(Point Cloud Library) 生成5种常用类型的点云,并保存为 .pcd 文件,方便后续可视化和处理。本代码使用 C++ 编写,功能是生成5个不同类型的点云文件,用于测试和学习。确保你已经安装了 PCL(Point Cloud Library)。🧩 5种常见的 PCL 点云类型。👉 是学习 PCL 的绝佳起点!保存为 PCD 文件。

2025-08-21 13:19:22 369

原创 用 Eigen 轻松搞定 C++ 矩阵运算(超简单入门教程)

在机器人、SLAM、图像处理等开发中,矩阵运算是家常便饭。而 Eigen 就是 C++ 中最流行、最高效的线性代数库之一。Eigen 虽然功能强大,但上手并不难。掌握这些基础操作,你就可以在 SLAM、机器人、机器学习等项目中轻松处理矩阵了!今天,我们通过一个简单的例子,带你快速入门 Eigen 的基本用法,零基础也能看懂!

2025-08-21 10:25:11 212

原创 ubuntu20中安装eigen库

在 Eigen 中,所有向量和矩阵本质上都是 Eigen::Matrix 模板类的特化版本。Eigen 通过 typedef 提供了大量的内置类型别名(typedef),极大地方便了日常使用。以下是最常用、最推荐掌握的 Eigen 内置类型,广泛用于 SLAM、机器人、图形学等领域。Eigen 是 header-only 库(只有头文件,无需编译链接),所以安装非常方便。Eigen 的头文件会被安装到 /usr/include/eigen3/。✅ 一、常见的内置类型(Built-in Typedefs)

2025-08-21 09:49:09 472

原创 eigen入门了解

Eigen 库通过这些模块提供了全面的线性代数功能,从基础的矩阵运算到高级的数值分析,再到稀疏矩阵和迭代求解器,几乎涵盖了所有常见的线性代数需求。无论是科学研究、工程计算还是机器学习,Eigen 都是一个强大且灵活的选择!Eigen 库是一个非常强大的 C++ 线性代数库,它提供了丰富的功能来处理矩阵和向量运算。Eigen 库涵盖了多种线性代数相关的模块。

2025-08-21 08:50:35 164

原创 一文看懂PCD文件格式

在使用PCL(Point Cloud Library)处理点云数据时,你一定会遇到 .pcd 文件。它是PCL专用的点云数据格式,结构清晰、功能强大。本文用一个实际例子,带你快速理解PCD文件的每一行含义。掌握这些基础知识,你就能轻松读写点云数据,为后续的滤波、配准、分割等操作打好基础!

2025-08-20 19:18:51 444

原创 使用PCL读取PCD点云文件

在点云处理和三维视觉项目中,我们经常需要将点云数据保存到文件中,以便后续加载和分析。本文将通过一个完整的C++示例,介绍如何使用PCL读取 .pcd 格式的点云文件。通过 pcl::io::loadPCDFile,我们可以非常方便地将磁盘中的点云数据加载到内存中,为后续的滤波、配准、分割等处理打下基础。本文示例展示了完整的读取流程,是PCL开发中最基础也是最重要的操作之一。掌握点云的读写,是开启三维点云处理之旅的第一步。2. 从本地磁盘加载一个已有的PCD文件。1.定义一个点云对象。3.打印点云的总点数。

2025-08-20 19:01:32 319

【老年人异常行为监测】基于YOLOv5的目标检测模型数据采集与动作模拟指南:养老院老人摔倒争吵等危险动作实时监测系统设计

内容概要:本文档《老年人异常行为监测系统数据采集与动作模拟指南》旨在指导养老院工作人员或模拟人员采集高质量的老年人异常行为视频数据,为基于YOLOv5的目标检测模型训练提供坚实基础,以实现对养老院内老人摔倒、争吵等危险动作的实时监测与预警。文档详细描述了模拟人员的基本要求、动作模拟的具体指南(如摔倒、趴桌子、捂腹部等12种动作)、模拟动作的多样性要求(速度、角度、环境、遮挡变化),以及摄像头摆放策略和视频抽帧与标注流程。此外,还提供了针对摔倒动作模拟安全、动作识别准确率不足和模型推理速度慢等问题的解决方案,并展望了未来改进方向。 适合人群:养老院管理人员、护理人员、动作模拟人员及相关技术人员。 使用场景及目标:①用于养老院内老人异常行为(如摔倒、争吵等)的实时监测与预警;②为目标检测模型(如YOLOv5)的训练提供高质量的数据集;③提高养老院的安全管理水平。 其他说明:文档不仅提供了详细的动作模拟指南和摄像头摆放策略,还强调了数据标注的重要性,并针对可能遇到的问题提供了具体解决方案。未来可考虑增加更多异常行为类别,以进一步提高系统的准确性和实用性。

2025-08-04

空空如也

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

TA关注的人

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