victorprad / infinitam Goto Github PK
View Code? Open in Web Editor NEWA Framework for the Volumetric Integration of Depth Images
Home Page: http://www.infinitam.org
License: Other
A Framework for the Volumetric Integration of Depth Images
Home Page: http://www.infinitam.org
License: Other
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?
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!^_^
@sgolodetz @victorprad @olafkaehler
Suppose we have a .ply file for a room we would like to label using the spaint interface: is there a workflow for this?
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.
Hi,
Thanks a lot for the great InfiniTAM code!
Could it also use ASUS Xtion as input sensor? Thanks a lot!
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.
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.
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!
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!!!
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:)
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!
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!
I would like to build infiniTAM on Android, but I do not find the version specified for Android. So,
questions:
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.
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!
I use Ubuntu14.04 to compile InfiniTAM, with OpenNI files downloaded from http://structure.io/openni, but I don't know what I should do with these files.
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
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!
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!
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 to
oniWaitForAnyStream'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function InfiniTAM::Engine::OpenNIEngine::getImages(ITMLib::Objects::ITMView*)': OpenNIEngine.cpp:(.text+0x38c): undefined reference to
oniStreamReadFrame'
OpenNIEngine.cpp:(.text+0x3a2): undefined reference to oniFrameRelease' OpenNIEngine.cpp:(.text+0x3d4): undefined reference to
oniStreamReadFrame'
OpenNIEngine.cpp:(.text+0x3ea): undefined reference to oniFrameRelease' Engine/libEngine.a(OpenNIEngine.cpp.o): In function
InfiniTAM::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 to
oniGetExtendedError'
OpenNIEngine.cpp:(.text+0x8ef): undefined reference to oniDeviceSetProperty' OpenNIEngine.cpp:(.text+0x91e): undefined reference to
oniDeviceSetProperty'
OpenNIEngine.cpp:(.text+0x951): undefined reference to oniDeviceSetProperty' OpenNIEngine.cpp:(.text+0x96c): undefined reference to
oniDeviceCreateStream'
OpenNIEngine.cpp:(.text+0x979): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x9b3): undefined reference to
oniDeviceCreateStream'
OpenNIEngine.cpp:(.text+0x9c0): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x9ff): undefined reference to
oniShutdown'
OpenNIEngine.cpp:(.text+0xa79): undefined reference to oniStreamGetSensorInfo' OpenNIEngine.cpp:(.text+0xad6): undefined reference to
oniStreamIsPropertySupported'
OpenNIEngine.cpp:(.text+0xaf1): undefined reference to oniStreamIsPropertySupported' OpenNIEngine.cpp:(.text+0xcae): undefined reference to
oniStreamSetProperty'
OpenNIEngine.cpp:(.text+0xcea): undefined reference to oniStreamSetProperty' OpenNIEngine.cpp:(.text+0xd07): undefined reference to
oniStreamStart'
OpenNIEngine.cpp:(.text+0xda9): undefined reference to oniDeviceOpen' OpenNIEngine.cpp:(.text+0xdb6): undefined reference to
oniGetExtendedError'
OpenNIEngine.cpp:(.text+0xe39): undefined reference to oniStreamGetSensorInfo' OpenNIEngine.cpp:(.text+0xe96): undefined reference to
oniStreamIsPropertySupported'
OpenNIEngine.cpp:(.text+0xeb1): undefined reference to oniStreamIsPropertySupported' OpenNIEngine.cpp:(.text+0x1075): undefined reference to
oniStreamSetProperty'
OpenNIEngine.cpp:(.text+0x10b7): undefined reference to oniStreamSetProperty' OpenNIEngine.cpp:(.text+0x10d4): undefined reference to
oniStreamStart'
OpenNIEngine.cpp:(.text+0x116a): undefined reference to oniDeviceGetSensorInfo' OpenNIEngine.cpp:(.text+0x11da): undefined reference to
oniDeviceGetSensorInfo'
OpenNIEngine.cpp:(.text+0x1251): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x12e9): undefined reference to
oniGetExtendedError'
OpenNIEngine.cpp:(.text+0x1364): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1374): undefined reference to
oniStreamDestroy'
OpenNIEngine.cpp:(.text+0x16f7): undefined reference to oniDeviceGetInfo' OpenNIEngine.cpp:(.text+0x1705): undefined reference to
oniDeviceIsPropertySupported'
OpenNIEngine.cpp:(.text+0x171c): undefined reference to oniDeviceIsPropertySupported' OpenNIEngine.cpp:(.text+0x1733): undefined reference to
oniDeviceIsCommandSupported'
OpenNIEngine.cpp:(.text+0x1763): undefined reference to oniDeviceIsPropertySupported' OpenNIEngine.cpp:(.text+0x1901): undefined reference to
oniDeviceIsPropertySupported'
OpenNIEngine.cpp:(.text+0x1918): undefined reference to oniDeviceIsCommandSupported' Engine/libEngine.a(OpenNIEngine.cpp.o): In function
InfiniTAM::Engine::OpenNIEngine::~OpenNIEngine()':
OpenNIEngine.cpp:(.text+0x1976): undefined reference to oniStreamStop' OpenNIEngine.cpp:(.text+0x19ea): undefined reference to
oniStreamStop'
OpenNIEngine.cpp:(.text+0x1ab6): undefined reference to oniFrameRelease' OpenNIEngine.cpp:(.text+0x1ad2): undefined reference to
oniFrameRelease'
OpenNIEngine.cpp:(.text+0x1c84): undefined reference to oniShutdown' OpenNIEngine.cpp:(.text+0x1ca4): undefined reference to
oniStreamDestroy'
OpenNIEngine.cpp:(.text+0x1cb4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1cc1): undefined reference to
oniDeviceClose'
OpenNIEngine.cpp:(.text+0x1cd4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1ce4): undefined reference to
oniDeviceClose'
OpenNIEngine.cpp:(.text+0x1cf4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1d77): undefined reference to
oniFrameRelease'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::VideoStream::~VideoStream()': OpenNIEngine.cpp:(.text._ZN6openni11VideoStreamD2Ev[_ZN6openni11VideoStreamD5Ev]+0x74): undefined reference to
oniStreamDestroy'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::Device::~Device()': OpenNIEngine.cpp:(.text._ZN6openni6DeviceD2Ev[_ZN6openni6DeviceD5Ev]+0xa4): undefined reference to
oniDeviceClose'
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
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 to
oniWaitForAnyStream'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function InfiniTAM::Engine::OpenNIEngine::getImages(ITMLib::Objects::ITMView*)': OpenNIEngine.cpp:(.text+0x29c): undefined reference to
oniStreamReadFrame'
OpenNIEngine.cpp:(.text+0x2b2): undefined reference to oniFrameRelease' OpenNIEngine.cpp:(.text+0x2e4): undefined reference to
oniStreamReadFrame'
OpenNIEngine.cpp:(.text+0x2fa): undefined reference to oniFrameRelease' Engine/libEngine.a(OpenNIEngine.cpp.o): In function
InfiniTAM::Engine::OpenNIEngine::OpenNIEngine(char const_, char const_, bool)':
OpenNIEngine.cpp:(.text+0x74b): undefined reference to oniInitialize' OpenNIEngine.cpp:(.text+0x750): undefined reference to
oniGetExtendedError'
OpenNIEngine.cpp:(.text+0x7a9): undefined reference to oniDeviceSetProperty' OpenNIEngine.cpp:(.text+0x7c4): undefined reference to
oniDeviceCreateStream'
OpenNIEngine.cpp:(.text+0x7d1): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x80b): undefined reference to
oniDeviceCreateStream'
OpenNIEngine.cpp:(.text+0x818): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0x857): undefined reference to
oniShutdown'
OpenNIEngine.cpp:(.text+0x8d1): undefined reference to oniStreamGetSensorInfo' OpenNIEngine.cpp:(.text+0x92e): undefined reference to
oniStreamIsPropertySupported'
OpenNIEngine.cpp:(.text+0x949): undefined reference to oniStreamIsPropertySupported' OpenNIEngine.cpp:(.text+0x99b): undefined reference to
oniStreamGetProperty'
OpenNIEngine.cpp:(.text+0x9e4): undefined reference to oniStreamSetProperty' OpenNIEngine.cpp:(.text+0xa09): undefined reference to
oniStreamStart'
OpenNIEngine.cpp:(.text+0xa39): undefined reference to oniDeviceOpen' OpenNIEngine.cpp:(.text+0xa46): undefined reference to
oniGetExtendedError'
OpenNIEngine.cpp:(.text+0xb41): undefined reference to oniStreamGetSensorInfo' OpenNIEngine.cpp:(.text+0xb9e): undefined reference to
oniStreamIsPropertySupported'
OpenNIEngine.cpp:(.text+0xbb9): undefined reference to oniStreamIsPropertySupported' OpenNIEngine.cpp:(.text+0xc0b): undefined reference to
oniStreamGetProperty'
OpenNIEngine.cpp:(.text+0xc4d): undefined reference to oniStreamSetProperty' OpenNIEngine.cpp:(.text+0xc72): undefined reference to
oniStreamStart'
OpenNIEngine.cpp:(.text+0xd21): undefined reference to oniGetExtendedError' OpenNIEngine.cpp:(.text+0xda1): undefined reference to
oniGetExtendedError'
OpenNIEngine.cpp:(.text+0xe24): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0xe34): undefined reference to
oniStreamDestroy'
OpenNIEngine.cpp:(.text+0x10d7): undefined reference to oniDeviceGetInfo' OpenNIEngine.cpp:(.text+0x10e5): undefined reference to
oniDeviceIsPropertySupported'
OpenNIEngine.cpp:(.text+0x10fc): undefined reference to oniDeviceIsPropertySupported' OpenNIEngine.cpp:(.text+0x1113): undefined reference to
oniDeviceIsCommandSupported'
OpenNIEngine.cpp:(.text+0x1143): undefined reference to oniDeviceIsPropertySupported' OpenNIEngine.cpp:(.text+0x120b): undefined reference to
oniDeviceIsPropertySupported'
OpenNIEngine.cpp:(.text+0x1222): undefined reference to oniDeviceIsCommandSupported' Engine/libEngine.a(OpenNIEngine.cpp.o): In function
InfiniTAM::Engine::OpenNIEngine::~OpenNIEngine()':
OpenNIEngine.cpp:(.text+0x1286): undefined reference to oniStreamStop' OpenNIEngine.cpp:(.text+0x12fa): undefined reference to
oniStreamStop'
OpenNIEngine.cpp:(.text+0x13c6): undefined reference to oniFrameRelease' OpenNIEngine.cpp:(.text+0x13e2): undefined reference to
oniFrameRelease'
OpenNIEngine.cpp:(.text+0x1594): undefined reference to oniShutdown' OpenNIEngine.cpp:(.text+0x15b4): undefined reference to
oniStreamDestroy'
OpenNIEngine.cpp:(.text+0x15c4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x15d1): undefined reference to
oniDeviceClose'
OpenNIEngine.cpp:(.text+0x15e4): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x15f4): undefined reference to
oniDeviceClose'
OpenNIEngine.cpp:(.text+0x1604): undefined reference to oniStreamDestroy' OpenNIEngine.cpp:(.text+0x1687): undefined reference to
oniFrameRelease'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::VideoStream::~VideoStream()': OpenNIEngine.cpp:(.text._ZN6openni11VideoStreamD2Ev[_ZN6openni11VideoStreamD5Ev]+0x74): undefined reference to
oniStreamDestroy'
Engine/libEngine.a(OpenNIEngine.cpp.o): In function openni::Device::~Device()': OpenNIEngine.cpp:(.text._ZN6openni6DeviceD2Ev[_ZN6openni6DeviceD5Ev]+0xa4): undefined reference to
oniDeviceClose'
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!
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!
I may or may not have time to implement this myself and submit a pull request, but we have a new open-source driver for RealSense cameras that is fully cross-platform (no need for the separate libuvc fork listed in the readme): https://github.com/IntelRealSense/librealsense
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
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 ?
It doesn't seem make install
, or any other installation code is present in the CMake files. Is it possible to add this?
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
shall the Engine in /InfiniTAM/InfiniTAM/Engine be compile separately?
Thanks a lot!
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 to
oniStreamReadFrame'
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
Hi, Please how to run infinTAM in visual studio not with file .exe in C:\InfiniTAM\InfiniTAM\build\Release ?
Hi,
Thanks a lot for this great code!
Could TUM RGBD dataset be used to test InfiniTAM? (after changing the rgb png format to ppm and depth png format to pgm) The result seems very wired (https://www.youtube.com/watch?v=mXt8AYPDwq4)
Thanks a lot!
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
Experiment:
Expected result:
slight surface degradation due to quantization and continuous integration without motion
Actual result:
Possible reasons why it happens:
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.
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
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.
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 :)
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?
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
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!
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.
@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
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.
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!
I wanted to ask if there is a suggested method for calibrating an RGBD sensor like the Asus Xtion Pro camera:
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:
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".
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 ?
I would like generate a mesh with x,y,z,r,g,b attributes.
Thanks.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.