1 Star 0 Fork 1

AxIMMS_ROS / Supervoxel-for-3D-point-clouds

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Supervoxel for 3D point clouds

Introduction

We present a simple but effective supervoxel segmentation method for point clouds, which formalizes supervoxel segmentation as a subset selection problem. We develop an heuristic algorithm that utilizes local information to efficiently solve the subset selection problem. The proposed method can produce supervoxels with adaptive resolutions, and dose not rely the selection of seed points. The method is fully tested on three publicly available point cloud segmentation benchmarks, which cover the major point cloud types. The experimental results show that compared with the state-of-the-art supervoxel segmentation methods, the supervoxels extracted using our method preserve the object boundaries and small structures more effectively, which is reflected in a higher boundary recall and lower under-segmentation error.

The details can be found in the following ISPRS 2018 paper

Citing our work

If you find our works useful in your research, please consider citing:

Lin Y, Wang C, Zhai D, W Li, and J Li. Toward better boundary preserved supervoxel segmentation for 3D point clouds. Isprs Journal of Photogrammetry & Remote Sensing, vol. 143, pages 39-47, 2018.

BibTex

@article{Lin2018Supervoxel,
	title = "Toward better boundary preserved supervoxel segmentation for 3D point clouds",
	journal = "ISPRS Journal of Photogrammetry and Remote Sensing",
	volume = "143",
	pages = "39 - 47",
	year = "2018",
	note = "ISPRS Journal of Photogrammetry and Remote Sensing Theme Issue “Point Cloud Processing”",
	issn = "0924-2716",
	doi = "https://doi.org/10.1016/j.isprsjprs.2018.05.004",
	url = "http://www.sciencedirect.com/science/article/pii/S0924271618301370",
	author = "Lin, Yangbin and Wang, Cheng and Zhai, Dawei and Li, Wei and Li, Jonathan",
	keywords = "Supervoxel segmentation, Point clouds, Subset selection, Over-segmentation"
}

Install & complie

Please directly copy the code into your workspace and complie it with any complier that supports C++11. It dose not require linking any additional libraries.

Sample usage:

cl::geometry::point_cloud::SupervoxelSegmentation(points, neighbors, resolution, metric, &supervoxels, &labels);

Where, 'points' is the input 3D point cloud. It can be read from XYZ file by calling:

cl::geometry::io::ReadXYZPoints(filename.c_str(), &points);

'neighbors' gives the neighborhood for each point. It can be constrcuted by compute k-neareast neighbors of each point. For example:

const int k_neighbors = 15;
cl::Array<cl::Array<int> > neighbors(n_points);
cl::Array<cl::RPoint3D> neighbor_points(k_neighbors);
for (int i = 0; i < n_points; ++i) {
    kdtree.FindKNearestNeighbors(kdtree.points()[i], k_neighbors, &neighbors[i]);
}

'resolution' is used to determine the number of supervoxels you want. 'metric' is used to evaluate the feature distance between two points. In our paper, we use the following metric, which is same to the VCCS.

class VCCSMetric {
public:
	explicit VCCSMetric(double resolution)
		: resolution_(resolution) {}

	double operator() (const PointWithNormal& p1,
					   const PointWithNormal& p2) const {
		return 1.0 - std::fabs(p1.normal * p2.normal) +
			   cl::geometry::Distance(p1, p2) / resolution_ * 0.4;
	}

private:
	double resolution_;
};

The output 'supervoxels' is an array that stores the indices of the representation points. And 'labels' is used to denote which supervoxel owns the i-th point.

Please see main.cc for more details.

The file "test.xyz" can be found in test_data.

Sample results.

The first column is the orignal point cloud with ground-truth annotation. The second column is the supervoxel segmentation by VCCS. The third column is the VCCS method with kNN variation. And the last column is the result obtained by this library.

Contact

Please feel free to leave suggestions or comments to Dr. Lin (yblin@jmu.edu.cn), or Prof. Wang (cwang@xmu.edu.cn)

空文件

简介

暂无描述 展开 收起
C++ 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/IMMS_ROS/Supervoxel-for-3D-point-clouds.git
git@gitee.com:IMMS_ROS/Supervoxel-for-3D-point-clouds.git
IMMS_ROS
Supervoxel-for-3D-point-clouds
Supervoxel-for-3D-point-clouds
master

搜索帮助