annotate include/Parameters.hpp @ 507:081a9da6f85b

first version with undistort implemented in the feature tracking process
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 01 May 2014 17:41:10 -0400
parents 13d4eb96a751 82c06ad62254
children 935430b1d408
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>
506
13d4eb96a751 added needed parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
7 #include <vector>
124
1e68e18b1aa5 renaming and working on klt
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 119
diff changeset
8
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
9 namespace boost{
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
10 namespace program_options {
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
11 class options_description;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
12 class variables_map;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
13 }
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
14 }
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
15
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
16 struct KLTFeatureTrackingParameters {
164
76610dcf3b8d added test code to read trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 137
diff changeset
17 bool trackFeatures;
76610dcf3b8d added test code to read trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 137
diff changeset
18 bool groupFeatures;
76610dcf3b8d added test code to read trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 137
diff changeset
19
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
20 std::string videoFilename;
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
21 std::string databaseFilename;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
22 std::string homographyFilename;
506
13d4eb96a751 added needed parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
23 std::string intrinsicCameraFilename;
13d4eb96a751 added needed parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
24 std::vector<float> distortionCoefficients;
13d4eb96a751 added needed parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
25 float undistortedImageMultiplication;
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
26 std::string maskFilename;
507
081a9da6f85b first version with undistort implemented in the feature tracking process
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 506 495
diff changeset
27 bool undistort;
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
28 bool loadFeatures;
134
a617d0808bbc added test on feature length and display control
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 127
diff changeset
29 bool display;
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
30 float videoFPS;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
31 // 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
32 unsigned int frame1;
278
f21ef87f98f1 resolved issue 2 and problem with negative nframes parameter
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 228
diff changeset
33 int nFrames;
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
34 // feature tracking
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
35 /// "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
36 int maxNFeatures;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
37 /// "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
38 float featureQuality;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
39 /// "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
40 float minFeatureDistanceKLT;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
41 /// "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
42 int blockSize;
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
43 /// "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
44 bool useHarrisDetector;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
45 /// "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
46 float k;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
47 /// "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
48 int windowSize;
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
49 /// "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
50 int pyramidLevel;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
51 /// 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
52 unsigned int nDisplacements;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
53 /// 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
54 float minFeatureDisplacement;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
55 /// Maximum feature acceleration
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
56 float accelerationBound;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
57 /// Maximum feature deviation
118
b3e3d9f80a6a added configuration file and parameter structure
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 5
diff changeset
58 float deviationBound;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
59 /// 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
60 int nFramesSmoothing;
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
61 //int nFramesVelocity;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
62 /// 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
63 int maxNumberTrackingIterations;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
64 /// 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
65 float minTrackingError;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
66 /// 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
67 float minFeatureEigThreshold;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
68 /// 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
69 unsigned int minFeatureTime;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
70 /// 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
71 float mmConnectionDistance;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
72 /// 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
73 float mmSegmentationDistance;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
74 /// 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
75 float maxDistance;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
76 /// 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
77 float minVelocityCosine;
495
82c06ad62254 added parameter description with ranges
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 419
diff changeset
78 /// 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
79 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
80 // 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
81 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
82 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
83 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
84 bool crossingZones;
352
72aa44072093 safety analysis script with option for prediction method
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 351
diff changeset
85 std::string predictionMethod;
349
e3f910c26fae added other safety analysis parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
86 int nPredictedTrajectories;
e3f910c26fae added other safety analysis parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
87 float minAcceleration;
e3f910c26fae added other safety analysis parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
88 float maxAcceleration;
e3f910c26fae added other safety analysis parameters
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 348
diff changeset
89 float maxSteering;
353
8672c101bfec corrected minor type issue
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 352
diff changeset
90 bool useFeaturesForPrediction;
124
1e68e18b1aa5 renaming and working on klt
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 119
diff changeset
91
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
92 std::string parameterDescription;
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
93
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
94 KLTFeatureTrackingParameters(const int argc, char* argv[]);
124
1e68e18b1aa5 renaming and working on klt
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 119
diff changeset
95
135
32d2722d4028 added constraint on minimum displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 134
diff changeset
96 //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
97
137
445e773c9be3 created the parameter structure to parse parameters (bug remaining)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 136
diff changeset
98 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
99 };
119
45a426552aaa compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 118
diff changeset
100
45a426552aaa compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 118
diff changeset
101 #endif