输入:点云分割块{Sj}∈S,局部匹配候选集{Pi→i∈P},角度集θ 输出:正则集P*={Pi→j}, 模型之间的关系集{< Pi→j , Pi→k , rels >} | 1:P0:={Pj→j}∈P // (1) 初始化 2:P*:=? // 候选集的初始集合 3:θ:=areamax/areaminρ // 估计面积阈值 4:while P*≠ ? do // (2) 候选集生成 5: Pθ:={Pj→j,s.t.?j area(Pj→j) > θ}∈P0 // 选择大于阈值的初始候选集 6: P0:=P0\Pθ 7: :=Pθ∪Enrich(Pθ , P*)∪Enrich(Pθ , Pθ ) // 扩充候选集 8: P*:=P*∪{P*?} //最小化能量方程 // (3) 选择正则集 if no break in enrich then decrease area threshold θ = θ / 2 // (4) 迭代 9:return P* 10:function Enrich(P, Pfixed , ||max=2300) 11:for each pair < Pj→j ∈ P , Pk→l ∈ Pfixed > do 12: if min r (|θr - ∠(ni,nk)|) < r 13: then :=∪{Pk→j} // 生成新的候选集 14: if || > ||max then break // 限制变量的数目 15:return // 候选集扩充结束 |
|