SUN RGB-D是普林斯顿大学发布的一种关于室内场景理解的数据集,共包含了10335个样本,其中训练样本和验证测试样本数量分别为5285和5050。每个样本包含了彩色图像(RGB)和深度(D)信息,并且分别进行了二维和三维标注。数据集的具体细节将在后续进行补充,这里主要介绍如何在mmdection3d中使用SUN RGB-D数据集。
1 SUN RGB-D数据集下载
SUN RGB-D数据集下载地址为https://rgbd.cs.princeton.edu/data/,主要下载SUNRGBD.zip、SUNRGBDMeta2DBB_v2.mat、SUNRGBDMeta3DBB_v2.mat 和SUNRGBDtoolbox.zip等文件。
图1 SUN RGB-D数据集下载列表
将下载下来的 SUNRGBD.zip、SUNRGBDMeta2DBB_v2.mat、SUNRGBDMeta3DBB_v2.mat 和SUNRGBDtoolbox.zip移动到mmdetection3d工程目录下的data/sunrgbd/ OFFICIAL_SUNRGBD文件夹下,并解压.zip压缩文件。
2 matlab数据集预处理
Mmdetection3d官方SUN RGB-D数据集的处理过程详细介绍地址为“https://github.com/open-mmlab/mmdetection3d/blob/master/data/sunrgbd/README.md/”。预处理过程需要先运行matlab预处理脚本文件,即.m格式文件。这需要额外安装matlab。下一节将介绍对应的python处理脚本。如果没有安装matlab,则可跳过该步骤,直接查看下一节。
SUN RGBD的Matlab程序位于data/sunrgbd/matlab文件夹。进入到data/sunrgbd/matlab文件夹下,分别执行extract_split.m、extract_rgbd_data_v2.m 和extract_rgbd_data_v1.m文件来提取点云数据和标注信息。
执行命令如下:
matlab -nosplash -nodesktop -r 'extract_split;quit;'
matlab -nosplash -nodesktop -r 'extract_rgbd_data_v2;quit;'
matlab -nosplash -nodesktop -r 'extract_rgbd_data_v1;quit;'
如果提示“-bash: matlab: command not found”,那么则需要先安装matlab。
3 python数据集预处理
针对上述matlab数据预处理脚本,我将其转换成了对应的python处理程序。下面的python处理程序没有直接与matlab实际运行结果进行对比,如果有用户进行了对比验证,请将结果反馈给我一下,谢谢。基于处理后的数据集运行mmdection3d预处理程序和VoteNet模型均顺利通过。SUN RGB-D数据集的python预处理程序下载地址为:mmdetectionSUNRGB-D数据集Python预处理程序-深度学习文档类资源-CSDN下载,将下载的scripts文件夹复制到data/sunrgbd/目录下。
数据集预处理脚本主要包含数据集分割和标注数据提取两大部分。
(1)数据集分割
训练集和验证集的分割提取程序为extract_split.py。执行完脚本后会在data/sunrgbd/目录下生成sunrgbd_trainval文件夹,并进一步生成train_data_idx.txt和val_data_idx.txt文件。这两个txt文件分别记录训练样本和评估测试样本序号。训练样本序号从5050到10334,共5285个。评估测试样本序号从0到5049,共5050个。
标注数据提取程序会针对文本文件中的样本序号逐一进行提取。全部样本提取需要耗时几十分钟,并且解析后存储空间也较大。在进行算法研究时,解析部分数据即可满足要求。因此,程序中的ratio参数用来设置解析数据的比例,默认为0.01,即训练和评估样本各解析约50个。用户可根据使用需求自定义ratio值,取值为0~1,1表示解析全部数据。
(2)标注数据提取
标注数据提取程序为extract_data_v2.py,直接运行即可。如果程序提示缺少h5py库,则通过pip install h5py安装即可。
分别运行scripts文件夹下的extract_split.py和extract_data_v2.py即可完成SUN RGB-D数据集预处理,程序运行结束后在data/sunrgbd/sunrgbd_trainval/文件夹的目录结构如下图所示。
4 mmdetection3d 预处理
进入到mmdetection3d工程目录下,执行SUN RGB-D数据集的预处理程序,运行命令如下。
python tools/create_data.py sunrgbd --root-path ./data/sunrgbd --out-dir ./data/sunrgbd --extra-tag sunrgbd
程序运行完成后会在data/sunrgbd/文件夹下产生points文件夹、sunrgbd_infos_train.pkl和sunrgbd_infos_val.pkl。程序运行过程如下图所示。