S3DIS数据集解析为点云
个人解析代码GitHub:https://github.com/ybgdgh/s3dis_semantic
S3DIS数据集解析
S3DIS数据集是斯坦福大学开发的带有像素级语义标注的语义数据集,包含了rgb,depth,3d点云、mesh等。
官网:http://buildingparser.stanford.edu/dataset.html
官网github:https://github.com/alexsax/2D-3D-Semantics
数据格式
还原点云数据有多种方式,可以通过直接解析自带的mat文件进行解析,也可以通过合成rgb和深度图进行解析。本文以Area_1数据为例。
1.直接解析pointcloud.mat文件
数据集自带的mat文件包含了每一label的点云坐标、rgb,标注、物体体积、是否占有能属性组成。数据结构如下:
该mat文件包含一个struct结构体,结构体又往下分级。
可以用python直接解析该mat文件,本人对python不太熟悉,因此最后采用了将该mat文件转化为json脚本的形式,通过c++进行解析。
通过matlab解析json非常简单,只需要下载安装一个插件JSONlab,对应链接:https://github.com/fangq/jsonlab/#installation,
添加到matlab的toolkit文件加中,再将路径添加进行即可。matlab程序如下:
load('pointcloud.mat')
name_ALL = Area_1.Disjoint_Space;
for i=1:1:44
name=savejson('',name_ALL(i));
fid=fopen(['Adata_',num2str(i),'.json'],'w+');
fprintf(fid,'%s',name);
fclose(fid);
fprintf('%s \n',i);
end
本次只针对一个场景即Area_1进行解析,因此只采集了object所有对象下的结构体,该结构体下又包含多个子类,每一类都有对应的一套属性。
每个对象的内容如下:
{
"name": "conferenceRoom_1",
"AlignmentAngle": -0,
"color": [0.5,0.5,0],
"object"