Friday, March 25, 2011

Interesting Link

CUDA:

http://people.maths.ox.ac.uk/gilesm/cuda/



Delaunay triangulation of point clouds and much much more stuff here

Thursday, February 17, 2011

Multiple Kinects together

Monday, February 7, 2011

Using Fakenect


I was trying to browse the Internet for how to use Fakenect. But couldn't find a good straightforward description. After it got working for me, I thought I would myself write one :)

What is Fakenect
In essence, it's a way to get Kinect applications working without actual physical Kinect available with you. You fake the Kinect by replaying a pre-recorded Kinect capture.

(1) Build Library
assuming that you have the OpenKinect source code, to first build the fakenect library, you would just "cmake ." and then "make" in the OpenKinect directory (the one I have is "OpenKinect-libfreenect-2ea3ebb"). Now you must have a libfreenect.so at OpenKinect-libfreenect-2ea3ebb/fakenect/lib/fakenect/.

(2) Record
Now, to record, just go to OpenKinect-libfreenect-2ea3ebb/utils/ And run "./record some_directory_name". A new directory name some_directory_name will be created as "/utils/some_directory_name", all the record data will be dumped there. While the record program is running, you can stop recording by hitting cntrl+C.
Now, you should have a record-dump in the specified directory.

(3)Run Your Recording
Say, you want to run the glview program now, so go to the OpenKinect-libfreenect-2ea3ebb/examples folder and run the following:
LD_PRELOAD="/usr/local/lib/fakenect/libfreenect.so" FAKENECT_PATH="../utils/myself/" ../bin/glview.

That's it, you should see your capture being replayed now.

Benchmarking Kinect For Modelling/Surface Reconstruction

Benchmarking Kinect For Modelling/Surface Reconstruction

Open Questions
1) How good is Kinect at preserving the planarity of real-world-planar objects?

2) How consistent are Kinect frames for the exact same scene?

3) Can we create a bump map/ normal map of an object using Kinect?
* Figure out which points correspond to the object
* Figure out the triangles
* For each triangle figure out the normals
* is such a set of the normals a normal map? :O

Saturday, January 29, 2011

3D modelling with Kinect VIMP resources

RGBD-SLAM

Time Efficient Reconstruction of 3D Models With Kinect and RGBD-SLAM
- Very recent. (Submitted on 7th Feb 2011)
-They describe it as:
"We extract SURF features from the camera image and localize them in 3D space. We match these features between every pair of acquired images, and use RANSAC to robustly estimate the 3D transformation between them. To achieve real-time processing, we match the current image only versus a subset of the previous images with decreasing frequency. Subsequently, we construct a graph whose nodes correspond to camera views and whose edges correspond to the estimated 3D transformations. The graph is then optimized to reduce the accumulated pose errors."

Juergen Hess (hess@informatik.uni-freiburg.de) and Felix Endres (endres@informatik.uni-freiburg.de) from the University of Freiburg own this work.

Got the Next Pointer

Felix Endres pointed me to two great resources:
1) The source code of the for the above -mentioned algorithm is available here.
2) Dieter Fox, who's a professor at University of Washington has a publication and some work in modelling with Kinect. His publication is titled "RGB-D Mapping: Using Depth Cameras for Dense 3D Modeling of Indoor Environments". I will go through it shortly.


RGB-D Mapping: Using Depth Cameras for Dense 3D Modeling of Indoor Environments

What is the paper about?

Is it about/applicable to Kinect?


How does it relate to my work?


Kinect Calibration : Depth and Color

Issues

(1) RGB camera Calibration
If you already are familiar with usual camera calibration techniques, then the Kinect RGB camera is no different.

(2) RGB-Depth Cross Calibration
There is no hardware registration performed on the images. In other words, the pixels in both the buffers do not correspond to each other one-to-one at hardware level by default. So unless you explicitly come up with an affine matrix that does the correspondence for you Kinect (it differs from one Kinect to another), the depths and colors are going to look inconsistent.
Nicholus Burrus's 'RGB-Demo' helps you calibrate your Kinect. More information here. It can be downloaded and compiled easily.


More Links
* Basics of calibration here.

Kinect FAQ

1) How to get openKinect to work on Windows?

- http://openkinect.org/wiki/Getting_Started#Windows describes the procedure. If you already are using OpenKinect on Linux, then getting it on Windows can be done by using the corresponding wrapper( in the /wrappers directory).





New to Kinect? Start here!!


The OpenKinect wiki
http://openkinect.org/wiki/Main_Page - contains tons of information for new Kinect users who want to explore the project and for developers alike.

How can I install libfreenect, where is the walkthrough?

How can I ask for help on list and in the channel? I'm getting this error message ... ?
http://openkinect.org/wiki/FAQ

Who is involved with the project?
http://openkinect.org/wiki/People

How should I get started to contribute code to the project and which wrapper?
http://openkinect.org/wiki/Contributing_Code
http://openkinect.org/wiki/Main_Page#Wrappers


How does the Kinect USB protocol works? Image size? 0x0002 @ 0x001a does what?
http://openkinect.org/wiki/Protocol_Documentation
http://openkinect.org/wiki/Main_Page#Knowledge_base


Under which licenses is libfreenect released?
http://openkinect.org/wiki/Policies#License


What have people been doing with the Kinect, what demos, what's the project roadmap?
http://openkinect.org/wiki/Gallery
http://openkinect.org/wiki/Roadmap


And what about that laser illuminator there?
http://openkinect.org/wiki/Hardware_info




How did the project start?
http://openkinect.org/wiki/History



Other issues?
And group mailing list openkinect@googlegroups.com is also a great resource to search for posts on a specific subject.



( Borrowed from OpenKinect mailing list : credits go to bankP (
bank.panic@gmail.com))

Things to come...

I haven't been updating this blog at all. Which I guess in a couple of days I should.
At this point I think following would be the first three things I should be talking about in first few posts:

I have assumed a Linux system (I use Ubuntu 10.10 Maverick currently for my Kinect experiments)
1) Installing Kinect on a Linux system.
2) Making use of Kinect with the help of a few demo programs.
3) Important resources for further reading and wooing :)
4) Understanding the camera model ( Kinect Calibraition)

I am hoping to find some good time to spend on writing this stuff. It will be here very soon.

C ya :)

Wednesday, January 26, 2011

Kinect VIMP Source Links


OpenKinect's knowledge base has all the theory/experiments/explanations , that are constantly added/updated.

Tech-tree has kept a really sharp track of Kinect developments.

KinectHacks maintains good updates on very interesting Kinect hacks.

This tech-tree page also talks about a very impressive use of Kinect for creating 3D road-maps of cities.

And here are Kinect Tutorials provided by ROS!! Note : it has calibrating the kinect camera



Following are really really really important and MUST_GO_THROUGH web resources....

0) Nicolas Burrus's Post on Kinect calibration ( both color and depth )

1) The RGB Demo software ( opensource code )
- it has source code downloadable
- it has documentation

2) A small post for give links on Kinect Calibration