发明名称 三维扫描点云中基于神经网络的标志点孔洞的填补方法
摘要 本发明提供一种能够保证填补的孔洞数据与周围数据连续并且点云特征表示更好的基于神经网络的三维扫描的点云孔洞填补方法,本发明具有方法简单的优点。本发明主要用于对三维扫描系统中由标志点产生的各种复杂曲面形状的孔洞进行填补的应用场合。利用本发明中的神经网络方法,可以得到填补孔洞的网络,随后根据孔洞边界点的密度,在孔洞区域取采样点,并根据点的曲率进一步调整补孔的点,达到对孔洞的光滑填充。
申请公布号 CN100561521C 申请公布日期 2009.11.18
申请号 CN200710132112.2 申请日期 2007.09.11
申请人 东南大学 发明人 达飞鹏;谷继兵;盖绍彦;朱正键;杨伟光
分类号 G06T11/00(2006.01)I;G06N3/02(2006.01)I 主分类号 G06T11/00(2006.01)I
代理机构 南京经纬专利商标代理有限公司 代理人 陆志斌
主权项 1、一种三维扫描点云中基于神经网络的标志点孔洞的填补方法,其特征在于:第一步:对于物体表面粘贴的标志点形成的孔洞,在三维扫描点云中,获取孔洞周围的样本点集时,根据标志点的三维坐标(x<sub>b</sub>,y<sub>b</sub>,z<sub>b</sub>),将以标志点为中心的立方体内的数据点作为补孔的样本点P<sub>s</sub>,其中s=0,1,…,t,t为样本点的个数,立方体的8个顶点的三维坐标分别是(x<sub>b</sub>-r,y<sub>b</sub>-r,z<sub>b</sub>-r),(x<sub>b</sub>-r,y<sub>b</sub>-r,z<sub>b</sub>+r),(x<sub>b</sub>-r,y<sub>b</sub>+r,z<sub>b</sub>-r),(x<sub>b</sub>-r,y<sub>b</sub>+r,z<sub>b</sub>+r),(x<sub>b</sub>+r,y<sub>b</sub>-r,z<sub>b</sub>-r),(x<sub>b</sub>+r,y<sub>b</sub>-r,z<sub>b</sub>+r),(x<sub>b</sub>+r,y<sub>b</sub>+r,z<sub>b</sub>-r),(x<sub>b</sub>+r,y<sub>b</sub>+r,z<sub>b</sub>+r),其中r是所取的域值,取标志点的半径的1.2~1.5倍;第二步:根据样本点数据P<sub>s</sub>,训练补孔的神经网络,用于填补孔洞的神经网络为三层的反向传播神经网络,其输入层为2个神经元,分别对应样本数据的x坐标值和y坐标值,隐层为m个神经元,输出层为1个神经元且对应样本数据的z坐标值,隐层和输出层的激励函数分别是双曲正切S形函数<maths num="0001"><![CDATA[<math><mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>-</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>+</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow></mfrac></mrow></math>]]></maths>和线性函数g(x)=x,并应用Levenberg-Marquardt算法训练反向传播网络,隐层神经元数目m选取20,通过训练得到补孔的神经网络net;第三步:在得到神经网络net后,沿x和y方向等步长选取重采样点,为了使残缺区域重采的密度与其周围数据保持一致,计算所有样本点P<sub>s</sub>,其中s=0,1,…,t,t为样本点的个数,在xoy平面投影的点与周围点的最小距离的平均距离作为重采样的步长L,重采样的范围是区间(x<sub>min</sub>,x<sub>max</sub>),(y<sub>min</sub>,y<sub>max</sub>),其中x<sub>min</sub>、x<sub>max</sub>是样本点的坐标x的最小值和最大值,y<sub>min</sub>、y<sub>max</sub>是样本点的坐标y的最小值和最大值,重采点的总数为<img file="C2007101321120002C2.GIF" wi="613" he="127" />其中<img file="C2007101321120002C3.GIF" wi="65" he="62" />表示向下取整,重采样点的x坐标值从x<sub>min</sub>开始以步长L等距增加直至<img file="C2007101321120002C4.GIF" wi="466" he="126" />重采样点的y坐标值从y<sub>min</sub>开始以步长L等距增加直至<img file="C2007101321120002C5.GIF" wi="473" he="127" />将重采样的点的x坐标值和y坐标值作为神经网络的输入,就可以得到重采样点z坐标值,进而得到所有重采样点;第四步:根据重采样点的曲率添加采样点,求取离散空间点曲率的时候,将所有重采样点投影到xoy平面,由第三步可知,所有投影点沿x和y方向以间距L,等间距分布,取所求点在xoy平面上的5×5邻域内的点作为邻域点,除去本身共24个点,作为所求点的k邻域,根据已有方法求出所有重采样点的曲率ρ<sub>w</sub>,其中w=0,1,…,n-1,其中n为重采样点的个数,根据给定的曲率域值ρ<sub>τ</sub>,ρ<sub>τ</sub>取0.1,取曲率大于ρ<sub>τ</sub>的重采样点,得到大曲率点,然后在大曲率点的四周增加采样点,采取的策略是,将所有重采样点投影到xoy平面上,假设有大曲率点在xoy平面上投影点的坐标是(x<sub>ρ</sub>,y<sub>ρ</sub>),查看它沿x和y方向相邻的四个投影点(x<sub>ρ</sub>-L,y<sub>ρ</sub>),(x<sub>ρ</sub>+L,y<sub>ρ</sub>),(x<sub>ρ</sub>,y<sub>ρ</sub>-L),(x<sub>ρ</sub>,y<sub>ρ</sub>+L),若其中也有大曲率点(x<sub>ρ</sub>+L,y<sub>ρ</sub>),则在大曲率点之间等距增加两个重采样点<img file="C2007101321120003C1.GIF" wi="581" he="107" />其余不是大曲率点的(x<sub>ρ</sub>-L,y<sub>ρ</sub>),(x<sub>ρ</sub>,y<sub>ρ</sub>-L),(x<sub>ρ</sub>,y<sub>ρ</sub>+L)方向上,则增加<img file="C2007101321120003C2.GIF" wi="264" he="106" /><img file="C2007101321120003C3.GIF" wi="526" he="108" />三点,针对所有大曲率点采用以上策略补点,最后将所有补的点的x和y坐标值输入第二步得到的神经网络net中,求的z坐标值,这样就得到了根据曲率增加的所有的重采样点,连同第三步中得到的重采样点,得到最终的重采样点;第五步:将最终的重采样点中与三维扫描点云中最近点的距离小于0.5d<sub>3D</sub>的重采样点舍弃,把剩余的重采样点加到三维扫描点云中,完成标志点孔洞的填补,其中d<sub>3D</sub>为三维扫描点云的密度,d<sub>3D</sub>设置为点云的各点与周围点的最小距离的平均值。
地址 210096江苏省南京市四牌楼2号