3d目标检测框架-openpcdet中的kitti数据集pkl文件解析

OpenPCDet中的kitti数据预处理

kitti数据集预处理一共生成6个内容,其中包括5个pkl文件以及一个gt_database目录。
本文主要对这6部分文件的数据内容进行解析讲解。

  • kitti_infos_train.pkl
  • kitti_infos_trainval.pkl
  • kitti_infos_val.pkl
  • kitti_infos_test.pkl
  • kitti_dbinfos_train.pkl
  • gt_database

kitti_infos_train.pkl文件解析

该pkl文件中主要存储训练集中的每个图像和对应点云中包含的点云信息、图像信息、标定参数以及目标的标签数据,整体数据结构如下:


	[ 
      {(第一个样本)
		  point_cloud:{
                         num_features: 使用的特征数 3 或者 4 (xyz 还是xyzi等等)
		                 lidar_idx: "000000" (雷达bin文件对应的文件名称)
		              }
		  image: {
		            image_idx : 图像文件对应的文件名称,
		            image_shape: 图像的大小高宽 
		         }       
		  calib: {
		             P2: 矫正后的0号相机相对于2号相机的投影矩阵
		             RO_rect: 0号相机矫正矩阵,为了让各个相机可以共面,这样代码中的深度计算才正确
		             Tr_velo_to_cam: 0号相机坐标系相对于雷达坐标系的变换矩阵
		         }
		  annos: {
		           name: 当前样本中对应的检测目标的名称数组
		           truncated: 当前样本中对应的检测目标的截断系数数组。 系数越大,截断越多
		           occluded: 遮挡系数 0,1,2 越大遮挡越大
		           alpha: 将目标转至正前方观测其与相机x轴之间的角度
		           bbox: 目标在2号相机下的box框的x1y1x2y2格式
		           demensions: 物体的长高宽
		           location: 目标框的底部中心点在矫正后的0号坐标系下的坐标
		           rotation_y: 从目标行驶方向前方观测目标和相机坐标系x轴的夹角
		           score:置信度 一般不使用
		           difficulty: 难易程度,该参数按照图像的高度、截断程度、遮挡程度来进行综合区分得到
		           index: 对应数组中的检测目标在总的目标中的id
		           gt_boxes_lidar: 雷达坐标系下的物体的x y z l w h yaw
		           num_points_in_gt: 各个目标框中存在的点个数
		         }
	  }{(第二个样本)
	      ......
	  },

   ]

kitti_infos_val.pkl文件解析

该pkl文件数据格式内容与kitti_infos_train.pkl文件相同,用于存储验证集的样本数据信息

kitti_infos_trainval.pkl文件解析

该pkl文件数据格式内容与kitti_infos_train.pkl文件相同,用于存储训练集和验证集总体的样本数据信息

kitti_infos_test.pkl文件解析

该pkl文件主要存储测试集的数据信息,相比于验证集和训练集,文件中没有annos标签类别属性。整体的数据结构如下:


	[ 
      {(第一个样本)
		  point_cloud:{
                         num_features: 使用的特征数 3 或者 4 (xyz 还是xyzi等等)
		                 lidar_idx: "000000" (雷达bin文件对应的文件名称)
		              }
		  image: {
		            image_idx : 图像文件对应的文件名称,
		            image_shape: 图像的大小高宽 
		         }       
		  calib: {
		             P2: 矫正后的0号相机相对于2号相机的投影矩阵
		             RO_rect: 0号相机矫正矩阵,为了让各个相机可以共面,这样代码中的深度计算才正确
		             Tr_velo_to_cam: 0号相机坐标系相对于雷达坐标系的变换矩阵
		         }
	  }{(第二个样本)
	      ......
	  },

   ]

gt_database文件夹解析

gt_database文件夹中的pkl文件总个数为训练集中的总目标个数。其中每个pkl文件中存放了当前目标框中的内部局部点云数据信息,点云的数据为以当前目标的gt_box中心点为原点去中心化操作后得到的xyzi数据,pkl的文件名格式为

000000_Pedestrian_0.bin 
其中:
000000: 代表该目标所对应的图像或者点云文件的名称id
Pedestrian: 代表该目标所对应的类别名称
0: 代表该目标在当前000000文件中的目标id(假设一共8个检测目标,该目标为第0个)

kitti_dbinfos_train.pkl文件解析

该pkl文件中主要存储训练数据集中所有检测目标的字典dict,dict的key代表了目标的类别名称,value为一个列表list格式,list大小为整个训练集中属于该类别的目标的总个数,list元素对应一个新的dict,存放了训练数据的相关属性,整体结构如下所示。

{
	检测物体类别1(Pedestrain):[
							 {
							   name:"类别名称",
							   path:"该目标对应的点云bin文件的路径,对应的gt_database文件夹下的文件路径",
							   image_idx: "对应的图像的文件名称",
							   gt_idx: "对应的gt类别列表中的第几个类别",
							   box3d_lidar:"雷达坐标系下的物体的x y z l w h yaw",
							   num_points_in_gt:"当前gt框中包含的点个数",
				               difficulty:"难易程度,该参数按照图像的高度、截断程度、遮挡程度来进行综合区分得到,",
				               bbox:"该目标在2号相机图像上的2d box左上右下坐标",
				               score:"测试才会使用,一般不使用",
							 }{
							  ......
							 }
							],
	检测物体类别2(Car):[
						....
                     ]	
}
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值