发明内容
基于上述目的,本发明提供了基于三维点云的建筑物特征线提取方法。
基于三维点云的建筑物特征线提取方法,包括以下步骤:
S1,点云数据采集:使用三维激光扫描仪获取建筑物的点云数据;
S2,点云预处理:对采集到的点云数据进行预处理,包括删除孤立点和噪声点;
S3,建筑物立面检测:采用改进的RANSAC算法检测建筑物的立面,确定拟合平面;
S4,离群点去除:基于多尺度统计分析方法去除立面点云中的离群点;
S5,点云投影:将去噪后的点云数据投影到拟合平面上,以确保特征线提取的精度;
S6,边界提取:使用自适应alpha shape算法提取立面点云的边界;
S7,边界分簇:采用密度峰值聚类算法将边界点云分离成多个簇;
S8,直线段提取:使用改进的RANSAC算法从每个簇中提取边界点云的直线段;
S9,交点计算:通过延长相邻直线段求取其交点,得到建筑物立面的整体特征线;
S10,精度校验:对提取的特征线进行精度校验。
进一步的,所述S3具体包括:
S31,初始参数设定:设定RANSAC算法的初始参数,包括迭代次数N、内点阈值d和拟合精度∈;
S32,动态采样策略:在不同的采样规模下动态调整样本点的数量,提高算法对不同规模建筑立面的适应性;
S33,初步立面检测:在每次迭代中,随机选择s个点作为样本点集,计算候选平面参数;
S34,内点评估:使用候选平面的参数,计算所有点到平面的距离,定义为:其中,di为点i到平面的距离,(xi,yi,zi)为点的坐标,(a,b,c,d)为平面的参数;
S35,内点选择:如果di≤∈,则点i为内点,统计内点的数量,选择内点数量最多的候选平面;
S36,平面拟合优化:对选定的内点集使用最小二乘法进行平面拟合,优化平面参数,使其满足以下公式:
其中,(xi,yi,zi)为内点的坐标,n为内点的数量;
S37,自适应调整:在每次迭代后,根据内点比例调整采样点数量和迭代次数,公式为:N=log(1-p)/log(1-(1-∈)s),其中,p为期望的置信度,∈为内点比例,s为采样点数量。
进一步的,所述S4具体包括:
S41,邻域定义:为点云数据集中的每个点定义一个邻域其中是以点pi为中心、半径为rk的球体内的所有点的集合,其中k为多尺度参数;
S42,距离计算:对于每个点pi,计算其到邻域内所有点的距离dij:dij=‖pi-pj‖,其中,‖·‖表示欧几里得距离,
S43,多尺度平均距离:计算每个点在不同尺度下的平均距离,表示为:
其中,是邻域内点的数量,k表示第k个尺度;
S44,离群点检测:所有点的多尺度平均距离服从高斯分布,计算全局平均距离μk和标准差σk;
S45,离群点识别:将点云数据集中多尺度平均距离超过阈值的点识别为离群点,即:threshold=μk+t·σk,其中,t为设定的标准差倍数;
S46,离群点去除:删除所有被识别为离群点的点,得到去除离群点后的点云数据集。
进一步的,所述S5具体包括:
S51,确定拟合平面参数:通过RANSAC算法得到拟合平面的参数方程,形式为:a·x+b·y+c·z+d=0,其中,a,b,c和d为拟合平面的参数;
S52,点云平面距离计算:对于去噪后的每个点P(xs,ys,zs),计算其到拟合平面的垂直距离dPi,计算方式与前述的计算所有点到平面的距离相同:
S53,投影点计算:将每个点P(xs,ys,zs)投影到拟合平面上,得到投影点P′(xs′,ys′,zs′),计算表示为:
xs′=xs-a·t;
ys′=ys-b·t;
zs′=zs-c·t;
S54,投影点云集成:将所有点P(xs,ys,zs)的投影点P′(xs′,ys′,zs′)集成,形成投影后的点云数据集,对投影后的点云数据集进行精度验证,确保投影过程中的误差在预设范围内,以保证特征线提取的精度。
进一步的,所述S6中的边界提取具体包括:
S61,设定alphashape算法的初始参数,包括初始半径α0;
S62,邻域定义:为点云数据集中的每个点定义一个邻域其中,是以点pi为中心、半径为α0的球体内的所有点的集合;
S63,邻域密度计算:计算每个点邻域内点的密度:
其中,是邻域内点的数量;
S64,自适应半径调整:根据点云数据的密度调整每个点的alpha半径αi,公式为:其中,ρmax为点云数据集中最大密度;
S65,使用自适应调整后的半径αi构建alphashape,将半径αi的球在点云数据集上滚动,形成边界;
S66,边界提取:记录alphashape滚动形成的边界点,提取立面点云的边界。
进一步的,所述边界提取后,还包括边界优化,所述边界优化通过梯度下降算法优化提取的边界,提高边界精度。
进一步的,所述S7中的边界分簇具体包括:
S71,计算边界点云中所有点之间的欧几里得距离,形成距离矩阵D={dij},其中dij表示点Pi和点Pj之间的距离;
S72,密度计算:为每个点Pi计算其局部密度ρi,局部密度定义为点Pi在距离阈值δ内的点数,表示为:
S73,距离峰值计算:计算每个点Pi到具有更高局部密度点的最小距离δi,表示为:对于局部密度最高的点,设定δi=maxj(dij);
S74,选择局部密度ρ和距离峰值δ最高的点作为聚类中心;
S75,将其他点分配到最近的聚类中心所在的簇中,每个点根据其与聚类中心的距离和密度进行分配,公式为:
Cluster(Pi)=argminC(diC),其中,C表示聚类中心,diC为点Pi到聚类中心的距离;
S76,簇的优化:对初始分配的簇进行优化,调整点的归属,使得每个簇的密度最大化,将最终分配后的簇作为边界点云的多个簇输出。
进一步的,所述S8具体包括:
S81,对每个簇的边界点云分别进行处理,将点云数据集分割成多个簇{CT},其中T表示簇的编号;
S82,样本点选择:在每个簇中,随机选择s个点作为样本点集,计算候选直线参数;
S83,候选直线拟合:根据样本点集,使用最小二乘法拟合候选直线,计算候选直线的参数方程,表示为:y=mx+b,其中,m为直线的斜率,b为直线的截距;
S84,内点评估:使用候选直线的参数,计算每个点到直线的垂直距离dline,公式为:如果dline(Pi)≤∈,则点Pi为内点,统计内点的数量;
S85,内点选择:选择内点数量最多的候选直线作为当前簇的最佳直线;
S86,直线拟合优化:对选定的内点集使用最小二乘法进行直线拟合,优化直线参数,公式为:
其中,(xi,yi)为内点的坐标,n为内点的数量;
S87,直线段提取:提取优化后的直线段,将相邻直线段延长至其交点,形成完整的边界直线段;
S88,自适应调整:在每次迭代后,根据内点比例调整采样点数量和迭代次数,公式为:
N=log(1-p)/log(1-(1-∈)s),其中,p为期望的置信度,∈为内点比例,s为采样点数量;
S89,验证提取的直线段的精度,确保其满足建筑边界检测的要求,并根据需要调整RANSAC参数进行迭代优化。
进一步的,所述S9具体包括:
S91,直线段拟合:对每个簇中的边界点云数据使用改进的RANSAC算法拟合出若干条直线段,记为Li,其中Li的参数方程为:
y=mix+bi,其中,mi为第i条直线段的斜率,bi为第i条直线段的截距;
S92,将每条拟合的直线段Li进行延长,延长后的直线段记为Li′;
S93,计算相邻延长直线段Li′和Li+1′的交点,交点坐标(xij,yij),通过解以下方程组得到:mixij+bi=mi+1xij+bi+1,解得:
yij=mixij+bi;
S94,交点过滤:对所有计算得到的交点进行过滤,去除不符合建筑物轮廓的异常交点;
S95,特征线构建:将过滤后的交点按顺序连接,构建出建筑物立面的整体特征线;
S96,对构建的特征线进行优化,确保其光滑度和精度,使用曲线拟合算法对特征线进行平滑处理,平滑处理如下:
交点集初始化:将通过延长相邻直线段得到的所有交点(xij,yij)按顺序排列,形成交点集;
选择曲线拟合方法:选择适合建筑物轮廓的曲线拟合算法,如B样条曲线拟合或多项式拟合;
曲线拟合参数设定:根据选择的拟合方法,设定相关参数,如B样条曲线的节点数或多项式的阶数;
构建拟合曲线模型:使用选定的曲线拟合方法构建拟合曲线模型;
计算拟合曲线:根据交点集计算曲线拟合模型的参数,得到拟合曲线;
曲线平滑处理:对拟合的曲线进行平滑处理,去除曲线上的噪声和尖锐转折点;
验证拟合后的平滑曲线与实际建筑物轮廓的吻合度,根据需要调整拟合参数,确保特征线的精度和光滑度。
进一步的,所述S10具体包括:
将提取的特征线与原始点云数据进行对比,计算每个特征线点到其对应原始点云点的距离;
计算误差指标:计算特征线与原始点云数据的误差指标,包括平均误差、均方根误差和最大误差;
误差分析:对计算得到的误差指标进行分析,判断特征线的精度是否符合要求。
本发明的有益效果:
本发明,结合改进的RANSAC算法、自适应alpha shape算法、密度峰值聚类算法和梯度下降算法,提出了一种高效、准确的建筑物特征线提取方法。通过多尺度采样、动态参数调整和多阶段优化,提高了算法对不同规模建筑立面的适应性和精度。特别是利用自适应alpha shape算法和密度峰值聚类算法,有效处理了点云数据中的噪声和离群点,确保了特征线提取的完整性和精确性。这种方法能够快速准确地从三维点云数据中提取出建筑物的轮廓特征线,显著提高了提取效率和准确性,适用于智慧城市建设中的高精度三维建模需求。
本发明,在特征线提取完成后,采用曲线拟合算法对特征线进行平滑处理,确保了特征线的光滑度和精度,去除了曲线上的噪声和尖锐转折点,保证了特征线的连续性和光滑性。这种方法显著提升了特征线的质量,使得提取的特征线更加符合实际建筑物的轮廓,提高了三维模型的精度和美观度,为高精度建筑建模提供了坚实的基础。
本发明通过详细的精度校验步骤,确保了提取的特征线具有高度的准确性和可靠性。通过特征线与原始点云数据的对比,计算误差指标(包括平均误差、均方根误差和最大误差),并结合手工校验和误差分布图,全面评估特征线的精度和误差分布情况。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明进一步详细说明。
如图1所示,基于三维点云的建筑物特征线提取方法,包括以下步骤:
S1,点云数据采集:使用三维激光扫描仪获取建筑物的点云数据,具体包括:
选择具有高精度和高分辨率的三维激光扫描仪,以确保采集到的点云数据具有足够的细节和准确性;
根据建筑物的高度、面积和结构特点,设定扫描仪的扫描参数,包括扫描分辨率、扫描范围和扫描角度;
选择多个扫描位置,以确保能够覆盖整个建筑物的外立面,尽量减少遮挡和盲区;
在每个扫描位置上,按照设定的扫描参数进行扫描,获取建筑物的点云数据;
将多个扫描位置获取的点云数据进行整合和校准,将整合和校准后的点云数据存储在存储设备中,并进行备份,以防数据丢失;
S2,点云预处理:对采集到的点云数据进行预处理,包括删除孤立点和噪声点,具体包括:
使用开源点云处理软件对采集到的点云数据进行初步处理;
裁剪出相对完整的部分点云数据;
删除孤立点和噪声点,确保点云数据的完整性和纯净度;
S3,建筑物立面检测:采用改进的RANSAC算法检测建筑物的立面,确定拟合平面;
S4,离群点去除:基于多尺度统计分析方法去除立面点云中的离群点;
S5,点云投影:将去噪后的点云数据投影到拟合平面上,以确保特征线提取的精度;
S6,边界提取:使用自适应alpha shape算法提取立面点云的边界;
S7,边界分簇:采用密度峰值聚类算法将边界点云分离成多个簇;
S8,直线段提取:使用改进的RANSAC算法从每个簇中提取边界点云的直线段;
S9,交点计算:通过延长相邻直线段求取其交点,得到建筑物立面的整体特征线;
S10,精度校验:对提取的特征线进行精度校验。
S3具体包括:
S31,初始参数设定:设定RANSAC算法的初始参数,包括迭代次数N、内点阈值d和拟合精度∈;
S32,动态采样策略:在不同的采样规模下动态调整样本点的数量,提高算法对不同规模建筑立面的适应性;
S33,初步立面检测:在每次迭代中,随机选择s个点作为样本点集,计算候选平面参数;
S34,内点评估:使用候选平面的参数,计算所有点到平面的距离,定义为:其中,di为点i到平面的距离,(xi,yi,zi)为点的坐标,(a,b,c,d)为平面的参数;
S35,内点选择:如果di≤∈,则点i为内点,统计内点的数量,选择内点数量最多的候选平面;
S36,平面拟合优化:对选定的内点集使用最小二乘法进行平面拟合,优化平面参数,使其满足以下公式:
其中,(xi,yi,zi)为内点的坐标,n为内点的数量;
S37,自适应调整:在每次迭代后,根据内点比例调整采样点数量和迭代次数,公式为:N=log(1-p)/log(1-(1-∈)s),其中,p为期望的置信度,∈为内点比例,s为采样点数量,验证拟合平面的精度,确保其满足建筑立面检测的要求,并根据需要调整RANSAC参数进行迭代优化。
S4具体包括:
S41,邻域定义:为点云数据集中的每个点定义一个邻域其中是以点pi为中心、半径为rk的球体内的所有点的集合,其中k为多尺度参数;
S42,距离计算:对于每个点pi,计算其到邻域内所有点的距离dij:dij=‖pi-pj‖,其中,‖·‖表示欧几里得距离,
S43,多尺度平均距离:计算每个点在不同尺度下的平均距离,表示为:
其中,是邻域内点的数量,k表示第k个尺度;
S44,离群点检测:所有点的多尺度平均距离服从高斯分布,计算全局平均距离μk和标准差σk,表示为:
其中,n为点云数据集的总点数;
S45,离群点识别:将点云数据集中多尺度平均距离超过阈值的点识别为离群点,即:threshold=μk+t·σk,其中,t为设定的标准差倍数;
S46,离群点去除:删除所有被识别为离群点的点,得到去除离群点后的点云数据集。
通过多尺度统计分析方法有效去除了点云数据中的离群点。多尺度邻域定义和距离计算确保了离群点检测的全面性和准确性,通过计算多尺度平均距离并假设其服从高斯分布,能够准确识别出离群点。设定合理的阈值确保了离群点去除的有效性。该方法能够有效提高点云数据的纯净度和完整性,为后续的特征线提取提供高质量的数据基础。
S5具体包括:
S51,确定拟合平面参数:通过RANSAC算法得到拟合平面的参数方程,形式为:a·x+b·y+c·z+d=0,其中,a,b,c和d为拟合平面的参数;
S52,点云平面距离计算:对于去噪后的每个点P(xs,ys,zs),计算其到拟合平面的垂直距离dPi,计算方式与前述的计算所有点到平面的距离相同:
S53,投影点计算:将每个点P(xs,ys,zs)投影到拟合平面上,得到投影点P′(xs′,ys′,zs′),计算表示为:
xs′=xs-a·t;
ys′=ys-b·t;
zs′=zs-c·t;
S54,投影点云集成:将所有点P(xs,ys,zs)的投影点P′(xs′,ys′,zs′)集成,形成投影后的点云数据集,对投影后的点云数据集进行精度验证,确保投影过程中的误差在预设范围内,以保证特征线提取的精度。
S6中的边界提取具体包括:
S61,设定alphashape算法的初始参数,包括初始半径α0;
S62,邻域定义:为点云数据集中的每个点定义一个邻域其中,是以点pi为中心、半径为α0的球体内的所有点的集合;
S63,邻域密度计算:计算每个点邻域内点的密度:
其中,是邻域内点的数量;
S64,自适应半径调整:根据点云数据的密度调整每个点的alpha半径αi,公式为:其中,ρmax为点云数据集中最大密度;
S65,使用自适应调整后的半径αi构建alphashape,将半径αi的球在点云数据集上滚动,形成边界;
S66,边界提取:记录alphashape滚动形成的边界点,提取立面点云的边界。
边界提取后,还包括边界优化,边界优化通过梯度下降算法优化提取的边界,提高边界精度,具体包括:
边界点初始集:从自适应alphashape算法提取的边界点集合中,初始化边界点集{Pi},其中Pi=(xi,yi,zi);
能量函数定义:定义边界点集的能量函数E,用于衡量边界点集的光滑度和精度,公式为: 其中,是点Pi的邻域点集,λ为正则化参数,为初始边界点;
计算梯度:计算能量函数E相对于边界点集{Pi}的梯度公式为:
梯度下降迭代:使用梯度下降法更新边界点集{Pi},公式为:
其中,为第t次迭代时的边界点位置,η为学习率;
收敛判定:判断能量函数E的变化是否小于预设阈值∈,若是则停止迭代,否则返回步骤继续迭代;
将最终收敛后的边界点集{Pi}作为优化后的边界输出。
S7中的边界分簇具体包括:
S71,计算边界点云中所有点之间的欧几里得距离,形成距离矩阵D={dij},其中dij表示点Pi和点Pj之间的距离;
S72,密度计算:为每个点Pi计算其局部密度ρi,局部密度定义为点Pi在距离阈值δ内的点数,表示为:
S73,距离峰值计算:计算每个点Pi到具有更高局部密度点的最小距离δi,表示为:对于局部密度最高的点,设定δi=maxj(dij);
S74,选择局部密度ρ和距离峰值δ最高的点作为聚类中心,这些点通常处于高密度区域且离其他高密度点较远;
S75,将其他点分配到最近的聚类中心所在的簇中,每个点根据其与聚类中心的距离和密度进行分配,公式为:
Cluster(Pi)=argminC(diC),其中,C表示聚类中心,diC为点Pi到聚类中心的距离;
S76,簇的优化:对初始分配的簇进行优化,调整点的归属,使得每个簇的密度最大化,将最终分配后的簇作为边界点云的多个簇输出。
S8具体包括:
S81,设定RANSAC算法的初始参数,包括迭代次数N、内点阈值d和拟合精度∈,对每个簇的边界点云分别进行处理,将点云数据集分割成多个簇{CT},其中T表示簇的编号;
S82,样本点选择:在每个簇中,随机选择s个点作为样本点集,计算候选直线参数;
S83,候选直线拟合:根据样本点集,使用最小二乘法拟合候选直线,计算候选直线的参数方程,表示为:y=mx+b,其中,m为直线的斜率,b为直线的截距;
S84,内点评估:使用候选直线的参数,计算每个点到直线的垂直距离dline,公式为:如果dline(Pi)≤∈,则点Pi为内点,统计内点的数量;
S85,内点选择:选择内点数量最多的候选直线作为当前簇的最佳直线;
S86,直线拟合优化:对选定的内点集使用最小二乘法进行直线拟合,优化直线参数,公式为:
其中,(xi,yi)为内点的坐标,n为内点的数量;
S87,直线段提取:提取优化后的直线段,将相邻直线段延长至其交点,形成完整的边界直线段;
S88,自适应调整:在每次迭代后,根据内点比例调整采样点数量和迭代次数,公式为:
N=log(1-p)/log(1-(1-∈)s),其中,p为期望的置信度,∈为内点比例,s为采样点数量;
S89,验证提取的直线段的精度,确保其满足建筑边界检测的要求,并根据需要调整RANSAC参数进行迭代优化。
S9具体包括:
S91,直线段拟合:对每个簇中的边界点云数据使用改进的RANSAC算法拟合出若干条直线段,记为Li,其中Li的参数方程为:
y=mix+bi,其中,mi为第i条直线段的斜率,bi为第i条直线段的截距;
S92,将每条拟合的直线段Li进行延长,延长后的直线段记为Li′;
S93,计算相邻延长直线段Li′和Li+1′的交点,交点坐标(xij,yij),通过解以下方程组得到:mixij+bi=mi+1xij+bi+1,解得:
yij=mixij+bi;
S94,交点过滤:对所有计算得到的交点进行过滤,去除不符合建筑物轮廓的异常交点;
S95,特征线构建:将过滤后的交点按顺序连接,构建出建筑物立面的整体特征线;
S96,对构建的特征线进行优化,确保其光滑度和精度,使用曲线拟合算法对特征线进行平滑处理,平滑处理如下:
交点集初始化:将通过延长相邻直线段得到的所有交点(xij,yij)按顺序排列,形成交点集;
选择曲线拟合方法:选择适合建筑物轮廓的曲线拟合算法,如B样条曲线拟合或多项式拟合;
曲线拟合参数设定:根据选择的拟合方法,设定相关参数,如B样条曲线的节点数或多项式的阶数;
构建拟合曲线模型:使用选定的曲线拟合方法构建拟合曲线模型;
计算拟合曲线:根据交点集计算曲线拟合模型的参数,得到拟合曲线;
曲线平滑处理:对拟合的曲线进行平滑处理,去除曲线上的噪声和尖锐转折点;
验证拟合后的平滑曲线与实际建筑物轮廓的吻合度,根据需要调整拟合参数,确保特征线的精度和光滑度。
S10具体包括:
将提取的特征线与原始点云数据进行对比,计算每个特征线点到其对应原始点云点的距离;
计算误差指标:计算特征线与原始点云数据的误差指标,包括平均误差、均方根误差和最大误差;
误差分析:对计算得到的误差指标进行分析,判断特征线的精度是否符合要求;
还可以绘制误差分布图,显示误差在特征线各点上的分布情况,帮助识别误差较大的区域,根据误差分析,调整特征线提取算法的参数,优化特征线的提取精度。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明的范围被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
本发明旨在涵盖落入权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。