Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

wzh99/OptICP

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

基于迭代最近点的点云配准方法性能优化

简介

本项目为上海交通大学计算机图形学(CS337)课程大作业,由王梓涵刘权完成。

本小组在现有标准 ICP 和 Go-ICP 代码基础上尝试若干性能优化。

配置

环境

  • Windows 10
  • MSVC 14.0 及以上
  • CMake 3.16

依赖

  • PCL 1.9
  • VTK 8.2
  • Qt 5.12.5
  • Eigen 3.3.7
  • Boost 1.71
  • FLANN 1.7.1

代码

所有源文件位于 src 目录下,后续提及的测试函数均在 src/main.cpp 中。

标准 ICP

标准 ICP 共有两个实现:一个是在 PCL 基础上简化的单线程版本,见 SingleThreadedICP;另一个是使用并行算法的优化版本 ICP。两者均使用优化版本的 K-d 树进行最近邻点查找。

测试 testICP 中考察了并行算法的性能提升。

Go-ICP

Go-ICP 实现在论文作者提供代码基础上改造完成,见 GoICP

测试 testGoICP 中对 Go-ICP 的配准结果和运行时间进行考察,testFpcsGoicpImprovement 对预先使用 4-PCS 进行初始对齐再使用 Go-ICP 配准的设想进行了探索。

K-d 树

K-d 树共有两个实现:一个是平凡的链接实现,见 NaiveKdTree;另一个为进行内存优化的版本 KdTree

测试 testKdTreeCorrectness 以蛮力搜索结果为标准,验证了各 K-d 树实现的正确性;testKdTreeEfficiency 考察了使用内存优化的性能提升。

DT

DT 共有三个实现,一个是直接使用 K-d 树进行搜索的平凡版本 NaiveDT;一个是 Go-ICP 中附带的 DT3D;第三个是使用线性时间算法的 LinearDT

测试 testdt 比较了三者构建时间的差异以及精确度差异。

About

SJTU CS337 Project: Optimization of ICP-Based Point Cloud Registration Methods

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.