annotate include/Parameters.hpp @ 495:82c06ad62254

added parameter description with ranges A parameter was added (block size) that used to be the same as window size
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 01 May 2014 11:08:26 -0400
parents 17c5f378c283
children 081a9da6f85b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
119
45a426552aaa compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 118
diff changeset
1 #ifndef PARAMETERS_HPP
45a426552aaa compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 118
diff changeset
2 #define PARAMETERS_HPP
5
824c35230b73 idea for parameters class
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
3
824c35230b73 idea for parameters class
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
4 /// \todo Class for parameters, with utilities to save and load from configuration files
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
5
124
1e68e18b1aa5 renaming and working on klt
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 119
diff changeset
6 #include <string>
1e68e18b1aa5 renaming and working on klt
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 119
diff changeset
7
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
8 namespace boost{
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
9 namespace program_options {
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
10 class options_description;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
11 class variables_map;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
12 }
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
13 }
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
14
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
15 struct KLTFeatureTrackingParameters {
164
76610dcf3b8d added test code to read trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 137
diff changeset
16 bool trackFeatures;
76610dcf3b8d added test code to read trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 137
diff changeset
17 bool groupFeatures;
76610dcf3b8d added test code to read trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 137
diff changeset
18
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
19 std::string videoFilename;
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
20 std::string databaseFilename;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
21 std::string homographyFilename;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
22 std::string maskFilename;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
23 bool loadFeatures;
134
a617d0808bbc added test on feature length and display control
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 127
diff changeset
24 bool display;
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
25 float videoFPS;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
26 // int measurementPrecision;
228
23da16442433 minor modifications for unsigned int (nframes is now 0 to process all frames)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 191
diff changeset
27 unsigned int frame1;
278
f21ef87f98f1 resolved issue 2 and problem with negative nframes parameter
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 228
diff changeset
28 int nFrames;
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
29 // feature tracking
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
30 /// "Maximum number of corners to return" (OpenCV goodFeaturesToTrack) (should be large enough not to limit the potential number of features)
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
31 int maxNFeatures;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
32 /// "Parameter characterizing the minimal accepted quality of image corners" (OpenCV goodFeaturesToTrack )
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
33 float featureQuality;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
34 /// "Minimum possible Euclidean distance between the returned corners" (OpenCV goodFeaturesToTrack)
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
35 float minFeatureDistanceKLT;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
36 /// "Size of an average block for computing a derivative covariation matrix over each pixel neighborhood" (OpenCV goodFeaturesToTrack)
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
37 int blockSize;
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
38 /// "Parameter indicating whether to use a Harris detector" (OpenCV goodFeaturesToTrack)
127
d19d6e63dd77 simple feature tracking and drawing working
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 124
diff changeset
39 bool useHarrisDetector;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
40 /// "Free parameter of the Harris detector" (OpenCV goodFeaturesToTrack)
127
d19d6e63dd77 simple feature tracking and drawing working
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 124
diff changeset
41 float k;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
42 /// "size of the search window at each pyramid level" (OpenCV calcOpticalFlowPyrLK)
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
43 int windowSize;
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
44 /// "0-based maximal pyramid level number" (OpenCV calcOpticalFlowPyrLK) higher is higher quality
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
45 int pyramidLevel;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
46 /// Number of displacements (number of frames-1) over which minimum motion is computed
136
0f790de9437e renamed Feature to Motion files and added code to test blob db
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 135
diff changeset
47 unsigned int nDisplacements;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
48 /// Minimum displacement per frame (in world space) to keep features
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
49 float minFeatureDisplacement;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
50 /// Maximum feature acceleration
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
51 float accelerationBound;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
52 /// Maximum feature deviation
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
53 float deviationBound;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
54 /// Number of frames to smooth positions (half window)
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
55 int nFramesSmoothing;
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
56 //int nFramesVelocity;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
57 /// Maximum number of iterations to stop optical flow (OpenCV calcOpticalFlowPyrLK)
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
58 int maxNumberTrackingIterations;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
59 /// Minimum error to reach to stop optical flow (OpenCV calcOpticalFlowPyrLK)
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
60 float minTrackingError;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
61 /// Minimum eigen value of a 2x2 normal matrix of optical flow equations (OpenCV calcOpticalFlowPyrLK)
418
ca5784652d57 updated use of calcOpticalFlowPyrLK for new signature, added minEigThreshold parameter in configuration file
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 399
diff changeset
62 float minFeatureEigThreshold;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
63 /// Minimum length of a feature (number of frames) to consider a feature for grouping
135
32d2722d4028 added constraint on minimum displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 134
diff changeset
64 unsigned int minFeatureTime;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
65 /// Connection distance in feature grouping (in world space)
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
66 float mmConnectionDistance;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
67 /// Segmentation distance in feature grouping (in world space)
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
68 float mmSegmentationDistance;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
69 /// Maximum distance between features for grouping (in world space) (unused)
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
70 float maxDistance;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
71 /// Minimum cosine of the angle between the velocity vectors for grouping (unused)
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
72 float minVelocityCosine;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
73 /// Minimum average number of features per frame to create a vehicle hypothesis
191
0e60a306d324 added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 164
diff changeset
74 float minNFeaturesPerGroup;
348
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 278
diff changeset
75 // safety analysis
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 278
diff changeset
76 float maxPredictedSpeed;
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 278
diff changeset
77 float predictionTimeHorizon;
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 278
diff changeset
78 float collisionDistance;
c64a4f889b97 added safety analysis options to feature tracking (with default values for backward compatibility)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 278
diff changeset
79 bool crossingZones;
352
72aa44072093 safety analysis script with option for prediction method
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 351
diff changeset
80 std::string predictionMethod;
349
e3f910c26fae added other safety analysis parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
81 int nPredictedTrajectories;
e3f910c26fae added other safety analysis parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
82 float minAcceleration;
e3f910c26fae added other safety analysis parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
83 float maxAcceleration;
e3f910c26fae added other safety analysis parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
84 float maxSteering;
353
8672c101bfec corrected minor type issue
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 352
diff changeset
85 bool useFeaturesForPrediction;
124
1e68e18b1aa5 renaming and working on klt
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 119
diff changeset
86
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
87 std::string parameterDescription;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
88
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
89 KLTFeatureTrackingParameters(const int argc, char* argv[]);
124
1e68e18b1aa5 renaming and working on klt
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 119
diff changeset
90
135
32d2722d4028 added constraint on minimum displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 134
diff changeset
91 //KLTFeatureTrackingParameters(bool loadFeatures, std::string videoFilename, int videoFPS, int measurementPrecision, int frame1, int nFrames, int maxNFeatures, float featureQuality, float minFeatureDistanceKLT, int windowSize, int pyramidLevel, int nDisplacements, float minFeatureDisplacement, float accelerationBound, float deviationBound, int nFramesSmoothing, int nFramesVelocity, int maxNumberTrackingIterations, float minTrackingError, int minFeatureTime, float mmConnectionDistance, float mmSegmentationDistance, float maxDistance, float minVelocityCosine, int minNFeaturesPerGroup);
124
1e68e18b1aa5 renaming and working on klt
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 119
diff changeset
92
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
93 std::string getParameterDescription(boost::program_options::options_description& options, const boost::program_options::variables_map& vm, const std::string& separator = " ") const;
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
94 };
119
45a426552aaa compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 118
diff changeset
95
45a426552aaa compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 118
diff changeset
96 #endif