- 博客(91)
- 收藏
- 关注
原创 三维点云中常用的表面重建算法
表面重建算法起源于计算机视觉和计算几何学领域。早期的研究集中在从二维图像中提取三维信息。然而,随着三维扫描技术的进步,越来越多的研究转向了如何从点云数据中重建表面。三维点云表面重建技术的发展,始于20世纪90年代,主要推动力是激光扫描和结构光扫描的广泛应用。
2024-07-22 17:06:26
1496
原创 KMeans等其他聚类算法
OPTICS算法通过分析数据点的可达性图来识别不同密度的簇,非常适合处理具有不同密度的复杂数据集。pcd = pcd.uniform_down_sample(10) # 每10个点采样一次pcd.paint_uniform_color([0.5, 0.5, 0.5]) # 指定显示为灰色print(pcd)colors[labels < 0] = 0 # 没有分类成功的点设置为黑色。
2024-07-21 10:41:16
321
原创 萤火虫优化算法用于图像分割
受自然启发的计算已经成为优化问题、机器学习、数据挖掘和计算智能的新范式,具有广泛的应用。自然启发计算的本质是自然启发算法,如遗传算法(GA)粒子群优化(PSO)和萤火虫算法(FA)。大多数受自然启发的算法都使用了群体智能的一些特征。在受自然启发的算法中,萤火虫算法(firefly algorithm, FA)是由XinShe Yang在2007年末和2008年初提出的,至今已有近10年的发展历程,在过去几年中取得了重大进展。在热带和温带地区的夏季天空中,萤火虫的生物发光是一种令人惊叹的景象。
2024-07-21 10:35:20
1027
原创 智能优化算法之蝙蝠算法BA
蝙蝠优化算法(Bat Algorithm, BA)是一种基于蝙蝠回声定位行为的元启发式算法,由Xin-She Yang在2010年提出。该算法模仿了蝙蝠通过回声定位找到猎物或避开障碍物的机制,以解决优化问题。蝙蝠算法因其简单性和有效性在许多优化问题中得到了广泛应用。
2024-07-20 11:25:37
1224
原创 基于密度聚类算法DBSCAN
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,由Martin Ester, Hans-Peter Kriegel, Jörg Sander和Xiaowei Xu于1996年提出。DBSCAN的特点是它不需要事先指定簇的数量,能够识别任意形状的簇,并且能够有效处理噪声点。这种算法在推出后,因其强大的功能和灵活性,迅速在学术界和工业界获得了广泛的应用。有趣的是,DBSCAN。
2024-07-20 11:23:13
827
原创 RANSAC点云分割可视化小案例
以下代码示例导入了点云处理库 (open3d) 和数值计算库 (numpy)。它从文本文件 ('chair_0001.txt') 读取 3D 点云,其中点数据用逗号分隔。然后,它使用 Open3D 创建 PointCloud 对象,并将文件中的点分配给它。使用 RANSAC对点云进行分割,识别属于平面的点,并为这些点分配蓝色。最后,它在标题为“RANSAC平面分割”。以上内容总结自网络,如有帮助欢迎关注与转发,我们下次再见!
2024-07-19 11:05:19
313
原创 智能优化算法之灰狼优化算法(GWO)
智能优化算法是一类基于自然界中生物、物理或社会现象的优化技术。这些算法通过模拟自然界中的一些智能行为,如遗传学、蚁群觅食、粒子群体运动等,来解决复杂的优化问题。智能优化算法广泛应用于各种工程和科学领域,因其具有全局搜索能力、鲁棒性强以及易于实现等优点。
2024-07-19 11:04:35
1419
原创 随机采样一致性算法RANSAC
Fischler 和 Bolles 提出的 RANdom SAmple Consensus (RANSAC) 算法 [1] 是一种通用的参数估计方法,旨在应对输入数据中大量离群值。与许多从统计学文献中被计算机视觉社区采用的常见鲁棒估计技术(如 M-估计和最小中值平方)不同,RANSAC 是由计算机视觉社区内部开发的。RANSAC 是一种重采样技术,通过使用估计基础模型参数所需的最小观察数(数据点)来生成候选解决方案。
2024-07-18 11:15:33
1575
原创 Open3d入门 点云拼接算法
点云拼接(Point Cloud Stitching)是将从不同视角或位置获取的多组点云数据对齐到同一个坐标系中的过程,以形成一个完整的三维模型。这项技术在计算机视觉、机器人导航、三维重建和无人驾驶等领域有着广泛的应用。点云配准(Point Cloud Registration)和点云拼接(Point Cloud Stitching)都是处理多组点云数据的技术。点云配准是指将不同视角或位置获取的点云数据对齐到同一个坐标系中,以确保它们在空间上正确对应;
2024-07-18 11:13:27
479
原创 智能优化算法之禁忌搜索(Tabu Search, TS)
上图展示的是使用禁忌搜索算法解决电力系统孤岛问题。该问题旨在在发生严重扰动后将电力系统划分为几个不同的孤岛,目标是在将相关发电机放置在同一孤岛中并保持每个孤岛的连通性的同时,最小化所有孤岛的总发电负荷不平衡状态。禁忌搜索(Tabu Search)是由Fred W. Glover在1986年提出的一种基于邻域搜索的元启发式算法。其发展历史可以追溯到20世纪80年代中期,当时Glover在研究组合优化问题时,提出了一种利用禁忌表来记录和避免循环路径的方法,从而跳出局部最优解的陷阱。
2024-07-17 09:15:25
1139
原创 点云机器学习算法ICP点云配准方法
点云配准(point cloud registration)的目的是将多个三维点云数据集对齐,以形成一个统一的三维模型。其应用范围广泛,包括机器人定位与导航、三维重建、逆向工程、医学成像、环境感知等。点云配准过程可详细划分为初始对齐、最近点查找、变换矩阵计算、应用变换和误差评估。通过这些阶段的迭代优化,最终实现点云的精确对齐。点云的粗配准(coarse registration)是指通过快速但不精确的方法,对两个点云进行初步对齐,使它们的大致位置和方向一致;
2024-07-17 09:12:06
865
原创 智能优化算法之蜂群算法ABC
示例中使用了简单的二次函数作为目标函数,通过模拟工蜂、观察蜂和侦查蜂的行为,不断优化蜜源位置,最终找到最优解。代码中还包含了可视化部分,通过图形展示蜜蜂位置和最优解,方便观察算法的优化过程。: 观察蜂根据选择概率选择蜜源,并进一步搜索新的蜜源位置,更新规则与工蜂阶段相同。下面是一个蜂群算法解决优化问题的示例代码,通过模拟蜜蜂觅食行为来找到函数的最优解。其中,是随机选择的蜜源,是一个在-1到1之间的随机数,是新蜜源的位置。其中,和分别是搜索空间的上下界,是一个在0到1之间的随机数。
2024-07-16 10:31:24
604
原创 常用的点云预处理算法
点云预处理是处理点云数据时的重要部分,其目的是提高点云数据的质量和处理效率。通过去除离群点、减少点云密度和增强特征,可以消除噪声、减少计算量、提高算法的准确性和鲁棒性,从而为后续的点云处理和分析步骤(如配准、分割和重建)提供更高质量的数据基础。以下是常用的点云预处理算法介绍,内容包括离群点过滤、点云下采样、坐标上采样和特征上采样的数学原理以及Open3D实现代码。
2024-07-16 10:30:02
581
原创 Python37 智能优化算法之差分进化算法DE
该算法起源于遗传算法(Genetic Algorithm, GA),但其具有更简单的结构和更强的全局搜索能力。差分进化算法主要用于解决全局优化问题,通过变异、交叉和选择操作不断改进解的质量。:重复变异、交叉和选择操作,直到满足停止条件(如达到最大迭代次数或适应度不再显著提升)。:将变异向量与当前个体进行交叉,生成试验向量。:初始化一个包含个个体的种群,每个个体是维向量,初始种群通常随机生成。其中,是均匀分布的随机数,是交叉概率,是随机选择的一个维度。函数优化:非线性、多峰、多维函数的全局优化。
2024-07-15 10:04:39
456
原创 Open3d入门 点云中的重要概念
点云是由一组三维空间中的点组成的数据结构,常用于计算机视觉、3D建模和地形图生成等领域。每个点包含空间坐标(x, y, z)以及其他属性(如颜色、密度等)。
2024-07-15 10:03:53
332
原创 Open3d入门 不同点云数据格式转换
点云数据之间的格式转换是将点云数据从一种文件格式转换为另一种文件格式的过程。点云数据通常用于表示物体表面的三维点的集合,这些数据在计算机图形学、计算机视觉、3D建模等领域有广泛应用。常见的点云文件格式包括PLY、PCD、BIN、TXT、OBJ等。接下来将介绍不同点云格式之间的转换方法。
2024-07-14 10:33:38
341
原创 智能优化算法之模拟退火算法SA
模拟退火算法(Simulated Annealing, SA)是一种基于热力学原理的随机优化算法,最早由 S. Kirkpatrick, C. D. Gelatt 和 M. P. Vecchi 于 1983 年提出。在优化过程中,算法允许在一定概率下接受较差的解,以避免陷入局部最优解。在每次迭代中,从当前路径的邻域中随机选择一个新路径。计算新路径的长度,并根据接受准则决定是否接受新路径。:绘制城市坐标图和优化过程中最佳路径长度的变化曲线。:调用模拟退火算法,并输出最佳路径和最佳路径长度。
2024-07-13 10:20:54
408
原创 智能优化算法之蚁群算法ACO
蚁群算法(Ant Colony Optimization, ACO)由意大利学者马尔科·多里戈(Marco Dorigo)于1992年在其博士论文中首次提出。灵感来自于自然界中的蚂蚁群体行为,特别是蚂蚁在寻找食物过程中所展示的路径优化能力。蚁群算法属于一种基于群体智能的优化算法,通过模拟蚂蚁在路径上释放信息素的行为来解决复杂的优化问题。
2024-07-13 10:20:07
480
原创 Python34 遗传算法Genetic Algorithm (GA)
总共训练两次,第一次迭代次数为2000次,运行时间约为3分钟,第二次设置迭代次数20000次,运行时间大概在15分钟左右。(TSP)是一个经典的组合优化问题,旨在找到一个旅行商从一组给定城市中的每一个城市恰好访问一次,并最终回到起始城市的最短路径,即最小化总旅行距离或成本,广泛应用于物流、生产调度等领域。创建初始种群,进行繁殖、突变和生成下一代,不断优化路径,最终记录每一代中最短路径的距离和对应的路径,并在所有迭代中找到最短路径,在地图上可视化展示。找到历史迭代过程中最短的路径的迭代,并可视化该最短路径。
2024-07-12 10:12:40
871
原创 Python33 智能优化算法之粒子群算法PSO
智能优化算法是一类受自然界生物、物理、化学等现象启发而设计的优化算法,具备全局搜索能力,能够在复杂、多峰的搜索空间中找到近似全局最优解,常用于解决各种实际中的复杂优化问题。典型的智能优化算法包括等。
2024-07-12 10:11:05
1770
原创 Python32 极限学习机ELM
极限学习机(ELM)是一种简单的单层前馈神经网络(SLFN)学习算法。理论上,极限学习机算法(ELM)往往以极快的学习速度提供良好的性能(属于机器学习算法),由Huang等人提出。ELM的主要特点是它的学习速度非常快,相比传统的梯度下降方法(如BP神经网络),ELM不需要迭代过程。其基本原理是随机选择隐藏层的权重和偏置,然后通过最小化输出层的误差来学习输出权重。img。
2024-07-11 08:32:00
295
原创 Python29 Tensorflow的基本知识和使用
相比之下,NumPy 是一个基于数组的数学库,它主要用于数组操作和数学计算,但它不支持符号化计算图和自动微分。: 在 TensorFlow 1.x 中,计算图的延迟执行机制允许 TensorFlow 进行图级别的优化和变换,以提高执行效率。TensorFlow 的一个重要特点是它的符号化计算图执行模式,这使得它可以在计算图中描述复杂的数学模型,并且可以通过自动微分来计算梯度,从而用于优化模型。定义好的图可以在不同设备(CPU、GPU、TPU)上执行,甚至可以在不同平台(本地计算、云计算)上迁移。
2024-07-10 00:00:30
995
原创 Python30 使用Gensim库实现Word2Vec对文本进行处理
通过 Gensim 的 Word2Vec 模型对给定文本数据进行了训练,生成了词向量,并通过计算词语相似度、相关词、对应关系、不合群的词等方法对词向量进行了分析和应用。例如,给定上下文 ["The", "cat", "on", "the", "mat"],目标词是 "sat"。例如,目标词是 "sat",上下文是 ["The", "cat", "on", "the", "mat"]。输入层接受上下文词的词向量,将这些词向量求平均,得到一个上下文表示。可以从文本语料库中训练词向量,或加载预训练的词向量。
2024-07-10 00:00:24
736
原创 Python28-11 CatBoost梯度提升算法
CatBoost(Categorical Boosting)是由Yandex(一家俄罗斯互联网企业,旗下的搜索引擎曾在俄国内拥有逾60%的市场占有率,同时也提供其他互联网产品和服务)开发的一种基于梯度提升的机器学习算法。CatBoost特别擅长处理类别特征,并且能够有效地避免过拟合和数据泄露问题。CatBoost的全称是“Categorical Boosting”,它的设计初衷是为了在处理包含大量类别特征的数据时表现得更好。
2024-07-09 09:14:40
795
原创 Python28-10 LightGBM对乳腺癌数据集进行分类
LightGBM(Light Gradient Boosting Machine)是一个梯度提升框架,由微软开发。它用于机器学习中的分类、回归和排序等任务,特别适合处理大规模数据和高维特征。LightGBM的核心是梯度提升决策树(GBDT)算法,但它在此基础上做了多种优化,使其在速度和内存使用方面优于传统的GBDT实现。LightGBM的数学原理基于梯度提升决策树(Gradient Boosting Decision Trees, GBDT),而GBDT本身是一个集成学习算法。
2024-07-09 09:12:18
1032
原创 Python28-9 XGBoost算法
XGBoost(eXtreme Gradient Boosting,其正确拼写应该是 "Extreme Gradient Boosting",而XGBoost 的作者在命名时故意使用了不规范的拼写,将“eXtreme”中的“X”大写,以突出其极限性能和效率)是一个用于回归和分类问题的高效且灵活的增强树(Boosting Tree)工具。它是梯度提升(Gradient Boosting)算法的一种改进版本,具有更高的效率、灵活性和准确性。
2024-07-08 08:01:30
1318
原创 Python28-8 GBM梯度提升算法
梯度提升算法(Gradient Boosting Machine,GBM)是一种集成学习方法,通过逐步构建一系列简单模型(通常是决策树),并结合这些模型来提高整体预测性能。GBM广泛用于回归和分类任务,因为它具有较高的准确性和灵活性。
2024-07-08 08:00:34
536
原创 Python28-7.5 降维算法之t-分布邻域嵌入t-SNE
t-分布邻域嵌入(t-distributed Stochastic Neighbor Embedding,t-SNE)是一种用于数据降维和可视化的机器学习算法,尤其适用于高维数据的降维。t-SNE通过将高维数据嵌入到低维空间(通常是二维或三维)中,使得在高维空间中相似的点在低维空间中仍然保持相似,而不相似的点被分离开来。
2024-07-07 22:24:24
486
原创 Python28-7.4 独立成分分析ICA分离混合音频
独立成分分析(Independent Component Analysis,ICA)是一种统计与计算技术,主要用于信号分离,即从多种混合信号中提取出独立的信号源。ICA在处理盲源分离(Blind Source Separation,BSS)问题时尤为有效,如从录音中分离出不同的声音源、从脑电图(EEG)中提取出独立的神经活动信号等。
2024-07-07 22:23:38
1217
原创 Python28-7.3 降维算法之多维缩放MDS
多维尺度分析(Multidimensional Scaling, MDS)是一种用于降维的统计技术,其目标是将高维数据嵌入到低维空间中,同时尽量保持原始数据中点与点之间的距离关系。MDS 的目标是将高维数据中的点嵌入到低维(通常是二维或三维)空间中,使得在低维空间中点之间的距离尽量接近原始高维空间中点之间的距离。这通过最小化一个损失函数(通常是应力函数)来实现,应力函数衡量的是原始距离和降维后距离之间的不一致性。:对原始数据中的距离或相似度进行非度量变换,以保留原始数据中的顺序信息,而不是精确的距离值。
2024-07-05 22:58:15
710
原创 Python28-7.1降维算法之LDA线性判别分析
Wine 数据集中的样本是从意大利某个地区生长的葡萄酿造的葡萄酒中提取的,涉及 13 种化学成分分析。数据集包含 178 个样本,每个样本有 13 个特征。
2024-07-03 09:15:40
822
原创 Python28-7.1 降维算法之PCA主成分分析
方差最大化:第一主成分(PC1)是原始数据线性组合后方差最大的方向。第二主成分(PC2)是在正交于第一主成分的方向上方差最大的方向,以此类推。正交性:所有主成分之间都是正交的,即彼此独立不相关。这保证了主成分可以有效地表示原始数据的变化。降维效果:通过选取前几个主成分,可以在很大程度上保留原始数据的变异性,从而实现数据的降维。
2024-07-03 09:14:26
1530
1
原创 Python28-6 随机森林
随机森林(Random Forest)是一种由Leo Breiman和Adele Cutler在2001年提出的集成学习方法。它结合了多个决策树的预测结果,以提高模型的准确性和鲁棒性。
2024-07-02 10:28:10
788
原创 Python28-5 k-means算法
k-means 算法是一种经典的聚类算法,其目的是将数据集分成 ( k ) 个不同的簇,每个簇内的数据点尽可能接近。算法的基本思想是通过反复迭代优化簇中心的位置,使得每个簇内的点与簇中心的距离之和最小。初始化:随机选择 ( k ) 个点作为初始簇中心。分配簇:对于数据集中每一个点,计算其到所有簇中心的距离,并将其分配到最近的簇。更新中心:重新计算每个簇的中心,即簇内所有点的平均值。重复步骤2和3,直到簇中心不再发生变化或达到预设的迭代次数。
2024-07-02 10:26:51
451
原创 Python28-3 朴素贝叶斯分类算法
朴素贝叶斯(Naive Bayes)算法是一种基于贝叶斯定理的分类算法。它广泛应用于文本分类、垃圾邮件检测和情感分析等领域。该算法假设特征之间是独立的,这个假设在实际情况中可能并不完全成立,但Naive Bayes在许多实际应用中仍表现良好。贝叶斯定理描述了后验概率的计算方法,公式如下:在分类问题中,A表示类别,B表示特征向量。Naive Bayes算法通过最大化后验概率来进行分类:由于特征之间独立的假设,后验概率可以简化为:其中,( P(c) ) 是先验概率,可以通过样本中的类别频率估计;
2024-07-01 00:01:13
887
原创 Python28-1 机器学习算法之决策树
决策树通过递归将数据分割成更小的子集,构建一个树形结构,其中每个节点代表一个特征的测试,分支代表测试结果,叶子节点代表最终的分类或回归结果。通过这个例子可以看到,决策树通过逐层分割特征,将数据分成不同的子集,最终在叶子节点给出预测结果。特征,值小于等于 2.45 的样本被分到左子树,值大于 2.45 的样本被分到右子树。:将上述分割过程形成树形结构,根节点和内部节点代表特征测试,叶子节点代表最终预测。:信息增益的一种改进,考虑了特征取值的不同数量,选择信息增益率最大的特征进行分割。
2024-06-29 00:01:09
801
原创 Python28-2 机器学习算法之SVM(支持向量机)
SVM的目标是找到一个最佳的分割超平面,将不同类别的数据分开,使得两个类别之间的间隔(即边界)最大化。假设我们有一个训练数据集 ( (x_1, y_1), (x_2, y_2), ···, (x_n, y_n) ),其中 ( x_i ) 是特征向量,( y_i ) 是对应的类别标签,取值为 ( {+1, -1} )。SVM可以通过使用核函数将输入数据映射到高维空间,在高维空间中,原本非线性可分的数据可以变成线性可分的。在更高维度的空间中,超平面是将该空间分为两部分的一个n-1维的子空间。
2024-06-29 00:00:18
952
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人