annotate include/Parameters.hpp @ 1228:5654c9173548

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