GithubHelp home page GithubHelp logo

adr-arroyo / pointcloudcomparator Goto Github PK

View Code? Open in Web Editor NEW
13.0 1.0 5.0 115.04 MB

Trying to compute the completeness of a 3D map and compare it to another 3D map in a pointcloud format

License: MIT License

CMake 3.65% C 3.15% C++ 26.53% Makefile 66.68%
point-cloud computer-vision pcl-library 3d-map comparison point-cloud-comparison point-cloud-comparator point-cloud-segmentation

pointcloudcomparator's Introduction

Point Cloud Comparator

Author

UPF Supervisors

  • Marc Morenza
  • Victor Casamayor

General information

This project was developed as part of the master thesis "Robot 3D mapping: Tunning and Assessment" of UPF's master in Intelligent Interactive Systems in 2017.

THE REPOSITORY IS NO LONGER MAINTAINED, BE AWARE OF THIS IF YOU TRY TO USE IT

This package uses: PCL library

This software will compare two input pointclouds, providing with some metrics about their relationship. Number of points, descriptors, noise and number of elements based on color differences are the current metrics. The program finds matches of clusters between each point cloud and then compares those matches, it also shows each of the cluster of each match on screen. Additionally, there is a "results.txt" file in "./build" in which appears the information of the segments along with the results of the comparison of each match. At the end of the file there are some scores, telling how much different are the matched segments regarding the previously mentioned metrics. Additionally, two similarity ratios between both point clouds are computed, based on the results of previous scores. The first similarity states, in general, how much similar are the clusters of the first point cloud to the clusters of the second one regarding the scores. A number higher than one will say that the second point cloud has more information, whereas a number less than one will say that the second has more. The closer this number is to one, the more similar the clusters matched will be. The second ratio gives a measure of how much similar the general point clouds are between them, basing on how much similar are the matched clusters and how much portion of the first point cloud is similar to the second point cloud.

Installation

In order to build this program, it would be necessary to have already installed the PCL library along with their third party libraries if necessary. The version used here is 1.7, be aware that previous versions of pcl library might not work. After the installation of the library, you need to modify the CMakeLists.txt with your own paths. Once done, run from "./build" the command "cmake ..", which will tell you if there is a problem with CMakeLists.txt. If there is no error, you can run from "./build" the command "make" and it will compile the code and create the executable "comparator".

How to use it

PLEASE BE AWARE THAT THIS IS EARLY DEVELOPMENT.

In order to use it, you will run "./comparator /PathToPointCloud1 /PathToPointCloud2" from "./build". By default, the visualization of the clusters and the matches is off, you can run with "-v": "./comparator -v /PathToPointCloud1 /PathToPointCloud2" from "./build" if you want it active. Similarly, by default noise analysis is disabled as it takes quite more time. If you want to run with it then run with "-n": "./comparator -n /PathToPointCloud1 /PathToPointCloud2" from "./build". You might run as well both "-n -v". Help is also available with "-h". Other options are -e to select euclidean cluster segmentation as main segmentation algorithm and -i to perform ICP before the point clouds comparison to check if they are comparable enough. If you activated the visualizer, IN ORDER TO EXIT THE VISUALIZER PRESS "Q". The programm will output how it is doing on the command line. If it has found a match between both point clouds, they will appear if you activated visualization. You need to press "Q" again for the programm to continue for each viewer. All results will appear in the file "results.txt".

Useful links

  • Here it is a link with some point clouds used for the testing. There are several versions of each point cloud (noisy, downsampled etc) plus some other general pcls: google drive folder with pcls.

  • Here it is a link with the results files of the program with several tests with the point clouds of the previous folder: Google drive folder with result files

pointcloudcomparator's People

Contributors

adr-arroyo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

pointcloudcomparator's Issues

how should be samples to test

i have 4 samples of mugs and 2 samples of hats,
i get a hat sample
i want to know that this is a hat by cloud compare
there is a difference in scales and sizes
can i use this code?
how long does it take for one to compare?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.