冲毕业第一周记录
秋招开始前卡在一个问题:漫天分布的星点如何筛选,使得筛选星均匀遍布在天球上,以便望远镜可以进行全天球的均匀校正。
一篇螺旋基准点的文章提供了思路,在各基准点周围找星点,但生成的基准点是固定的位置,就连初始点和旋转角都没有改变,我一直觉得不合适,我在想是否有点匹配方法才是更为合适的解决方法。
从一个好友那得到我想研究的问题可能是点云配准问题。比如经典的icp方法。
做了个pcl实验
处理了bug,跑起了实验
看了icp原理 https://zhuanlan.zhihu.com/p/107218828
跑起了icp经典实验,但是发现若初始位置偏差较大,配准效果较差,就像第一张图一样,所以作罢,寻找其他方法。
一方面是寻找更佳的配准方法,另一方面是用粒子群算法寻找全局最优。
更佳的配准方法看到一个博文 https://www.cnblogs.com/shushen/p/11676486.html 其中出现了很多配准方法 以及二维点云实验结果 让我很想试试其他方法
在搜索rpm方法的时候,找到了一个配准的宝藏网站
维基 介绍 https://en.wikipedia.org/wiki/Point-set_registration
做TPS-RPM实验研究不清楚,是进阶版的非刚性变换版本,基础rpm没整起来
Gold S, Rangarajan A, Lu C P, et al. New algorithms for 2D and 3D point matching: pose estimation and correspondence[J]. Pattern recognition, 1998, 31(8): 1019-1031. 基础的RPM
Chui H, Rangarajan A. A new point matching algorithm for non-rigid registration[J]. Computer Vision and Image Understanding, 2003, 89(2-3): 114-141. 进阶TPS-RPM
https://www.cise.ufl.edu/~anand/students/chui/tps-rpm.html TPS代码
二维点云配准算法 二维点云ICP https://blog.csdn.net/weixin_42156097/article/details/106379613
二维点云ICP的C++实现 https://blog.csdn.net/weixin_42156097/article/details/106827472
粒子群算法!看b站研究了点,做了个实验
有几篇类似文章,可以参考算法描述
《陈斯祺, 张海洋, 赵长明, 等. 基于天牛须改进粒子群算法的点云配准方法[J]. 激光技术, 2020, 44(6): 678-683.》
为了提高激光点云配准精度与配准速度,采用了基于天牛须算法改进的粒子群算法,以点云分布熵为寻优目 标,寻找最优空间变换矩阵的点云粗配准,为点云精配准提供良好的初始条件。 结果表明,点云分布熵较传统的均值平 方差评价方式有更快的计算速度,基于天牛须算法改进的粒子群算法具有全局搜索能力强、计算速度快等特点,与传统 点云粗配准方法相比,该方法配准速度提升了近 25% ;在点云数据量大的条件下,表现出较快的配准速度。 这一方法对 如何提高激光点云配准速度具有参考意义。
《马卫. 基于布谷鸟优化的三维点云配准算法[J]. 计算机应用与软件, 2020, 37(12): 216-223.》
《一种基于改进粒子群算法的点云配准方法》专利
《王尔申, 孙彩苗, 黄煜峰, 等. 改进粒子群优化的卫星导航选星算法[J]. 北京航空航天大学学报, 2021.》
最后总结,其实没必要研究复杂的配准方法。只需要结合以前看的螺旋基准点搜索点方法即可,再加以粒子群算法进行最优搜索即可。 可能最近点搜索可以结合icp 和 kd-tree方法(目标函数不是mse 应该是分布熵)。
上周周赛做完缓到今天周二……