程序目标:使用PolyFit方法,输入常规建筑物对象的点云文件,输出轮廓明显且闭合的三维模型(.obj格式的多边形网络)。
最初的三节录有视频,请自行观看,不再赘述。
程序链接
要点记录
技术路线:
照搬NanLiangLiang副教授[1]于2017年提出的PolyFit方法[2],在此基础上做了些改进和探索,整个程序可分为下述四步骤:
(1)预处理:几何中心归零;点云底面填充。
(2)结合平面检测的区域增长聚类。
(3)区域点云的平面拟合;平面相交细分;剪除冗余面。
(4)建立混合整数规划最小化问题,以边、面为变量构造能量函数;用求解器筛选出最优的面片组合;面片整合。
原作者对算法的视频介绍[3]见: https://www.youtube.com/watch?v=_0brfDFkIkc
图“面片 子对象之间存在间隙”来自参考[4],这一步是在它文章中的一小个环节,甚至感觉这并不在算法流程中,只是为了将各个聚类点云的边界可视化出来的一张图。
印象中它也是用PolyFit的假设和约束,在那基础上多加了三种约束条件,从而让候选面的数量更少。
技术路线图[5]显然来自PolyFit原文。
参考文献&引用
[1] https://3d.bk.tudelft.nl/liangliang/
[2] https://3d.bk.tudelft.nl/liangliang/publications/2017/polyfit/polyfit.html
[3] https://www.youtube.com/watch?v=_0brfDFkIkc
[4] Linfu X ,Han H ,Qing Z , et al. Combined Rule-Based and Hypothesis-Based Method for Building Model Reconstruction from Photogrammetric Point Clouds [J]. Remote Sensing, 2021, 13 (6): 1107-1107.
[5] Nan L , Wonka P .PolyFit: Polygonal Surface Reconstruction from Point Clouds[C]//International Conference on Computer Vision.IEEE, 2017.