Giter Site home page Giter Site logo

victorprad / infinitam Goto Github PK

View Code? Open in Web Editor NEW
914.0 914.0 350.0 3.57 MB

A Framework for the Volumetric Integration of Depth Images

Home Page: http://www.infinitam.org

License: Other

C++ 81.14% C 1.44% Cuda 5.59% CMake 3.96% Makefile 0.43% Objective-C++ 4.58% Objective-C 0.43% Java 0.87% Metal 1.27% Vim Script 0.04% Shell 0.25%

infinitam's People

Contributors

carlren avatar connerbrooks avatar cyren avatar duncanfrost avatar jackhunt avatar mikesapi avatar mingmingcheng avatar nicien avatar olafkaehler avatar sgolodetz avatar tcavallari avatar victorprad 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  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

infinitam's Issues

CMake error for OpenGL while installing OpenCV on Ubuntu

The following statements are added to the CMakeLists.txt file -
find_package(GLUT REQUIRED)
find_package(OpenGL REQUIRED)
where do i add ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ? I read somewhere that they must be placed in the related target link libraries. Where exactly is that?

Problems about compiling spaint

Uploading spaint_v2.jpg…

I am trying to compile spaint_v2, and during the configuring process Cmake GUI gets some problems just as the picture below.
Here are my questions:
(1)I wonder the difference between InfiniTAM-master and InfiniTAM spaint_v2. Does the latter one means it is special and necessary for compiling SemanticPaint?

(2)I don't have Intel RealSense so I turn the cmake variable WITH_REALSENSE off and use Microsoft Kinect2 instead, is that fine? By the way, my Kinect SDK is 2.0.

(3)It said "libuvc_DIR-NOTFOUND", but when I read README I found libuvc is optional and only used for Intel RealSense, so does that mean I can overlook this error?

(4)Last but not the least. I know OpenNI is important to get live images and I do install OpenNI in C:\Program Files. But it still say "OpenNI found: FALSE", how should I set the OPEN_NI_ROOT?

Probably the questions are kind of tedious, but I am eager to get your help, and forgive my grammer error, I am a Chinsese guy. Thanks!^_^
Uploading spaint_v2.png…
@sgolodetz @victorprad @olafkaehler

Issues when using ASUS Xtion on Windows

When using the Xtion sensor the application starts and OpenNI initializes the device correctly. When integration begins, a few frames get processed and then the application hangs and becomes unresponsive. When using the Kinect 1 with OpenNI there is no repro of this bug on Windows. When we tested the Xtion on Ubuntu it works as expected.

Tested on Windows 8 and 10 with VS 2013.
Using OpenNI2 binary installer.

ASUS Xtion for the Input

Hi,
Thanks a lot for the great InfiniTAM code!
Could it also use ASUS Xtion as input sensor? Thanks a lot!

Matrix multiplication with scalar not working

I'm not sure if I'm missing something obvious, but while writing unit tests I came across strange results and tracked it down to something that can be recreated like this:

ORUtils::Matrix3<double> m;

std::cout << m << std::endl;
// Prints random unitialized values, as expected

m.setIdentity();
std::cout << m << std::endl;
// 1, 0, 0
// 0, 1, 0
// 0, 0, 1
// as expected

std::cout << (m * 5.0) << std::endl;
// Prints random unitialized values, not expected

m *= 5;
std::cout << m << std::endl;
// 5, 0, 0
// 0, 5, 0
// 0, 0, 5
// as expected

The place that the * is overloaded is here, but that looks fine to me. l'd really appreciate another set of eyes on that.

I ran the above on a completely clean build of the master branch, though I also compiled with -DWITH_CUDA=FALSE but I don't think that's relevant.

Poor framerate

Hello,

I am using InfiniTAM with a Asus Xtion Pro (using OpenNI2) and currently no calibration file on Ubuntu 14.04. I have a serious laptop (i7 latest generation) with a serious GPU (GTX 970M - high end for notebooks).

When testing InfiniTAM I am a bit surprised of the framerate I obtain (I would say about 0.5 to 5 frames/s most of the time + freezes every now and then + smooth every now and them). Obviously with such a framerate the tracking and SLAM is very bad.

I am a bit surprised to get this behaviour and low framerate. Any idea of where it could come from?

Also I have checked the framerate I obtain when I run a plain OpenNI2 sample (NiViewer) and it runs very smooth.

Any idea of how to investigate this issue? I am not even sure where to start...

Regards,

Antoine.

[SOLVED] cmake aborts with an error message stating it cannot find GLUT_Xi_LIBRARY and GLUT_Xmu_LIBRARY

On Debian/Ubuntu and the like the required libraries are called libxi-dev and libxmu-dev. Run the following command to install them:

sudo apt-get install libxmu-dev libxi-dev

Full cmake output with errors:

~/infiniTAM/build>>> cmake ~/infiniTAM/InfiniTAM-master/InfiniTAM
-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found GLUT: /usr/lib/x86_64-linux-gnu/libglut.so  
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so  
CUDA_TOOLKIT_ROOT_DIR not found or specified
-- Could NOT find CUDA (missing:  CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) 
-- Could NOT find OpenNI (missing:  OpenNI_LIBRARY OpenNI_INCLUDE_DIR) 
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GLUT_Xi_LIBRARY (ADVANCED)
    linked by target "Engine" in directory /home/tv/infiniTAM/InfiniTAM-master/InfiniTAM/Engine
GLUT_Xmu_LIBRARY (ADVANCED)
    linked by target "Engine" in directory /home/tv/infiniTAM/InfiniTAM-master/InfiniTAM/Engine

-- Configuring incomplete, errors occurred!

InfiniTAM not building

Hi,

Case 1:

I am trying to use the Intel real sense camera to run this project. I installed the libuvc library for that. When I run make on the project it gives me an error in LibUVCEngine.cpp shown below:

InfiniTAM/InfiniTAM/Engine/LibUVCEngine.cpp: In function ‘void callback_depth(uvc_frame_t_, void_)’:
InfiniTAM/InfiniTAM/Engine/LibUVCEngine.cpp:59:42: error: ‘UVC_FRAME_FORMAT_GRAY16’ was not declared in this scope
data->framebuffer_depth->frame_format = UVC_FRAME_FORMAT_GRAY16;
^
InfiniTAM/InfiniTAM/Engine/LibUVCEngine.cpp: In constructor ‘InfiniTAM::Engine::LibUVCEngine::LibUVCEngine(const char_, Vector2i, Vector2i)’:
InfiniTAM/InfiniTAM/Engine/LibUVCEngine.cpp:151:50: error: ‘uvc_open2’ was not declared in this scope
res = uvc_open2(data->dev, &(data->devh_rgb), 0); //Try to open camera 0 (RGB)
^
make[2]: *_* [Engine/CMakeFiles/Engine.dir/LibUVCEngine.cpp.o] Error 1
make[1]: *** [Engine/CMakeFiles/Engine.dir/all] Error 2
make: *** [all] Error 2

Can you please help me resolve this error? I faced the same issue both on OSX and Ubuntu.

Case 2:

I also tried to use the Kinect for running this project. But when I run cmake the flag openni_found is false even though I have installed OpenNI (https://github.com/OpenNI/OpenNI) . I have also installed the libfreenect driver (http://openkinect.org/wiki/Getting_Started) required for OSX and Ubuntu.

In both the cases I am reaching to a dead end. I have installed all the libraries required to compile this project . I would really appreciate any suggestions!!!

Bug in RealSense wrapper?

I found out that this line of code should be added in RealSenseEngine.cpp:

this->calib.disparityCalib.params = Vector2f(data->dev->get_depth_scale(), 0.0f);

Otherwise, it seems to work nicely with that, thanks a lot to the contributors.

P.S.: sorry not to go through the github pull requests mechanism, I'm a bit in a rush:)

How to generate a project which can work on the iPad with Metal?

I have successfully used InfiniTAM framework on the iPad to reconstruct the indoor scenes with Structure Sensor capturing the depth information. But the project I'v generated only using the CPU and it takes about 100ms to process one frame.

The question is how to generate a project which can work on the iPad with Metal?
Thanks!

Teddy/Frames/%04i.ppm Teddy/Frames/%04i.pgm

Thanks a lot for the code!

What kind of files 04i.ppm and 04i.pgm are? As I put some rgb images(changed name to 1c.png, 2c.png...) and depth images(changed name to 1d.png, 2d.png...) in the Teddy folder from TUM RGBD dataset, it displayed:
initialising ...
using calibration file: Teddy/calib.txt
using rgb images: Teddy/1c.png
using depth images: Teddy/1d.png
error reading file 'Teddy/1c.png'
error reading file 'Teddy/1d.png'

Thanks a lot!

How to build infiniTAM on Android

I would like to build infiniTAM on Android, but I do not find the version specified for Android. So,
questions:

  1. Which code should I use to build on Android?
  2. What platform does it require?

computeNormalAndWeight uses intrinparam wrongly

The method uses the focal length fx, fy in a wrong way to unproject points:

x_yp1.x = x_yp1.z * (x - intrinparam.z) * intrinparam.x;
x_yp1.y = x_yp1.z * ((y + 1.0f) - intrinparam.w) * intrinparam.y;

This is only valid when intrinparam.x and intrinparam.y have been inverted (so that they are 1/fx, 1/fy).
But this does not happen anywhere in the calls to that function.
As a result, the x__y_.xy values are extremely large.

The fix is to compute

Vector4f projParams = projectionParamsSimple.all;
Vector4f invProjParams = projParams;
invProjParams.x = 1.0f / invProjParams.x;
invProjParams.y = 1.0f / invProjParams.y;

like AllocateSceneFromDepth does for example and then pass those.

Or we could correct the formula to:

x_yp1.x = x_yp1.z * (x - intrinparam.z) / intrinparam.x;
x_yp1.y = x_yp1.z * ((y + 1.0f) - intrinparam.w) / intrinparam.y;

Interestingly, the TRACKER_WICP still seems to work fine.

How to test InfiniTAM on the ICL-NUIM dataset?

Thank you for your excellent code!

Nowadays I'm trying to test the approach on the ICL-NUIM dataset .
When I set the camera intrinsic calibration matrix as:
K =
481.20 0 319.50
0 480.0 239.50
0 0 1
The calculated camera center is different to the value of ground-truth. I've learned maybe it is due to the using of a left-handed coordinate system when generating the dataset.
So how to test InfiniTAM on the ICL-NUIM dataset?

Thanks!

Any limitation on depth value range?

Hello,

Thanks a lot for this wonderful code!

I tried to run this code on the "Teddy" data and it looked great. However when I tried to run this code on ICL_NUIM dataset and found that there is something wrong about the depth and fusion result in the UI output. Most of the area in depth map cannot be seen in the output and no fusion result output. How to fix this issue? If there any limitation or truncation on depth value, since I found that the depth range of "Teddy" is 0-2047 (11bits)?

Thanks a lot!
Dan

How to run InfiniTAM on iOS?

Hello, I want to run this on an iPad, what should I do to build it for iOS? Do I need to write extra code? And by the way, is it possible to connect Kinect to iPad?
Thanks!

Problems about learning the code

I have compiled InfiniTAM-spaint_v2, and I am trying to understand the code nowadays. Due to so many complex source files I found it's difficult to learn, although I have generate doxygen files it seems not useful for my learning process. Can somebody tell me how to learn the code and master the core algorithm? Thanks!

Build error...

Dear all,

I had followed the install step but came across the following build error:
(It seems the linking to openni2 issue but I had built openni2 successfully before)

[ 96%] Built target Engine
Scanning dependencies of target InfiniTAM
[100%] Building CXX object CMakeFiles/InfiniTAM.dir/InfiniTAM.cpp.o
Linking CXX executable InfiniTAM
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::OpenNI::waitForAnyStream(openni::VideoStream**, int, int*, int) [clone .constprop.32]': OpenNIEngine.cpp:(.text+0x1e5): undefined reference tooniWaitForAnyStream'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function InfiniTAM::Engine::OpenNIEngine::getImages(ITMLib::Objects::ITMView*)': OpenNIEngine.cpp:(.text+0x38c): undefined reference tooniStreamReadFrame'
OpenNIEngine.cpp:(.text+0x3a2): undefined reference to oniFrameRelease' OpenNIEngine.cpp:(.text+0x3d4): undefined reference tooniStreamReadFrame'
OpenNIEngine.cpp:(.text+0x3ea): undefined reference to oniFrameRelease' Engine/libEngine.a(OpenNIEngine.cpp.o): In functionInfiniTAM::Engine::OpenNIEngine::OpenNIEngine(char const_, char const_, bool, ITMLib::Vector2, ITMLib::Vector2)':
OpenNIEngine.cpp:(.text+0x883): undefined reference to oniInitialize' OpenNIEngine.cpp:(.text+0x888): undefined reference tooniGetExtendedError'
OpenNIEngine.cpp:(.text+0x8ef): undefined reference to oniDeviceSetProperty' OpenNIEngine.cpp:(.text+0x91e): undefined reference tooniDeviceSetProperty'
OpenNIEngine.cpp:(.text+0x951): undefined reference to oniDeviceSetProperty' OpenNIEngine.cpp:(.text+0x96c): undefined reference tooniDeviceCreateStream'
OpenNIEngine.cpp:(.text+0x979): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x9b3): undefined reference tooniDeviceCreateStream'
OpenNIEngine.cpp:(.text+0x9c0): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x9ff): undefined reference tooniShutdown'
OpenNIEngine.cpp:(.text+0xa79): undefined reference to oniStreamGetSensorInfo' OpenNIEngine.cpp:(.text+0xad6): undefined reference tooniStreamIsPropertySupported'
OpenNIEngine.cpp:(.text+0xaf1): undefined reference to oniStreamIsPropertySupported' OpenNIEngine.cpp:(.text+0xcae): undefined reference tooniStreamSetProperty'
OpenNIEngine.cpp:(.text+0xcea): undefined reference to oniStreamSetProperty' OpenNIEngine.cpp:(.text+0xd07): undefined reference tooniStreamStart'
OpenNIEngine.cpp:(.text+0xda9): undefined reference to oniDeviceOpen' OpenNIEngine.cpp:(.text+0xdb6): undefined reference tooniGetExtendedError'
OpenNIEngine.cpp:(.text+0xe39): undefined reference to oniStreamGetSensorInfo' OpenNIEngine.cpp:(.text+0xe96): undefined reference tooniStreamIsPropertySupported'
OpenNIEngine.cpp:(.text+0xeb1): undefined reference to oniStreamIsPropertySupported' OpenNIEngine.cpp:(.text+0x1075): undefined reference tooniStreamSetProperty'
OpenNIEngine.cpp:(.text+0x10b7): undefined reference to oniStreamSetProperty' OpenNIEngine.cpp:(.text+0x10d4): undefined reference tooniStreamStart'
OpenNIEngine.cpp:(.text+0x116a): undefined reference to oniDeviceGetSensorInfo' OpenNIEngine.cpp:(.text+0x11da): undefined reference tooniDeviceGetSensorInfo'
OpenNIEngine.cpp:(.text+0x1251): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x12e9): undefined reference tooniGetExtendedError'
OpenNIEngine.cpp:(.text+0x1364): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1374): undefined reference tooniStreamDestroy'
OpenNIEngine.cpp:(.text+0x16f7): undefined reference to oniDeviceGetInfo' OpenNIEngine.cpp:(.text+0x1705): undefined reference tooniDeviceIsPropertySupported'
OpenNIEngine.cpp:(.text+0x171c): undefined reference to oniDeviceIsPropertySupported' OpenNIEngine.cpp:(.text+0x1733): undefined reference tooniDeviceIsCommandSupported'
OpenNIEngine.cpp:(.text+0x1763): undefined reference to oniDeviceIsPropertySupported' OpenNIEngine.cpp:(.text+0x1901): undefined reference tooniDeviceIsPropertySupported'
OpenNIEngine.cpp:(.text+0x1918): undefined reference to oniDeviceIsCommandSupported' Engine/libEngine.a(OpenNIEngine.cpp.o): In functionInfiniTAM::Engine::OpenNIEngine::~OpenNIEngine()':
OpenNIEngine.cpp:(.text+0x1976): undefined reference to oniStreamStop' OpenNIEngine.cpp:(.text+0x19ea): undefined reference tooniStreamStop'
OpenNIEngine.cpp:(.text+0x1ab6): undefined reference to oniFrameRelease' OpenNIEngine.cpp:(.text+0x1ad2): undefined reference tooniFrameRelease'
OpenNIEngine.cpp:(.text+0x1c84): undefined reference to oniShutdown' OpenNIEngine.cpp:(.text+0x1ca4): undefined reference tooniStreamDestroy'
OpenNIEngine.cpp:(.text+0x1cb4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1cc1): undefined reference tooniDeviceClose'
OpenNIEngine.cpp:(.text+0x1cd4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1ce4): undefined reference tooniDeviceClose'
OpenNIEngine.cpp:(.text+0x1cf4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1d77): undefined reference tooniFrameRelease'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::VideoStream::~VideoStream()': OpenNIEngine.cpp:(.text._ZN6openni11VideoStreamD2Ev[_ZN6openni11VideoStreamD5Ev]+0x74): undefined reference tooniStreamDestroy'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::Device::~Device()': OpenNIEngine.cpp:(.text._ZN6openni6DeviceD2Ev[_ZN6openni6DeviceD5Ev]+0xa4): undefined reference tooniDeviceClose'
collect2: ld returned 1 exit status
make[2]: *** [InfiniTAM] Error 1
make[1]: *** [CMakeFiles/InfiniTAM.dir/all] Error 2
make: *** [all] Error 2

Could someone give me suggestions to fix it?

Best regards,
Milton

Error when compile with OpenNI

I have downloaded openni2 from structure.io, but after running ./install.sh, 'cmake' still shows could not find openni_include_dir. I then edited include path explicitly to Include folder inside downloaded folder from structure.io in /cmake/FindOpenNI.cmake. When I run 'make' this error shows

[100%] Building CXX object CMakeFiles/InfiniTAM.dir/InfiniTAM.cpp.o
Linking CXX executable InfiniTAM
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::OpenNI::waitForAnyStream(openni::VideoStream**, int, int*, int) [clone .constprop.20]': OpenNIEngine.cpp:(.text+0xa5): undefined reference tooniWaitForAnyStream'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function InfiniTAM::Engine::OpenNIEngine::getImages(ITMLib::Objects::ITMView*)': OpenNIEngine.cpp:(.text+0x29c): undefined reference tooniStreamReadFrame'
OpenNIEngine.cpp:(.text+0x2b2): undefined reference to oniFrameRelease' OpenNIEngine.cpp:(.text+0x2e4): undefined reference tooniStreamReadFrame'
OpenNIEngine.cpp:(.text+0x2fa): undefined reference to oniFrameRelease' Engine/libEngine.a(OpenNIEngine.cpp.o): In functionInfiniTAM::Engine::OpenNIEngine::OpenNIEngine(char const_, char const_, bool)':
OpenNIEngine.cpp:(.text+0x74b): undefined reference to oniInitialize' OpenNIEngine.cpp:(.text+0x750): undefined reference tooniGetExtendedError'
OpenNIEngine.cpp:(.text+0x7a9): undefined reference to oniDeviceSetProperty' OpenNIEngine.cpp:(.text+0x7c4): undefined reference tooniDeviceCreateStream'
OpenNIEngine.cpp:(.text+0x7d1): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x80b): undefined reference tooniDeviceCreateStream'
OpenNIEngine.cpp:(.text+0x818): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x857): undefined reference tooniShutdown'
OpenNIEngine.cpp:(.text+0x8d1): undefined reference to oniStreamGetSensorInfo' OpenNIEngine.cpp:(.text+0x92e): undefined reference tooniStreamIsPropertySupported'
OpenNIEngine.cpp:(.text+0x949): undefined reference to oniStreamIsPropertySupported' OpenNIEngine.cpp:(.text+0x99b): undefined reference tooniStreamGetProperty'
OpenNIEngine.cpp:(.text+0x9e4): undefined reference to oniStreamSetProperty' OpenNIEngine.cpp:(.text+0xa09): undefined reference tooniStreamStart'
OpenNIEngine.cpp:(.text+0xa39): undefined reference to oniDeviceOpen' OpenNIEngine.cpp:(.text+0xa46): undefined reference tooniGetExtendedError'
OpenNIEngine.cpp:(.text+0xb41): undefined reference to oniStreamGetSensorInfo' OpenNIEngine.cpp:(.text+0xb9e): undefined reference tooniStreamIsPropertySupported'
OpenNIEngine.cpp:(.text+0xbb9): undefined reference to oniStreamIsPropertySupported' OpenNIEngine.cpp:(.text+0xc0b): undefined reference tooniStreamGetProperty'
OpenNIEngine.cpp:(.text+0xc4d): undefined reference to oniStreamSetProperty' OpenNIEngine.cpp:(.text+0xc72): undefined reference tooniStreamStart'
OpenNIEngine.cpp:(.text+0xd21): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0xda1): undefined reference tooniGetExtendedError'
OpenNIEngine.cpp:(.text+0xe24): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0xe34): undefined reference tooniStreamDestroy'
OpenNIEngine.cpp:(.text+0x10d7): undefined reference to oniDeviceGetInfo' OpenNIEngine.cpp:(.text+0x10e5): undefined reference tooniDeviceIsPropertySupported'
OpenNIEngine.cpp:(.text+0x10fc): undefined reference to oniDeviceIsPropertySupported' OpenNIEngine.cpp:(.text+0x1113): undefined reference tooniDeviceIsCommandSupported'
OpenNIEngine.cpp:(.text+0x1143): undefined reference to oniDeviceIsPropertySupported' OpenNIEngine.cpp:(.text+0x120b): undefined reference tooniDeviceIsPropertySupported'
OpenNIEngine.cpp:(.text+0x1222): undefined reference to oniDeviceIsCommandSupported' Engine/libEngine.a(OpenNIEngine.cpp.o): In functionInfiniTAM::Engine::OpenNIEngine::~OpenNIEngine()':
OpenNIEngine.cpp:(.text+0x1286): undefined reference to oniStreamStop' OpenNIEngine.cpp:(.text+0x12fa): undefined reference tooniStreamStop'
OpenNIEngine.cpp:(.text+0x13c6): undefined reference to oniFrameRelease' OpenNIEngine.cpp:(.text+0x13e2): undefined reference tooniFrameRelease'
OpenNIEngine.cpp:(.text+0x1594): undefined reference to oniShutdown' OpenNIEngine.cpp:(.text+0x15b4): undefined reference tooniStreamDestroy'
OpenNIEngine.cpp:(.text+0x15c4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x15d1): undefined reference tooniDeviceClose'
OpenNIEngine.cpp:(.text+0x15e4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x15f4): undefined reference tooniDeviceClose'
OpenNIEngine.cpp:(.text+0x1604): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1687): undefined reference tooniFrameRelease'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::VideoStream::~VideoStream()': OpenNIEngine.cpp:(.text._ZN6openni11VideoStreamD2Ev[_ZN6openni11VideoStreamD5Ev]+0x74): undefined reference tooniStreamDestroy'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::Device::~Device()': OpenNIEngine.cpp:(.text._ZN6openni6DeviceD2Ev[_ZN6openni6DeviceD5Ev]+0xa4): undefined reference tooniDeviceClose'
collect2: ld returned 1 exit status
make[2]: *** [InfiniTAM] Error 1
make[1]: *** [CMakeFiles/InfiniTAM.dir/all] Error 2
make: *** [all] Error 2

My system is ubuntu 12.04.
Thanks!

Compiling InfiniTAM on Android

Hello,

I got a problem when I am trying to compile the Android source code. I follow the README in InfiniTAM/android and just skip the step of "Create a keystore". Then when I try to build the library based on Android.mk. I found an error as follows:

/usr/local/cuda-8.0/bin/nvcc -ccbin /home/dan/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/gen_standalone/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_30 -O3 -Xptxas '-dlcm=ca' -target-os-variant=Android --use_fast_math -c -o "Engine/DeviceSpecific/CUDA/ITMColorTracker_CUDA.o" "Engine/DeviceSpecific/CUDA/ITMColorTracker_CUDA.cu"
nvcc fatal : Unknown option 'target-cpu-arch'
Android.mk:25: recipe for target 'Engine/DeviceSpecific/CUDA/ITMColorTracker_CUDA.o' failed
make: *** [Engine/DeviceSpecific/CUDA/ITMColorTracker_CUDA.o] Error 1

I have successfully built the InfiniTAM in my laptop, but here I got an error as nvcc fatal : Unknown option 'target-cpu-arch'. Do you have any idea how to fix it?

Thanks a lot!

How to fix a scale of output mesh?

I tried to output a mesh in an obj format.
A scale of the output mesh is different from its real size, about 10 times smaller.
Could you tell me how to obtain the model in a real scale?

Thank you in advance

kinect v2

I was wondering how to use InfinTAM in Ubuntu 14.04 with the Kinect v2 as I found no deltailed description about it.
Does it work on the basis of libfreenect2 ?

installer

It doesn't seem make install, or any other installation code is present in the CMake files. Is it possible to add this?

Error when running InfiniTAM exe

Hello, I've downloaded and successfully compiled and build Infinitam in Release Mode x64 using visual studio 2012 in Windows 8. But when I run the executable I get an error which says: The application was unable to start correctly (0xc000007b). And then it crashes.
I am using the latest freeglut library and OpenNI from the provided links and I am not using CUDA.
Does anyone have any idea how to solve this problem?
Regards
Alex

Engine compile

shall the Engine in /InfiniTAM/InfiniTAM/Engine be compile separately?

Thanks a lot!

Problem to build InfinitiTAM undefined reference to oniStreamReadFrame

Hi, thanks for the source code.
I have a problem when I'm trying to build the project in Linux.
I run cmake .. -DOPEN_NI_ROOT= path openni and then when I run make I get the following error:

Linking CXX executable InfiniTAM
Engine/libEngine.a(OpenNIEngine.cpp.o): In function InfiniTAM::Engine::OpenNIEngine::getImages(ORUtils::Image<ORUtils::Vector4<unsigned char> >*, ORUtils::Image<short>*)': OpenNIEngine.cpp:(.text+0x355): undefined reference tooniStreamReadFrame'
OpenNIEngine.cpp:(.text+0x36b): undefined reference to `oniFrameRelease'

collect2: error: ld returned 1 exit status
make[2]: *** [InfiniTAM] Error 1
make[1]: *** [CMakeFiles/InfiniTAM.dir/all] Error 2
make: *** [all] Error 2

and there are a lot of similar undefined references from OpenNIEngine.cpp to onisomenthing . I've installed OpenNi2 from github repository (https://github.com/occipital/openni2) and the rest of dependencies. I really don't know what is the problem, maybe is because I have installed in my machine OpenNi 1.54. Do I have to uninstall them?? I really wouldn't like to do it.
If someone can help me that would be really great.

Thanks, in advance
Jose Soto

using InfiniTAM with the PMD CamBoard PicoFlexx?

Hi,

I wonder if InfiniTAM can be used with the PMD CamBoard PicoFlexx: http://pmdtec.com/picoflexx/ as a live input?

If not, would this be reasonable to achieve? What would be the recommended integration points to hook the PMD live output to?

the PMD PicoFlexx camera provides a depth information for each pixel it sees, but is a monochrome camera otherwise / basically no color information is provided.

best regards,

Akos

Drift

Experiment:

  • Start InfiniTAM
  • Reconstruct small environment,
  • Place camera on table, pointed at static part of scene,
  • Wait for a couple of minutes;
  • Use f to see the scene from a different viewpoint

Expected result:
slight surface degradation due to quantization and continuous integration without motion
Actual result:
drift

Possible reasons why it happens:

  • There is some offset somewhere in the image alignment (maybe a missing +0.5 on a pixel coordinate somewhere)?
  • The TSDF values are not being returned correctly
  • Factory calibration is not enough?

Compile InfiniTAM using OpenNI

Last year I found OpenNI was acquired by Apple and download was not available. Just now I find OpenNI resources in a website called http://structure.io/openni. Just as below.
Can I use this OpenNI SDK to replace Kinect SDK? Because my laptop is ubuntu and Kinect SDK is only available in Windows.

jietu

realsense f200: getting error ioctl failed on UVC_GET_MAX

My platform: Ubuntu 16.04, NVidia GT740, Intel realsense f200. Instaled with all dependencies except libuvc. Librealsense examples work fine.

If I connect Primsense carmine 1.09 infiniTAM works fine. However when i connect Intel Realsense F200 it quits with message:

trying UVC device
compiled without LibUVC support
trying RealSense device
ioctl failed on UVC_GET_MAX

Detailed Output:
InfiniTAM/build$ ./InfiniTAM
...
initialising ...
using calibration file:
trying OpenNI device:
OpenNI: Initialization ...

OpenNI: Device open failed!
DeviceOpen using default: no devices found
trying UVC device
compiled without LibUVC support
trying RealSense device
ioctl failed on UVC_GET_MAX

Kinect v2: shows only blank screen

I've been having this problem for a while.
InfiniTAM compiles and executes, however when using Kinect v2, the screen is blank. The framerate keeps updating, but nothing is shown or constructed... This is what I get.

untitled

I've tried two different machines, but both exhibit the same behavior. Interesting thing is, Kinect v1 works just fine (reconstruction is shown, etc.)

Any help is greatly appreciated :)

Saving entire mesh with swapping

Currently with swapping enabled if you attempt to save the mesh it will only save the memory of the isosurface that is currently on the GPU.

What is the best way to save the entirety of the mesh on both CPU and GPU?

Seed for ICP

Hello,

I am using InfiniTAM with a dataset containing RGB-D data and ground-truth data (RGB-D SLAM Dataset and Benchmark - freiburg1_360). I use the ground-truth data as seed for ICP but the results do not converge to ground-truth data. Could you help me with this problem?

Thanks

Teddy example crashes when using Nvidia Quadro K420 with 1GB memory

When I compile InfiniTAM with CPU setting on Ubuntu Linux 14.04, I can successfully run the Teddy example. However, when I compile it with CUDA 7.5 and run it with an Nvidia Quadro K420 card (with 1GB memory) on the same machine, the program crashes with an out of memory error as follows:
InfiniTAM/ITMLib/Engine/../Utils/../Objects/../../ORUtils/MemoryBlock.h(217) : cudaSafeCall() Runtime API error : out of memory.

Has anyone else seen the same problem? Do you have any suggestion to resolve it? I am pretty sure my CUDA drive is installed correctly. I successfully ran all the NVIDIA_CUDA-7.5 Samples and saw the GPU version gains significant speedup compared to the CPU version on all sample programs.

BTW, I use ./InfiniTAM Teddy/calib.txt Teddy/Frames/%04i.ppm Teddy/Frames/%04i.pgm command to run the Teddy example.

Thanks!

Point cloud output

Does InfiniTAM provide a routine for getting a point cloud representation of the current scene? I saw that the tracking state has a point cloud in it, but this appears to be from only the most recent depth image.

New tracker added does not appear to perform dense and continuous reconstruction

@olafkaehler
Dear Sir
A new tracker(Tracker), derived from ITMTracker class and based on the ITMDepthTracker with functions implemented at DeviceAgnostic and DeviceDependent level was added to InfiniTAM framework .
The new tracker gives rotation and translation to the TrackCamera() function .
The TrackCamera function in Tracker is the same as TrackCamera function in ITMDepthTracker.
The issue is reconstruction is sparse and starts diminishing as new frames are being tracked. After certain number of frames are tracked , there is no reconstruction visibility .
However , when ICPTracker is run on the dataset , reconstruction is dense .

Please suggest further-

Kalpesh Modi

Android startup crash

Hello,
Thanks for publishing your code.
I compiled your code according to the instructions, but the App crashes right after starting.
Debugging did not reveal much, except that the app crashes right after all call to StartProcessing.

Maybe someone encountered the same issue and found the cause.

compiling problems about InfiniTAM

I have Kinect2.0 and XBox one Kinect now, I wonder they are suitable for testing the program. And another question, what should I edit in InfiniTAM.sln to avoid using CUDA? I want to just use i5-3470 now. Thanks!

RGBD sensor calibration parameters

I wanted to ask if there is a suggested method for calibrating an RGBD sensor like the Asus Xtion Pro camera:

  1. I understand that RGB intrinsics can be obtained using a standard calibration tool such as MATLAB calibration toolbox.
  2. I am not sure about the depth camera calibration. Are these depth camera parameters equivalent to the intrinsics of the IR camera? If not how can they be calculated?
  3. Finally how can one obtain the disparity calibration parameters?

Compiling with Kinect 2

I´ve compiled it without any moddifications, how do I compile it in order to use Kinect 2 ? in Windows, not Linux.

I have the Kinect2 driver for OpenNI2, and when I run Infinitam without specifying any parameters, it launches like this:

untitled

So it somehow detects the Kinect2 as an unofficial device.

But if I try to specify it to use Kinect2 as the OpenNI device, it says "trying MS Kinect 2 device - compiled without Kinect 2 support".

untitled2

What am I doing wrong ?

Also, how do I actually save the mesh (obj, ply, stl, etc.), since there are no keys defined for rendering or saving ?

Wrong computation in buildHashAllocAndVisibleTypePP: scaling a Vector4f

The lines

point = TO_VECTOR3(invM_d * (pt_camera_f * (1.0f - mu / norm))) * oneOverVoxelSize;
point_e = TO_VECTOR3(invM_d * (pt_camera_f * (1.0f + mu / norm))) * oneOverVoxelSize;

in buildHashAllocAndVisibleTypePP are wrong, the fourth component of pt_camera_f should not be scaled prior to applying the transformation, it should be 1.

I wonder why things didn't mess up too badly despite this.
Probably because its only for the block allocation and because the translation is not that big in most example data.

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.