首页 > 编程知识 正文

点云配准数据集,点云与像配准

时间:2023-05-03 11:25:57 阅读:188877 作者:1233

匹配,是寻找与一幅图相似的图像(不对寻找到的图像做矫正)。

配准,是寻找相似图像但是变形后的图像(需要做一些旋转之类的校正变换)。

融合,是多幅图像连接成一幅大图,视频集成中用的比较多。

1)匹配:

2)配准:

比如由于固定式激光雷达受测量方式的限制和被测物体集合形状的限制,固定的话一次只能扫描被测物体有限范围的点云数据(比如一个面??),这需要在多个视角下进行多次扫描(就是将激光雷达前后左右四个面都扫一下??对的),然而每个视角下得到点云数据都具有独立的坐标系,无法直接进行拼接(拼接就是将四个面的数据对齐起来形成完整的四个面??对的)。于是需要通过对每个视角下获取点云进行坐标转换,统一到全局坐标系下(因为采集的四个面分别是以激光雷达为原心的坐标系所产生的数据所以四个数据坐标系不统一,因此需要转换到同一个坐标系下??对的)。具体流程是通过一个点集(目标)中的每一个点与另一个点集(原始点集)中的对应点(就是四个面中每个面必须要包含要拼接在一起的面中的一个点吗?不是)的相互关系来实现点集与点集坐标系之间的转换,实现配准。

以下是师妹开朗的月饼跟bldy小Q的对话:

开朗的月饼:比如你的那个配准猪啊。你看前面是你以你的眼睛为坐标系原点建立的坐标系 所产生的猪前面的点云数据1;我看后边就是以我的眼睛为坐标系原点所产生的猪后面的点运数据2;(那么数据1和数据2也就是咱俩分别看的时候,看的位置范围必须有重合吗?必须要产生交集区域吗?)

小Q:其实配准就是确定多个点云的平移旋转矩阵,不是,必须要产生交集区域。

开朗的月饼:只有重合某一位置时才知道他俩是同一部位,这样同一部位不同坐标系就是数据值不同,才能求旋转平移矩阵吧?

小Q:每个点云,都是以采集相机为坐标原点,建立坐标系,具有相同特征,比较容易提取相同的特征点,比较好配准,但是一般很少有相同特征,所以就要去想其他的策略。

开朗的月饼:就是如果是看的数据没有重合场景的话也可以进行配准只是要寻求其他算法。

小Q:是的,是个大的课题。

开朗的月饼:上边你说的具有相同特征,比较容易提取相同的特征点,这个具有相同特征是怎么理解的?

小Q:重合点云。

开朗的月饼:就是同一个位置区域,两个不同视点都能观察到?

小Q:有可能在重合点云中多片点云都能提取到几对点,然后利用这几对点就可以求解变换矩阵,会有可能存在相同重合的点云部分。

开朗的月饼:这几个点对,比如p和q其实就是p在前边看的坐标系下产生的,q在后边看的坐标系下产生的,实际上p和q就是猪身上的同一个点?所以这样有这样对应点对的存在的话,直接找对应点对就可以求旋转变换矩阵了?这样p和q就称作相同特征?

小Q:嗯嗯,可以这么说。

开朗的月饼:那配准可不可以理解为其实就是在将不同视角视角下获取的场景(这些场景可能存在相同点对也可能不存在),将这些场景拼接合并为一个大的场景?

小Q:对,配准,也叫拼接,融合。

开朗的月饼:在有意义的情况下就是两个人同时站在一个房间但是两个人的视点不一样,这样因为你观察的是同一个房间,所以在配准拼接时两个数据可以拼接在一起(毕竟是同一个房间嘛,会有边界重合能够拼在一起的)。

开朗的月饼:那有没有极端的情况,比如你站在现在的位置看北京某一地点,然后我站在河南看河南某一地点,理论上这两个场景完全没有任何关系,我们能不能利用配准把这两个场景拼接啊?这样可以吗?不可以吧?他们的边界完全不一样啊?

小Q:那除非可以通过其他的方法计算变换矩阵。

开朗的月饼:就算你计算了旋转矩阵怎么让他们拼在一起啊,就比如两个完全不一样的齿轮怎么对合也不可能吻合在一起的啊?

小Q:你说的那种河南和北京,它只是一种特别极端的一种场景吧,然后如果知道了北京和河南的这两块点云的变换矩阵,你就可以把一个点云当做一个参考点云,也就是说就是比如说以你们河南吧,就是把你们河南的点云当成一个世界的一个统一坐标系,然后将北京的这块点云。通过把所有点通过一个进行一个平移和旋转,变换到河南的一个坐标系下,这两块点云就是就算是已经批准成功了,然后算他们虽然没有什么交界的地方,没有什么碰到一块儿的演员,但是他们已经属于同一个坐标系了,这就是配准。

开朗的月饼:哦就是不管你的两块点云场景区域1和2分别是在哪里?你只要将他们统一在同一个坐标系下?这个坐标系可以是场景1数据使用的坐标系也可以是场景2数据使用的坐标系,还可以是两个坐标系都不是你自己重新规定的坐标系位置?

小Q:比如说现在有河南和北京这两个地方,然后我想把重庆作为一个新的坐标系,你就可以,那你就需要旋转两次了,就是把把河南和北京分别用去求得的一个变换矩阵去旋转到重庆的坐标系下。

开朗的月饼:哦哦,整个配准的过程就是在寻找旋转平移矩阵的过程?

小Q:是的。

开朗的月饼:好,接下来就是如何通过各种算法来寻找旋转矩阵了。(以上对话只是比较白话的方式了解一下什么是配准,具体方法是个大的课题)

所以总结:

1、点云配准过程,就是求一个两个点云之间的旋转平移矩阵(rigid transform or euclidean transform 刚性变换或欧式变换),将源点云(source cloud)变换到目标点云(target cloud)相同的坐标系下。

可以表示为以下的方程:

其中就是target cloud与source cloud中的一对对应点。
而我们要求的就是其中的R与T旋转平移矩阵。
这里,我们并不知道两个点集中点的对应关系。这也就是配准的核心问题。

2、

2、配准分为粗配准与精配准两步。
粗配准就是再两个点云还差得十万八千里、完全不清楚两个点云的相对位置关系的情况下,找到一个这两个点云近似的旋转平移矩阵(不一定很精确,但是已经大概是对的了)。
精配准就是在已知一个旋转平移的初值的情况下(这个初值大概已经是正确的了),进一步计算得到更加精确的旋转平移矩阵。

这里从精配准开始讲起。
精配准的模式基本上已经固定为使用ICP算法及其各种变种。ICP算法由Besl and McKay 1992, Method for registration of 3-D shapes文章提出。文中提到的算法不仅仅考虑了点集与点集之间的配准,还有点集到模型、模型到模型的配准等。
简要介绍一下点集到点集ICP配准的算法:

具体步骤参看博客:https://www.zhihu.com/question/34170804

配准算法博客参考:https://blog.csdn.net/o180o/article/details/90034652

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。