自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 点云 surface 方法总结

网格生成是一种将点云数据转化为网格表面的方法。它将点云数据映射到网格上,并通过插值或拟合方法来估计网格上的表面。在选择和使用点云表面方法时,需要考虑点云数据的特点、噪声水平、数据完整性以及应用需求等因素。同时,还可以结合多种方法和技术来提高点云表面重建的质量和效果。它将点云中的点连接成三角形网格,从而重建出物体或场景的表面。:泊松重建是一种基于体素的点云表面重建方法。:曲面拟合是通过拟合数学曲面来估计点云表面的方法。点云的表面方法是指通过点云数据来估计和重建物体或场景的表面几何形状。

2023-11-26 15:09:35 426 1

原创 【Range Image】 提取Range Image的边界

之前写过:

2023-11-25 16:59:24 239

原创 【Range Image】 创建Range Image

范围图像是一种将点云数据转换为二维图像的表示形式。它将点云中的每个点映射到图像中的像素,每个像素表示了点在三维空间中的距离信息。范围图像的每个像素包含了点的深度信息,可以用来表示物体的形状和几何结构。范围图像通常用于进行深度感知和三维重建等任务。范围图像在PCL中使用类型表示,它包含了范围图像的像素数据以及相关的参数和方法。范围图像可以从点云数据中创建,并可以通过可视化工具进行可视化。

2023-11-25 16:36:35 248

原创 【点云surface】Poisson表面重建

Poisson表面重建算法是一种用于从点云数据生成平滑曲面模型的算法。它基于Michael Kazhdan等人在2006年发表的论文《Poisson surface reconstruction》。该算法通过将点云数据转换为体素表示,并利用Poisson方程来重建曲面。该算法的基本原理是将点云数据转换为体素表示,然后通过求解Poisson方程来重建曲面。Poisson方程是一个偏微分方程,它描述了一个函数的Laplace算子(二阶导数)与该函数的散度之间的关系。

2023-11-25 15:10:52 482

原创 【点云surface】 修剪B样条曲线拟合

Fitting trimmed B-splines(修剪B样条曲线拟合)是一种用于对给定的点云数据进行曲线拟合的算法。该算法使用B样条曲线模型来逼近给定的点云数据,并通过对模型进行修剪来提高拟合的精度和准确性。B样条曲线是一种常用的曲线表示方法,它通过一组控制点和节点向量来定义曲线的形状。B样条曲线具有局部控制性和平滑性,因此在曲线拟合问题中被广泛应用。修剪B样条曲线拟合算法的基本步骤如下:初始化:定义一个B样条曲线模型,并设置模型的阶数、节点向量和控制点。

2023-11-24 23:31:14 1175 1

原创 【点云surface】无序点云快速三角化

GreedyProjectionTriangulation 是一种基于局部二维投影的三维点贪婪三角剖分算法的实现。它假定局部表面光滑,不同点密度区域之间的过渡相对平滑。GreedyProjectionTriangulation算法的基本思想是通过逐步投影点云数据到一个三角化网格上来进行重建。它首先根据给定的搜索半径找到每个点的最近邻点,然后根据这些最近邻点构建局部三角化表面。接下来,通过迭代地添加新的点并更新三角化表面,最终生成完整的三角化网格模型。

2023-11-24 19:56:45 330

原创 【点云surface】 凹包重构

pcl::ProjectInliers这步骤是将直通滤波过滤得到的结果,全部投影到pcl::SACSegmentation分割到的平面上。原始点云 ---> 直通滤波 --> pcl::SACSegmentation分割出平面 -->pcl::ProjectInliers投影 --> pcl::ConcaveHull凹包重构。较小的alpha值会产生更精细的凹凸包,而较大的alpha值会产生更粗糙的凹凸包。,则计算的凹凸包点云将保留输入点云的法线和曲率信息。值会产生更精细的凹凸包,而较大的。

2023-11-24 16:43:41 853

原创 【点云surface】基于多项式重建的平滑和法线估计

基于多项式重建的平滑和法线估计(Smoothing and normal estimation based on polynomial reconstruction)是一种常用的点云处理方法,用于平滑点云数据并估计每个点的法线信息。该方法基于Moving Least Squares(MLS)算法,通过拟合每个点的邻域数据来进行平滑处理。在平滑过程中,使用多项式函数来逼近邻域内的点,然后通过对多项式函数求导来估计每个点的法线。具体步骤如下:​。

2023-11-24 12:02:45 375

原创 [点云分割] 使用 ModelOutlierRemoving 过滤点云

使用已知系数的几何模型,例如平面或球体,对一个点云进行滤波操作。

2023-11-23 18:14:34 81

原创 [点云分割] 点云地面点滤波(Progressive Morphological Filter)

机载LiDAR可以获取快速、低成本地获取大区域的高精度地形测量值。为了获取高精度DTM/DEM需要区分测量点中的地面点(由地面直接返回)及非地面点(建筑、车、植被)

2023-11-23 17:43:41 166

原创 [点云分割] Clustering of Pointclouds into Supervoxels

Clustering of Pointclouds into Supervoxels” 是一种点云数据聚类的方法,用于将点云数据分割成具有相似特征的超体素(supervoxel)。超体素是一种在点云数据中表示连续区域的方法,类似于像素在图像中表示连续区域。超体素是点云数据的小块区域,具有相似的几何特征和颜色特征。通过将点云数据聚类成超体素,可以实现对点云数据的语义分割和对象识别。

2023-11-23 17:22:14 157

原创 [点云分割] 基于法线差的分割

计算DoN特征,这个算法是一种基于法线差异的尺度滤波器,用于点云数据。对于点云中的每个点,使用不同的搜索半径(sigma_s,sigma_l)估计两个法线,然后将这两个法线相减,得到一个基于尺度的特征。当两个搜索半径相关时(sigma_l=10*sigma_s),可以获得最佳结果,两个搜索半径之间的频率可以被视为滤波器的带宽。需要注意的是,输入的法线(通过setInputNormalsSmall和setInputNormalsLarge设置)必须与输入的点云(通过setInputCloud设置)相匹配。

2023-11-23 14:32:48 100

原创 [点云分割] 条件欧氏聚类分割

条件欧氏聚类分割是一种基于欧氏距离和条件限制的点云分割方法。它通过计算点云中点与点之间的欧氏距离,并结合一定的条件限制来将点云分割成不同的区域或聚类。在条件欧氏聚类分割中,通常会定义以下两个条件来判断两个点是否属于同一个聚类:距离条件:两个点之间的欧氏距离是否小于设定的阈值。如果两个点之间的距离小于阈值,则认为它们是相邻的,属于同一个聚类。条件限制:除了距离条件外,还可以根据其他的条件来限制聚类的形成。

2023-11-22 21:11:05 979

原创 [点云分割] 基于最小切割的分割

【代码】[点云分割] 基于最小切割的分割。

2023-11-22 17:51:03 101

原创 [点云分割] 基于颜色的区域增长分割

【代码】[点云分割] 区域增长颜色分割。

2023-11-22 17:18:37 126

原创 [点云分割] 区域增长分割

【代码】[点云分割] 区域增长分割。

2023-11-22 16:47:34 102

原创 [点云分割] 欧式距离分割

【代码】[点云分割] 欧式距离分割。

2023-11-22 16:09:50 122

原创 [点云分割] 圆柱体分割

【代码】[点云分割] 圆柱体分割。

2023-11-22 14:52:39 97

原创 [点云分割] 平面分割

SACSegmentation(Sample Consensus Segmentation)是PCL中的一个分割算法,用于从点云中识别出具有相同几何形状的模型。该算法使用采样一致性(Sample Consensus)方法,通过迭代地随机采样一组数据点,并拟合模型,然后评估拟合模型与数据点的一致性,最终找到最佳的模型参数。SACSegmentation算法的基本原理如下:随机采样:从输入的点云中随机选择一组数据点作为采样集。

2023-11-21 11:39:57 453

原创 PCL 曲率 结构体

则是额外的成员变量,用来存储主曲率的最大值和最小值。三个成员变量是等价的,它们都用来存储主曲率的值。表示主曲率的最大值,表示主曲率的最小值。

2023-11-16 00:09:32 163

原创 [概述] 点云滤波器

点云是一种三维数据,有几种方法可以描述其空间结构,以利于展开搜索。

2023-11-04 00:17:22 208

原创 [概述] 获取点云数据的仪器

这里所说的获取点云的仪器指的是可以获取场景中物体距离信息的相关设备,下面分别从测距原理以及适用场景来进行介绍。

2023-11-02 12:05:19 826

原创 【原理学习】互斥量机制与条件变量机制一起使用

互斥量是多线程机制的一种。互斥量(Mutex)是一种用于实现线程互斥访问共享资源的机制,通过互斥量可以保证在同一时间内只有一个线程可以访问共享资源,从而避免多线程并发修改共享资源导致的数据不一致问题。在多线程环境中,当多个线程需要同时操作共享资源时,为了保证数据的一致性,必须对资源进行互斥访问,即同一时间只允许一个线程访问该资源,其他线程需要等待。

2023-10-09 16:21:08 191

原创 【代码阅读笔记】yolov5 rknn模型部署

第一次写代码阅读笔记,只是把自己关注的地方记下来,尚且存在很多不足之处!1、yolov5 rknn 模型推理及后处理部分,是可以直接拿来用的。项目任务:yolov5 rknn模型检测获得结果。3、要自己设计接口,毕竟这只是一份demo项目。1、关注yolov5检测流程。2、互斥量机制也可以借鉴学习。main函数中创建识别线程。2、其中几个重要的结构体。3、互斥量机制的使用。

2023-10-04 16:44:55 305

原创 【已解决】opencv 交叉编译 ffmpeg选项始终为NO

在交叉编译时候,发现在 pc 端能用 opencv 打开的视频,但是在 rv1126 上打不开。在网上查了很久,原因可能是 ffmpeg 造成的。尝试了一天还是第二个博客的样子,ffmpeg组件是yes,但是ffmpeg是NO,很迷惑!

2023-10-01 23:15:09 1987

原创 【bug 记录】yolov5_C_demo 部署在 rv1126

在 CMakeLists 中将正确的 OpenCV库 路径添加到 CMAKE_PREFIX_PATH 变量中。将该文件从别处复制到项目 include 文件夹。link 时直接用绝对路径。

2023-09-30 16:03:37 691

原创 【大体思路】rv1126 跑通 yolov5

目标:yolov5_coco_rv1126.rknn ---> yolov5_coco_rv1126_pre.rknn。yolov5_detet_demo C++ 代码 ---> yolov5_detect_demo 可执行文件。目标:yolov5_coco.onnx ---> yolov5_coco_rv1126.rknn。1、加载docker镜像,rknn-toolkit-1.7.3-docker.tar.gz。4、模型转换,内存够大 【rknn_convert.py】3、将编译结果复制到板卡上。

2023-09-30 10:58:53 684

原创 Effective C++ 笔记

/ 过早定义变量encrypted// 如果下面抛出异常,该变量没用使用到// 但还是要承受该变量的构造和析构成本// 必要动作,便能将一个加密后的密码// 置入变量 encrypted 内最好延后 encrypted 的出现,直到真正需要它。但循环怎么办?如果变量只在循环内使用,那么把它定义于循环外并在每次循环迭代时赋值给它比较好,还是该把它定义于循环内?//A、 定义于循环外Widget w;i<n;++i){w = 取决于i的某个值;//B、 定义于循环内。

2023-09-27 21:46:21 1279

原创 Linux交叉编译opencv并移植ARM端

opencv的交叉编译工具链在../opencv3.2.0/platforms/linux 路径下,linux文件夹下是一些.cmake文件,对应不同的移植对象,我需要在rv1126上部署模型,所以选择platform/linux/将 build文件夹里面的include和lib里的文件分别拷贝到ARM板的/usr/include 和/usr/lib下 然后打开终端执行可执行文件即可。build文件里include也许是空的,你可以在安装目录/include/找到opencv的头文件。

2023-08-15 22:32:32 2938

原创 yolov5部署 单线程与多线程对比

main.cpp这里是单线程,每帧获取耗时200ms左右,也就是fps大概为5;

2023-08-13 16:28:10 568 1

原创 github镜像网站

这四个基本长期稳定。

2023-08-11 12:19:51 2714

原创 docker 学习笔记 (持续更新)

Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。

2023-08-08 15:52:10 608

原创 qq邮箱 会自动拦截 github 邮件,醉了!

今天登录Github,修改密码,qq邮箱一直收不到Github的邮件。点击左上角设置,点击反垃圾,点击设置右键地址白名单。然后就可以收到Github发给你的邮件。打开自助查询一看,自助查询在右边栏。

2023-08-03 19:26:22 1483 1

原创 什么是互斥锁?怎么运用互斥锁?

互斥锁是(Mutex)是一种用于的同步原语,用于确保在。在多线程环境中,当多个线程同时访问共享资源时,可能会导致数据的竞争和不一致问题。为了避免这种问题,需要确保在任何时候只有一个线程能够访问共享资源,而其他线程需要等待直到资源可用。互斥锁提供这样一种机制,即在某个线程访问共享资源时,它会有互斥锁,其他线程需要等待互斥锁的释放才能访问共享资源。一旦线程完成对共享资源的访问,它会释放互斥锁,以便其他线程可以获取互斥锁并访问共享资源。

2023-08-02 23:18:44 2486

原创 【详细记录】rv1126 跑通 yolov5

在前面,已经将 onnx模型转为 rknn模型。这里探讨的是:rknn模型在rv1126开发板上运行。

2023-08-02 11:01:44 2046

原创 yolov5 onnx模型 转为 rknn模型

这一步是把准备好的一些图片,生成图片路径的文本文件,在构建RKNN模型的时候有用处。通过使用真实的样本数据集,RKNN工具可以更好地理解和建模模型的输入数据,从而更好地优化网络结构、权重和量化方案。这一步如果是在虚拟机上运行的话,8GB的内存条win10系统也要用,分配给虚拟机的没多少,3GB也不够执行这一步。后来我直接在Ubuntu系统执行这一步,8GB系统用一点还剩6.7GB,CPU和内存直接干满。还是在docker环境 模型转换工作目录,运行rknn_convert.py。为映射到docker镜像。

2023-07-28 22:05:44 2297 1

原创 miniconda 换源

miniconda安装好了后,在家目录没有.condarc文件,需要 执行 conda config才有该文件。miniconda换源和conda换源一样的操作,前者安装更省空间。

2023-07-28 13:30:57 693

原创 ubuntu 安装 Pycharm社区版

里面可以创建快捷方式,蛮好用的。

2023-07-28 13:20:57 1177

原创 ubuntu20.04 安装 Qt5.15

在QT Creator界面,点击文件,点击 New Project,选择左侧栏的Non-Qt Prroject,选择右侧栏的Plain C++ Application。对于普通用户而言,Qt5.15之后,所有开源版本不再提供离线安装,都只能在线安装,或者采用静态编译方式,下面给出两种不同安装方法的安装包。红框中的两个是必选的,看着麻烦的话可以全部勾上,多安装点也没事。然后我的qt账号密码忘记了,改密码网站又加载不出来,痛,太痛了。折腾过程中,我拿手机改了qt账号的密码,没错就是用手机可以改。

2023-07-28 01:57:29 2223

原创 ubuntu20.04 安装 docker engine

如何在ubuntu中安装docker。

2023-07-27 22:55:37 483

空空如也

空空如也

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

TA关注的人

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