发明名称 一种用于三维模型重建的截面曲线重构方法
摘要 本发明公开了一种用于三维模型重建的截面曲线重构方法,根据离散数据的曲率信息,对数据点进行分段,确定相应的特征,并确定理想分段点所在的区域;参考数据采样的密度,确定合理的网格划分间距,将目标区域网格化;对于当前网格每个节点,先拟合直线,再基于边界约束条件拟合B样条曲线,统计所有数据点到曲线的总误差和B样条曲线的控制顶点数。综合分析统计的两组数据,确定当前最优分段点。如果当前网格节点的密度满足精度,则输出此最优分段点;否则,以当前最优分段点为中心,缩小目标区域,减小间距,划分网格,依据当前最优分段点为,重构截面曲线。
申请公布号 CN105160700A 申请公布日期 2015.12.16
申请号 CN201510341939.9 申请日期 2015.06.18
申请人 上海工程技术大学 发明人 张旭;刘栋;章海波
分类号 G06T17/00(2006.01)I 主分类号 G06T17/00(2006.01)I
代理机构 上海伯瑞杰知识产权代理有限公司 31227 代理人 王一琦
主权项 一种用于三维模型重建的截面曲线重构方法,其特征在于,包括以下步骤:步骤一、对于一组在三维重建中获取的三维模型有序截面曲线数据点列,根据该截面曲线数据点列的曲率,提取截面曲线数据点列的分段点,根据分段点将截面曲线数据点列分割成数据段,确定相应的特征,并确定理想分段点所在的区域,具体过程是:假设对应于截面曲线数据I={p<sub>0</sub>,p<sub>1</sub>,…,p<sub>m</sub>}的曲率序列是K={K<sub>0</sub>,K<sub>1</sub>,…,K<sub>m</sub>},那么p<sub>i</sub>处的离散曲率K<sub>i</sub>定义为通过三个相邻数据点p<sub>i‑1</sub>,p<sub>i</sub>和p<sub>i+1</sub>的圆的曲率,<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>K</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mn>2</mn><mi>&Delta;</mi><msub><mi>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><mi>sin</mi><msub><mi>&gamma;</mi><mi>i</mi></msub></mrow><msubsup><mi>l</mi><mi>i</mi><mo>&prime;</mo></msubsup></mfrac></mrow>]]></math><img file="FDA0000741596750000011.GIF" wi="730" he="126" /></maths>其中:i=1,2,…,m‑1,l<sub>i</sub>=|p<sub>i</sub>‑p<sub>i‑1</sub>|,l′<sub>i</sub>=|p<sub>i+1</sub>‑p<sub>i‑1</sub>|;Δp<sub>i‑1</sub>p<sub>i</sub>p<sub>i+1</sub>是三角形的有向面积,设定p<sub>i‑1</sub>,p<sub>i</sub>和p<sub>i+1</sub>为逆时针方向面积为正,反之为负;然后根据提取的分段点将截面数据分割成每段只具有单一特征的数据段,确定相应的特征,并确定理论分段点所在的区域,理论分段点即为设计时确定的分段点;步骤二、参考截面数据采样的密度,确定网格划分间距,将目标区域网格化,方法是:假设判定理论切点P在数据点Q点和P′点之间,那么就将Q点作为网格的左上角,P′点为网格的右下角,以网格间距D<sup>1</sup>,将此区域网格化;将所有的节点当作候选理论切点,同时更新直线特征及B样条特征参数,进行截面数据重构优化;步骤三、将网格上所有的节点当作候选理论切点,同时更新直线特征及B样条特征参数,进行截面数据重构优化,并在当下候选节点中寻找最优分段点,过程包括:步骤3.1,对于当前网格每个节点,先拟合直线,该直线与B样条曲线拼接的一端插值网格节点,再基于边界约束条件,即G<sup>1</sup>连续,拟合B样条曲线,该B样条曲线与直线拼接的一端插值网格节点,统计所有数据点到曲线的总误差和B样条曲线的控制顶点数,又,其中包括步骤:3.1.1,过定点P(x<sub>0</sub>,y<sub>0</sub>)的直线重构,即,给定(n+1)个数据点,设直线的解析表达式为l<sub>0</sub>x+l<sub>1</sub>y+l<sub>2</sub>=0,且参数l<sub>0</sub>,l<sub>1</sub>,l<sub>2</sub>满足规范化约束条件为<img file="FDA0000741596750000021.GIF" wi="276" he="78" />用最小二乘的方法拟合直线,建立如下数学模型:目标函数:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>min f</mi><mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mi>n</mi></munderover><msubsup><mi>d</mi><mi>i</mi><mn>2</mn></msubsup><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mi>n</mi></munderover><msup><mrow><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><mo>|</mo></mrow><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><mi>&Sigma;</mi><msubsup><mi>x</mi><mi>i</mi><mn>2</mn></msubsup></mtd><mtd><msub><mi>&Sigma;x</mi><mi>i</mi></msub><msub><mi>y</mi><mi>i</mi></msub></mtd><mtd><msub><mi>&Sigma;x</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mi>&Sigma;x</mi><mi>i</mi></msub><msub><mi>y</mi><mi>i</mi></msub></mtd><mtd><msubsup><mi>&Sigma;y</mi><mi>i</mi><mn>2</mn></msubsup></mtd><mtd><msub><mi>&Sigma;y</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mi>&Sigma;x</mi><mi>i</mi></msub></mtd><mtd><msub><mi>&Sigma;y</mi><mi>i</mi></msub></mtd><mtd><mi>n</mi><mo>+</mo><mn>1</mn></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>]]></math><img file="FDA0000741596750000022.GIF" wi="1493" he="257" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<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>]]></math><img file="FDA0000741596750000023.GIF" wi="310" he="77" /></maths>其中,d<sub>i</sub>是各个数据点到直线的有向代数距离;X=(l<sub>0</sub> l<sub>1</sub> l<sub>2</sub>)是直线的参数矩阵;3.1.2,自由特征的重构,其中,自由特征采用3次B样条曲线来表示,根据B样条曲线的定义,一条p次B样条曲线在某个误差限E内逼近一组二维截面数据点列<img file="FDA0000741596750000024.GIF" wi="344" he="84" />预先计算出数据点的参数值<img file="FDA0000741596750000025.GIF" wi="51" he="67" />和配置节点矢量U,采用Les Piegl给出的控制点数由多到少的方案拟合B样条曲线,从一次B样条曲线开始,逐渐增加到p次,使得拟合后的曲线轻易捕获数据中的几何特征,让拟合后的曲线趋于自然参数化,降低B样条曲线自身拟合对分段点处的影响,当采用直线与4重端节点的3次B样条曲线光滑拼接,与过定点P(x<sub>0</sub>,y<sub>0</sub>)的直线相对应,B样条曲线与直线相连接端也插值此点,并基于当前边界约束,建立如下B样条曲线重构模型:目标函数:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>min f</mi><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mi>m</mi></munderover><msup><mrow><mo>[</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>]</mo></mrow><mn>2</mn></msup><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mi>m</mi></munderover><msup><mrow><mo>[</mo><msub><mi>Q</mi><mi>i</mi></msub><mo>-</mo><munderover><mi>&Sigma;</mi><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>]</mo></mrow><mn>2</mn></msup></mrow>]]></math><img file="FDA0000741596750000026.GIF" wi="989" he="161" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>s</mi><mo>.</mo><mi>t</mi><mfenced open='{' close=''><mtable><mtr><mtd><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></mtd></mtr><mtr><mtd><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></mtd></mtr></mtable></mfenced><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mi>n</mi><mo>.</mo></mrow>]]></math><img file="FDA0000741596750000027.GIF" wi="521" he="149" /></maths>其中,P<sub>0</sub>、P<sub>1</sub>是B样条曲线的第一、第二个控制点;L是与B样条曲线相连接的直线;步骤3.2,统计重构数据,综合分析统计数据,确定当前最优分段点,其中需要统计的数据包括两项:1、每个候选分段点对应下的B样条曲线拟合时需要的控制点数目;2、每个候选分段点对应下的所有数据点到拟合后曲线的逼近总误差;最优分段点的选取原则是:先找寻最少控制点数和次最少控制点数,并分析网格区域每个候选分段点对应下的B样条曲线拟合时需要的控制点数目,拥有这两种最小控制点数的分布情况,如果次最少控制点数的分布区域较最少控制点数的分布区域大四倍以上,就只分析次最少控制点数分布区域每个候选分段点对应下的所有数据点到拟合后曲线的逼近总误差,否则,只分析最少控制点数所对应的逼近总误差;将要找的控制点数之外区域所对应的逼近总误差赋一个较大的值,得到新的逼近误差统计图,然后直接分析最小逼近总误差的位置,找出最优分段点。步骤四、如果当前网格节点的密度满足精度,则输出此最优分段点;否则,以当前最优分段点为中心,缩小目标区域,减小间距,划分网格,转步骤三,其中所述的网格划分方法是:根据当前网格划分下最合适的候选理论切点,再以当前网格节点为中心,假设为P<sup>1</sup>节点,网格间距D<sup>i</sup>,在其附近划分网格;步骤五、依据所得最优分段点,重构所述截面曲线。
地址 201620 上海市松江区龙腾路333号