前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KITTI数据集应用指南1:坐标转换

KITTI数据集应用指南1:坐标转换

作者头像
点云乐课堂
发布2020-05-18 15:38:46
2.1K0
发布2020-05-18 15:38:46
举报
文章被收录于专栏:3D点云深度学习

大家好。

KITTI数据集是自动驾驶领域最知名的数据集之一。可以用来从事立体图像、光流估计、三维检测、三维跟踪等方面的研究。

今天我们对KITTI数据集进行介绍,主要侧重目标检测部分,讲讲数据使用过程中非常重要的一个环节——坐标转换。

坐标转换的原因是多传感器的存在,KITTI数据采集汽车装载了4部摄像机和1部激光雷达,获得的图像和点云分别处于不同的坐标系,因此当我们需要同时利用图像和点云时,就涉及到了坐标转换。

1

首先我们看一下车辆各个传感器的坐标系是如何约定的:

如表所示:

摄像机的坐标系

x——向右;y——向下;z——向前

激光雷达坐标系(笛卡尔坐标系)

X——向前;y——向左;z——向上

摄像机参考坐标系(下文简称参考坐标系)

0号摄像机的坐标系

矫正摄像机坐标系(下文简称矫正坐标系)

参考坐标系经过旋转得到

2

我们想要知道如何把点云投影到图像上进行显示,做出下面这种效果:

已知,KITTI提供的原始点云数据的坐标在笛卡尔坐标系中。

首先将点云由笛卡尔坐标系转换到参考坐标系中,需要乘变换矩阵V2C。

python def project_velo_to_ref(self, pts_3d_velo): pts_3d_velo = self.cart2hom(pts_3d_velo) # nx4 return np.dot(pts_3d_velo, np.transpose(self.V2C))

接着,再从参考坐标系变换到矫正坐标系,需要乘矫正矩阵R0。

代码语言:javascript
复制

   def project_ref_to_rect(self, pts_3d_ref):
       ''' Input and Output are nx3 points '''
       return np.transpose(np.dot(self.R0, np.transpose(pts_3d_ref)))

最后,把位于矫正坐标系中的点云投影到图像中,这一过程需要乘投影矩阵P。

代码语言:javascript
复制

   def project_rect_to_image(self, pts_3d_rect):
       ''' Input: nx3 points in rect camera coord.
           Output: nx2 points in image2 coord.
       '''
       pts_3d_rect = self.cart2hom(pts_3d_rect)
       pts_2d = np.dot(pts_3d_rect, np.transpose(self.P)) # nx3
       pts_2d[:,0] /= pts_2d[:,2]
       pts_2d[:,1] /= pts_2d[:,2]        return pts_2d[:,0:2]

上述用到的变换矩阵在数据集中的calib文件中都提供了,而且四个投影矩阵,分别可以将矫正坐标系中的点投影到4个摄像机对应的图像中。

小结

搞清楚数据集的用法对于我们理解代码有很大帮助,更重要的是,如果要用自己开发的数据集进行实验,不可避免地要进行数据集的处理。KITTI坐标转换的方法在很多自动驾驶目标检测的论文和算法里都有涉及,我们在后续文章还会继续与大家分享。

参考文献:Geiger2013IJRR, Vision meets Robotics: The KITTI Dataset.

论文链接:

http://www.cvlibs.net/publications/Geiger2013IJRR.pdf

数据集链接:

http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 3D点云深度学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档