Skip to content
Robust Railroad Cable Detection Framework
C++ CMake
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
figs Updated README with mandatory options, sample results and publications. Jul 29, 2019
src
vendor
.gitignore
.gitmodules
CONTRIBUTING.md
LICENSE
README.md

README.md

Robust Railroad Cable Detection Framework

Operating system

The project is built under Linux. It is recommended to use a 64-bit operating system.
Ubuntu 16.04 LTS and 18.04 LTS was used during development.

Dependencies

The project uses some third-party dependencies. These can be installed from the official repository of the given Linux distribution.

The following command installs the packages:

sudo apt-get update
sudo apt-get install build-essential make cmake libpcl-dev libproj-dev libopencv-dev

How to build

Submodules

The project depends on some locally built tools:

Check out the repository, then initialize the submodules to download the locally built dependencies:

git submodule init
git submodule update

Compile the dependencies:

cd vendor
make

Note: rerun when tools change in the vendor directory.

Build the project

Configure the project:

mkdir build
cd build
cmake ../src

Compile the project:

make

Note: you may add the -j<N> flag to compile on multiple threads (where <N> is the number of threads).

How to use

After successful compilation the railroad executable can be used for cable detection algorithms. Sample execution:

railroad --input cloud.laz --verify cable.laz

Allowed options

Option Description Mandatory
--input <path> input file path YES
--verify <path> verifier file path
--size <N> maximum size of point cloud to process
--algorithm <alg1> ... <algN> specify the algorithm pipes to execute (default: all)
--boundaries <minX>, <minY>, <maxX>, <maxY> boundaries to process
--usePCDAsCache create and use PCD file of LAZ as cache
--loglevel <level> log level (trace, debug, info, warning, error, fatal; default: info)
--help produce help message

Implemented algorithms

Name Algorithm pipe
Voronoi CutFilter(FROM_ABOVE_VORONOI)
Skeleton CutFilter(FROM_ABOVE_SKELETON)
Angle CutFilter(FROM_ABOVE_ANGLE)
Ground GroundFilter
Above AboveFilter
Density DensityFilter
AngleGround LimiterFilter
CutFilter(FROM_ABOVE_ANGLE)
GroundFilter
AngleGroundAbove LimiterFilter
CutFilter(FROM_ABOVE_ANGLE)
GroundFilter
AboveFilter
AngleGroundAboveCylinder LimiterFilter
CutFilter(FROM_ABOVE_ANGLE)
GroundFilter
AboveFilter
CylinderFilter
AngleGroundCylinder LimiterFilter
CutFilter(FROM_ABOVE_ANGLE)
GroundFilter
CylinderFilter
AngleAbove LimiterFilter
CutFilter(FROM_ABOVE_ANGLE)
AboveFilter
AngleAboveCylinder LimiterFilter
CutFilter(FROM_ABOVE_ANGLE)
AboveFilter
CylinderFilter
VoronoiGround LimiterFilter
CutFilter(FROM_ABOVE_VORONOI)
GroundFilter
VoronoiGroundAbove LimiterFilter
CutFilter(FROM_ABOVE_VORONOI)
GroundFilter
AboveFilter
VoronoiGroundAboveCylinder LimiterFilter
CutFilter(FROM_ABOVE_VORONOI)
GroundFilter
AboveFilter
CylinderFilter
VoronoiGroundCylinder LimiterFilter
CutFilter(FROM_ABOVE_VORONOI)
GroundFilter
CylinderFilter
VoronoiAbove LimiterFilter
CutFilter(FROM_ABOVE_VORONOI)
AboveFilter
VoronoiAboveCylinder LimiterFilter
CutFilter(FROM_ABOVE_VORONOI)
AboveFilter
CylinderFilter
GroundDensity GroundFilter
DensityFilter
GroundDensityAbove GroundFilter
DensityFilter
AboveFilter
GroundDensityAboveCylinder GroundFilter
DensityFilter
AboveFilter
CylinderFilter
GroundDensityCylinder GroundFilter
DensityFilter
CylinderFilter

Sample results

Sample result

Publications

Contributing

Please read CONTRIBUTING.md for details on coding conventions.

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

You can’t perform that action at this time.