2007年4月15日星期日

Codes of Davison’s MonoSLAM


Recently, I am investigating codes of Davison's MonoSLAM.For God's name, it's horrible! Though the documents is well developed, the framework is too complicated to understand. So assistant tools are used, such as "Understander for C++" and "Source Insingt".With their help, things become easier, but still it's a hard work.


Publications of Andrew J. Davison do help me to understand Vision-based SLAM,especially MonoSLAM.


Now, I have put myself on Vision-based SLAM and my team are working hard on it.It's a chance but a challenge.


2007年4月11日星期三

Why is single-camera SLAM?


Recently, I am doing my research on Vision-based SLAM.


Single camera SLAM is used in most of the researches.But why is "single"?


Some said that if single-camera SLAM problem were solved, double or multiple ones were done.


It does make sense.But the single one is more difficult.And some problems in the single-camera SLAM are not existed in multiple-camera SLAM. So why is "single" now?



Now here comes something not correlatived.In many science fiction movies, robots are equipped with infrared-ray camera or ultraviolet one. Why not in Vision-based SLAM?To be concidered.

Visual SLAM

Classic Approaches to Visual SLAM

Davison, ICCV 2003
*Traditional SLAM approach (Extended Kalman Filter)
*Maintains full camera and feature covariance
*Limited to Gaussian uncertainty only

Nistér, ICCV 2003
*Structure-from-motion approach (Preemptive RANSAC)
*Frame-to-frame motion only
*Drift: No repeatable localization

Recent Approaches to Visual SLAM

Pupilli & Calway, BMVC 2005
*Traditional SLAM approach (Particle Filter)
*Greater robustness: handles multi-modal cases
*New features not rigorously initialized

Eade & Drummond, 2006
*FastSLAM approach (Particle Filter/Kalman Filter)
*Particleper camera hypothesis, Kalman filter for features
*Allows larger maps: update O(MlogN) instead of O(N2)

2007年4月5日星期四

OpenCV


What is OpenCV?



OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real time computer vision.



Example applications of the OpenCV library are Human-Computer Interaction (HCI); Object Identification, Segmentation and Recognition; Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Understanding; Structure From Motion (SFM); and Mobile Robotics.


http://opencvlibrary.sourceforge.net/


2007年4月4日星期三

Zoundry Blog Writer

Write blogger by "Zoundry Blog Writer"!

Whether you're a beginner or active blogger, Zoundry helps you do more with your weblog: Recommend products. Drop in pictures. Tag your posts. Earn cash rewards for yourself or charities when readers buy from your recommendations.

http://www.zoundry.com/

Known implementations of SIFT

From LadypackWiki
So the first implementation to mention is David Lowe's binary that he distributes off his website.
http://www.cs.ubc.ca/~lowe/keypoints/
This is fine, but not very flexible. David also confirmed that he is unable to share the source code for his implementation, although someone in RVSN seems to have gotten their hands on a copy and passed it on to me.
Andrea Vedaldi has a C (mex) matlab implemenation here:
http://www.cs.ucla.edu/~vedaldi/sift/sift.html
Next, are the shared libraries.
Rob Hess distributes a C implementation of SIFT that uses OpenCV.
http://web.engr.oregonstate.edu/~hess/work/index.html
I've taken a look at Rob Hess's code, and it allows for pretty detailed parameter tweaking (e.g. histogram size, DoG thresholds, etc.) If you need flexibility, this is pretty good.
Roman Stanchak distributes C++ wrappers around OpenCV, along with a SIFT implementation.
http://www.cs.wustl.edu/~rstancha/oss.php
There is also libsift, a C# implementation that's used in autopanosift for generating panoramas.
http://www.cs.tu-berlin.de/~nowozin/libsift/
David Moore and a few others are also working on a C shared library of SIFT that is optimized for recent processors. Ask him (dcm@mit.edu) for details.
Finally, if you're hard core and want super fast SIFT, Sudipta Sinha et al have implemented SIFT on a GPU. If you're not familiar with this, the idea is to offload computation onto your swank graphics card. I wasn't able to find any source distribution on his web site, but you could email him and ask.
http://cs.unc.edu/~ssinha/pubs/SinhaEDGE06.pdf
"Sudipta N Sinha, Jan-Michael Frahm, Marc Pollefeys and Yakup Genc", GPU-Based Video Feature Tracking and Matching", EDGE 2006, workshop on Edge Computing Using New Commodity Architectures, Chapel Hill, May 2006.

2007年4月2日星期一