法向量

PCL1.8.1 Feature

萝らか妹 提交于 2019-11-29 05:13:29
每个点计算法向量 http://pointclouds.org/documentation/tutorials/how_features_work.php#how-3d-features-work 给定输入点云,为每个点云中的点估计法向量,估计法向量需要指定每个点搜索周边几个点范围作为计算法向量的单位。 此时计算得到的法向量个数cloud_normals->points.size () 与点云个数cloud->points.size ()相等。 #include <pcl/point_types.h> #include <pcl/features/normal_3d.h> #include <pcl/io/pcd_io.h> int main() { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>); pcl::io::loadPCDFile("table_scene_lms400.pcd", *cloud); // Create the normal estimation class, and pass the input dataset to it pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> ne; ne

CL关于ORB_SLAM的那些事(MapPoint)

不想你离开。 提交于 2019-11-27 02:38:01
MapPoint部分的学习 昨天在匹配方面一直提及MapPoint,它到底是何方神圣呢,其实从可视化的角度来讲,MapPoint就是我们运行ORB SLAM时在界面上看到的那些地图点,红色黑色的,接下来让我们深入了解一下这个类中都封装了什么函数,维护了哪些变量。 打开头文件,可以看到包括了KeyFrame、Frame和Map三个头文件。其中实现的函数有: 两个构造函数,一个用于关键帧,另一个用于普通的Frame 设置世界坐标系下的坐标 获取世界坐标系下的坐标,因为后面涉及到匹配投影问题,所以需要这样的函数接口,获取世界坐标系下MapPoint的三维坐标 获取MapPoint的法向量 获取参考关键帧 初始定义map映射(关键帧 int)的观测次数,获取观测次数 返回值为int类型的观测次数的计算 添加关键帧的观测 删除关键帧的观测 获取MapPoint在该关键帧中的索引值 判断MapPoint是否在该关键帧中 设置坏的标记位 判断MapPoint是否是坏点 替换MapPoint MapPoint指针类型的获取替换的MapPoint 增加可视???? 增加寻找???? 获取被找到的频率 内敛函数,获取找到,直接return mnFound 计算特有的描述子 获取MapPoint的描述子 更新法向量和深度值 获取尺度不变的最大和最小距离 根据距离计算所在的金字塔层数,这里分了两个

SVM的推导和理解

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-26 20:26:05
主要记录了SVM思想的理解,关键环节的推导过程,主要是作为准备面试的需要. 1.准备知识-点到直线距离 点 \(x_0\) 到超平面(直线) \(w^Tx+b=0\) 的距离,可通过如下公式计算: \[ d = \frac{w^Tx_0+b}{||w||}\] 因为公式分子部分没有带绝对值,因此计算得到的d有正负之分.因为超 \(w^Tx+b=0\) 将空间分为两部分(以2维为例,直线 \(w_1x+w_2y+b=0\) ,将二维空间划分为上下两部分),其中一部分d大于0,另一部分d小于0. 上面距离公式的简单推导过程如下: 超平面 \(w^Tx+b=0\) 的一个法向量为 \(w\) : 因为对于超平面上任意不同的两点 \(x_0,x_1\) ,他们所构成的向量 \((x_1-x_0)\) ,与 \(w\) 的内积为: \[\begin{align} w^T(x_1-x_0) &= w^Tx_1-w^Tx_0\\ &= -b-(-b)\\ &= 0 \end{align}\] 即, \(w\) 与超平面上任意向量(直线)正交,即 \(w\) 为超平面的法向量, \(\frac{w}{||w||}\) 为超平面的单位法向量. 点 \(x_0\) 到超平面 \(w^Tx+b=0\) 的距离等于,平面上任意一点 \(x_1\) 与点 \(x_0\) 构成的向量在单位法向量上的投影,即: