SIFT features have two parts: location and scale. (Figure out the details about them later).
Now the idea is trying to replace the scale part, when combining with the depth data. How to decide the scale selection mechanism consistent to depth data.
Take a reference to the NYU paper presented by Reza, which takes three different scales.
See the SIFT tutorial in vlfeat.org. Think about how to customize the sift: location, scale and orientation.
About the surfel:
Know how to get the surfel. Not go into the render part.
GICP algorithm developed by Alex,
search how to run it on MATLAB platform.
run script shell from matlab.
write data to png file...NOT SOLVED
Friday, February 24, 2012
Wednesday, February 22, 2012
Kinect Sensor Programming
Good resources on line:
http://graphics.stanford.edu/~mdfisher/Kinect.html
Notes:
Consists of:
The Kinect is an attachment for the Xbox 360 that combines four microphones, a standard RGB camera, a depth camera, and a motorized tilt.
Raw Sensor Value:
The raw sensor values returned by the Kinect's depth sensor are not directly proportional to the depth. Instead, they scale with the inverse of the depth. People have done relatively accurate studies to determine these coefficients with high accuracy, see the ROS kinect_node page and work by Nicolas Burrus. Both of these are excellent resources for working with the depth and color cameras.
Calibration:
The Kinect reads infrared and color data with different cameras. This makes it very challenging to determine the color of a given depth pixel or the depth of a given color pixel. Doing this requires knowing the intrinsic parameters of both cameras (they are similar, but not identical) and knowing the extrinsic mapping between them. Doing this correctly involves working with things like OpenCV which can be kind of a slow for realtime applications and can be a frustrating library to interact with in general. This calibration is also challenging because the depth camera can't see simple checkerboard patterns - it needs a checkerboard pattern that also contains regular and calibrated depth disparities. Fortuantely Nicolas Burrus posted the calibration for his Kinect color and depth cameras here, which gave pretty good results for my Kinect although there was still some noticeable misalignment.
http://graphics.stanford.edu/~mdfisher/Kinect.html
Notes:
Consists of:
The Kinect is an attachment for the Xbox 360 that combines four microphones, a standard RGB camera, a depth camera, and a motorized tilt.
Raw Sensor Value:
The raw sensor values returned by the Kinect's depth sensor are not directly proportional to the depth. Instead, they scale with the inverse of the depth. People have done relatively accurate studies to determine these coefficients with high accuracy, see the ROS kinect_node page and work by Nicolas Burrus. Both of these are excellent resources for working with the depth and color cameras.
Calibration:
The Kinect reads infrared and color data with different cameras. This makes it very challenging to determine the color of a given depth pixel or the depth of a given color pixel. Doing this requires knowing the intrinsic parameters of both cameras (they are similar, but not identical) and knowing the extrinsic mapping between them. Doing this correctly involves working with things like OpenCV which can be kind of a slow for realtime applications and can be a frustrating library to interact with in general. This calibration is also challenging because the depth camera can't see simple checkerboard patterns - it needs a checkerboard pattern that also contains regular and calibrated depth disparities. Fortuantely Nicolas Burrus posted the calibration for his Kinect color and depth cameras here, which gave pretty good results for my Kinect although there was still some noticeable misalignment.
Tuesday, February 21, 2012
Install Openkinect on Ubuntu
1. Follow the link: http://acberg.com/kinect/
2. After step 1, almost everything has been down. But we are not so lucky enough. If you want to run the test.m written by Alex, some changes must be made.
First, Alex's code is based on the old version of libfreenect(libfreenect.0.0.1), not the one you just installed(libfreenect.1.0.0), so you need to install the old version although there existed some bugs. Otherwise, you will have to modify Alex's code which would be a great job. The old version can be download from here:
https://launchpad.net/ubuntu/+source/libfreenect/1:0.0.1+20101211+2-1
Also, you need to make some changes to Alex text.m to mex matlab function.
mex -I/usr/local/include/libfreenect ...
-I/usr/local/include /usr/local/lib/libfreenect.a ...
/usr/lib/libusb-1.0.a ...
kinect_mex.cc -lpthread -lrt
if you encounter the following error:
/usr/local/lib/libusb-1.0.a(libusb_1_0_la-io.o): In function `libusb_try_lock_events':/home/tpair/libusb-1.0.2/libusb/io.c:1254: undefined reference to `pthread_mutex_trylock'
/usr/local/lib/libusb-1.0.a(libusb_1_0_la-linux_usbfs.o): In function `op_clock_gettime':os/linux_usbfs.c:2011: undefined reference to `clock_gettime'
:os/linux_usbfs.c:2013: undefined reference to `clock_gettime'
solution: Try using the option "-lpthread" to get the pthread stuff, and "-lrt" to get clock_gettime().
Second, if you encounter the error like this: Failed to claim the usb interface. You need to run the command in the terminal.
$>rmmod gspca_kinect
You need to do this whenever you restart your system.
Third, you also need to do the following:(http://openkinect.org/wiki/Getting_Started)
Also make a file with rules for the Linux device manager:
2. After step 1, almost everything has been down. But we are not so lucky enough. If you want to run the test.m written by Alex, some changes must be made.
First, Alex's code is based on the old version of libfreenect(libfreenect.0.0.1), not the one you just installed(libfreenect.1.0.0), so you need to install the old version although there existed some bugs. Otherwise, you will have to modify Alex's code which would be a great job. The old version can be download from here:
https://launchpad.net/ubuntu/+source/libfreenect/1:0.0.1+20101211+2-1
Also, you need to make some changes to Alex text.m to mex matlab function.
mex -I/usr/local/include/libfreenect ...
-I/usr/local/include /usr/local/lib/libfreenect.a ...
/usr/lib/libusb-1.0.a ...
kinect_mex.cc -lpthread -lrt
if you encounter the following error:
/usr/local/lib/libusb-1.0.a(libusb_1_0_la-io.o): In function `libusb_try_lock_events':/home/tpair/libusb-1.0.2/libusb/io.c:1254: undefined reference to `pthread_mutex_trylock'
/usr/local/lib/libusb-1.0.a(libusb_1_0_la-linux_usbfs.o): In function `op_clock_gettime':os/linux_usbfs.c:2011: undefined reference to `clock_gettime'
:os/linux_usbfs.c:2013: undefined reference to `clock_gettime'
solution: Try using the option "-lpthread" to get the pthread stuff, and "-lrt" to get clock_gettime().
Second, if you encounter the error like this: Failed to claim the usb interface. You need to run the command in the terminal.
$>rmmod gspca_kinect
You need to do this whenever you restart your system.
Third, you also need to do the following:(http://openkinect.org/wiki/Getting_Started)
Also make a file with rules for the Linux device manager:
sudo nano /etc/udev/rules.d/51-kinect.rulesCopy and paste:
# ATTR{product}=="Xbox NUI Motor"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02b0", MODE="0666"
# ATTR{product}=="Xbox NUI Audio"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ad", MODE="0666"
# ATTR{product}=="Xbox NUI Camera"
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ae", MODE="0666"
Be sure to log out and back in.
Be sure the created file begins with number which is larger than existing and not violating with others.
Friday, February 10, 2012
vision links and codes
http://www.cs.washington.edu/education/courses/cse590ss/01wi/
RANSAC Implementation
http://www.csd.uwo.ca/~iali24/Code.html
http://www.mrpt.org/RANSAC_C++_examples
http://isiswiki.georgetown.edu/zivy/#software
http://vision.ece.ucsb.edu/~zuliani/Research/RANSAC/RANSAC.shtml
http://vision.ece.ucsb.edu/~zuliani/Research/RANSAC/docs/RANSAC4Dummies.pdf
http://www.csse.uwa.edu.au/~pk/research/matlabfns/#match
RANSAC Implementation
http://www.csd.uwo.ca/~iali24/Code.html
http://www.mrpt.org/RANSAC_C++_examples
http://isiswiki.georgetown.edu/zivy/#software
http://vision.ece.ucsb.edu/~zuliani/Research/RANSAC/RANSAC.shtml
http://vision.ece.ucsb.edu/~zuliani/Research/RANSAC/docs/RANSAC4Dummies.pdf
http://www.csse.uwa.edu.au/~pk/research/matlabfns/#match
Wednesday, February 8, 2012
Subscribe to:
Posts (Atom)