快速遥感图像融合系统的目的是什么?

  目前本人,计算机科班出身以至于研究生依旧走在这条路上,但是自己总感觉自己是计算机小白。编程吧,水平low到爆,搞学术吧,数学基础真的是差。也就想法还多一点,可想归想,做起来就没那么容易了。而且好在读论文不讨厌,就尝试着多读读论文吧。

  这是一篇硕士毕业论文,论文题目是《Fusion of LiDAR 3D Points Cloud with 2DDigital Camera Image》,论文很长共80页,但是吧,毕业论文嘛,都要为了凑字数,所以有些话比较啰嗦。写这篇博文的目的并不是为了翻译这篇论文,而是理清其中的思路。废话不多说啦,直接进入正题。

  论文主要从3个部分来阐述,分别是:

第一部分:距离传感器和照相机

1.    现在卫星、军事上所用雷达传3D lidar sensor,可是价格昂贵啊。相比之下,2D lidar sensor就便宜多了。他们两个的区别就是2D扫描出来只能是一个断面一个平面,3D扫描可以直接生成3D点云数据。该篇论文的作者首先做的就是采集数据,采集数据的实验设备既没用3D Lidar Sensor也没用omnidirectional software生成一副全景图。[后续会持续关注并学习全景图的方法]

   题外话:想玩3D或者SLAM,设备很贵啊,老板如果不是高端玩家,项目又不是很多的,肯定不会给买这么贵的设备的。只能浪费比较多的时间,放在采集和整理数据上。但又能怎么样呢?

2.在构成一个多尺度传感器雷达系统之后,别忘了我们最终的目的是为了实现3D雷达点云数据与2D图像之间的融合,当听到这个融合的词的时候,第一反应是需要有一个共同的目标,如果有了共同目标,那首先需要做的就是转化坐标。把spherical coordinates(球面坐标系)转为cartesian

3.刚才说到要有一个共同的目标,作者呢用的就是最常见的方法“棋盘标定法”。棋盘标定法中,需要我们知道内外参数以及畸变系数。假设我们知道了内部参数,那么外部参数和校准就会变得容易很多。所以作者估计也是为了省事并且校正camera所采集的数据。运用Camera Calibration App,找到内部参数、径向畸变和切向畸变。

第二部分:雷达和相机的外部校准(技术的关键所在)

将雷达数据和图像融合成3D模型的方法有很多,这篇文章中,作者考虑到方便性和两种数据融合的速度以及数据的存储量,采取了外部刚体校准的方法来匹配雷达和相机参数。

补充说明:可能从一开始,有些人看到这个论文题目就会想问为什么要把3D2D之间的融合。因为获取的3D点云中又距离和强度信息,相机获取的数据中,能获得颜色和纹理信息。

2.作者所想的方法是:首先先把3D点数据转化到一个2D点的平面中。说到这,肯定会问用的什么方法呢?作者用了Camera Projection Model

   在转化到2D点平面之后,提取棋盘的边缘和角点信息。提取完之后这些共同目标的边缘和角点信息之后,2D点和相机数据之间采用point-to-point(点对点)的方式。

例如,通过向现有坐标x和y添加虚拟的第三坐标w,从3D坐标(x,y,z)到2D坐标(u,v)表示的点,公式(如图二)。我们应用用于将3D激光雷达点云投射到定义的平面上的共线性方程。一旦我们画一条线将摄像机坐标的原始点与世界坐标中的点连接,可以在焦距平面中找到一个连接点。Z是光轴中心,投影到平面上的点就为图像中的坐标原点。(如图三),图四表示投影到2D平面的结果。

如图四 运用相机模型将3D点投影到2D点

interpolation(最近邻插值法),这也是图像放大的一种最基础的方法。我们需要将2D世界坐标中的点的强度值内插到2D图像坐标中的图像。定义网格后,我们使用LiDAR2D点的位置和强度值,并定位最近的数据值并分配相同的强度值。2D激光雷达点在其相对位置之间没有结构或顺序,我们也可以使用三角测量来内插散射数据。当使用均匀网格进行内插而不是使用三角测量时,将很容易找到世界坐标。

最后,获得LiDAR之间的灰度级强度图像,得到不同查询点的数据插值时,会产生不同的结果。

(3)运用外部校准的方法找到Lidar 3D 点云和Camera 2D 图像之间的关系。与此同时,作者运用RANSAC算法找到LiDAR强度图与全景图之间的关系。

  题外话:为什么要用RANSAC算法,我还没有用明白。如果有伙伴明白的话,欢迎讨论、留言哦~

 下面就这两种方法在文中的运用,具体来说说。

 假设一对对应点,是雷达强度图中的点,是全景图中的点,需要计算这对点之间的距离。只有当和基于变换矩阵的的投影之间的距离落在指定的阈值内时,一对点和才是一对对应点。

  总结一下,如图五所示,表示的是Lidar和camera之间的转换矩阵 T ,至少要选取4对点才能找到转换矩阵。所用公式为,这样就找到了转换矩阵T。

(如果这里有不明白的小伙伴们,可以查看另一外朋友写的 “”)

图六所示,表示的是为了将全景图拼接到强度图像,几何变换全景图是一个输入图像,并且通过将变换矩阵应用于全景图来生成。LiDAR强度图像是第二个输入图像。我们使用MATLAB

本期将介绍并演示OpenCV使用seamlessClone实现图像无缝融合效果。

seamlessClone是OpenCV3后添加的函数,使用此函数可以轻松将一幅图像中的指定目标复制后粘贴到另一幅图像中,并自然的融合。函数说明:

输入8位3通道图像(截取目标的大图)
输入8位3通道图像(待粘贴融合的目标背景图标)
输入8位1或3通道图像(目标掩码区域图像)
对象被放置在目标图像dst中的位置
输出图像,与dst具有相同大小和类型。

-MONOCHROME_TRANSFER: 不保留src图像的颜色细节,只有src图像的质地,颜色和目标图像一样,可以用来进行皮肤质地填充。

手动框选左图中的花灯,然后自动粘贴融合到右图背景中:

OpenCV图像处理——放花灯2效果更好

手动框选左图中的飞机,然后自动粘贴融合到右图背景中并动起来:

我们的目标是星辰大海——OpenCV无缝克隆应用

参数对比演示与实现步骤

对比发现第二种MIXED_CLONE参数效果融合最自然,不会覆盖背景图信息。

(1) 使用OpenCV鼠标事件绘制矩形截取Rect设置mask(不会的话看我B站的视频教程有详细讲解);

效果见开头效果视频,源码如下:

更多视觉图像处理相关内容,请关注公众号:OpenCV与AI深度学习。

我要回帖

更多关于 快速遥感图像融合系统 的文章

 

随机推荐