Giter Club home page Giter Club logo

nodecm's Introduction

NodeCM

A GPU-enabled photogrammetry pipeline to generate georeferenced point clouds, orthophotos and elevation models from aerial images using COLMAP.

image

image

It's compatible with the NodeODM API so it works out of the box with many of the tools of the OpenDroneMap ecosystem such as WebODM, ClusterODM and CloudODM.

While a GPU can speed up certain steps of the pipeline, it is not required for use. CPU algorithms are implemented in case a GPU is not available.

⚠️ NodeCM is in early stages of development. It works on several test datasets, but software faults are expected.

Getting Started

We recommend that you setup NodeCM using Docker.

First, build your image (this will take a while):

$ git clone https://github.com/uav4geo/NodeCM
$ cd NodeCM
$ docker build -t uav4geo/nodecm .
  • Then from a shell, simply run:
$ docker run --rm -ti -p 3000:3000 uav4geo/nodecm
  • Open a Web Browser to http://localhost:3000 (or the IP of your docker machine)
  • Load some images
  • Press "Start Task"
  • Go for a walk :)

⚠️ If you want to use the GPU features of NodeCM, you need to have one or more NVIDIA GPUs compatible with CUDA and make sure that docker can communite with it. You can run nvidia-smi to test that docker is configured properly:

$ docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi

If you see an output that looks like this:

Fri Jul 24 18:51:55 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.82       Driver Version: 440.82       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |

You're in good shape!

Then you must pass --gpus all to the docker command:

$ docker run --rm --gpus all -ti -p 3000:3000 uav4geo/nodecm

See https://github.com/NVIDIA/nvidia-docker and https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker for information on docker/NVIDIA setup.

Run from the command line

You don't have to run NodeCM from a browser. You can also run it directly from the command line (useful for scripting workflows):

First, place some images in your project's images folder:

$ ls /path/to/project
images
$ ls /path/to/project/images
DJI_0018.JPG    DJI_0019.JPG    ...

Then run:

$ ./nodecm /path/to/project --orthophoto-resolution 2

If you want to use GPUs use:

$ USE_GPU=ON ./nodecm /path/to/project --orthophoto-resolution 2

To view all command line options run:

$ ./nodecm --help

Using an external hard drive

If you want to store results on a separate drive, map the /app/NodeODM/data folder to the location of your drive:

$ docker run -p 3000:3000 -v /mnt/external_hd:/app/NodeODM/data uav4geo/nodecm

This can be also used to access the computation results directly from the file system.

Test images

You can find some test drone images here.

Contributing

We welcome contributions! Send pull requests ❤️ bug reports and whatever is useful to you.

Roadmap

NodeCM is in beta. It hasn't been battle-tested and issues are expected. We are aware of the following list of things that still need to be improved (help us improve them)!

  • DSM/DTM interpolation (currently DEMs don't look so good)
  • Better meshing algorithms (currently PoissonRecon is less than ideal)
  • GSD estimates. Currently they are not taken in consideration, so memory is potentially wasted and output resolutions cannot be automatically calculated
  • GCPs support. COLMAP has basic support for geo-registration which will align the reconstruction based on an affine transformation of the camera centers, but no support for GCPs.
  • Bug fixing (help us and report them on the issue tracker)

License

This codebase: Affero GPL

COLMAP: BSD

OpenDroneMap/NodeODM modules: GPL

GPU License Restrictions

Because of restrictive licenses in some of COLMAP's dependencies, if you use the GPU features of NodeCM, you cannot use NodeCM for purposes other than educational, research and non-profit without obtaining permission from the University of North Carolina at Chapel Hill. COLMAP uses the SIFT GPU library, which is released under the following license:

////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2007 University of North Carolina at Chapel Hill
//  All Rights Reserved
//
//  Permission to use, copy, modify and distribute this software and its
//  documentation for educational, research and non-profit purposes, without
//  fee, and without a written agreement is hereby granted, provided that the
//  above copyright notice and the following paragraph appear in all copies.
//
//  The University of North Carolina at Chapel Hill make no representations
//  about the suitability of this software for any purpose. It is provided
//  'as is' without express or implied warranty.
//
//  Please send BUG REPORTS to [email protected]
//
////////////////////////////////////////////////////////////////////////////

We understand this is unfortunate. Contribute a PR to replace SIFT GPU in COLMAP.

nodecm's People

Contributors

pierotofy 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

Watchers

 avatar  avatar  avatar  avatar  avatar

nodecm's Issues

Node running but not available in browser

Successfully installed Node to Docker, running, but showing offline in WebODM interface.
Want to try it out, but cannot.
Tried running on port 3001 because MicMac runs on 3000 but did not make a difference .
Doesn't look like much work has been done since last year as is still open issue.
Possibly an Options (JSON) script?
Lemme Know!

make: *** [all] Error 2

tried to build it with docker but the build failed.
Makefile:102: recipe for target 'all' failed
the command '/bin/sh -c idconfig && mkdir build cd build && cmake .. && make -j$(nproc)' returned a non-zero code : 2

Invalid configuration file config-default.json

Out from build

  /usr/local/share/pcl-1.8/PCLConfig.cmake:292 (find_openni2)
  /usr/local/share/pcl-1.8/PCLConfig.cmake:475 (find_external_library)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find USB_10 (missing: USB_10_LIBRARY USB_10_INCLUDE_DIR) 
-- OpenNI 2 disabled because libusb-1.0 not found.
** WARNING ** io features related to openni2 will be disabled
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (ENSENSO)
  does not match the name of the calling package (Ensenso).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/Modules/FindEnsenso.cmake:41 (find_package_handle_standard_args)
  /usr/local/share/pcl-1.8/PCLConfig.cmake:184 (find_package)
  /usr/local/share/pcl-1.8/PCLConfig.cmake:294 (find_ensenso)
  /usr/local/share/pcl-1.8/PCLConfig.cmake:475 (find_external_library)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find ENSENSO (missing: ENSENSO_LIBRARIES ENSENSO_INCLUDE_DIRS) 
** WARNING ** io features related to ensenso will be disabled
-- Could NOT find davidSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR) 
** WARNING ** io features related to davidSDK will be disabled
-- Could NOT find DSSDK (missing: DSSDK_LIBRARIES DSSDK_INCLUDE_DIRS) 
** WARNING ** io features related to dssdk will be disabled
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (libusb-1.0)
  does not match the name of the calling package (PCL).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:259 (find_package_handle_standard_args)
  /usr/local/share/pcl-1.8/PCLConfig.cmake:304 (find_libusb)
  /usr/local/share/pcl-1.8/PCLConfig.cmake:475 (find_external_library)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- LIBUSB_1_LIBRARY (missing: LIBUSB_1_INCLUDE_DIR) 
** WARNING ** io features related to libusb-1.0 will be disabled
CMake Warning (dev) at /usr/local/share/pcl-1.8/PCLConfig.cmake:231 (find_package):
  Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
  Run "cmake --help-policy CMP0074" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  CMake variable FLANN_ROOT is set to:

    /usr

  For compatibility, CMake is ignoring the variable.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:286 (find_flann)
  /usr/local/share/pcl-1.8/PCLConfig.cmake:478 (find_external_library)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Checking for module 'flann'
--   Found flann, version 1.8.4
-- Found FLANN: /usr/lib/x86_64-linux-gnu/libflann_cpp.so  
-- FLANN found (include: /usr/include, lib: optimized;/usr/lib/x86_64-linux-gnu/libflann_cpp.so;debug;/usr/lib/x86_64-linux-gnu/libflann_cpp.so)
-- FLANN found (include: /usr/include, lib: optimized;/usr/lib/x86_64-linux-gnu/libflann_cpp.so;debug;/usr/lib/x86_64-linux-gnu/libflann_cpp.so)
-- Found Qhull: //usr/lib/x86_64-linux-gnu/libqhull.so  
-- QHULL found (include: /usr/include, lib: optimized;//usr/lib/x86_64-linux-gnu/libqhull.so;debug;//usr/lib/x86_64-linux-gnu/libqhull.so)
-- looking for PCL_COMMON
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (PCL_COMMON)
  does not match the name of the calling package (PCL).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:539 (find_package_handle_standard_args)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PCL_COMMON: /usr/local/lib/libpcl_common.so  
-- looking for PCL_OCTREE
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (PCL_OCTREE)
  does not match the name of the calling package (PCL).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:539 (find_package_handle_standard_args)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PCL_OCTREE: /usr/local/lib/libpcl_octree.so  
-- looking for PCL_IO
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (PCL_IO)
  does not match the name of the calling package (PCL).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:539 (find_package_handle_standard_args)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PCL_IO: /usr/local/lib/libpcl_io.so  
-- looking for PCL_KDTREE
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (PCL_KDTREE)
  does not match the name of the calling package (PCL).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:539 (find_package_handle_standard_args)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PCL_KDTREE: /usr/local/lib/libpcl_kdtree.so  
-- looking for PCL_SEARCH
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (PCL_SEARCH)
  does not match the name of the calling package (PCL).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:539 (find_package_handle_standard_args)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PCL_SEARCH: /usr/local/lib/libpcl_search.so  
-- looking for PCL_ML
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (PCL_ML)
  does not match the name of the calling package (PCL).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:539 (find_package_handle_standard_args)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PCL_ML: /usr/local/lib/libpcl_ml.so  
-- looking for PCL_SURFACE
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args`
  (PCL_SURFACE) does not match the name of the calling package (PCL).  This
  can lead to problems in calling code that expects `find_package` result
  variables (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:539 (find_package_handle_standard_args)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PCL_SURFACE: /usr/local/lib/libpcl_surface.so  
-- looking for PCL_STEREO
CMake Warning (dev) at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
  The package name passed to `find_package_handle_standard_args` (PCL_STEREO)
  does not match the name of the calling package (PCL).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:539 (find_package_handle_standard_args)
  odm_orthophoto/CMakeLists.txt:13 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PCL_STEREO: /usr/local/lib/libpcl_stereo.so  
-- Found PCL: //usr/lib/x86_64-linux-gnu/libboost_system.so;//usr/lib/x86_64-linux-gnu/libboost_filesystem.so;//usr/lib/x86_64-linux-gnu/libboost_thread.so;-lpthread;//usr/lib/x86_64-linux-gnu/libboost_date_time.so;//usr/lib/x86_64-linux-gnu/libboost_iostreams.so;//usr/lib/x86_64-linux-gnu/libboost_chrono.so;//usr/lib/x86_64-linux-gnu/libboost_atomic.so;//usr/lib/x86_64-linux-gnu/libboost_regex.so;optimized;/usr/local/lib/libpcl_common.so;debug;/usr/local/lib/libpcl_common.so;optimized;/usr/local/lib/libpcl_octree.so;debug;/usr/local/lib/libpcl_octree.so;vtkChartsCore;vtkCommonColor;vtkCommonDataModel;vtkCommonMath;vtkCommonCore;vtksys;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkInfovisCore;vtkFiltersExtraction;vtkCommonExecutionModel;vtkFiltersCore;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkalglib;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;/usr/lib/x86_64-linux-gnu/libfreetype.so;/usr/lib/x86_64-linux-gnu/libz.so;vtkftgl;vtkDICOMParser;vtkDomainsChemistry;vtkIOXML;vtkIOGeometry;vtkIOCore;/usr/lib/x86_64-linux-gnu/libjsoncpp.so;vtkIOXMLParser;/usr/lib/x86_64-linux-gnu/libexpat.so;vtkFiltersAMR;vtkParallelCore;vtkIOLegacy;vtkFiltersFlowPaths;vtkFiltersGeneric;vtkFiltersHybrid;vtkImagingSources;vtkFiltersHyperTree;vtkFiltersImaging;vtkImagingGeneral;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelFlowPaths;vtkParallelMPI;vtkFiltersParallelGeometry;vtkFiltersParallelImaging;vtkFiltersParallelMPI;vtkFiltersParallelStatistics;vtkFiltersProgrammable;vtkFiltersPython;/usr/lib/x86_64-linux-gnu/libpython2.7.so;vtkWrappingPythonCore;vtkWrappingTools;vtkFiltersReebGraph;vtkFiltersSMP;vtkFiltersSelection;vtkFiltersTexture;vtkFiltersVerdict;verdict;vtkGeovisCore;vtkInfovisLayout;vtkImagingHybrid;vtkIOImage;vtkmetaio;/usr/lib/x86_64-linux-gnu/libjpeg.so;/usr/lib/x86_64-linux-gnu/libpng.so;/usr/lib/x86_64-linux-gnu/libtiff.so;vtkInteractionStyle;vtkInteractionWidgets;vtkRenderingAnnotation;vtkImagingColor;vtkRenderingVolume;vtkViewsCore;/usr/lib/x86_64-linux-gnu/libproj.so;vtkIOAMR;/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5_hl.so;vtkIOEnSight;vtkIOExodus;vtkexoIIc;/usr/lib/x86_64-linux-gnu/libnetcdf_c++.so;/usr/lib/x86_64-linux-gnu/libnetcdf.so;vtkIOExport;vtkRenderingGL2PS;vtkRenderingContextOpenGL;vtkRenderingOpenGL;/usr/lib/libgl2ps.so;vtkRenderingLabel;vtkIOFFMPEG;vtkIOMovie;/usr/lib/x86_64-linux-gnu/libtheoraenc.so;/usr/lib/x86_64-linux-gnu/libtheoradec.so;/usr/lib/x86_64-linux-gnu/libogg.so;vtkIOGDAL;vtkIOGeoJSON;vtkIOImport;vtkIOInfovis;/usr/lib/x86_64-linux-gnu/libxml2.so;vtkIOLSDyna;vtkIOMINC;vtkIOMPIImage;vtkIOMPIParallel;vtkIOMySQL;vtkIOSQL;sqlite3;vtkIONetCDF;vtkIOODBC;vtkIOPLY;vtkIOParallel;vtkIOParallelExodus;vtkIOParallelLSDyna;vtkIOParallelNetCDF;vtkIOParallelXML;vtkIOPostgreSQL;vtkIOVPIC;VPIC;vtkIOVideo;vtkIOXdmf2;vtkxdmf2;vtkImagingMath;vtkImagingMorphological;vtkImagingStatistics;vtkImagingStencil;vtkInfovisBoostGraphAlgorithms;vtkInteractionImage;vtkLocalExample;vtkParallelMPI4Py;vtkPythonInterpreter;vtkRenderingExternal;vtkRenderingFreeTypeFontConfig;vtkRenderingFreeTypeOpenGL;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingMatplotlib;vtkRenderingParallel;vtkRenderingParallelLIC;vtkRenderingVolumeOpenGL;vtkTestingGenericBridge;vtkTestingIOSQL;vtkTestingRendering;vtkViewsContext2D;vtkViewsGeovis;vtkViewsInfovis;vtkWrappingJava;optimized;/usr/local/lib/libpcl_io.so;debug;/usr/local/lib/libpcl_io.so;optimized;/usr/lib/x86_64-linux-gnu/libflann_cpp.so;debug;/usr/lib/x86_64-linux-gnu/libflann_cpp.so;optimized;/usr/local/lib/libpcl_kdtree.so;debug;/usr/local/lib/libpcl_kdtree.so;optimized;/usr/local/lib/libpcl_search.so;debug;/usr/local/lib/libpcl_search.so;optimized;/usr/local/lib/libpcl_ml.so;debug;/usr/local/lib/libpcl_ml.so;optimized;//usr/lib/x86_64-linux-gnu/libqhull.so;debug;//usr/lib/x86_64-linux-gnu/libqhull.so;optimized;/usr/local/lib/libpcl_surface.so;debug;/usr/local/lib/libpcl_surface.so;optimized;/usr/local/lib/libpcl_stereo.so;debug;/usr/local/lib/libpcl_stereo.so;//usr/lib/x86_64-linux-gnu/libboost_system.so;//usr/lib/x86_64-linux-gnu/libboost_filesystem.so;//usr/lib/x86_64-linux-gnu/libboost_thread.so;-lpthread;//usr/lib/x86_64-linux-gnu/libboost_date_time.so;//usr/lib/x86_64-linux-gnu/libboost_iostreams.so;//usr/lib/x86_64-linux-gnu/libboost_chrono.so;//usr/lib/x86_64-linux-gnu/libboost_atomic.so;//usr/lib/x86_64-linux-gnu/libboost_regex.so;optimized;//usr/lib/x86_64-linux-gnu/libqhull.so;debug;//usr/lib/x86_64-linux-gnu/libqhull.so;optimized;/usr/lib/x86_64-linux-gnu/libflann_cpp.so;debug;/usr/lib/x86_64-linux-gnu/libflann_cpp.so;vtkChartsCore;vtkCommonColor;vtkCommonDataModel;vtkCommonMath;vtkCommonCore;vtksys;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkInfovisCore;vtkFiltersExtraction;vtkCommonExecutionModel;vtkFiltersCore;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkalglib;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;/usr/lib/x86_64-linux-gnu/libfreetype.so;/usr/lib/x86_64-linux-gnu/libz.so;vtkftgl;vtkDICOMParser;vtkDomainsChemistry;vtkIOXML;vtkIOGeometry;vtkIOCore;/usr/lib/x86_64-linux-gnu/libjsoncpp.so;vtkIOXMLParser;/usr/lib/x86_64-linux-gnu/libexpat.so;vtkFiltersAMR;vtkParallelCore;vtkIOLegacy;vtkFiltersFlowPaths;vtkFiltersGeneric;vtkFiltersHybrid;vtkImagingSources;vtkFiltersHyperTree;vtkFiltersImaging;vtkImagingGeneral;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelFlowPaths;vtkParallelMPI;vtkFiltersParallelGeometry;vtkFiltersParallelImaging;vtkFiltersParallelMPI;vtkFiltersParallelStatistics;vtkFiltersProgrammable;vtkFiltersPython;/usr/lib/x86_64-linux-gnu/libpython2.7.so;vtkWrappingPythonCore;vtkWrappingTools;vtkFiltersReebGraph;vtkFiltersSMP;vtkFiltersSelection;vtkFiltersTexture;vtkFiltersVerdict;verdict;vtkGeovisCore;vtkInfovisLayout;vtkImagingHybrid;vtkIOImage;vtkmetaio;/usr/lib/x86_64-linux-gnu/libjpeg.so;/usr/lib/x86_64-linux-gnu/libpng.so;/usr/lib/x86_64-linux-gnu/libtiff.so;vtkInteractionStyle;vtkInteractionWidgets;vtkRenderingAnnotation;vtkImagingColor;vtkRenderingVolume;vtkViewsCore;/usr/lib/x86_64-linux-gnu/libproj.so;vtkIOAMR;/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5_hl.so;vtkIOEnSight;vtkIOExodus;vtkexoIIc;/usr/lib/x86_64-linux-gnu/libnetcdf_c++.so;/usr/lib/x86_64-linux-gnu/libnetcdf.so;vtkIOExport;vtkRenderingGL2PS;vtkRenderingContextOpenGL;vtkRenderingOpenGL;/usr/lib/libgl2ps.so;vtkRenderingLabel;vtkIOFFMPEG;vtkIOMovie;/usr/lib/x86_64-linux-gnu/libtheoraenc.so;/usr/lib/x86_64-linux-gnu/libtheoradec.so;/usr/lib/x86_64-linux-gnu/libogg.so;vtkIOGDAL;vtkIOGeoJSON;vtkIOImport;vtkIOInfovis;/usr/lib/x86_64-linux-gnu/libxml2.so;vtkIOLSDyna;vtkIOMINC;vtkIOMPIImage;vtkIOMPIParallel;vtkIOMySQL;vtkIOSQL;sqlite3;vtkIONetCDF;vtkIOODBC;vtkIOPLY;vtkIOParallel;vtkIOParallelExodus;vtkIOParallelLSDyna;vtkIOParallelNetCDF;vtkIOParallelXML;vtkIOPostgreSQL;vtkIOVPIC;VPIC;vtkIOVideo;vtkIOXdmf2;vtkxdmf2;vtkImagingMath;vtkImagingMorphological;vtkImagingStatistics;vtkImagingStencil;vtkInfovisBoostGraphAlgorithms;vtkInteractionImage;vtkLocalExample;vtkParallelMPI4Py;vtkPythonInterpreter;vtkRenderingExternal;vtkRenderingFreeTypeFontConfig;vtkRenderingFreeTypeOpenGL;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingMatplotlib;vtkRenderingParallel;vtkRenderingParallelLIC;vtkRenderingVolumeOpenGL;vtkTestingGenericBridge;vtkTestingIOSQL;vtkTestingRendering;vtkViewsContext2D;vtkViewsGeovis;vtkViewsInfovis;vtkWrappingJava (Required is at least version "1.8") 
-- Found GDAL: /usr/lib/libgdal.so (found version "2.2.2") 
-- Found OpenCV: /usr/local (found version "3.4.6") 
-- The imported target "vtkRenderingPythonTkWidgets" references the file
   "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/cmake/vtk-6.2/VTKTargets.cmake"
but not all the files it references.

-- The imported target "vtk" references the file
   "/usr/bin/vtk"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/cmake/vtk-6.2/VTKTargets.cmake"
but not all the files it references.

CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as

    cmake_minimum_required(VERSION 3.18)

  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /app/modules/build
Scanning dependencies of target odm_cleanmesh
[ 16%] Building CXX object odm_cleanmesh/CMakeFiles/odm_cleanmesh.dir/src/main.cpp.o
Scanning dependencies of target odm_orthophoto
[ 33%] Building CXX object odm_orthophoto/CMakeFiles/odm_orthophoto.dir/src/Logger.cpp.o
[ 50%] Building CXX object odm_orthophoto/CMakeFiles/odm_orthophoto.dir/src/OdmOrthoPhoto.cpp.o
[ 66%] Building CXX object odm_orthophoto/CMakeFiles/odm_orthophoto.dir/src/main.cpp.o
[ 83%] Linking CXX executable odm_cleanmesh
[ 83%] Built target odm_cleanmesh
In file included from /usr/include/gdal/cpl_port.h:66:0,
                 from /usr/include/gdal/gdal.h:42,
                 from /usr/include/gdal/gdal_priv.h:60,
                 from /app/modules/odm_orthophoto/src/OdmOrthoPhoto.hpp:24,
                 from /app/modules/odm_orthophoto/src/OdmOrthoPhoto.cpp:6:
/usr/include/gdal/cpl_config.h:148:0: warning: "HAVE_POSIX_MEMALIGN" redefined
 #define HAVE_POSIX_MEMALIGN 1
 ^
In file included from /usr/local/include/pcl-1.8/pcl/console/print.h:44:0,
                 from /usr/local/include/pcl-1.8/pcl/conversions.h:54,
                 from /usr/local/include/pcl-1.8/pcl/common/io.h:47,
                 from /usr/local/include/pcl-1.8/pcl/io/file_io.h:42,
                 from /usr/local/include/pcl-1.8/pcl/io/obj_io.h:42,
                 from /app/modules/odm_orthophoto/src/OdmOrthoPhoto.hpp:9,
                 from /app/modules/odm_orthophoto/src/OdmOrthoPhoto.cpp:6:
/usr/local/include/pcl-1.8/pcl/pcl_config.h:35:0: note: this is the location of the previous definition
 #define HAVE_POSIX_MEMALIGN
 ^
In file included from /usr/include/gdal/cpl_port.h:66:0,
                 from /usr/include/gdal/gdal.h:42,
                 from /usr/include/gdal/gdal_priv.h:60,
                 from /app/modules/odm_orthophoto/src/OdmOrthoPhoto.hpp:24,
                 from /app/modules/odm_orthophoto/src/main.cpp:2:
/usr/include/gdal/cpl_config.h:148:0: warning: "HAVE_POSIX_MEMALIGN" redefined
 #define HAVE_POSIX_MEMALIGN 1
 ^
In file included from /usr/local/include/pcl-1.8/pcl/console/print.h:44:0,
                 from /usr/local/include/pcl-1.8/pcl/conversions.h:54,
                 from /usr/local/include/pcl-1.8/pcl/common/io.h:47,
                 from /usr/local/include/pcl-1.8/pcl/io/file_io.h:42,
                 from /usr/local/include/pcl-1.8/pcl/io/obj_io.h:42,
                 from /app/modules/odm_orthophoto/src/OdmOrthoPhoto.hpp:9,
                 from /app/modules/odm_orthophoto/src/main.cpp:2:
/usr/local/include/pcl-1.8/pcl/pcl_config.h:35:0: note: this is the location of the previous definition
 #define HAVE_POSIX_MEMALIGN
 ^
[100%] Linking CXX executable odm_orthophoto
[100%] Built target odm_orthophoto
[ 66%] Built target odm_orthophoto
[100%] Built target odm_cleanmesh
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/odm_orthophoto
-- Set runtime path of "/usr/local/bin/odm_orthophoto" to ""
-- Installing: /usr/local/bin/odm_cleanmesh
-- Set runtime path of "/usr/local/bin/odm_cleanmesh" to ""
Removing intermediate container 777f7035cf5e
 ---> c42bf52ae6b1
Step 11/14 : RUN pip install -r requirements.txt
 ---> Running in fc503a75e1ea
Collecting utm (from -r requirements.txt (line 1))
  Downloading https://files.pythonhosted.org/packages/1c/4e/ac9743c467cd1cb3178428e9f548f5d2b41ca54df28db694f108baf549be/utm-0.6.0.tar.gz
Collecting repoze.lru==0.7 (from -r requirements.txt (line 2))
  Downloading https://files.pythonhosted.org/packages/12/bc/595a77c4b5e204847fdf19268314ef59c85193a9dc9f83630fc459c0fee5/repoze.lru-0.7.tar.gz
Collecting Pillow==6.1.0 (from -r requirements.txt (line 3))
  Downloading https://files.pythonhosted.org/packages/cc/a4/79b5f36d1e1a2b426073bd62217d1530fcd939950c2936651e6b39127a9b/Pillow-6.1.0-cp27-cp27mu-manylinux1_x86_64.whl (2.1MB)
Collecting ExifRead==2.1.2 (from -r requirements.txt (line 4))
  Downloading https://files.pythonhosted.org/packages/eb/7d/b488697104d411c36fbe19a3b64d1219ef30aa0fa7640bad6381c6b0c4b9/ExifRead-2.1.2-py2-none-any.whl (47kB)
Collecting pytz==2020.1 (from -r requirements.txt (line 5))
  Downloading https://files.pythonhosted.org/packages/4f/a4/879454d49688e2fad93e59d7d4efda580b783c745fd2ec2a3adf87b0808d/pytz-2020.1-py2.py3-none-any.whl (510kB)
Collecting xmltodict==0.12.0 (from -r requirements.txt (line 6))
  Downloading https://files.pythonhosted.org/packages/28/fd/30d5c1d3ac29ce229f6bdc40bbc20b28f716e8b363140c26eff19122d8a5/xmltodict-0.12.0-py2.py3-none-any.whl
Collecting beautifulsoup4==4.9.1 (from -r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/c2/39/1efce3dc73e657c43f436533d49be1491bf8fc830caa70188d73bfd03b8d/beautifulsoup4-4.9.1-py2-none-any.whl (111kB)
Collecting lxml==4.5.1 (from -r requirements.txt (line 8))
  Downloading https://files.pythonhosted.org/packages/7a/ac/e5caaa241de06024766872714c38d14e5f885dc453a4b8f9e6463b67c164/lxml-4.5.1-cp27-cp27mu-manylinux1_x86_64.whl (5.5MB)
Collecting pyproj==2.2.2 (from -r requirements.txt (line 9))
  Downloading https://files.pythonhosted.org/packages/9b/9a/04dcffd4ff9bc064c05f723be71177cfb593d5ce6e4d6185c3ef8b7a4be9/pyproj-2.2.2-cp27-cp27mu-manylinux1_x86_64.whl (11.2MB)
Collecting psutil==5.6.3 (from -r requirements.txt (line 10))
  Downloading https://files.pythonhosted.org/packages/1c/ca/5b8c1fe032a458c2c4bcbe509d1401dca9dda35c7fc46b36bb81c2834740/psutil-5.6.3.tar.gz (435kB)
Collecting soupsieve<2.0 (from beautifulsoup4==4.9.1->-r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/39/36/f35056eb9978a622bbcedc554993d10777e3c6ff1ca24cde53f4be9c5fc4/soupsieve-1.9.6-py2.py3-none-any.whl
Collecting aenum; python_version < "3.6" (from pyproj==2.2.2->-r requirements.txt (line 9))
  Downloading https://files.pythonhosted.org/packages/b1/9f/b8c6a8964beba7588ff024937cab18d15ad3bdef9ab7724ca295dad73fc6/aenum-2.2.4-py2-none-any.whl
Collecting backports.functools-lru-cache; python_version < "3" (from soupsieve<2.0->beautifulsoup4==4.9.1->-r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/da/d1/080d2bb13773803648281a49e3918f65b31b7beebf009887a529357fd44a/backports.functools_lru_cache-1.6.1-py2.py3-none-any.whl
Building wheels for collected packages: utm, repoze.lru, psutil
  Running setup.py bdist_wheel for utm: started
  Running setup.py bdist_wheel for utm: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/9a/76/b2/58ad7ade8b0475c577f80ee8023d7164fd561bb45c20b4beab

Running setup.py bdist_wheel for repoze.lru: started
Running setup.py bdist_wheel for repoze.lru: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/80/c7/7e/74a37083827b36f0e87d60824124409b8cc88eea0940cada72
Running setup.py bdist_wheel for psutil: started
Running setup.py bdist_wheel for psutil: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/90/7e/74/bb640d77775e6b6a78bcc3120f9fea4d2a28b2706de1cff37d
Successfully built utm repoze.lru psutil
Installing collected packages: utm, repoze.lru, Pillow, ExifRead, pytz, xmltodict, backports.functools-lru-cache, soupsieve, beautifulsoup4, lxml, aenum, pyproj, psutil
Successfully installed ExifRead-2.1.2 Pillow-6.1.0 aenum-2.2.4 backports.functools-lru-cache-1.6.1 beautifulsoup4-4.9.1 lxml-4.5.1 psutil-5.6.3 pyproj-2.2.2 pytz-2020.1 repoze.lru-0.7 soupsieve-1.9.6 utm-0.6.0 xmltodict-0.12.0
You are using pip version 8.1.1, however version 20.2.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Removing intermediate container fc503a75e1ea
---> 69e4340e950c
Step 12/14 : RUN (rm -r NodeODM || true) && git submodule update --init && cd NodeODM && npm install --quiet
---> Running in ac2c0271291e
Submodule 'NodeODM' (https://github.com/OpenDroneMap/NodeODM) registered for path 'NodeODM'
Cloning into 'NodeODM'...
Submodule path 'NodeODM': checked out '76b33914af34928dbb851bbe96de7fc073fe74ad'
npm WARN deprecated [email protected]: request has been deprecated, see request/request#3142
npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated

[email protected] postinstall /app/NodeODM/node_modules/nodemon
node bin/postinstall || exit 0

Love nodemon? You can now support the project via the open collective:

https://opencollective.com/nodemon/donate

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 543 packages from 398 contributors and audited 548 packages in 34.152s

8 packages are looking for funding
run npm fund for details

found 0 vulnerabilities

Removing intermediate container ac2c0271291e
---> e187e3e8239d
Step 13/14 : RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && rm -fr /app/build /app/modules/build
---> Running in 72601ca68f07
Removing intermediate container 72601ca68f07
---> 32e6e6d0d710
Step 14/14 : ENTRYPOINT ["/usr/bin/nodejs", "/app/NodeODM/index.js", "--odm_path", "/app"]
---> Running in 141b10e2c9d2
Removing intermediate container 141b10e2c9d2
---> 8dec9448d76e
Successfully built 8dec9448d76e
Successfully tagged uav4geo/nodecm:latest
[sylvain@T480s NodeCM]$
[sylvain@T480s NodeCM]$ docker run --rm -ti -p 3000:3000 uav4geo/nodecm
Invalid configuration file config-default.json

Running via command line works, but NodeCM errors out if sent tasks from WebODM

Running via command line works, but NodeCM errors out if sent tasks from WebODM:

info: About to run: /app/run.sh --project-path /app/NodeODM/data f92715d3-a579-4462-87af-13dc6d1d5700
/app/NodeODM/libs/odmRunner.js:79
        childProcess.stdout.on('data', chunk => outputReceived(chunk.toString()));
                            ^

TypeError: Cannot read property 'on' of undefined
    at Object.run (/app/NodeODM/libs/odmRunner.js:79:29)
    at Task.start (/app/NodeODM/libs/Task.js:476:50)
    at TaskManager.processNextTask (/app/NodeODM/libs/TaskManager.js:200:22)
    at TaskManager.addNew (/app/NodeODM/libs/TaskManager.js:229:14)
    at Task (/app/NodeODM/libs/taskNew.js:387:53)
    at Task.async.series.err (/app/NodeODM/libs/Task.js:87:13)
    at /app/NodeODM/node_modules/async/dist/async.js:3888:9
    at /app/NodeODM/node_modules/async/dist/async.js:473:16
    at replenish (/app/NodeODM/node_modules/async/dist/async.js:1006:25)
    at iterateeCallback (/app/NodeODM/node_modules/async/dist/async.js:995:17)

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.