comparison include/Parameters.hpp @ 614:5e09583275a4

Merged Nicolas/trafficintelligence into default
author Mohamed Gomaa <eng.m.gom3a@gmail.com>
date Fri, 05 Dec 2014 12:13:53 -0500
parents 935430b1d408
children 045d05cef9d0
comparison
equal deleted inserted replaced
598:11f96bd08552 614:5e09583275a4
2 #define PARAMETERS_HPP 2 #define PARAMETERS_HPP
3 3
4 /// \todo Class for parameters, with utilities to save and load from configuration files 4 /// \todo Class for parameters, with utilities to save and load from configuration files
5 5
6 #include <string> 6 #include <string>
7 #include <vector>
7 8
8 namespace boost{ 9 namespace boost{
9 namespace program_options { 10 namespace program_options {
10 class options_description; 11 class options_description;
11 class variables_map; 12 class variables_map;
17 bool groupFeatures; 18 bool groupFeatures;
18 19
19 std::string videoFilename; 20 std::string videoFilename;
20 std::string databaseFilename; 21 std::string databaseFilename;
21 std::string homographyFilename; 22 std::string homographyFilename;
23 std::string intrinsicCameraFilename;
24 std::vector<float> distortionCoefficients;
25 float undistortedImageMultiplication;
26 int interpolationMethod;
22 std::string maskFilename; 27 std::string maskFilename;
28 bool undistort;
23 bool loadFeatures; 29 bool loadFeatures;
24 bool display; 30 bool display;
25 float videoFPS; 31 float videoFPS;
26 // int measurementPrecision; 32 // int measurementPrecision;
27 unsigned int frame1; 33 unsigned int frame1;
28 int nFrames; 34 int nFrames;
29 // feature tracking 35 // feature tracking
36 /// "Maximum number of corners to return" (OpenCV goodFeaturesToTrack) (should be large enough not to limit the potential number of features)
30 int maxNFeatures; 37 int maxNFeatures;
38 /// "Parameter characterizing the minimal accepted quality of image corners" (OpenCV goodFeaturesToTrack )
31 float featureQuality; 39 float featureQuality;
40 /// "Minimum possible Euclidean distance between the returned corners" (OpenCV goodFeaturesToTrack)
32 float minFeatureDistanceKLT; 41 float minFeatureDistanceKLT;
42 /// "Size of an average block for computing a derivative covariation matrix over each pixel neighborhood" (OpenCV goodFeaturesToTrack)
43 int blockSize;
44 /// "Parameter indicating whether to use a Harris detector" (OpenCV goodFeaturesToTrack)
45 bool useHarrisDetector;
46 /// "Free parameter of the Harris detector" (OpenCV goodFeaturesToTrack)
47 float k;
48 /// "size of the search window at each pyramid level" (OpenCV calcOpticalFlowPyrLK)
33 int windowSize; 49 int windowSize;
34 bool useHarrisDetector; 50 /// "0-based maximal pyramid level number" (OpenCV calcOpticalFlowPyrLK) higher is higher quality
35 float k;
36 int pyramidLevel; 51 int pyramidLevel;
52 /// Number of displacements (number of frames-1) over which minimum motion is computed
37 unsigned int nDisplacements; 53 unsigned int nDisplacements;
54 /// Minimum displacement per frame (in world space) to keep features
38 float minFeatureDisplacement; 55 float minFeatureDisplacement;
56 /// Maximum feature acceleration
39 float accelerationBound; 57 float accelerationBound;
58 /// Maximum feature deviation
40 float deviationBound; 59 float deviationBound;
60 /// Number of frames to smooth positions (half window)
41 int nFramesSmoothing; 61 int nFramesSmoothing;
42 //int nFramesVelocity; 62 //int nFramesVelocity;
63 /// Maximum number of iterations to stop optical flow (OpenCV calcOpticalFlowPyrLK)
43 int maxNumberTrackingIterations; 64 int maxNumberTrackingIterations;
65 /// Minimum error to reach to stop optical flow (OpenCV calcOpticalFlowPyrLK)
44 float minTrackingError; 66 float minTrackingError;
67 /// Minimum eigen value of a 2x2 normal matrix of optical flow equations (OpenCV calcOpticalFlowPyrLK)
68 float minFeatureEigThreshold;
69 /// Minimum length of a feature (number of frames) to consider a feature for grouping
45 unsigned int minFeatureTime; 70 unsigned int minFeatureTime;
71 /// Connection distance in feature grouping (in world space)
46 float mmConnectionDistance; 72 float mmConnectionDistance;
73 /// Segmentation distance in feature grouping (in world space)
47 float mmSegmentationDistance; 74 float mmSegmentationDistance;
75 /// Maximum distance between features for grouping (in world space) (unused)
48 float maxDistance; 76 float maxDistance;
77 /// Minimum cosine of the angle between the velocity vectors for grouping (unused)
49 float minVelocityCosine; 78 float minVelocityCosine;
79 /// Minimum average number of features per frame to create a vehicle hypothesis
50 float minNFeaturesPerGroup; 80 float minNFeaturesPerGroup;
81 // safety analysis
82 float maxPredictedSpeed;
83 float predictionTimeHorizon;
84 float collisionDistance;
85 bool crossingZones;
86 std::string predictionMethod;
87 int nPredictedTrajectories;
88 float minAcceleration;
89 float maxAcceleration;
90 float maxSteering;
91 bool useFeaturesForPrediction;
51 92
52 std::string parameterDescription; 93 std::string parameterDescription;
53 94
54 KLTFeatureTrackingParameters(const int argc, char* argv[]); 95 KLTFeatureTrackingParameters(const int argc, char* argv[]);
55 96