# about curvature

PCL库中似乎有专门计算曲率的

https://blog.csdn.net/m0_37957160/article/details/105792021

几何采样 曲率越大的地方点的数量越多

https://zhuanlan.zhihu.com/p/86044055

https://zhuanlan.zhihu.com/p/257694923

为什么点云的描述子不能像基于图片的描述子那么好使呢? 主要是因为没有了颜色纹理信息,只能利用空间曲率来进行计算. 而很多地方的曲率的相似度很高, 导致描述子的表达性和区分性明显降低. 这就跟重复纹理的场景中2D特征也不好使是差不多的。 要做:

1.计算每个点的曲率(prior的曲率是可以预先计算好的,不需要考虑效率)

2.根据曲率大小归一化后再进行可视化,观察哪些地方的曲率比较大

3.曲率匹配方法

4.曲率更新方法

有一个问题:虽然我们都说颜色信息不能用,因为实例之间的差异很大,但是对于跟踪问题来说,相当于已经具体到了某个实例上,所以说颜色信息其实是可以用的 但挑战在于:点云如何能够成功对应上

对齐第一帧后,将类先验反投影,然后,变形,变形要做到什么,曲率尽可能对应(考虑点云的密度对曲率计算的影响)

变形Deform要基于什么进行?首先要知道对应点,最起码大致,哪里对应哪里

如果是相机,则镜头是一个对应点,然后是八个角

如果是瓶子,则是瓶口

1.首先对每个类先验画一个曲率图出来看看,速度什么的之后再考虑

PCL提供了"OpenMP加速正态估计"来加速计算

https://pcl.readthedocs.io/projects/tutorials/en/master/normal_estimation.html#normal-estimation

# 计算的curvature可视化

1024 r=0.2

camera_dslr_len_norm

1024 r=0.2

1024,r=0.05

1024,r=0.1

1024,r=0.5

camera_dslr_wo_len_norm

1024 r=0.2

4096 r=0.2

4096 r=10.0

10nn

20nn

50nn

100nn

4096 r=0.1

r=0.05

r=0.01

1024 r=0.03

4096 r=0.1

4096 r=0.05

4096 r=0.1

4096 r=0.5

# 问题

1.点云是否可视导致的曲率计算问题

能否分割?成不同部分?例如

分割成两部分,分别计算曲率

也就是说引入一个对观测点云的分割网络

or

将先验模型投影后,再计算曲率做匹配

2.点云不同尺度concat后生成类先验是否可行? 不同尺度的曲率,采样后聚合成特征值 输入自编码器en-decode,是否可以表示?

3.不同尺度的采样范围(KNN的K,或者球查询的半径R)计算出的曲率,用绝对的还是相对的?如果绝对的,那么差异肯定很大,如果用相对的,会受到整体的影响(如果引入噪声肯定会有影响)

上面的图都有问题,红色球体代表RadiusSearch的范围大小。 当半径更大的时候,杯子的内层和外层都会被包含在内,这是不对的,因为内层的曲率只应该与内层有关系,外层的只应该与外层有关系

r=0.007

采用相对表示的话,如下图,部分值特别大的点会导致其他点之间的差异不明显

可以发现,K=20,30的情况下,从远处观察更符合人对相机的认识

可以发现,和桌面接触的部分,曲率往往要大(黄色) 而且,边缘并不一定是曲率大的点