FeatureBasedTracking : Différence entre versions
De Transport
(→Resources) |
|||
Ligne 15 : | Ligne 15 : | ||
* 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 | * 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 | ** 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) | ||
Version du 28 juin 2011 à 17:12
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.
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