- 博客(27)
- 收藏
- 关注
原创 安装opencv-contrib时cmake显示无法下载依赖
编译opencv-contrib 4.5.2 + visual studio 2017 + CMake3.20.0 + clash。查实clash中的商品确实为http://127.0.0.1:7890,奇怪了,始终无果,导致无法完成编译,因为缺依赖库。还是不起效果, 在环境变量中添加http_proxy或者https_proxy,均无效。下载连接手动可以下载,说明科学上网没问题,只是CMAKE无法正常使用魔法,于时。以上只列出一个错误,还有许多下载依赖的错误,都是无法下载。
2025-02-26 17:16:54
626
原创 生动形象地讲解一下CPU中寄存器,控制器,运算器,时钟的相互工作机制
让我们用工厂的比喻来形象讲解 CPU 中寄存器、控制器、运算器和时钟的工作机制。寄存器就像工厂里最靠近机器的快递员,负责搬运原材料(数据)和工具(指令)。它们速度快、容量小,紧贴生产线,确保每次需要时数据都已准备好。控制器像工厂里的经理,手持“流程表”(指令集)告诉每个生产线(运算器)什么时候开工、如何运作。它负责调度和控制,确保所有任务按计划高效进行。运算器是工厂的核心工人,负责实际的生产任务——比如加减乘除或更复杂的逻辑操作。它直接根据控制器的指令,利用寄存器提供的数据完成加工任务。
2024-12-04 18:13:31
175
原创 点云3DHarris角点检测算法推导
奇异矩阵是指没有逆矩阵的矩阵,它的行列式为零,矩阵的行或列是线性相关的,导致秩小于矩阵的维度。奇异矩阵通常用于表示一些在几何或物理模型中无法逆转的情况。局部点云估计:对点pip_ipi的邻域进行 PCA,计算协方差矩阵MMM。协方差矩阵的特征值:计算协方差矩阵MMM的特征值λ1λ2λ3λ1λ2λ3,用于描述局部表面的变化。计算响应函数:基于特征值计算响应函数RRR。最大值抑制:通过非最大抑制来筛选出局部极值点。关键点筛选。
2024-11-29 10:20:14
1687
原创 ISS 点云关键点检测算法数学推导
是一种关键点检测算法,基于点云局部几何特性提取显著点。这些关键点对点云描述具有较高稳定性和抗噪性,常用于三维配准、匹配等任务。Threshold21Threshold21(主方向和次主方向的变异比值)反映了局部点云是否接近于一条直线(低比值)或一个平面(高比值)。低比值通常表示局部数据点接近于直线或曲线(非常狭窄的分布),高比值则表示数据点主要分布在平面上。
2024-11-28 10:14:39
1013
原创 ROPSE算法原理
形象地来说,ROPSE算法通过“从不同角度观察”点云的局部区域,旋转、投影并计算统计量,生成一个高维度的描述子,来全面地描述点云的几何特性。这就像是你在观察一个物体时,从多个视角进行观察并记录下每个视角下的物体特征,然后通过这些记录来判断物体的形态和特征。Dn⋅Pd∥n∥D∥n∥n⋅Pd核心是将点代入平面方程并归一化法向量的影响,确保结果是正交投影的垂直距离,并反映点在平面两侧的正负位置关系。
2024-11-25 16:19:45
725
原创 PCA计算点云方向数学推导
对点云的邻域点进行中心化操作(计算邻域的均值并减去)。计算邻域点云的协方差矩阵。对协方差矩阵求特征值和特征向量。选择最小特征值对应的特征向量作为法向量。对法向量进行单位化处理。这种方法通过PCA分析点云的局部几何结构,能够准确地拟合点云的法向量,广泛应用于点云特征提取、点云配准、物体识别等任务中。为了演示如何使用PCA拟合点云法向量,我们可以通过生成一个简单的点云数据集,并手动计算PCA来推导法向量。通过PCA,我们可以将点云数据转换为适合描述其局部几何形状的法向量。
2024-11-25 12:20:12
1473
原创 PFH算法原理
两个向量的叉积产生了一个垂直于原向量所在平面的向量,其大小反映了这两个向量围成的平行四边形的面积。它是描述向量间几何关系的有力工具,广泛用于物理和计算机图形学等领域。PFH特征对旋转具有不变性,这使得它在处理3D点云数据时,尤其是在物体识别和配准任务中非常有用。
2024-11-25 10:52:04
757
原创 comparecloud与open3d, pcl有什么区别
是三种常见的点云处理工具或库。它们的功能有重叠之处,但也各有侧重,适合不同的应用场景。
2024-11-20 17:29:05
955
原创 谱定理推导
线性无关的最大数目rankArankA) 是矩阵 (A\mathbf{A}A) 的行向量或列向量中线性无关向量的最大数目。非零子式的最大阶rankArankA) 是矩阵 (A\mathbf{A}A) 中非零子式的最大阶。高斯消元法rankArankA) 是矩阵 (A\mathbf{A}A) 经行变换后非零行的数目。矩阵的秩在几何上描述了向量张成的空间维度,是线性相关性、线性变换维数、系统解的自由度的核心指标。特征值:标量 (λ\lambdaλ。
2024-11-20 14:53:29
931
原创 点云法向量计算的推导
输入:点云 ($ PKaTeX parse error: Can't use function '\)' in math mode at position 1: \̲)̲,每个点的邻域 \(处理搜索点 (ppp) 的邻域点集 ( $\mathcal{N}§ $)。计算质心 (pˉ\bar{p}pˉ) 并平移点集。计算协方差矩阵 (C\mathbf{C}C对协方差矩阵进行特征值分解,提取最小特征值对应的特征向量 (v1v1对法向量进行方向一致性处理。输出。
2024-11-19 11:55:09
882
1
原创 移动最小二乘法(Moving Least Squares, MLS)的推导
移动最小二乘法(MLS)是一种用于平滑、重建和拟合离散点云数据的算法。其核心思想是使用加权的局部最小二乘拟合,将全局最小二乘拟合推广到局部区域,并通过移动窗口动态调整拟合位置。以下是详细的推导过程。给定一组离散点云{(xiyii1N,希望在点云附近通过多项式拟合一个平滑函数fx,使得拟合尽可能接近数据点,同时具有一定的平滑性。
2024-11-19 11:12:04
855
1
原创 简单讲讲对深度学习模型剪枝的理解
剪枝这个词,很形象,第一反应想到的是剪树枝,剪葡萄枝。在机器学习中,让人很快想到决策树,避免过拟合的方法之一,就是剪枝,也就是决策树不要太深,不然分得太细,模型变得复杂容易过拟合。而把深度学习中神经网络的参数,早先Transformer就有5000万个参数,YOLOv5s有700万个参数,到现在GPT有上千亿个参数。这些参数就像超大型乐团一样,总有东郭先生的存在,在那儿滥竽充数。
2023-08-31 22:06:09
480
1
原创 通俗地讲讲算法开发和部署的流程
许多学习资料都非常的碎片零散,算法是算法,部署是部署,开发是开发。学了算法不知道它怎么在机器上运行的,学了部署不知道开发是怎么调用它的,学了开发不知道算法要给你个什么玩意儿。今儿个通俗地梳理一下整个算法开发和部署的流程,用我似懂非懂的理解。
2023-08-29 23:17:00
6730
2
原创 VSCode写Python代码,代码显示为白色
python代码显示为白色, 除了安装python插件之外,还需要安装pylance插件,pylint可以不需要了,然后重启vscode即可。
2023-08-17 10:26:21
2477
2
原创 VSCode能编译成功,但无法调试
通过SSH连接Linux服务器,运用Makefile能够成功编译CUDA程序,make all, make run一切正常,能够输出结果并打印最后一行的程序运行结束标记。问题出在这个"externalConsole",要设置为false, 不然在Linux上似乎无法正常调试。从逻辑上来讲,make run能够成功运行并生成可执行文件,说明编译成功了;无法调试,要么是程序编译有问题,要么是设置有问题;但是一进行调试,要么卡住,要么一闪而过。既然编译没问题,那么必是设置有问题;
2023-07-24 22:32:59
2204
1
原创 VSCode报错,语言服务器崩溃。正在重新启动...
Error - 2:26:24 PM] 语言服务器崩溃。在其中某个下拉菜单中选择,忽略更新,避免下次连接Linux时自动更新了。在服务器上安装老版本的是C/C++插件,可能是因为兼容性问题。当然也有可能不是这个原因,不过目前看来操作之后,是解决了问题。连接Linux服务器时,Vscode写C++时报错如题,或者。
2023-07-20 21:02:08
10441
4
原创 yolov5-6.0导出onnx报错
真要去查'Upsample'到底有没有'recompute_scale_factor'的问题,然后我们把相关代码注释掉的话,那么可能会引发新的问题。多半的环境的问题,想想大概率可能是torch版本的问题,毕竟它也写着torch/modules/module.py是有问题。yolo的官方源代码应该是稳定的而且被无数人跑通了的,不应该是到我这儿就有了新的问题。其实很多时候,如果针对报错信息本身去纠错,多半有些头痛医头,脚痛医脚的意思。cuda11.7, torch 2.0.1 ,报错信息如下。
2023-07-10 12:24:23
889
1
原创 launch.json, tasks.json利用CMakeLists配置出错
甚至于你,同一个文件多次运行,相对路径出会现报错的情况,vscode它一会儿识别为当前目录,一会儿又识别为工作目录,乱七八糟,恶心死你;.. 却不是上一层目录,而是工作目录的上一层目录,单个点 . 不代表该文件所在目录,而是工作目录;一个简单的helloworld.cpp,运用CMakeLists进行编译,一切都设置好了,原因是vscode的相对路径有问题,这个问题一直存在,虽然按照网上一的些方法做过修改,但是。以你为是设置问题,但是其实在其它文件下,单个点 . 又代表了当前目录;始终报错,不明原因;
2023-07-01 21:51:15
222
原创 mingw32-make: *** No targets specified and no makefile found. Stop. in VSCODE win10
发现可能和Visual Studio有关系,因为我确实有安装Visual Studio,而Visual Studio的C++编译器并不是MinGW,而是MSVC。而在cmake .. 这一步操作中,我也没有定义是用哪一个编译器,可能cmake会自己去根据环境变量去搜索吧,就自动挑了MSVC。Win10环境下,使用VScode和Cmake编译, 出现报错。所以接下来mingw32-make操作,就报错了。然后mingw32-make出现标题错误。正常显示生成makefile成功。
2023-07-01 20:05:45
5512
原创 为什么ResNet每次输出结果都一样?
image.resize((224, 224, 3))来resize图片尺寸,我不太熟悉它个方法,但应该是错的,因为它的结果和image = cv2.resize(image, (224, 224))不一致,但后者是对的。问了一下ChatGPT之后,我才理解了一些,可能在这个ResNet网络中,如果是自己生成的图片,虽然每次的噪点图不一样,但在这个网络看来都是一样的,结果就基本一致了。具体来说,是最大预测概率的索引总是一样,无论我认的是山羊,还是哈士基或者柯基。另外犯的一个错误是,我采用了。
2023-07-01 13:10:08
373
原创 VSCode不显示联想或者语法标记出错
甚至还出现报错,明明在win10系统上能运行的代码,在mac上就报错了,比如torch.tensor()函数,明明可以用,却报错提示可能不存在,maybe you mean torch.Tensor()?我想是不是pylint或者pylance的问题,虽然我也搞不清两者的区别,都装上吧,结果vscode安装不了插件,可能是网络问题或者是mac系统10.12太老的原因,vscode版本也很老。最后,发现,其实可以登陆一下vscode的帐号,这样就可以同步我在win10电脑上的配置了。
2023-06-16 12:09:37
1488
1
原创 YOLOv8 CLI命令行模型无法运行
我才意思到,是自己前段时间修改了系统的region and languange里的默认地区和语言,重新改回默认语言为English就可以了。不能像官方写的一样,可以直接在cmd中yolo model=yolov8s.pt source='bus.jpg'可能是环境没有安装后,需要执行一下pip install ultralytics。但是发现pip install又报错,一直显示'gbk'什么的。
2023-06-11 15:41:56
997
原创 YOLOV5训练时报错显示Image Not Found
但是我认为不是中英文的问题,只是需要修改一下的问题,在当前编码格式下重新修改名字。因为之前我一直用的是中文的,并没有问题,只是因为修改了整个系统的编码环境,所以原来的字符就不认识了或者YOLOv5在搜索路径的时候乱码了。第二天早上,我突然想起一个问题这些天我的电脑的编码设置更改了一下(国外买的电脑),也就是在语言和区域里,将地区改成了中国(原本是美国),然后将beta utf-8的勾选取消了,因为对于中文软件或者文件偶尔会有乱码。我试着将原本的中文数据集目录名改成了英文,真就好了。以上仅是记录,写得潦草。
2023-06-08 10:48:41
1205
原创 对P, R, ACC, AP, mAP的理解
我也举个特殊情况,对于例题中的100次预测,如果我全部预测1次为P,99次为N,可能恰好这个P是预测正确的,即TP = 1, FP = 0, TN = 80, FN = 19。也就是我这么预测,对于预测为正的次数中,我是一击即中,再击没有了,做了回一秒真男人,但是总共有20个正样本,我只找出了1个,所以召回率就低了。前面精准率,召回率,都是关注点在正样本上,但是对于分类任务来说,预测正确与否,不单单是看正样本,负样本你预测为负,那也是一种正确。假如样本数量100,正样本20,负样本80;
2023-05-31 15:45:59
1180
1
原创 关于YOLOv5锚框自动化调整的理解
y = σ ( x ) y = \sigma(x)y=σ(x)对应before曲线和y = 2 ⋅ σ ( x ) − 0.5 y = 2 \cdot \sigma(x) - 0.5y=2⋅σ(x)−0.5对应after曲线,很明显通过引入缩放系数scale以后,y yy对x xx更敏感了,且偏移的范围由原来的( 0 , 1 ) (0, 1)(0,1)调整到了( − 0.5 , 1.5 ) (-0.5, 1.5)(−0.5,1.5)。如果初始化的锚框尺寸较理想的话,模型学习速度也会更快,效果应该也会更好。
2023-05-22 10:42:20
2186
3
原创 我对MTCNN的理解
这么说,就是做个NMS的吧,首先找到与真实框IOU大的,拿出来,然后找与拿出来的框IOU大于阈值的,比如0.8(瞎说的),筛掉,然后再找下一个与真实框IOU大于阈值的拿出来,再重复上面的过程;那么针对于MTCNN网络中的第一级PNet,就把它当成一个手电筒,一个小工具包,就是拿去照输出图片,我照一照,你给我一个结果,判断一下我照12x12的区域得到的人脸回归及检测分类的值;这就是我对为什么MTCNN的输入要做图像金字塔的理解,就是绽放图像,我变,变,变,继续变到不要小于12就行,因为再小就没有意义了;
2023-04-05 13:59:37
219
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人