- 博客(238)
- 资源 (2)
- 收藏
- 关注
原创 手眼标定(外参)
flags的选项中有一个是CALIB_CB_CLUSTERING,可以使用or逻辑符与图案标识符一起设置,此时函数会以稍微不同的算法来寻找圆圈,这个替代算法对透视畸变具有较高的鲁棒性,但对背景的干扰也更加敏感,适合标定具有非常宽视野的相机。flags :(默认缺省)标识符,标识所采用的图案类型(对称圆点CALIB_CB_SYMMETRIC_GRID or 非对称圆点CALIB_CB_ASYMMETRIC_GRID)以及相关的算法参数。做圆点标定中的特征点提取时,发现对于部分存在较大透视畸变的标定图片,
2024-04-18 12:12:26 42 1
原创 二维点集的凸包点寻找算法
利用凸凹最直接的性质去判断,即:两个相近的凸点组成的直线,将会把他们的近邻点完全隔离在直线的同一侧。如此一来,先选取一个明显的凸点,如y坐标最小的点,以它为出发点,贪婪式搜寻即可。如下图所示:假设0点为y坐标最小的点,图中带编号的点为其近邻点(kd-tree加速查找),遍历编号1~13的点,当遍历到点1时,点0点1组成的直线将点2~点13完全隔离在直线同一侧(条件),满足这个条件后,将点1作为下一轮的出发点,重复上述过程即可。
2024-01-12 16:44:39 182
原创 使用主成分分析之特征向量法求点云法向量
我们知道主成分分析会得到特征值、特征向量,最大的特征值及其对应的特征向量则为主成分,表示数据分布的主方向。最小特征值对应的特征向量则可以认为是空间点云的法向量。
2023-11-26 01:54:17 597
原创 查找内轮廓(孔洞)
参数列表中有个数据结构参数:hierarchy(译层次结构),hierarchy是一个向量,其元素个数与查找到的轮廓总数相同,每一个元素中包含4个int类型数据hierarchy[i][0]~hierarchy[i][3]。分别表示:1表示同一级轮廓的下个轮廓的编号,如果这一级轮廓没有下一个轮廓,则为-1。2表示同一级轮廓的上个轮廓的编号,如果这一级轮廓没有上一个轮廓,则为-1。3表示该轮廓包含的下一级轮廓的第一个的编号,假如没有,则为-1。
2023-09-19 00:35:04 166
原创 点云配准算法之NDT
如果随机变量X满足正态分布(即 X∼N(μ,σ) ),则其概率密度函数为:其中的 μ 为正态分布的均值, σ2 为方差,这是对于维度 D=1 的情况而言的。对于多元正态分布而言,其概率密度函数可以表示为:其中u 表示均值向量,而∑表示协方差矩阵。协方差矩阵对角元素表示的是对应的元素的方差,非对角元素则表示对应的两个元素(行与列)的相关性。协方差矩阵对角元素表示的是对应的元素的方差,非对角元素则表示对应的两个元素(行与列)的相关性。
2023-08-28 23:14:24 201
原创 求二维离散点集的凸包点
这类求解最外围的点集问题,我们称之为凸包问题,光光是⽤⾁眼去观察的话,这种问题我们很快就能得出答案,并且能马上说出哪⼏个点是解,但是如果让你敲代码,去解决这类的问题,可能很多⼈会不知道如何去下⼿。在讲解凸包这类问题的解法前,我们⾸先要先讲下向量积这个数学⼩知识。了解了上⾯这个数学⼩知识后,我们现在可以正式开始着⼿去解决凸包问题了,⾸先我们先思考下,如果我们要去解决凸包问题,我们就必须要⼀个个去寻找最外围的点,万事开头难,第⼀个点该从哪⾥找起呢?
2023-07-30 21:44:13 261
原创 一些三维点云去噪算法
噪声:也称为孤立点/离群点/异常点,是指点云数据中的不相关或不希望存在的干扰信号或误差。噪声来源:环境光线的明亮程度、测量设备精度及系统误差、物体材料及表面的纹理和人为抖动等因素影响。
2023-07-13 00:39:59 427
原创 手写算法! 每个小球都是独立唯一的。 盒子的数量是动态不固定的,每个盒子内的小球数量也是不固定的(至少1个)。从N个盒子里取球,每个盒子中每次取出一个,罗列出所有组合。
每个小球都是独立唯一的。盒子的数量N是动态不固定的,每个盒子内的小球数量也是不固定的(至少1个)。从N个盒子里取球,每个盒子中每次取出一个,要设计一套算法,罗列出所有组合。
2023-07-01 03:18:38 106
原创 ubuntu 20.04安装cloud compare
sudo apt install snapsudo snap install cloudcompare
2023-06-26 16:37:39 573
原创 使用Eigen库进行(X-Y-Z固定角坐标系)下的矩阵、RPY角、四元素之间的转换
固定一词指的是旋转是在固定的(不运动的)参考坐标系中确定的。也成翻滚角(Roll)、俯仰角(Pitch)、偏转角(Yaw).运行结果和输入结果一致,前提是输入要在合理范围内!
2023-06-09 11:37:16 371
原创 明度补正(基于OpenCV实现)
光源不足够稳定,不同时刻排出的图片的平均亮度不足够稳定时,可以采用明度补正的办法。我们往往需要一张理想的模板图作为标准的亮度水平,其余的图要往模板上尽可能的接近。
2023-05-20 23:32:59 170
原创 最小二乘least-squares拟合曲线(三次或多次)
基于最小least-squares去拟合出多次曲线,考虑到了所有的样本点,因此这种方法对噪声敏感,尤其是遇到较为明显的噪声时,曲线的形状易受干扰。
2023-05-07 23:11:20 445
原创 基于OpenCV(C++)实现的RANSAC随机抽样一致性的曲线拟合(二次)
这篇文章与其类似,只是从拟合直线变为拟合曲线(二次)。有时候只懂得拟合直线可能是不够的,甚至只拟合二次曲线都不一定能满足实际需求。但好在我们可以触类旁通,举一反三。对于学习算法的人,最重要的就是理解它的思想,久而久之形成自己的思想体系,以后遇到问题的时候就能在脑子里闪现出方案。活学活用四个字很简单,但做起来却是很难很难,跟做人一样,活到老学到老。
2023-04-04 23:11:17 1078
原创 基于OpenCV实现的RANSAC随机抽样一致性直线拟合
该方法最早是由Fischler和Bolles提出的一种鲁棒估计方法,最早用于计算机视觉中位姿估计问题,现在已广泛应用于已知模型的参数估计问题中。其思想比较直观和容易理解,即可从坐标点中随机抽取两点,计算一条直线,然后判断所有的点与该直线的吻合程度,不断重复直到挑选出最好的。w为点集中内点的比例,一般可以在初始时设置一个较小值,如0.1,然后迭代更新;n为模型参数估计需要的最小点个数,直线拟合最少需要2个点。本文介绍基于ransac随机抽样一致性随机抽样一致性的直线拟合方法,涵盖一下的内容。
2023-03-16 20:12:26 703
原创 OpenCV中phase函数及其输出的角度
输出的四个角度分别为: 45(第一象限平分线) , 315(第四象限平分线) , 135(第二象限平分线) , 225度(第三象限平分线)。而c++中atan2函数是通过正切值返回弧度的,并通过判断x,y的正负决定象限,因此c++中atan2函数值域是从-Pi到Pi的。在图像坐标系 (图中XY)中:phase输出的角度范围为:0~360,顺时针旋转方向(来计算角度,计算精度大约为0.3弧度,当x,y相等时,angle为0。默认为false,即弧度,当置为true时,则输出为角度。phase函数根据函数。
2023-03-15 15:52:37 283
原创 VS2017中集成QT环境,Qt关键字下面出现红线,无法解析
可以看到,工程默认的附加包含目录已经含有Qt_INCLUDEPATH_,但是电脑上并没有Qt_INCLUDEPATH_这个环境变量。如果不想设置 Qt_INCLUDEPATH_环境变量,那么就在VS中添加附加包含目录。那么新建Qt_INCLUDEPATH_变量,然后重启VS即可。右键打开工程属性页。
2023-03-09 11:40:33 590
原创 如何在微软官网上下载旧版本的visual studio
4.到这里就可以点击下载自己想要的版本了。3.下拉到最后,找到“1.进入微软官网首页,2.下拉,直到找到“”,如下图,点击,进入下一界面。想在微软官网下载旧版本的VS.”,如下图,点击进入下一界面。
2023-03-01 23:59:28 2677
转载 Max Pooling和 Average Pooling的区别,使用场景分别是什么?
最大池化可以提取特征纹理, 最大池化提取边缘等“最重要”的特征平均池化可以保留背景信息,平均池化提取的特征更加smoothly当特征map中的信息都具有一定贡献的时候使用AvgPooling,例如图像分割中常用global avgpool来获取全局上下文关系,再比如网络走到比较深的地方,这个时候特征图的H W都比较小,包含的语义信息较多,这个时候再使用MaxPooling就不太合适了, 是因为网络深层的高级语义信息一般来说都能帮助分类器分类。
2023-01-29 16:17:48 1560
原创 图像旋转任意角度及其后图中点坐标的对应变化
图像中有一个点P, 将图像旋转任意角度(默认旋转点为图像中心)后,求旋转后的图像?求原图中的点P在旋转后图像中的坐标?问题分为2大步去解决。1)得到旋转矩阵.主要是借助于getRotationMatrix2D算子。getRotationMatrix2D得到的矩阵为2行3列。2)计算旋转后图像的新大小,旋转后图像的宽高发生变化。此外,图像的中心位置也发生偏移,需要进行偏移量调整。
2023-01-28 14:17:58 744
原创 神经网络中常用的权重初始化方法及为何不能全初始化为0
在一个给定的区间[-r,r]内采用均匀分布来初始化参数。超参数r的设置可以按照神经元的连接数量进行自适应的调整。参数从一个固定均值(比如0)和固定方差(比如0.01)的高斯分布进行随机初始化。
2022-12-28 17:56:36 1462
原创 Win10从零安装、训练、部署yolov5 6.x一条龙实战案例
Win10 64位;:英伟达GTX 1050TI(配置较低):pytorch 1.7.1(python 3.6),基于Anaconda环境.:包含3类案例,1) OpenCV DNN(C++ 、Python,使用CPU进行推理),若想通过 OpenCV DNN利用GPU进行推理,则必须编译支持CUDA的OpenCV库;本人 只有CPU版本的OpenCV 4.5.4,没有尝试CUDA版本的OpenCV推理。往往在工程部署中,设备端是没有GPU的,所以本人也不想侧重于GPU推理。
2022-12-25 21:46:05 465 1
转载 一文讲清楚FPN+PAN结构、SPP结构
FPN 高维度向低维度传递语义信息(大目标更明确)PAN 低维度向高维度再传递一次语义信息(小目标也更明确)深层的feature map携带有更强的语义特征,较弱的定位信息。而浅层的feature map携带有较强的位置信息,和较弱的语义特征。FPN就是把深层的语义特征传到浅层,从而增强多个尺度上的语义表达。而PAN则相反把浅层的定位信息传导到深层,增强多个尺度上的定位能力。
2022-12-20 15:42:47 6220
原创 什么是SPP网络
例如:最后一层特征图大小为6*6*10,(width,hight,channels),global average pooling就是将6*6大小的特征图平均采样为一个值,这样最后就输出1*10大小的特征向量,这种方式就只和通道数有关,而与特征图大小没有关系了。使用不同的size,stride,对全连接层前的卷积层进行不同池化大小的pooling,然后拼接,这样最终的输出一定是(p1*p1+p2*p2+…2)替换网络中的全连接层,对最后的卷积层使用global average pooling。
2022-12-20 14:53:22 1720
Windows C++访问SQL SERVER数据库项目实战案例
2022-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人