CN105160700B - 一种用于三维模型重建的截面曲线重构方法 - Google Patents
一种用于三维模型重建的截面曲线重构方法 Download PDFInfo
- Publication number
- CN105160700B CN105160700B CN201510341939.9A CN201510341939A CN105160700B CN 105160700 B CN105160700 B CN 105160700B CN 201510341939 A CN201510341939 A CN 201510341939A CN 105160700 B CN105160700 B CN 105160700B
- Authority
- CN
- China
- Prior art keywords
- mrow
- msub
- mtd
- point
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004458 analytical method Methods 0.000 claims abstract description 14
- 238000013459 approach Methods 0.000 claims description 14
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000005457 optimization Methods 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 4
- 238000013178 mathematical model Methods 0.000 claims description 3
- 241000208340 Araliaceae Species 0.000 claims 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 1
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 1
- 235000008434 ginseng Nutrition 0.000 claims 1
- 238000005070 sampling Methods 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000012086 standard solution Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011089 mechanical engineering Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种用于三维模型重建的截面曲线重构方法,根据离散数据的曲率信息,对数据点进行分段,确定相应的特征,并确定理想分段点所在的区域;参考数据采样的密度,确定合理的网格划分间距,将目标区域网格化;对于当前网格每个节点,先拟合直线,再基于边界约束条件拟合B样条曲线,统计所有数据点到曲线的总误差和B样条曲线的控制顶点数。综合分析统计的两组数据,确定当前最优分段点。如果当前网格节点的密度满足精度,则输出此最优分段点;否则,以当前最优分段点为中心,缩小目标区域,减小间距,划分网格,依据当前最优分段点为,重构截面曲线。
Description
技术领域
本发明属于三维重建技术领域,特别涉及一种用于三维模型重建的截面曲线重构方法。
背景技术
随着计算机应用技术、数据检测技术、数控技术的广泛应用,逆向工程已经成为新产品快速开发的有效途径。采用逆向工程技术开发新产品往往比较复杂,必须借助于如CAD/CAE/CAM/CAT等软件。产品在这些软件中存在的形式是三维CAD模型。故逆向工程的首要任务是重构蕴含初始设计意图的三维CAD模型。
在基于特征的逆向工程技术中,二维截面数据的重构同样是曲面重构的基础,其重构的精确与否、质量好坏直接关系到三维重构模型外观重现及功能复原效果的优劣。所以,为了重构出高精度的三维模型,必须先重构出满足初始设计意图的二维截面曲线。
在实际的二维截面数据逆向建模应用中,根据截面数据的微分属性分析并辅以工程师的经验,提取截面数据的分段点,分割截面数据并用分段拟合的方法从截面数据获取初始曲线特征。
Huang[1]认为,以特征方式表达的产品模型不仅比以简化的曲面拟合方式表达的产品模型具有更高的精度,而且能够捕捉到高级几何信息,这些几何信息对于设计理解、设计修改和工艺制定都是至关重要的。国内浙江大学的金涛、柯映林各自所带领逆向反求团队也提出了面向特征的逆向CAD模型重构思想[2,3]。截面曲线间的特征划分、边界约束与光顺性是逆向建模过程中重要部分,影响到二维截面曲线的重构质量。
目前比较有影响力的商业逆向工程软件有美国EDS公司的Imageware、美国Raindrop公司的Geomagic Studio等。浙江大学柯映林团队自主开发的截面重构软件RE-SOFT,综合考虑直线、圆弧和自由曲线以及相切约束,整体优化重构截面曲线,可以获得较好的整体光顺性。但目前的这些截面数据重构方法虽然可以满足特征约束,但由于相邻特征间的分段点提取精度不够,从而牺牲了曲线的逼近效果,重构质量不高。
例如现有技术中,所谓的整体重构法[4-6]实现方案包括步骤:
1、为截面数据进行离散曲率分析,交互指定大致分段点(数据采样点),然后将数据进行分段;
2、针对不同的数据特征分别进行重构;
3、将重构的特征间添加G1(相切)约束;
4、全局优化。采用惩罚函数法将约束优化模型的求解,二维截面数据中的所有信息一同优化拟合,将模型变为非线性无约束优化问题,用Levenberg-Marquardt方法进行迭代求解。
现有技术中,涉及引用的文件如下。
[1]Huang J B.Geometric feature extaction and model reconstructionfrom unorganized points for reverse engineering of mechanical objects witharitrary topology[D].Columbus:The Ohio University,2001.
[2]金涛,单言,童水光.产品反求工程中基于几何特征及约束的模型重建[J].计算机辅助设计与图形学学报,2001,13(3):202-207.
[3]柯映林,刘云峰,范树迁,er al.基于特征的反求工程建模系统RE-SOFT[J].计算机辅助设计与图形学学报,2004,16(6):799-811.
[4]Y.Ke,S.Fan,W.Zhu,A.Li,F.Liu,X.Shi,Feature-based reverse modelingstrategies,Computer-Aided Design 38(5)(2006)485-506.
[5]Y.Ke,W.Zhu,Y.Liu,Constrained fitting for 2D profile-based reversemodeling.Computer-Aided Design 38(2)(2006)101-114.
[6]刘云峰,柯映林.反求工程中切片数据处理及断面特征曲线全局优化技术[J].机械工程学报,2006,42(3):124-129.
发明内容
针对以上重构方法上的问题,本文提出一种新的截面数据重构方法,重点研究直线与自由特征间G1连续的截面曲线重构。通过离散变量型普通网格法动态搜寻分段点,使得分段点的提取精度大大增加;而且在搜寻最优分段点的过程中,直线特征实时更新,这也避免了由于分段点提取不准确而导致直线特征重构精度差的问题,从而提高保证整个截面数据的拟合质量,使得重构结果更符合产品设计的初始意图,提高CAD模型构建的精度。
本发明的技术方案是,基于离散变量型普通网格法的截面数据重构方法,该方法包括:
步骤一、对于一组有序截面数据点列,根据离散数据的曲率信息,交互式提取截面数据的分段点。根据分段点将截面数据分割成数据段,确定相应的特征,并确定理想分段点所在的区域。
假设对应于截面轮廓数据I={p0,p1,…,pm}的曲率序列是K={K0,K1,…,Km},那么pi处的离散曲率Ki定义为通过三个相邻数据点pi-1,pi和pi+1的圆的曲率。
其中:i=1,2,…,m-1,li=|pi-pi-1|,l′i=|pi+1-pi-1|;Δpi-1pipi+1是三角形的有向面积,设定pi-1,pi和pi+1为逆时针方向面积为正,反之为负。
然后根据提取的分段点将截面数据分割成每段只具有单一特征的数据段,确定相应的特征,并确定理想分段点所在的区域,理论分段点即为设计时确定的分段点。
步骤二、参考数据采样的密度,确定合理的网格划分间距,将目标区域网格化。
假设可以判定理论切点P在数据点Q点和P′点之间,那么就将Q点作为网格的左上角,P′点为网格的右下角,以网格间距D1,将此区域网格化;
将所有的节点当作候选理论切点,同时更新直线特征及B样条特征参数,进行截面数据重构优化。
步骤三、将网格上所有的节点当作候选理论切点,同时更新直线特征及B样条特征参数,进行截面数据重构优化,并在当下候选节点中寻找最优分段点。
3.1对于当前网格每个节点,先拟合直线(与B样条曲线拼接的一端插值网格节点),再基于边界约束条件(G1连续)拟合B样条曲线(与直线拼接的一端插值网格节点),统计所有数据点到曲线的总误差和B样条曲线的控制顶点数。
3.1.1过定点P(x0,y0)的直线重构;
给定(n+1)个数据点,设直线的解析表达式为l0x+l1y+l2=0,且参数l0,l1,l2满足规范化约束条件为用最小二乘的方法拟合直线,建立如下数学模型:
目标函数:
其中,di是各个数据点到直线的有向代数距离;X=(l0 l1 l2)是直线的参数矩阵。
3.1.2自由特征的重构;
自由特征采用3次B样条曲线来表示。由B样条曲线的定义知,欲使一条p次B样条曲线在某个误差限E内逼近一组二维截面数据点列必须预先计算出数据点的参数值和配置节点矢量U。
为了配置合理的节点矢量,本文采用Les Piegl给出的控制点数由多到少的方案拟合B样条曲线,从一次B样条曲线开始,逐渐增加到p次,使得拟合后的曲线轻易捕获数据中的几何特征,让拟合后的曲线趋于自然参数化,降低B样条曲线自身拟合对分段点处的影响。
而截面曲线中,直线与B样条曲线往往在分段点处要满足一定的连续性条件(G0连续、G1连续),本文主要研究直线与4重端节点的3次B样条曲线光滑(G1连续)拼接。与过定点P(x0,y0)的直线相对应,B样条曲线与直线相连接端也插值此点,并基于当前边界约束,建立如下B样条曲线重构模型:
目标函数:
其中,P0、P1是B样条曲线的第一、第二个控制点;L是与B样条曲线相连接的直线。
这是一个约束最小化问题,涉及(n+1)个未知量(控制点Pi)和3个约束条件。标准的解法是采用拉格朗日乘子法,具体做法是引入3个额外的变量λi(其中i=0,1,2),最后得到一个系数矩阵为(n+4)阶分块矩阵的线性方程组。可证此系数矩阵是实对称阵。根据实对称阵的必可对角化的性质,这个方程组一定有解。
3.2统计重构数据,综合分析统计数据,确定当前最优分段点。
为了避免偶然性,需要统计的数据包括两项:1、每个候选分段点对应下的B样条曲线拟合时需要的控制点数目;2、每个候选分段点对应下的所有数据点到拟合后曲线的逼近总误差。然后,用MATLAB建立三维曲面图,以辅助进行数据分析。
最优分段点的选取原则:先找寻最少控制点数和次最少控制点数,并分析网格区域每个候选分段点对应下的B样条曲线拟合时需要的控制点数目,拥有这两种最小控制点数的分布情况,如果次最少控制点数的分布区域较最少控制点数的分布区域大4倍以上,原因是采集数据的边界信息具有不完整性,就只分析次最少控制点数分布区域每个候选分段点对应下的所有数据点到拟合后曲线的逼近总误差,否则,只分析最少控制点数所对应的逼近总误差。
将要找的控制点数之外区域所对应的逼近总误差赋一个较大的值,得到新的逼近误差统计图。然后直接分析最小逼近总误差的位置,找出最优分段点。
步骤四、如果当前网格节点的密度满足精度,则输出此最优分段点;否则,以当前最优分段点为中心,缩小目标区域,减小间距,划分网格,转步骤三;
网格划分方案:根据当前网格划分下最合适的候选理论切点,再以当前网格节点为中心(假设为P1节点),网格间距Di,在其附近划分网格。
一般网格划分只要进行3次,令D1=0.005mm,D2=0.002mm,D3=0.001mm。
步骤五、依据所得最优分段点,重构截面曲线。
综上,本发明的技术方案要点是:
(1)根据离散数据的曲率信息,对数据点进行分段,确定相应的特征,并确定理想分段点所在的区域;
(2)参考数据采样的密度,确定合理的网格划分间距,将目标区域网格化;
(3)对于当前网格每个节点,先拟合直线(与B样条曲线拼接的一端插值网格节点),再基于边界约束条件(G1连续)拟合B样条曲线(与直线拼接的一端插值网格节点),统计所有数据点到曲线的总误差和B样条曲线的控制顶点数。
(4)综合分析统计的两组数据,确定当前最优分段点。
(5)如果当前网格节点的密度满足精度,则输出此最优分段点;否则,以当前最优分段点为中心,缩小目标区域,减小间距,划分网格,转步骤(3);依据当前最优分段点为,重构截面曲线。
其中网格划分方案是:
假设可以判定理论切点P在数据点Q点和P′点之间,那么就将Q点作为网格的左上角,P′点为网格的右下角,以网格间距D1,将此区域网格化:将所有的节点当作候选理论切点,进行截面数据重构,找出当前网格划分下最合适的候选理论切点,再以当前网格节点为中心(假设为P1节点),网格间距D2,在其附近划分网格,再进行截面数据重构,找出当前网格划分下最合适的分段点。重复进行下去,直到网格满足精度为止。
本发明的有益效果包括:
(1)该方法是在离散空间直接搜索,使能搜索到真正离散优化解的可能性增加,而且网格划分分层进行,逐层加密,缩小了搜索范围,加快了求解速度。
(2)本文通过离散变量型普通网格法动态搜寻分段点,使得分段点的提取精度大大增加;而且在搜寻最优分段点的过程中,直线特征实时更新,这也避免了由于分段点提取不准确而导致直线特征重构精度差的问题。
(3)由于连接点的高精度识别,使得重构结果既严格满足了特征间的G1连续性要求,又保证了整个截面曲线对截面数据的逼近精度,避免了如下问题:由于分段点无法精确提取导致边界约束信息不准确,进而使得重构结果不符合初始设计意图。
(4)于圆弧与B样条曲线拼接的问题,本发明方法同样适用。
附图说明
图1是本发明中离散数据的重构
图2是本发明中数据点的离散曲率估算
图3是本发明中分段点提取情况示意图
图4是本发明中理论分段点所在区域动态网格化
图5是本发明中控制点数目统计图
图6是本发明中逼近总误差统计图
图7是本发明中逼近误差统计图
具体实施方式
下面结合附图及实例对本说明进行详细说明。下面利用UG NX 7.5构建一个直线与B样条曲线相连接的二维草图,如图1(a),一条B样条曲线同时与两条直线相互连接。再利用UG NX7.5的二次开发技术,采集曲线上的点集数据(人为控制B样条数据右端采集到了理论连接点),加入噪声数据,然后利用Visual Studio2010,编制配置节点矢量和利用拉格朗日乘子法求解拟合模型的C++程序进行截面数据重构。
步骤一、根据离散数据的曲率信息,对数据点进行分段,确定相应的特征,并确定理想分段点所在的区域;
对于一组有序截面数据点列,通常根据截面数据点的曲率信息,交互式提取截面数据的分段点。假设对应于截面轮廓数据I={p0,p1,…,pm}的曲率序列是K={K0,K1,…,Km},那么pi处的离散曲率Ki定义为通过三个相邻数据点pi-1,pi和pi+1的圆的曲率,如图2。
其中:i=1,2,…,m-1,li=|pi-pi-1|,l′i=|pi+1-pi-1|;Δpi-1pipi+1是三角形的有向面积,设定pi-1,pi和pi+1为逆时针方向面积为正,反之为负。
根据提取的分段点将截面数据分割成每段只具有单一特征的数据段。
但由于分段点具有一点误差,通常为理论分段点附近的采样点,如图3,因此只能确定理想分段点存在的大致区间。
步骤二、参考数据采样的密度,确定合理的网格划分间距,将目标区域网格化;
假设可以判定理论切点P在数据点Q点和P′点之间,那么就将Q点作为网格的左上角,P′点为网格的右下角,以网格间距D1,将此区域网格化,如图4;
将所有的节点当作候选理论切点,进行截面数据重构。
步骤三、将网格上所有的节点当作候选理论切点,同时更新直线特征及B样条特征参数,进行截面数据重构优化,并在当下候选节点中寻找最优分段点。
3.1对于当前网格每个节点,先拟合直线(与B样条曲线拼接的一端插值网格节点),再基于边界约束条件(G1连续)拟合B样条曲线(与直线拼接的一端插值网格节点),统计所有数据点到曲线的总误差和B样条曲线的控制顶点数。
3.1.1过定点P(x0,y0)的直线重构;
设直线的解析表达式为:
l0x+l1y+l2=0
且参数l0,l1,l2满足规范化约束条件:
点到直线的有向代数距离:
d=l0x+l1y+l2,
点到直线的欧氏距离:
给定(n+1)个数据点,用最小二乘的方法拟合直线,建立如下数学模型:
目标函数:
其中,di是各个数据点到直线的有向代数距离;X=(l0 l1 l2)是直线的参数矩阵。
3.1.2自由特征的重构
自由特征采用3次B样条曲线来表示。由B样条曲线的定义知,欲使一条p次B样条曲线在某个误差限E内逼近一组二维截面数据点列必须预先计算出数据点的参数值和配置节点矢量U。
为了配置合理的节点矢量,本文采用Les Piegl给出的控制点数由多到少的方案拟合B样条曲线,从一次B样条曲线开始,逐渐增加到p次,使得拟合后的曲线轻易捕获数据中的几何特征,让拟合后的曲线趋于自然参数化,降低B样条曲线自身拟合对分段点处的影响。
而截面曲线中,直线与B样条曲线往往在分段点处要满足一定的连续性条件(G0连续、G1连续),本文主要研究直线与4重端节点的3次B样条曲线光滑(G1连续)拼接。与过定点P(x0,y0)的直线相对应,B样条曲线与直线相连接端也插值此点,并基于当前边界约束,建立如下B样条曲线重构模型:
目标函数:
其中,P0、P1是B样条曲线的第一、第二个控制点;L是与B样条曲线相连接的直线。
这是一个约束最小化问题,涉及(n+1)个未知量(控制点Pi)和3个约束条件。标准的解法是采用拉格朗日乘子法,具体做法是引入3个额外的变量λi(其中i=0,1,2),最后得到一个系数矩阵为(n+4)阶分块矩阵的线性方程组。
设A=(λi),i=0,1,2,是拉格朗日乘子组成的向量;非约束数据相应的方程组为NP=Q约束数据相应的方程组为MP=T。非约束方程组的误差残差为Q-NP,要在满足约束条件MP=T的前提下,使得这个误差的平方和最小。因此,根据拉格朗日乘子法,要使以下关于未知量A和P的表达式
(QT-PTNT)(Q-NP)+AT(MP-T)
达到最小。分别对A和P求导,并令其等于零得
-2(QTN-PTNTN)+ATM=0
MP-T=0
进一步处理得
NTNP+MTA=NTQ
MP=T
可以写成分块矩阵的形式
只需要求解这个方程组得到A和P。又其系数矩阵
所以此系数矩阵是实对称阵。根据实对称阵的必可对角化的性质,这个方程组一定有解。
3.2统计重构数据,综合分析统计数据,确定当前最优分段点。
为了避免偶然性,需要统计的数据包括两项:1、每个候选分段点对应下的B样条曲线拟合时需要的控制点数目;2、每个候选分段点对应下的所有数据点到拟合后曲线的逼近总误差。然后,用MATLAB R2011b建立三维曲面图,以辅助进行数据分析。图5是某模拟数据的网格区域每个候选分段点对应下的B样条曲线拟合时需要的控制点数目图,图6是每个候选分段点对应下的所有数据点到拟合后曲线的逼近总误差图。
最优分段点的选取原则:先找寻最少控制点数和次最少控制点数,并分析图5中,拥有这两种最小控制点数的分布情况,如果次最少控制点数的分布区域较最少控制点数的分布区域大得多(原因是采集数据的边界信息具有不完整性),就只分析次最少控制点数分布区域在图6中相应的逼近总误差,否则,只分析最少控制点数所对应的逼近总误差。
将要找的控制点数之外区域所对应的逼近总误差赋一个较大的值,得到新的逼近误差统计图,如图7。现在可以直接分析最小逼近总误差的位置,找出最优分段点。
步骤四、如果当前网格节点的密度满足精度,则输出此最优分段点;否则,以当前最优分段点为中心,缩小目标区域,减小间距,划分网格,转步骤三;
网格划分方案:根据当前网格划分下最合适的候选理论切点,再以当前网格节点为中心(假设为P1节点),网格间距Di,在其附近划分网格。
步骤五、依据所得最优分段点,重构截面曲线。如图1为离散数据重构结果,表1为具体误差数据。
表1带噪声的离散数据重构结果分析(单位:mm)
Claims (1)
1.一种用于三维模型重建的截面曲线重构方法,其特征在于,包括以下步骤:
步骤一、对于一组在三维重建中获取的三维模型有序截面曲线数据点列,根据该截面曲线数据点列的曲率,提取截面曲线数据点列的分段点,根据分段点将截面曲线数据点列分割成数据段,确定相应的特征,并确定理想分段点所在的区域,具体过程是:
假设对应于截面曲线数据I={p0,p1,…,pm}的曲率序列是K={K0,K1,…,Km},那么pi处的离散曲率Ki定义为通过三个相邻数据点pi-1,pi和pi+1的圆的曲率,
<mrow>
<msub>
<mi>K</mi>
<mi>i</mi>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mn>2</mn>
<msub>
<mi>&Delta;p</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<msub>
<mi>p</mi>
<mi>i</mi>
</msub>
<msub>
<mi>p</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
</mrow>
<mrow>
<msub>
<mi>l</mi>
<mi>i</mi>
</msub>
<msub>
<mi>l</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<msubsup>
<mi>l</mi>
<mi>i</mi>
<mo>&prime;</mo>
</msubsup>
</mrow>
</mfrac>
<mo>=</mo>
<mi>sgn</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>&Delta;p</mi>
<mrow>
<mi>i</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<msub>
<mi>p</mi>
<mi>i</mi>
</msub>
<msub>
<mi>p</mi>
<mrow>
<mi>i</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mfrac>
<mrow>
<msub>
<mi>sin&gamma;</mi>
<mi>i</mi>
</msub>
</mrow>
<msubsup>
<mi>l</mi>
<mi>i</mi>
<mo>&prime;</mo>
</msubsup>
</mfrac>
</mrow>
其中:i=1,2,…,m-1,li=|pi-pi-1|,li′=|pi+1-pi-1|;Δpi-1pipi+1是三角形的有向面积,设定pi-1,pi和pi+1为逆时针方向面积为正,反之为负;
然后根据提取的分段点将截面数据分割成每段只具有单一特征的数据段,确定相应的特征,并确定理论分段点所在的区域,理论分段点即为设计时确定的分段点;
步骤二、参考截面数据采样的密度,确定网格划分间距,将目标区域网格化,方法是:
假设判定理论切点P在数据点Q点和P′点之间,那么就将Q点作为网格的左上角,P′点为网格的右下角,以网格间距D1,将此区域网格化;
将所有的节点当作候选理论切点,同时更新直线特征及B样条特征参数,进行截面数据重构优化;
步骤三、将网格上所有的节点当作候选理论切点,同时更新直线特征及B样条特征参数,进行截面数据重构优化,并在当下候选节点中寻找最优分段点,过程包括:
步骤3.1,对于当前网格每个节点,先拟合直线,该直线与B样条曲线拼接的一端插值网格节点,再基于边界约束条件,即G1连续,拟合B样条曲线,该B样条曲线与直线拼接的一端插值网格节点,统计所有数据点到曲线的总误差和B样条曲线的控制顶点数,又,其中包括步骤:
3.1.1,过定点P(x0,y0)的直线重构,即,
给定(n+1)个数据点,设直线的解析表达式为l0x+l1y+l2=0,且参数l0,l1,l2满足规范化约束条件为用最小二乘的方法拟合直线,建立如下数学模型:
目标函数:
<mrow>
<mi>min</mi>
<mi> </mi>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>X</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msubsup>
<mi>d</mi>
<mi>i</mi>
<mn>2</mn>
</msubsup>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<mo>|</mo>
<msub>
<mi>l</mi>
<mn>0</mn>
</msub>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>l</mi>
<mn>1</mn>
</msub>
<msub>
<mi>y</mi>
<mi>i</mi>
</msub>
<mo>+</mo>
<msub>
<mi>l</mi>
<mn>2</mn>
</msub>
<msup>
<mo>|</mo>
<mn>2</mn>
</msup>
<mo>=</mo>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<msub>
<mi>l</mi>
<mn>0</mn>
</msub>
</mtd>
<mtd>
<msub>
<mi>l</mi>
<mn>1</mn>
</msub>
</mtd>
<mtd>
<msub>
<mi>l</mi>
<mn>2</mn>
</msub>
</mtd>
</mtr>
</mtable>
</mfenced>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<msubsup>
<mi>x</mi>
<mi>i</mi>
<mn>2</mn>
</msubsup>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
<msub>
<mi>y</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
<msub>
<mi>y</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<msubsup>
<mi>y</mi>
<mi>i</mi>
<mn>2</mn>
</msubsup>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<msub>
<mi>y</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mo>&Sigma;</mo>
<msub>
<mi>y</mi>
<mi>i</mi>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>n</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<msub>
<mi>l</mi>
<mn>0</mn>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>l</mi>
<mn>1</mn>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>l</mi>
<mn>2</mn>
</msub>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
<mrow>
<mi>s</mi>
<mo>.</mo>
<mi>t</mi>
<mo>.</mo>
<msubsup>
<mi>l</mi>
<mn>0</mn>
<mn>2</mn>
</msubsup>
<mo>+</mo>
<msubsup>
<mi>l</mi>
<mn>1</mn>
<mn>2</mn>
</msubsup>
<mo>-</mo>
<mn>1</mn>
<mo>=</mo>
<mn>0</mn>
</mrow>
其中,di是各个数据点到直线的有向代数距离;X=(l0 l1 l2)是直线的参数矩阵;
3.1.2,自由特征的重构,其中,
自由特征采用3次B样条曲线来表示,根据B样条曲线的定义,一条p次B样条曲线在某个误差限E内逼近一组二维截面数据点列预先计算出数据点的参数值和配置节点矢量U,
采用Les Piegl给出的控制点数由多到少的方案拟合B样条曲线,从一次B样条曲线开始,逐渐增加到p次,使得拟合后的曲线轻易捕获数据中的几何特征,让拟合后的曲线趋于自然参数化,降低B样条曲线自身拟合对分段点处的影响,
当采用直线与4重端节点的3次B样条曲线光滑拼接,与过定点P(x0,y0)的直线相对应,B样条曲线与直线相连接端也插值此点,并基于当前边界约束,建立如下B样条曲线重构模型:
目标函数:
<mrow>
<mi>min</mi>
<mi> </mi>
<mi>f</mi>
<mrow>
<mo>(</mo>
<mi>p</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mi>m</mi>
</munderover>
<msup>
<mrow>
<mo>&lsqb;</mo>
<msub>
<mi>Q</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<mi>C</mi>
<mrow>
<mo>(</mo>
<msub>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mi>m</mi>
</munderover>
<msup>
<mrow>
<mo>&lsqb;</mo>
<msub>
<mi>Q</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>N</mi>
<mrow>
<mi>j</mi>
<mo>,</mo>
<mn>3</mn>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mover>
<mi>u</mi>
<mo>~</mo>
</mover>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<msub>
<mi>P</mi>
<mi>i</mi>
</msub>
<mo>&rsqb;</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
<mrow>
<mi>s</mi>
<mo>.</mo>
<mi>t</mi>
<mo>.</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>d</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>P</mi>
<mi>j</mi>
</msub>
<mo>-</mo>
<msub>
<mi>L</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mn>0</mn>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>d</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>P</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mi>L</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mn>0</mn>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>,</mo>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
<mo>,</mo>
<mn>2</mn>
<mo>,</mo>
<mn>3</mn>
<mo>...</mo>
<mo>...</mo>
<mi>n</mi>
</mrow>
其中,P0、P1是B样条曲线的第一、第二个控制点;L是与B样条曲线相连接的直线;
步骤3.2,统计重构数据,综合分析统计数据,确定当前最优分段点,其中需要统计的数据包括两项:1、每个候选分段点对应下的B样条曲线拟合时需要的控制点数目;2、每个候选分段点对应下的所有数据点到拟合后曲线的逼近总误差;
最优分段点的选取原则是:先找寻最少控制点数和次最少控制点数,并分析网格区域每个候选分段点对应下的B样条曲线拟合时需要的控制点数目,拥有这两种最小控制点数的分布情况,如果次最少控制点数的分布区域较最少控制点数的分布区域大四倍以上,就只分析次最少控制点数分布区域每个候选分段点对应下的所有数据点到拟合后曲线的逼近总误差,否则,只分析最少控制点数所对应的逼近总误差;
将要找的控制点数之外区域所对应的逼近总误差赋一个较大的值,得到新的逼近误差统计图,然后直接分析最小逼近总误差的位置,找出最优分段点;
步骤四、如果当前网格节点的密度满足精度,则输出此最优分段点;否则,以当前最优分段点为中心,缩小目标区域,减小间距,划分网格,转步骤三,
其中所述的网格划分方法是:根据当前网格划分下最合适的候选理论切点,再以当前网格节点为中心,假设为P1节点,网格间距Di,在其附近划分网格;
步骤五、依据所得最优分段点,重构所述截面曲线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510341939.9A CN105160700B (zh) | 2015-06-18 | 2015-06-18 | 一种用于三维模型重建的截面曲线重构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510341939.9A CN105160700B (zh) | 2015-06-18 | 2015-06-18 | 一种用于三维模型重建的截面曲线重构方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105160700A CN105160700A (zh) | 2015-12-16 |
CN105160700B true CN105160700B (zh) | 2018-04-24 |
Family
ID=54801542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510341939.9A Expired - Fee Related CN105160700B (zh) | 2015-06-18 | 2015-06-18 | 一种用于三维模型重建的截面曲线重构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105160700B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177998A (zh) * | 2016-11-26 | 2021-07-27 | 荣耀终端有限公司 | 生成三维模型的方法和终端设备 |
CN107464287B (zh) * | 2017-08-14 | 2021-04-27 | 电子科技大学 | 基于多目标优化的曲面重构方法 |
CN109164372B (zh) * | 2018-07-25 | 2020-06-19 | 清华大学 | 集成电路元器件特性数据预测方法及装置 |
CN111060939B (zh) * | 2018-10-16 | 2022-02-08 | 千寻位置网络有限公司 | 虚拟格网密度的优化方法及装置、定位系统 |
CN110929455B (zh) * | 2019-10-14 | 2024-01-12 | 青岛数智船海科技有限公司 | 一种基于曲率分布的三维曲面自适应离散方法 |
CN111506988B (zh) * | 2020-04-01 | 2024-03-15 | 浙江理工大学 | 微小线段刀具路径c2连续压缩平滑方法 |
CN113706625B (zh) * | 2021-07-28 | 2024-06-18 | 昆山丘钛微电子科技股份有限公司 | 一种镜头畸变校正方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938008A (zh) * | 2012-11-21 | 2013-02-20 | 大连工业大学 | 一种人体建模中曲面拟合的进化算法 |
CN104318621A (zh) * | 2014-10-23 | 2015-01-28 | 中国船舶工业集团公司第七〇八研究所 | 基于非均匀有理b样条曲面插值的船体曲面重构方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060017720A1 (en) * | 2004-07-15 | 2006-01-26 | Li You F | System and method for 3D measurement and surface reconstruction |
-
2015
- 2015-06-18 CN CN201510341939.9A patent/CN105160700B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938008A (zh) * | 2012-11-21 | 2013-02-20 | 大连工业大学 | 一种人体建模中曲面拟合的进化算法 |
CN104318621A (zh) * | 2014-10-23 | 2015-01-28 | 中国船舶工业集团公司第七〇八研究所 | 基于非均匀有理b样条曲面插值的船体曲面重构方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105160700A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105160700B (zh) | 一种用于三维模型重建的截面曲线重构方法 | |
CN101582173B (zh) | 复杂地质构造块状模型构建方法 | |
CN102306396B (zh) | 一种三维实体模型表面有限元网格自动生成方法 | |
CN112257597B (zh) | 一种点云数据的语义分割方法 | |
CN101447076B (zh) | 一种web图像中感兴趣区域的分割方法 | |
CN108010103A (zh) | 复杂河道地形快速精细生成方法 | |
Jänicke et al. | Brushing of attribute clouds for the visualization of multivariate data | |
CN107767453B (zh) | 一种基于规则约束的建筑物lidar点云重构优化方法 | |
CN106780458B (zh) | 一种点云骨架提取方法及装置 | |
CN102867330B (zh) | 基于区域划分的空间复杂层位重构方法 | |
CN105844709A (zh) | 复杂河道地形流域洪水演进虚拟仿真的淹没线追踪方法 | |
CN104240300B (zh) | 基于分布式并行的大规模点云复杂空间曲面重构方法 | |
CN102831645A (zh) | 一种应用于海底地形的数字高程模型的建立方法 | |
CN107221028B (zh) | 一种基于地震解释数据的地质体闭合曲面三维重建方法 | |
CN104966317A (zh) | 一种基于矿体轮廓线的三维自动建模方法 | |
CN106844979B (zh) | 一种城市虚拟公园交互式组合设计系统及方法 | |
CN104732551A (zh) | 基于超像素和图割优化的水平集图像分割方法 | |
CN117708904B (zh) | 面向半导体数值模拟的混合单元网格生成方法 | |
CN104200528A (zh) | 基于矢量闭合的三维建模方法 | |
CN105302951A (zh) | 一种有限元网格曲面剖分方法 | |
CN106204748A (zh) | 一种基于特征的cad体网格模型编辑、优化算法 | |
CN116664758A (zh) | 一种基于断层面的四面体网格自适应分级细化方法 | |
CN108197368B (zh) | 飞行器复杂气动外形的几何约束及权函数简捷计算方法 | |
Hao et al. | Surface reconstruction based on CAD model driven priori templates | |
Wu et al. | MLSEB: Edge bundling using moving least squares approximation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180424 |