Giter VIP home page Giter VIP logo

edge_extraction's Introduction

Edge_Extraction

Fast and robust algorithm to extract edges in unorganized point clouds.

Source code and the dataset of this paper:
Fast and Robust Edge Extraction in Unorganized Point Clouds (Dena Bazazian, Josep R Casas, Javier Ruiz-Hidalgo) - DICTA2015

Code

Python version

  • Difference_Eigenvalues.py is a source code for extracting the edges of a point cloud based on Python 3 and pyntcloud library.
  • Installation is based on conda install pyntcloud -c conda-forge or pip install pyntcloud.

C++ version

  • Difference_Eigenvalues.cpp includes the C++ source code for extracting edges in unorganized point clouds.

  • F1Score-Eigenvalues.cpp is for computing the accuracy of edge extraction.

Dataset

  • We have created some artificial point clouds in order to have a labeled dataset, since we have both the point clouds and ground truths. Hence, in the ArtificialPointClouds and GroundTruth directories, you can find the artificial point clouds and their correspond ground truth.

  • In addition, in the artificial_point_cloud.cpp you can access to the source code that we have generated those artificial point clouds.

Citation

Please cite this work in your publications if it helps your research:

@InProceedings{Bazazian15,
author = {Bazazian, Dena and Casas, Josep R and Ruiz-Hidalgo, Javier},
title = {Fast and Robust Edge Extraction in Unorganized Point Clouds},
booktitle = {Proceeding of International Confere on Digital Image Computing: Techniques and Applications (DICTA)},
publisher = {IEEE},
pages = {1-8},
year = {2015}
}

edge_extraction's People

Contributors

denabazazian avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

edge_extraction's Issues

License

What license is this released under? We are interested in using an algorithm such as this in an industrial robotics application. For our use case we require any software we use be released under a permissive license such as Apache 2.0.

How to extract the edge correctly?

I am trying to implement your source to extract edges from an STL file.
First, I convert STL to PLYfile. The PLY file is as follows:
image

Then, I use the python code to extract the edge. However, the result looks incorrect/unexpected:
image

Here, I set the parameters as k_n = 150 and thresh = 0.003

Could you please give me some instructions to get better results, which are the edges of the objects? (how can I select proper k_n and thresh parameters?)

LIDAR Edge Extraction

Hi Dena,

Thank you for providing the source code for edge extraction in unorganized point clouds.

I was curious how it performs, and was testing it on a KITTI dataset using LIDAR points to see how it would detect edges with C++. Here is an example of the point cloud in one frame of the dataset. I saw from other issues that for dense cloud, higher number of neighbors are needed, I've set the number of neighbors to 150.

0000000354_ply.zip

kitti_dataset

However, the edge result from the edge extraction doesn't really distinguish the LIDAR edges, as shown below.

kitti_dataset_edges

Further checking your code and your paper for reference, I found this normal variables that is not being used anywhere here: https://github.com/denabazazian/Edge_Extraction/blob/master/Difference_Eigenvalues.cpp#L68.

Do we need to do a normal estimation of the clouds beforehand? Or is this variable a typo, and it should work in detecting edges of the LIDAR, but needed higher number of neighbors?

Thank you for your help.

William

Saving the output

Hi,

Am using the python version of your code.
Am wondering how do you save the generated edges into a obj/ply file?
I see the output in a graph but i want to use the actual points in the edges for further processing

Many Thanks.

Curvature( Sigma[i]) is awlays small values.

I have tried many values of KNumbersNeighbor (2,20,200,2000). Sigma is a small value which means all points belong to flat planes. But there are 3 90-degree edges. Could you please advise how your method works for finding the edges?

Error when running python file

Hello,
When I run your python file, I have some problems below. And I also tried to fix that. Do you have any suggestions for me? Thank you
image

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.