<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[YYY_77的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/YYY_77</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; YYY_77]]></copyright><item><title><![CDATA[ICP点云配准初探]]></title><link>https://blog.csdn.net/YYY_77/article/details/138230605</link><guid>https://blog.csdn.net/YYY_77/article/details/138230605</guid><author>YYY_77</author><pubDate>Sat, 27 Apr 2024 11:18:21 +0800</pubDate><description><![CDATA[在逆向工程，计算机视觉，文物数字化等领域中，由于点云的不完整，旋转错位，平移错位等，使得要得到的完整的点云就需要对局部点云进行配准；为了得到被测物体的完整数据模型，需要确定一个合适的坐标系，将从各个视角得到的点集合并到统一的坐标系下形成一个完整的点云，然后就可以方便进行可视化的操作，这就是点云数据的配准。点云配准的应用还有很多。比如：形状还原运动估计外观分析纹理映射追踪等等那么点云配准的本质是什么呢？]]></description><category></category></item><item><title><![CDATA[点云及点云拓扑结构]]></title><link>https://blog.csdn.net/YYY_77/article/details/138027020</link><guid>https://blog.csdn.net/YYY_77/article/details/138027020</guid><author>YYY_77</author><pubDate>Sun, 21 Apr 2024 10:44:25 +0800</pubDate><description><![CDATA[k-d tree（ k-dimensional tree）是计算机科学中用于在k维空间中一些点建立关系的数据结构。它是一个包含特定约束的二叉搜索树。k-d tree对于范围搜索和最近邻居搜索非常有用。我们通常只处理三维空间的点云，因此我们所有的k-d树都是三维空间的。k-d树的每个级别都使用垂直于相应轴的超平面沿特定维度拆分所有子级。在树的根部，所有子项都将根据第一维进行拆分（即，如果第一维坐标小于根，则它将位于左子树中，如果大于根，则显然位于右边的子树）。]]></description><category></category></item><item><title><![CDATA[点云配准概述]]></title><link>https://blog.csdn.net/YYY_77/article/details/138009943</link><guid>https://blog.csdn.net/YYY_77/article/details/138009943</guid><author>YYY_77</author><pubDate>Sat, 20 Apr 2024 20:23:53 +0800</pubDate><description><![CDATA[经过粗配准之后，这两个点云的重合程度已经很高了，若要进一步提高，就需要后续的精准配准，现在一般都是采用ICP(迭代最近点)算法或者其变种来进行的，通过多次迭代，可以进一步提高配准的精度，但是若是没有粗配准提供较好的迭代初始位置，ICP算法往往会陷入局部区域的最优解，而得不到全局的最优解。在点云数据只有三维坐标时进行配准，这个时候，我们所能提取到的就只有点云的几何特征，常用的特征包括，点云的曲率，点云中平面四边形的仿射不变性等特征。点云配准是将原始点云和目标点云进行对齐。首先，稍微总结下点云配准吧。]]></description><category></category></item><item><title><![CDATA[4PCS、super4PCS粗配准算法]]></title><link>https://blog.csdn.net/YYY_77/article/details/138008334</link><guid>https://blog.csdn.net/YYY_77/article/details/138008334</guid><author>YYY_77</author><pubDate>Sat, 20 Apr 2024 20:03:34 +0800</pubDate><description><![CDATA[RANSAC 配准算法。通过找出目标点云和原始点云中对应的两组点进行旋转平移求解出T，然后在众多的候选T中旋转一组最大重合的T，都是具有随机性和假设性。区别在于：只是怎么找出对应点方法不一样，RANSAC一般通过特征点及描述子去找对应点，而4PCS则是通过对应的同一平面四点组仿射不变性去找。该方法适用于重叠区域较小或者重叠区域发生较大变化场景点云配准，无需对输入数据进行预滤波和去噪，算法能够快速准确的完成点云配准。]]></description><category></category></item><item><title><![CDATA[RANSAC 配准算法]]></title><link>https://blog.csdn.net/YYY_77/article/details/137987678</link><guid>https://blog.csdn.net/YYY_77/article/details/137987678</guid><author>YYY_77</author><pubDate>Sat, 20 Apr 2024 11:32:37 +0800</pubDate><description><![CDATA[先讲一下背景吧。点云配准（Point Cloud Registration）指的是输入两幅点云  (source 和  target) ，输出一个变换使得变换后的source和target的重合程度尽可能高。点云配准可以分为粗配准（Coarse Registration）和精配准（Fine Registration）两步。粗配准指的是在两幅点云之间的变换完全未知的情况下进行较为粗糙的配准，目的主要是为精配准提供较好的变换初值；精配准则是给定一个初始变换，进一步优化得到更精确的变换。]]></description><category></category></item><item><title><![CDATA[Marching Cubes算法]]></title><link>https://blog.csdn.net/YYY_77/article/details/137752798</link><guid>https://blog.csdn.net/YYY_77/article/details/137752798</guid><author>YYY_77</author><pubDate>Fri, 19 Apr 2024 10:24:56 +0800</pubDate><description><![CDATA[在学习网格生成算法之前，推荐大家先了解Marching Cube（MC）算法，为什么呢，他也不是一个端到端的网格生成算法？因为很多连续算法在最后提取等值面的时候都会采用marching cube或其改进版本，可以说MC算法是很多算法的后处理。如果不理解这一步怎么做的，也很难理解其他算法之前的那么多计算的目的是什么。除此之外可以大大简化其他算法的解释过程，最后一步，就可以忽略不解释了。所以我们大家开始吧。在解释MC算法前，我们先来解释一下等值面。等值面是什么？]]></description><category></category></item><item><title><![CDATA[网格（mesh）生成算法]]></title><link>https://blog.csdn.net/YYY_77/article/details/137738947</link><guid>https://blog.csdn.net/YYY_77/article/details/137738947</guid><author>YYY_77</author><pubDate>Sun, 14 Apr 2024 11:52:56 +0800</pubDate><description><![CDATA[基于 3D视觉的新兴应用场景蓬勃发展，3D点云越来越受到人们的广泛关注。点云有着广泛的应用领域包括机器人技术、3D图形、自动驾驶、虚拟现实（AR/VR/MR）等。为了跟上不断增长的应用需要，研究和开发有效存储、处理的相关算法来处理点云的意义正显著上升。点云（Point cloud）：由N个D维的点组成，当这个D=3的时候一般代表着(x,y,z)的坐标，当然也可以包括一些法向量、强度等别的特征。与网格、体素等数据形式类似，点云也常用作描述三维模型，其表现非常直观，且具有无序性和不规则性。]]></description><category></category></item><item><title><![CDATA[常见点云文件解析]]></title><link>https://blog.csdn.net/YYY_77/article/details/137726957</link><guid>https://blog.csdn.net/YYY_77/article/details/137726957</guid><author>YYY_77</author><pubDate>Sat, 13 Apr 2024 22:47:10 +0800</pubDate><description><![CDATA[最后一行是结束标志。我们在做2D视觉时，处理的就是类似一系列类似的二维数组，数组以图片的形式进行保存，处理的图片也有甚多的格式，比如png，jpg，bmp等。那我们在做3D视觉的时候，处理的主要是点云，点云就是由一些点的集合。一般由深度图还原的点云，有序点云按照图方阵一行一行的，从左上角到右下角排列，当然其中有一些无效点。有序点云在某些处理的时候还是很便利的，但是很多情况下是无法获取有序点云的。无序点云就是其中的点的集合，点排列之间没有任何顺序，点的顺序交换后没有任何影响，是比较普遍的点云形式。]]></description><category></category></item><item><title><![CDATA[3D视觉技术]]></title><link>https://blog.csdn.net/YYY_77/article/details/137726506</link><guid>https://blog.csdn.net/YYY_77/article/details/137726506</guid><author>YYY_77</author><pubDate>Sat, 13 Apr 2024 22:10:07 +0800</pubDate><description><![CDATA[3D视觉是一个多学科相融合的技术，可以总结为：计算图形学+计算机视觉+人工智能=3D视觉。3D视觉技术是通过3D摄像头采集视野空间内每个点位的三维座标信息，通过算法复原获取三维立体成像，不会轻易受到外界环境、复杂光线的影响，与2D成像技术相比更稳定，体验感更强，安全性更高。3D视觉是一个范围较广的概念，涉及到硬件选型、离散数学、非线性优化、最优化理论、矩阵论、多视图几何、空间变换、点云处理、计算机视觉、SLAM、深度学习等相关知识点，]]></description><category></category></item><item><title><![CDATA[人体姿态估计算法]]></title><link>https://blog.csdn.net/YYY_77/article/details/134761133</link><guid>https://blog.csdn.net/YYY_77/article/details/134761133</guid><author>YYY_77</author><pubDate>Sun, 03 Dec 2023 15:21:44 +0800</pubDate><description><![CDATA[人体姿态估计(Human Pose Estimation, HPE)是一种识别和分类人体关节的方法。本质上，它是一种捕获每个关节（手臂、头部、躯干等）的一组坐标的方法，该坐标被称为可以描述人的姿势的关键点(keypoint)。这三种类型是随着应用逐步发展出来的，先检测关键点，类似于火柴人，进一步的检测出人的轮廓，再根据轮廓进一步的把人体进行3D重建。也称为运动学模型，该模型包括一组关键点（关节），例如脚踝、膝盖、肩膀、肘部、手腕和肢体方向，主要用于 3D 和 2D 姿势估计。]]></description><category></category></item><item><title><![CDATA[深入浅出OpenGL三维渲染管线]]></title><link>https://blog.csdn.net/YYY_77/article/details/130071947</link><guid>https://blog.csdn.net/YYY_77/article/details/130071947</guid><author>YYY_77</author><pubDate>Sun, 16 Apr 2023 11:49:46 +0800</pubDate><description><![CDATA[OpenGL渲染实际上就是将3D坐标进行系列转换变为2D坐标，整个流程如下：除此之外，为了让最终结果和实际物体更接近， 会进行打光和贴纹理等操作。]]></description><category></category></item><item><title><![CDATA[SimpleITK图像基础（三）——SimpleITK学习笔记]]></title><link>https://blog.csdn.net/YYY_77/article/details/125547278</link><guid>https://blog.csdn.net/YYY_77/article/details/125547278</guid><author>YYY_77</author><pubDate>Thu, 30 Jun 2022 20:23:18 +0800</pubDate><description><![CDATA[医学图像工具包、图像处理]]></description><category></category></item><item><title><![CDATA[目标检测算法的评价指标]]></title><link>https://blog.csdn.net/YYY_77/article/details/125174545</link><guid>https://blog.csdn.net/YYY_77/article/details/125174545</guid><author>YYY_77</author><pubDate>Sun, 12 Jun 2022 18:07:09 +0800</pubDate><description><![CDATA[对于一个目标检测模型的好坏，总的来说可以从以下三个方面来评估：严格说某些场合也会很在意模型的大小，这也是一个研究方向，比如 , , 等。所以除了上面三个维度，模型的大小也可以是一个评价维度。PASCAL VOC 挑战赛：该挑战赛目标检测评价指标官方文档，当前 PASCAL VOC 目标检测挑战赛使用的指标是曲线和.COCO 检测挑战赛：该挑战赛使用不同的指标来评估不同算法的目标检测准确性。 这里可以找到 COCO 上的目标检测性能的 12 个指标的文档。Google Open Images Dataset ]]></description><category></category></item><item><title><![CDATA[批量读取路径下的文件名并保存在txt文件里]]></title><link>https://blog.csdn.net/YYY_77/article/details/124362291</link><guid>https://blog.csdn.net/YYY_77/article/details/124362291</guid><author>YYY_77</author><pubDate>Sat, 23 Apr 2022 12:42:22 +0800</pubDate><description><![CDATA[import os

def ListFilesToTxt(dir, file, wildcard, recursion):
    exts = wildcard.split(" ")
    files = os.listdir(dir)
    for name in files:
        fullname = os.path.join(dir, name)
        if (os.path.isdir(fullname) &amp; recursion):
            Li]]></description><category></category></item><item><title><![CDATA[目标检测算法基础]]></title><link>https://blog.csdn.net/YYY_77/article/details/124224684</link><guid>https://blog.csdn.net/YYY_77/article/details/124224684</guid><author>YYY_77</author><pubDate>Sat, 23 Apr 2022 12:35:51 +0800</pubDate><description><![CDATA[人脸检测算法综述0 前言1 人脸检测算法难点2 人脸检测算法流程2.1 选择检测窗口2.2 提取图像特征2 人脸检测算法2.1 早期算法2.2 AdaBoost框架2.3 深度学习
0 前言
人脸检测是目标检测的其中一个方向，它在安防监控、人证比对、人机交互、社交和娱乐等方面有很强的应用价值，也是人脸识别算法、人脸关键点检测算法、人脸位姿估计算法等的第一步。
人脸检测任务关注的是图像中人脸的位置，包含了两个子任务：其一是输出这一目标的类别信息，属于分类任务；其二是输出目标的具体位置信息，属于定位任务。
1 ]]></description><category></category></item><item><title><![CDATA[函数参数传递机制]]></title><link>https://blog.csdn.net/YYY_77/article/details/123697684</link><guid>https://blog.csdn.net/YYY_77/article/details/123697684</guid><author>YYY_77</author><pubDate>Wed, 23 Mar 2022 22:39:41 +0800</pubDate><description><![CDATA[函数参数传递机制1 函数参数传递机制2 值传递、址传递和引用传递的区别2.1 功能上2.2 传递效率上2.3 执行效率上2.4 类型安全上2.5 参数检查上2.6 灵活性上3 函数传递该用指针还是引用
1 函数参数传递机制
函数参数传递机制问题本质上是调用函数和被调用函数在调用发生时进行通信的方法问题。基本的参数传递机制有两种：值传递和引用传递。
在值传递过程中， 被调用的函数（简称被调函数）的形式参数（简称为形参）作为被调函数的局部变量处理，即在堆栈中开辟了内存空间以存放由调用其他函数的函数（简称为主调函]]></description><category></category></item><item><title><![CDATA[避免使用宏#define定义常量]]></title><link>https://blog.csdn.net/YYY_77/article/details/123603725</link><guid>https://blog.csdn.net/YYY_77/article/details/123603725</guid><author>YYY_77</author><pubDate>Sun, 20 Mar 2022 09:12:47 +0800</pubDate><description><![CDATA[避免使用宏#define定义常量1 前言2 使用const而不是#define定义常量3 总结
1 前言
C/C++预处理器提供了一系列的编译指令，通常，C++惯例是使用这些编译指令来惯例编译过程。
例如，

#include编译指令是管理程序文件的重要组件
其他编译指令（#ifndef和#endif）使得能够控制是否对特定的代码块进行编译
#pragma编译指令使得能够控制编译器特定的编译选项

这些都是非常有帮助的工具，但使用#define编译指令时要谨慎。
2 使用const而不是#define定义常]]></description><category></category></item><item><title><![CDATA[size_t数据类型的意义]]></title><link>https://blog.csdn.net/YYY_77/article/details/123601483</link><guid>https://blog.csdn.net/YYY_77/article/details/123601483</guid><author>YYY_77</author><pubDate>Sat, 19 Mar 2022 20:15:18 +0800</pubDate><description><![CDATA[size_t数据类型的意义1 `int`的各种类型和`size_t`类型2 size_t类型的意义3 总结4 参考
1 int的各种类型和size_t类型
数据类型特别是int相关的类型（int，long， long long）在不同位数系统下长度不同，如下所示，特别是long数据类型，在不同平台下字节数就不一样，为了保证平台的通用性，程序中尽量不要使用long数据类型。
//32位系统
char 1个字节8位
short 2个字节16位
int 4个字节32位
long 4个字节
long long 8个]]></description><category></category></item><item><title><![CDATA[static关键字用法]]></title><link>https://blog.csdn.net/YYY_77/article/details/123539260</link><guid>https://blog.csdn.net/YYY_77/article/details/123539260</guid><author>YYY_77</author><pubDate>Wed, 16 Mar 2022 23:16:26 +0800</pubDate><description><![CDATA[static关键字用法1 static关键字2 为什么要引入static3 C/C++中static的作用4 C++中static的用法4.1 面向过程设计中的static4.1.1 静态全局变量4.1.2 静态局部变量4.1.3 静态函数4.2 面向对象程序设计中的`static`（类中的`static`关键字）4.2.1 静态数据成员4.2.2 静态成员函数
1 static关键字
2 为什么要引入static
我们知道在函数内部定义的变量，当程序执行到它的定义处时，编译器为它在栈上分配空间，函数在栈上]]></description><category></category></item><item><title><![CDATA[C++内存分配]]></title><link>https://blog.csdn.net/YYY_77/article/details/123512466</link><guid>https://blog.csdn.net/YYY_77/article/details/123512466</guid><author>YYY_77</author><pubDate>Wed, 16 Mar 2022 23:08:38 +0800</pubDate><description><![CDATA[C++内存分配和static关键字用法1 内存分配方式2 堆和栈的区别3 尽量少使用全局变量4 static关键字4.1 为什么要引入static4.2 C/C++中static的作用4.3 C++中static的用法4.3.1 面向过程设计中的static4.3.1.1 静态全局变量4.3.1.2 静态局部变量4.3.1.3 静态函数4.3.2 面向对象程序设计中的`static`（类中的`static`关键字）4.3.2.1 静态数据成员4.3.2.2 静态成员函数
1 内存分配方式
在C++中，内存分]]></description><category></category></item></channel></rss>