FeatureBasedTracking : Différence entre versions
De Transport
(4 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | The goal of this page is to record the objectives of the development of a vision-based road user tracking tool at Ecole Polytechnique and Carleton University. | + | The goal of this page is to record the objectives of the development of a vision-based road user tracking tool at Ecole Polytechnique, McGill University and Carleton University. |
==General Objectives== | ==General Objectives== | ||
Ligne 12 : | Ligne 12 : | ||
==Summer 2011 project by Ananda Narayanan== | ==Summer 2011 project by Ananda Narayanan== | ||
− | Expected list of features for the program: | + | Expected list of features for the program (following http://n.saunier.free.fr/saunier/stock/saunier06feature-based.pdf) |
* feature-based tracking using the KLT implementation of OpenCV, that can be easily extended to use other types of features (eg the fast features used in the opencv sample video_homography) | * feature-based tracking using the KLT implementation of OpenCV, that can be easily extended to use other types of features (eg the fast features used in the opencv sample video_homography) | ||
+ | ** check that new features are generated at more than the specified minimum feature distance when others are lost | ||
** it should include at least the following constraints on motion regularity to avoid errors and improve results | ** it should include at least the following constraints on motion regularity to avoid errors and improve results | ||
*** features have a minimum length, minimum displacement over the last n frames, the angle between two successive displacement vectors and the ratio of their norm may not be too large (if not, the feature track is disrupted: if the feature is too short, it is discarded) | *** features have a minimum length, minimum displacement over the last n frames, the angle between two successive displacement vectors and the ratio of their norm may not be too large (if not, the feature track is disrupted: if the feature is too short, it is discarded) | ||
Ligne 20 : | Ligne 21 : | ||
* clean and modular design that can be easily extended: speed should be reasonable | * clean and modular design that can be easily extended: speed should be reasonable | ||
** in particular, the steps of feature tracking and grouping can be performed separately or together | ** in particular, the steps of feature tracking and grouping can be performed separately or together | ||
− | * use of a homography to transform coordinates from image to world space | + | * use of a homography to transform coordinates from image to world space, accomodate if unavailable (test if it exists or use a configuration parameter) |
+ | * simple memory management using smart pointers and as much as possible const references for function arguments | ||
+ | ** using for example the Boost library http://www.boost.org/doc/libs/1_46_1/libs/smart_ptr/smart_ptr.htm | ||
* clean interface using the command line and a configuration file | * clean interface using the command line and a configuration file | ||
+ | ** make '''all''' tracking parameters available | ||
* saving all trajectory information for features and moving objects using the project https://bitbucket.org/trajectories/trajectorymanagementandanalysis (if possible, re-use data structure from the same project to avoid time-consuming type conversions) | * saving all trajectory information for features and moving objects using the project https://bitbucket.org/trajectories/trajectorymanagementandanalysis (if possible, re-use data structure from the same project to avoid time-consuming type conversions) | ||
Ligne 32 : | Ligne 36 : | ||
==Resources== | ==Resources== | ||
− | ** http://code.google.com/p/opencv-feature-tracker/ | + | * Open source computer vision projects |
+ | ** OpenCV http://opencv.willowgarage.com/wiki/ | ||
+ | ** http://code.google.com/p/opencv-feature-tracker/ (Warning: many bugs, not a good basis to build upon) | ||
** https://bitbucket.org/Nicolas/trafficintelligence | ** https://bitbucket.org/Nicolas/trafficintelligence | ||
** https://bitbucket.org/trajectories/trajectorymanagementandanalysis | ** https://bitbucket.org/trajectories/trajectorymanagementandanalysis | ||
+ | * Version Control http://mercurial.selenic.com/ | ||
+ | * C++ | ||
+ | ** http://en.cppreference.com/w/cpp | ||
+ | ** http://www.parashift.com/c++-faq-lite/ |
Version actuelle en date du 20 juillet 2011 à 00:50
The goal of this page is to record the objectives of the development of a vision-based road user tracking tool at Ecole Polytechnique, McGill University and Carleton University.
General Objectives
- Feature-based tracking, using any "standard" feature tracker, eg KLT
- look at fast features and the opencv sample video_homography
- Compensating small camera vibration (could work for small re-calibrations)
- an idea is to use features on background objects
- Generic features
- Semi-automated tracking
- Other vehicle/road user tracking methods, eg using background subtraction, tracking by detection (HoG detection)...
Summer 2011 project by Ananda Narayanan
Expected list of features for the program (following http://n.saunier.free.fr/saunier/stock/saunier06feature-based.pdf)
- feature-based tracking using the KLT implementation of OpenCV, that can be easily extended to use other types of features (eg the fast features used in the opencv sample video_homography)
- check that new features are generated at more than the specified minimum feature distance when others are lost
- it should include at least the following constraints on motion regularity to avoid errors and improve results
- features have a minimum length, minimum displacement over the last n frames, the angle between two successive displacement vectors and the ratio of their norm may not be too large (if not, the feature track is disrupted: if the feature is too short, it is discarded)
- features in the same group should have a minimum temporal overlap, there is a minimum number of features in a group of moving objects + the connection and segmentation distances
- clean and modular design that can be easily extended: speed should be reasonable
- in particular, the steps of feature tracking and grouping can be performed separately or together
- use of a homography to transform coordinates from image to world space, accomodate if unavailable (test if it exists or use a configuration parameter)
- simple memory management using smart pointers and as much as possible const references for function arguments
- using for example the Boost library http://www.boost.org/doc/libs/1_46_1/libs/smart_ptr/smart_ptr.htm
- clean interface using the command line and a configuration file
- make all tracking parameters available
- saving all trajectory information for features and moving objects using the project https://bitbucket.org/trajectories/trajectorymanagementandanalysis (if possible, re-use data structure from the same project to avoid time-consuming type conversions)
If time allows:
- cross-platform compilation
- test of various thresholds and other constraints to improve tracking
- motion-compensation
- GUI for the correction of results
Resources
- Open source computer vision projects
- OpenCV http://opencv.willowgarage.com/wiki/
- http://code.google.com/p/opencv-feature-tracker/ (Warning: many bugs, not a good basis to build upon)
- https://bitbucket.org/Nicolas/trafficintelligence
- https://bitbucket.org/trajectories/trajectorymanagementandanalysis
- Version Control http://mercurial.selenic.com/
- C++