Try   HackMD

DeepTAM Knowledgebase

A bit of a knowledge base for important stuff and errors arround DeepTAM which you might encounter or at least that I encountered.
https://github.com/lmb-freiburg/deeptam

Feel free to pm me if you found a solution for another problem you had and I'll add it to this list.
https://github.com/MrMinemeet/

Important Information

ADTF

DeepTAM and ADTF don't get along with each other that well, as ADTF uses a special place for Cuda which Tensorflow doesn't like
Also some other stuff

Other stuff that is important

  • Restart your system from time to time when trying to get DeepTAM running

Installation

conda create -y -n deeptam python=3.5 conda activate deeptam

conda install -y pip boost cython conda-build
wget http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz
mkdir Eigen
tar -xf 3.3.7.tar.gz -C Eigen --strip-components=1
ln -s $(dirname $(dirname $(which python)))/lib/libboost_python35.so.1.67.0 $(dirname $(dirname $(which python)))/lib/libboost_python-py35.so
pip install --global-option=build_ext --global-option="-I$(pwd)/Eigen/" minieigen 
pip install tensorflow-gpu==1.4.0 scikit-image

setup libraries and cmake

source /system/apps/biosoft/cuda-8.0/bashrc
source /system/apps/biosoft/cudnn-6.0_cuda8.0/bashrc
source /system/apps/biosoft/cmake-3.13.4/bashrc

build and register lmbspecialops

git clone -b deeptam https://github.com/lmb-freiburg/lmbspecialops.git
LMBSPECIALOPS_DIR=$PWD/lmbspecialops
cd $LMBSPECIALOPS_DIR
mkdir build
cd build
cmake ..
make -j 8
conda-develop $LMBSPECIALOPS_DIR/python

checkout deeptam and download data and weights
cd ../..
git clone https://github.com/lmb-freiburg/deeptam.git
DEEPTAM_DIR=$PWD/deeptam
conda-develop $DEEPTAM_DIR/tracking/python
conda-develop $DEEPTAM_DIR/mapping/python

cd $DEEPTAM_DIR/tracking/data
wget "https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_desk.tgz"
tar -xvf "rgbd_dataset_freiburg1_desk.tgz"

cd $DEEPTAM_DIR/tracking/weights
wget --no-check-certificate  https://lmb.informatik.uni-freiburg.de/people/zhouh/deeptam/deeptam_tracker_weights.tgz
tar -xvf deeptam_tracker_weights.tgz

cd $DEEPTAM_DIR/tracking/examples

Errors

Eigen/Core not found

Error Message

fatal error: Eigen/Dense: No such file or directory
compilation terminated.

Solution

  • sudo apt-get install libeigen3-dev
  • sudo apt install python3-minieigen after that with pip3 again

Boost/Python.hpp

Error Message

fatal error: Boost/Python.hpp: No such file or directory
compilation terminated.

Solution

sudo apt-get install libboost-all-dev

startsWith()

Error Message

data has no method called startsWith()

Solution

comment the functions out

libcublas.so not found

Error Message

fatal error: libcublas.so.8.0: No such file or directory

Solution

cmake needs a version that is installed

sudo apt install nvidia-cuda-toolkit

GCC versions later than 6 not supported

Error Message

error: #error -- unsupported GNU version! gcc versions later than 6 are not supported!
Solution

Start cmake with a parameter to use older version that is installed(install an older if not present)
I tested it on 4.8 and it worked. Versjk 5.5 was buggy and I'd have had to compile 5.4 on my own.
cmake -D CUDA_NVCC_FLAGS="-ccbin gcc-4.8" ..

Tensorflow not found

Error Message

Module Tensorflow not found

Solution

  • reinstall Tensorflow & Tensorflow-GPU
  • make environment with pyhton3 mkvirtualenv -p /usr/bin/python3.6 --clear DeepTAM

Wrong CMAKE version when compiling lmbspecialops

Error Message

Traceback (most recent call last):
  File "example_basic.py", line 102, in <module>
    main()
  File "example_basic.py", line 72, in main
    tracker_core = TrackerCore(tracking_module_path,checkpoint,intrinsics)
  File "/home/aadc/deeptam/tracking/python/deeptam_tracker/tracker.py", line 231, in __init__
    self._tracking_mod = load_myNetworks_module_noname(self._tracking_module)
  File "/home/aadc/deeptam/tracking/python/deeptam_tracker/utils/helpers.py", line 44, in load_myNetworks_module_noname
    return load_myNetworks_module(module_name, path_to_myNetworks)
  File "/home/aadc/deeptam/tracking/python/deeptam_tracker/utils/helpers.py", line 32, in load_myNetworks_module
    return importlib.import_module('.'+myNetworks_name, module_name)
  File "/home/aadc/.virtualenvs/DeepTAM/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "../python/deeptam_tracker/models/networks.py", line 2, in <module>
    from .blocks import *
  File "../python/deeptam_tracker/models/blocks.py", line 1, in <module>
    from .helpers import *
  File "../python/deeptam_tracker/models/helpers.py", line 1, in <module>
    import lmbspecialops as sops
  File "/home/aadc/lmbspecialops/python/lmbspecialops.py", line 27, in <module>
    lmbspecialopslib = tf.load_op_library(_lib_path)
  File "/home/aadc/.virtualenvs/DeepTAM/lib/python3.5/site-packages/tensorflow/python/framework/load_library.py", line 61, in load_op_library
    lib_handle = py_tf.TF_LoadLibrary(library_filename)
tensorflow.python.framework.errors_impl.NotFoundError: /home/aadc/lmbspecialops/build/lib/lmbspecialops.so: undefined symbol: _ZTIN10tensorflow8OpKernelE
W0703 13:59:34.039927 140179251631872 deprecation_wrapper.py:119] From /home/aadc/deeptam/tracking/python/deeptam_tracker/tracker.py:242: The name tf.reset_default_graph is deprecated. Please use tf.compat.v1.reset_default_graph instead.

Solution

https://github.com/lmb-freiburg/demon/issues/26

https://github.com/lmb-freiburg/lmbspecialops/issues/3

there was an error in verifying the lgenfe output!

Error Message

Error: Internal Compiler Error (codegen): "there was an error in verifying the lgenfe output!"

Solution

run make command with only one thread
make -j1
and try another gcc version in the cmake argument

Undefinded Symbol

Error Message

tensorflow.python.framework.errors_impl.NotFoundError: /home/adas/DeepTAM/lmbspecialops/build/lib/lmbspecialops.so: undefined symbol: _ZTIN10tensorflow8OpKernelE

Solution

not a good one found yet, just try intalling it from beginning again.
Sry but that but it helped for me

math_function.hpp not found

Error Message

/home/adas/.virtualenvs/DeepTAM/lib/python3.6/site-packages/tensorflow/include/unsupported/Eigen/CXX11/../../../Eigen/Core:59:34: fatal error: math_functions.hpp: No such file or directory
     #include <math_functions.hpp>

Solution

For cuda 9.1 replace math_functions.hpp with cuda_runtime.h
This change should happen in a Core file which is in your .virtualenv folder


-    #include <math_functions.hpp>

+    #include <cuda_runtime.h>

libcublas.so.8.0 cannot open shared object

Error Message

ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory

Solution

Install the right version of Cuda Toolkit 8.0 for your system from this nvidia website
https://developer.nvidia.com/cuda-80-ga2-download-archive

Credits

Cuda Toolkit 8.0 -> InstallUtils.pm

Error Message

In log:

Can't locate InstallUtils.pm in @INC (you may need to install the InstallUtils module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at ./install-sdk-linux.pl line 6.

Solution

  • unpack .run file using the command: sudo sh ./cuda*.run --tar mxvf
  • copy unpacked file InstallUtils.pm to /usr/lib/x86_64-linux-gnu/perl-base
  • enter command in terminal: export $PERL5LIB

Credits

Conv2DCustomBackpropInputOp only supports NHWC

Error Message

InvalidArgumentError (see above for traceback): Conv2DCustomBackpropInputOp only supports NHWC.
	 [[Node: net_F1/flowdepth/upsample_flow3to2/upconv/conv2d_transpose = Conv2DBackpropInput[T=DT_FLOAT, data_format="NCHW", padding="SAME", strides=[1, 1, 2, 2], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](net_F1/flowdepth/upsample_flow3to2/upconv/stack, net_F1/flowdepth/upsample_flow3to2/upconv/kernel/read, net_F1/flowdepth/predict_flow3/conv2/BiasAdd)]]

Solution

Something with TF and GPU not getting detected, no solution found yet

Other important stuff

install Cuda 10.0
Tensorflow(Normal and GPU) 1.14.0