基于移动最小二乘曲面的点云对齐(二) —— 优化点云对齐迭代点

本文重点

上一篇博客介绍了基本隐式曲面的生成,以及点云对齐的基本操作,但是发现精度达不到理想要求,本文通过优化迭代点和步长设置优化点云对齐到隐式曲面的精度。

一、优化迭代点

接上文图

图1 点P向法截线在g0处的曲率圆做投影

其中交点Q1(X,Y,Z)和Q2(m,n,l)可以通过下面的方程解得

$\left\{ {\begin{array}{*{20}{c}}{{{\left( {X - {O_{x0}}} \right)}^2} + {{\left( {Y - {O_{y0}}} \right)}^2} + {{\left( {Z - {O_{z0}}} \right)}^2} = \frac{1}{{k_0^2}}}\\{\left[ {{n_0},P{g_0},\left( {X - {x_0},Y - {y_0},Z - {z_0}} \right)} \right] = 0}\\{\frac{{X - {O_{x0}}}}{{m - {O_{x0}}}} = \frac{{Y - {O_{y0}}}}{{n - {O_{y0}}}} = \frac{{Z - {O_{z0}}}}{{l - {O_{z0}}}}}\end{array}} \right.$
(公式8)

如图5所示,设直线PO与法截线的交点为M,可以将法截线上的曲线g0M,曲率圆上的小圆弧或者弦长||g0Q||作为步长Δs。然而计算隐式曲线段g0M或者小圆弧的长度比较麻烦,所以一般采用弦长||g0Q||作为步长Δs,即

|Δs| = ||g0Q||    (公式9)

这里规定步长的符号始终与g0P·t0(单位切向量)的符号相同,即

signal(Δs) = signal{ ( P-[x0, y0 ,z0 ] )·t0}   (公式10)

随着g0的变化步长Δs也跟着变化,同时公式9的步长Δs满足|Δs|<θ/k0,这里θ为Og0OQ的夹角并且满足0<θ<π/2,k0为法截线C0在g0处的曲率,由公式8解得。

然而若直接将公式9中的步长Δs代入公式8中计算,得到的g点往往偏离法截线C0较远,即|F(g)|较大,考虑到二阶泰勒逼近方法的收敛条件以及保证计算出来的g偏离法截线C0较小,因此需要控制步长|Δs|≤α(通常0<α<1), α的值可以依据实际情况取定,α越小截断误差就越小。当|Δs|>α时,进行如下处理:令,N为正整数,考虑到曲率圆的小圆弧与弦长||g0Q||满足下列关系小圆弧>||g0Q||.做放大处理$\frac{{\left\| {{g_{0Q}}} \right\|}}{N} < \frac{\theta }{{{k_0}N}} < \frac{\pi }{{2{k_0}N}} \le \alpha $,即${\rm{N}} \ge \frac{\pi }{{2{k_0}N}}$,取

${\rm{N}} = \left| {\frac{\pi }{{2{k_0}N}}} \right|$

综上所述,步长

$\left| {\Delta {\rm{s}}} \right| = \left\{ {\begin{array}{*{20}{c}}{\left\| {{g_0}Q} \right\|\;,if\left\| {{g_0}Q} \right\| \le \alpha }\\{\frac{{\left\| {{g_0}Q} \right\|}}{N},else}\end{array}} \right.$
 (公式11)

同时Δs符号满足公式10.

显然随着点g不断逼近目标点H,由公式11所表示的步长Δs不断趋于0.当步长Δs小于某一给定的微小量Ls时(Ls通常取10-6),认为计算出来的点即为所要求的目标点H。然而将公式11中的步长Δs代入公式8得到的点g虽然不会偏离法截面S0,但可能会偏离隐式曲面S较远,即|F(g)|>Le(Le为容许误差,通常取10-6),因此需要对g进行误差矫正。

二、基于梯度的误差矫正方法

由公式8可知,点g位于法截面S0上,但是可能会偏离法截线C0较远,即会偏离隐式曲面S较远,|F(g)|=eF>Le,由公式8有g=g0+Δg,其中Δg=t0Δs+ (c0Δs2)1/2为迭代增矢量。

矫正误差的基本思想是:利用矫正矢量δg=[ δx  δy  δz ]来修正点g,g’ = g + δg,gg’分别为矫正前后的迭代值,并且使得|F(g’)|<Le。由于点g并未偏离法截面S0,即|G(g)|=0,矫正之后的点g’仍然需要满足|G(g’)|=0,因此矫正矢量δg位于法截面S0内,同时矫正矢量δg与迭代增矢量Δg垂直并指向隐式曲面S,故有

$\left\{ {\begin{array}{*{20}{c}}{\Delta F \cdot \delta g = - {{\rm{e}}_F}}\\{\Delta G \cdot \delta g = 0}\\{\Delta g \cdot \delta g = 0}\end{array}} \right.$   (方程4)

求解方程4得到

δg = [ -eF  0  0 ] [ ΔFT  ΔGT  ΔgT]-1

故改进后的迭代点为

g’ = g +  [ -eF  0  0 ] [ΔFT  ΔGT  ΔgT]-1   (公式12)

将公式8代入公式12得到

g’ = g + t0Δs + c0Δs2(1/2) + [ -eF  0  0 ] [ ΔFT  ΔGT  ΔgT]-1    (公式13)

三、 算法实现

点到隐式曲面的正交投影算法

Step1. 给出初始点g0 = [x0,y0,z0]以及步长上限α.

Step2. 构造g0点处的法截面S0和法截线C0,并求出法截线C0g0点处的单位切向量t0、曲率向量c0,以及曲率k0,同时求出垂足点Q以及步长Δs.

Step3. 按照公式(公式8)计算出点g.

Step4. 判断|F(g)|是否大于Le,如果|F(g)|>Le,对点g进行误差矫正,使得矫正后的点g’满足|F(g’)|<Le,并令gnew = g’,否则,令gnew = g.

Step5. 判断gnew是否为所要求的目标点H,即判断||是否小于Ls,如果||≤Ls,令H = gnew,执行下一步,否则,令g0 = gnew,转Step2.

Step6. 输出H的值,算法结束。

四、点到MLS曲面最近点计算

(隐式曲面的MLS情况,与上述算法基本相同,如有看不懂可以看隐式曲面求解正交投影部分)

如图4.1所示,一点云数据P定义的MLS曲面为S(x),点q到S(x)的正交投影计算过程如下:

Step1: 利用k邻域经典计算方法(即ANN算法)从P中计算距点q的邻域点集{Pi},并计算在点q处的加权法矢量nq并令i = 0,ai = nq

Step2: 计算从q出发沿ai的直线与S(x)的交点xi

Step3: 利用公式${\rm{n}}\left( {{{\rm{x}}_i}} \right) = \;\frac{{\mathop \sum \nolimits_{j = 1}^k {n_{{p_j}}}{v_j}}}{{\left\| {\mathop \sum \nolimits_{j = 1}^k {n_{{p_j}}}{v_j}} \right\|}}$(公式2,请先看博客(1)再来此,以下未出现公式相同出处)计算交点xi处的加权法矢量nxi,并判断方向矢量ainxi是否重合(判断|ai x nxi|是否小于阈值ε,ε可参考几何建模核心如ACIS,一般取1.0x10-6),若|ai x nxi|≥ε,即ainxi不重合,继续下面正交投影点计算过程;

Step4: 由ainxi可构成法截面Plqxi,计算Plqxi与S(x)的法截线在点xi处的曲率圆圆心ci

Step5: 令i = i+1,取曲率圆中心ci与点q的连线方向,即ai = qci/||qci||,继续3-5步直到|ai x nxi|<ε,即ainxi重合。

图4.1



4.1 MLS曲面相关参数计算



        法截面(S(x)计算): 对于隐式曲面MLS曲面S(x)(曲面方程为g(x,y,z)),在点xi处的法矢量nxi可由下式计算:

\[{{\rm{n}}_{{\rm{xi}}}} = {\left. {\frac{{g\left( {x,y,z} \right)}}{{\left\| {g\left( {x,y,z} \right)} \right\|}}} \right|_{x = {x_i}}}\]    (公式4.1)

式中,g(x,y,z)为MLS曲面的梯度,其值为

${\rm{g}}\left( {\rm{x}} \right) = {\left[ {\begin{array}{*{20}{c}}{\frac{{\partial g\left( {x,y,z} \right)}}{{\partial x}}}&{\frac{{\partial g\left( {x,y,z} \right)}}{{\partial y}}}&{\frac{{\partial g\left( {x,y,z} \right)}}{{\partial z}}}\end{array}} \right]^T}$   (公式4.2)

令法矢量nxi,坐标点xi及点q所定义的法截面Plqxi方程为F(x),则F(x)可定义为

${\rm{F}}\left( {\bf{x}} \right):\left( {{\rm{q}} - {{\rm{x}}_{\rm{i}}}} \right) \times {{\rm{n}}_{{\rm{xi}}}} \cdot \left( {{\rm{x}} - {{\rm{x}}_{\rm{i}}}} \right) = 0$   (公式4.3)

由上式可知

${\rm{F}}\left( {\rm{x}} \right) = \left( {{\rm{q}} - {{\rm{x}}_{\rm{i}}}} \right) \times {{\rm{n}}_{{\rm{xi}}}}$

${\left[ {{\rm{F}}\left( {\rm{x}} \right)} \right]^T} \cdot {n_{xi}} = 0$

${\left[ {{\rm{F}}\left( {\rm{x}} \right)} \right]^T} \cdot g\left( x \right) = 0$

当(q-xi)/ ||q-xi||趋近于nxi,直线qxinxi趋于重合,xi趋近于q在S(x)上的投影点。

点xi处曲率圆中心ci计算 : 由法截面及MLS曲面数学定义,法截面Plqxi与MLS曲面S(x)的法截线可表示为

$\left\{ {\begin{array}{*{20}{c}}{F\left( {\bf{x}} \right) = 0}\\{g\left( {x,y,z} \right) = 0}\end{array}} \right.$   (公式4.4)

令g(x,y,z) = g(x),设弧长参数为r,用公式4.4关于弧长参数求导,可得该曲线的一阶导数为

$\left\{ {\begin{array}{*{20}{c}}{{{\left[ {F\left( {\bf{x}} \right)} \right]}^T}\frac{{\partial x}}{{\partial r}} = 0}\\{{{\left[ {g\left( x \right)} \right]}^T}\frac{{\partial x}}{{\partial r}} = 0}\end{array}} \right.$    (公式4.5)

由上式可知,矢量$\frac{{\partial x}}{{\partial r}}$分别与梯度矢量F(x)g(x)垂直,且为单位矢量,因此$\frac{{\partial x}}{{\partial r}}$可由下式得到:

$\frac{{\partial x}}{{\partial r}} = \frac{{F\left( {\rm{x}} \right) \times {\rm{g}}\left( {\rm{x}} \right)}}{{\left\| {F\left( {\rm{x}} \right) \times {\rm{g}}\left( {\rm{x}} \right)} \right\|}}$   (公式4.6)

五、点MLS曲面ICP多视数据对齐

输入工件多视点云数据Q1,Q2,…,Qm,在Imageware等商业软件中交互变换点云,可实现Q2,…,Qm到Q1定义坐标系下的粗对齐,得到粗对齐后的点云Q2’,…,Qm’.以上述点到MLS曲面最近点计算为基础,通过以下步骤即可实现为Q2’,…,Qm’到Q1基于点到MLS曲面ICP对齐。

Step1: 基于点到MLS曲面最近点计算方法,计算Q2’中每一点到MLS曲面(由Q1定义)的最近点,形成对应点对,令i=2,利用ICP计算得到变换矩阵Ti,并变换点云Qi’得到变换后点云Qi”;

Step2: 以合并的点云[Q1,Q2”,…,Qi”]为对齐目标点云,利用点到MLS曲面最近点的计算方法,计算点云Qi+1’到[Q1,Q2”,…,Qi”]定义的MLS曲面的对应点对,进而利用ICP计算变换矩阵Ti+1,并用Ti+1变换Qi+1’得到Qi+1”;

Step3: 令i= i+1,重复步骤2直至实现其他所有点云到合并点云MLS曲面的对齐。

【 结束 】

原文地址:https://www.cnblogs.com/fujj/p/9678646.html

时间: 2024-10-21 04:16:34

基于移动最小二乘曲面的点云对齐(二) —— 优化点云对齐迭代点的相关文章

【阿里云产品公测】云引擎ACE新手实战基于Wordpress

[阿里云产品公测]云引擎ACE新手实战基于Wordpress 作者:阿里云用户imnpc ACE(Aliyun Cloud Engine) 是一款弹性.分布式的应用托管环境,支持Java.php多种语言环境.帮助开发者快速开发和部署服务端应用程序,并且简化了系统维护工作.搭载了丰富的分布式扩展服务,为应用程序提供强大助力. ACE(Aliyun Cloud Engine)目前最大的优点就是免费,预计以后也会照着SAE JAE等同类服务提供低廉的收费政策. 一般来说我们用于云平台的很多人都是简单安

混合云存储组合拳:基于云存储网关与混合云备份的OSS数据备份方案

前言阿里云对象存储(OSS)用户众多.很多用户因为业务或者合规性需求,需要对OSS内的数据做备份,无论是线上备份,还是线下备份.用户可以选择使用OSS的开放API,按照业务需求,做数据的备份,也可以选择OSS已有的服务进行数据备份,比如OSS的跨域复制.但是,前一种方式,存在易用性和备份效率问题:后一种方式,只是将数据存双份或者多份,无法有效规避原始数据出问题后,被复制的那份数据也出问题的风险.本文介绍的基于云存储网关和混合云备份的OSS数据备份方案,不仅能保证OSS数据按策略的多版本备份,而且

基于Ubuntu 搭建 WordPress 个人博客 - 开发者实验室 - 腾讯云

1.准备 LAMP 环境 安装 Apache2 在终端输入该命令 ,使用 apt-get 安装 Apache2: sudo apt-get install apache2 -y 安装好后,您可以通过访问实验室IP地址 http://123.207.40.184 查看到 "it works" 界面,说明 apache2 安装成功. 安装 PHP 组件 apt-get 里有 php7.0 ,所以我们可以直接安装 php7.0 : sudo apt-get install php7.0 -y

直戳阿里云痛处?大共享云服务平台

如果说从云计算行业角度来看阿里云,那么阿里云目前在国内的根基是无法被轻易震撼.在过去的几年当中,阿里云一直都以地毯式轰炸整个广告行业,可谓 是无所 不用其极.阿里云在最近一年多的时间里表现非凡,后起之秀IaaS项目,大共享以一个无需付费的云平台解决用户问题,并得到了各个商家的高度关注.那么大 共享又有什么能力实现这一目标? 从软件定义上讲,大共享云服务器并不像是只打免费旗号而卖云产品的商家,而是从严格意义上以无成本创业解决用户实际问题.从阿里云提供"0元拥抱云 服务器"再看大共享提供的

云化应用还是应用云化?--【软件和信息服务】2015.05

自从2008年云计算开始火热,到今年已经7年有余,云计算也开始进入"7年之痒"的关键时期.有些人已经厌烦了云计算,觉得没有新意,开始恋上了大数据,似乎只有大数据才能挽救人类一样.其实云计算并没有"云"老珠黄,当我们静下心来慢慢品味一下,才能更为成熟的面对云计算,懂得云计算给我们带来的绝对不是激情过后的乏味.我们今天不妨来细细思量一下应用和云计算的关系. 回顾一下几大云计算的榜样,包括:SalesForce.Google.AWS.阿里云等,就不难发现云计算并非出身贵族

4核4G云服务免费,快云推云4计划

近日,快云推出"云4计划",名下未购买过快云产品的企业用户均可以获得4核4G4M快云服务器30天的免费时长. 这是快云在新站上线.快云+走进园区后,首次针对企业用户提供免费服务,此举不仅是快云对用户让利,也标识着更多企业级用户可以借此活动完成首次"企业上云"体验,必将推动云计算在国内的发展和落地. 云4计划,"企业上云"更简单 本次"云4计划"提供的云服务器配置为4核CPU.4G内存.4M独享.40G数据盘(SSD).底层基础

使用Cloudsim实现基于多维QoS的资源调度算法之二:实现基于多维QoS的资源调度算法

1.Cloudsim体系结构及核心类 CloudSim是一款云计算仿真软件,其由澳大利亚墨尔本大学网格实验室和Gridbus项目于2009年推出,它是一个函数库,可在Windows和Linux系统上跨平台运行,CloudSim的体系结构主要分为四个层次,如图1所示: 图1 Cloudsim 体系结构 Cloudsim仿真层为云计算的虚拟数据中心环境的配置和仿真提供支持,包括虚拟机.内存.容量及带宽的接口,该层用于主机分配到虚拟机的策略研究,并通过扩展核心的虚拟机调度函数实现. Cloudsim最

什么是云虚拟主机以及和云服务器之间的区别

什么是云虚拟主机以及和云服务器之间的区别 虚拟主机我们都知道是什么,云主机我们也知道这个概念,云虚拟主机是什么样的产品,它和虚拟主机.云主机有什么不一样的呢?下面我们关于这两个问题简单的为大家介绍一下. 导语:虚拟主机我们都知道是什么,云主机我们也知道这个概念,云虚拟主机是什么样的产品,它和虚拟主机.云主机有什么不一样的呢?下面我们关于这两个问题简单的为大家介绍一下. 首先我们来看一下什么是云虚拟主机 云虚拟主机是一款虚拟主机产品,它所具备的要求比传统的虚拟主机更高,不管是在性能还是稳定和价格方

【云快讯】《Salesforce云服务“改头换面”,并将推出新的金融服务云》

2015-08-27 张晓东 东方云洞察 点击上面的链接文字,可以快速关注"东方云洞察"公众号 Salesforce.com的外观和界面即将进行重大升级,新的界面对用户原有的使用习惯来说这是一个较大的改变. Salesforce高级副总裁Moxley介绍说:Salesforce已经设计了一个新用户界面,我们称为"Lighting"代表了极速用户体验的意思,新界面为企业用户定制自己的Salesforce的基础工作流程工作提供了更多的灵活性和方便的功能. 新的界面设计将