The progress has been so futile, I gotta nail things down today. So here are the aims for today:
Check the possibility of coexistence of OpenNI driver and Kinect SDK driver.THEY DO, but NOT EASY Uninstall OpenNI Driver and check if OpenNI works with KinectSDK driver, OpenNI samples work, seems like not needed. Get the OpenNI2.0 to work on Visual Studio, get streams from Kinect Hmm, there’s no error to get OpenNI::initialize() and device.open(openni::ANY_DEVICE) but getting the streams is quite tedious task, I’d rather leave it there. Now get the streams from Kinect alreadyyyyyyyyyyyy!
- Get FORTH to work.
Look down to “What I am doing” section to see the error. No more error, but still cannot initialize the HandTrackerLib instance. Can change the OpenCV dll files by those of newer version.
Order of tasks done is as order of above list.
What I’ve seen from dev world:
- They can coexist , but from the Microsoft Kinect community forum, it seems not safe, I’d better not care.
- OpenNI forum says OpenNI2 support Kinect SDK, I’ll try to uninstall OpenNI driver and work with KinectSDK Driver instead
- Some info about files in OpenNI2 package and how to get them work
- This Signamnil might be really helpful for my project, it seems to provide hand tracking and even segmentation
- Upon merging RGB and Depth images, see Registration section. It’s possible, but the difference will be significant for distance objects
- Lovely, it’s possible to synchronize the two frames, see FrameSync section
- Comparison of old and new OpenNI functions and modules, nice if need to learn from old projects
- Install OpenNI2, Nite2, Kinect SDK 1.6, windows 7 32/64 bit
What I’m doing:
I assume OpenNI should be fine now, though I’ve not tried to get the streams since it’s so tedious.Get the streams from Kinect is in fact easier when with OpenNI than with KinectSDK.
I use some boiler plate codes from the FORTH team. Some pics of result :
Tried the HandTracking FORTH, the code doesn’t get error but the program said it had error starting. hmm, maybe it’s because I am using 2.4.3, let’s try the 2.3.1 now.Error is gone now, but it doesn’t get any the video, some errors.
- Ok fine, at least some progress. Last time, all error, cannot build. This time, OpenNI initializes successfully, device is ON.
- Error: At this point :
HandTracker *ht = HandTracker::getInstance();
First-chance exception at 0x000007fefd959e5d in OpenNI2.exe: Microsoft C++ exception: boost::filesystem3::filesystem_error at memory location 0x0025c880..
E0206 12:39:00.149691 4460 plugin_manager.cpp:159] Failed to read last_write_time for confs/decoding_right_16_threads.ini (boost::filesystem::last_write_time: The system cannot find the path specified: “confs/decoding_right_16_threads.ini”). Removing file from watch list.
First-chance exception at 0x000007fefd959e5d in OpenNI2.exe: Microsoft C++ exception: boost::exception_detail::clone_impl<boost::assert_exception> at memory location 0x0025dcc0..
E0206 12:39:00.152691 4460 HandTracker.cpp:554] C:\Users\padeler\projects\vs\gpumbv\CUDAVariant_cp\libraries\HandTrackerLib\HandTracker.cpp(413): Throw in function FORTH::HandTracker::initialize
Dynamic exception type: class boost::exception_detail::clone_impl<struct boost::assert_exception>
[struct boost::message_tag * __ptr64] = decoder is null
- I’m going to ask the FORTH team rite now.
- Reply :
It looks like the Hand Tracker library cannot find the configuration files (ini files) on initialization.
Please make sure the “confs” directory is in the working directory of your application when you launch it. For example if you are running the exe from the Bin folder, the “confs” directory must be inside that folder.
The K3DHT team
Good point, I tried as they said, put all the files in their Bin into working directory ( the one that has .vcxproj file ) and yup, no more error.
Problem: Still not working. It cannot initialize the HandTrackerLib instance.
- One thing, I tried to replace the opencv dll files in their Bin by the equivalent but newer version 2.4.3 , it works.