Mercurial > hg > nsaunier > traffic-intelligence
comparison python/storage.py @ 680:da1352b89d02 dev
classification is working
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Fri, 05 Jun 2015 02:25:30 +0200 |
| parents | 15e244d2a1b5 |
| children | 94b291a5f933 |
comparison
equal
deleted
inserted
replaced
| 678:97c305108460 | 680:da1352b89d02 |
|---|---|
| 4 | 4 |
| 5 import utils, moving, events, indicators | 5 import utils, moving, events, indicators |
| 6 from base import VideoFilenameAddable | 6 from base import VideoFilenameAddable |
| 7 | 7 |
| 8 import sqlite3, logging | 8 import sqlite3, logging |
| 9 from numpy import log | |
| 9 | 10 |
| 10 | 11 |
| 11 commentChar = '#' | 12 commentChar = '#' |
| 12 | 13 |
| 13 delimiterChar = '%'; | 14 delimiterChar = '%'; |
| 899 self.undistort = config.getboolean(self.sectionHeader, 'undistort') | 900 self.undistort = config.getboolean(self.sectionHeader, 'undistort') |
| 900 self.firstFrameNum = config.getint(self.sectionHeader, 'frame1') | 901 self.firstFrameNum = config.getint(self.sectionHeader, 'frame1') |
| 901 self.videoFrameRate = config.getfloat(self.sectionHeader, 'video-fps') | 902 self.videoFrameRate = config.getfloat(self.sectionHeader, 'video-fps') |
| 902 | 903 |
| 903 # Classification parameters | 904 # Classification parameters |
| 904 | 905 self.speedAggregationMethod = config.get(self.sectionHeader, 'speed-aggregation-method') |
| 906 self.nFramesIgnoreAtEnds = config.getint(self.sectionHeader, 'nframes-ignore-at-ends') | |
| 907 self.speedAggregationQuantile = config.getint(self.sectionHeader, 'speed-aggregation-quantile') | |
| 908 self.minSpeedEquiprobable = config.getfloat(self.sectionHeader, 'min-speed-equiprobable') | |
| 909 self.pedBikeCarSVMFilename = config.get(self.sectionHeader, 'pbv-svm-filename') | |
| 910 self.bikeCarSVMFilename = config.get(self.sectionHeader, 'bv-svm-filename') | |
| 911 self.maxPedestrianSpeed = config.getfloat(self.sectionHeader, 'max-ped-speed') | |
| 912 self.maxCyclistSpeed = config.getfloat(self.sectionHeader, 'max-cyc-speed') | |
| 913 self.meanPedestrianSpeed = config.getfloat(self.sectionHeader, 'mean-ped-speed') | |
| 914 self.stdPedestrianSpeed = config.getfloat(self.sectionHeader, 'std-ped-speed') | |
| 915 self.locationCyclistSpeed = config.getfloat(self.sectionHeader, 'cyc-speed-loc') | |
| 916 self.scaleCyclistSpeed = config.getfloat(self.sectionHeader, 'cyc-speed-scale') | |
| 917 self.meanVehicleSpeed = config.getfloat(self.sectionHeader, 'mean-veh-speed') | |
| 918 self.stdVehicleSpeed = config.getfloat(self.sectionHeader, 'std-veh-speed') | |
| 905 | 919 |
| 906 # Safety parameters | 920 # Safety parameters |
| 907 self.maxPredictedSpeed = config.getfloat(self.sectionHeader, 'max-predicted-speed')/3.6/self.videoFrameRate | 921 self.maxPredictedSpeed = config.getfloat(self.sectionHeader, 'max-predicted-speed')/3.6/self.videoFrameRate |
| 908 self.predictionTimeHorizon = config.getfloat(self.sectionHeader, 'prediction-time-horizon')*self.videoFrameRate | 922 self.predictionTimeHorizon = config.getfloat(self.sectionHeader, 'prediction-time-horizon')*self.videoFrameRate |
| 909 self.collisionDistance = config.getfloat(self.sectionHeader, 'collision-distance') | 923 self.collisionDistance = config.getfloat(self.sectionHeader, 'collision-distance') |
| 918 self.useFeaturesForPrediction = config.getboolean(self.sectionHeader, 'use-features-prediction') | 932 self.useFeaturesForPrediction = config.getboolean(self.sectionHeader, 'use-features-prediction') |
| 919 | 933 |
| 920 def __init__(self, filename = None): | 934 def __init__(self, filename = None): |
| 921 if filename is not None: | 935 if filename is not None: |
| 922 self.loadConfigFile(filename) | 936 self.loadConfigFile(filename) |
| 937 | |
| 938 def convertToFrames(self, speedRatio = 3.6): | |
| 939 '''Converts parameters with a relationship to time in 'native' frame time | |
| 940 speedRatio is the conversion from the speed unit in the config file | |
| 941 to the distance per second | |
| 942 | |
| 943 ie param(config file) = speedRatio x fps x param(used in program) | |
| 944 eg km/h = 3.6 (m/s to km/h) x frame/s x m/frame''' | |
| 945 denominator = self.videoFrameRate*speedRatio | |
| 946 denominator2 = denominator**2 | |
| 947 self.minSpeedEquiprobable = self.minSpeedEquiprobable/denominator | |
| 948 self.maxPedestrianSpeed = self.maxPedestrianSpeed/denominator | |
| 949 self.maxCyclistSpeed = self.maxCyclistSpeed/denominator | |
| 950 self.meanPedestrianSpeed = self.meanPedestrianSpeed/denominator | |
| 951 self.stdPedestrianSpeed = self.stdPedestrianSpeed/denominator | |
| 952 self.meanVehicleSpeed = self.meanVehicleSpeed/denominator | |
| 953 self.stdVehicleSpeed = self.stdVehicleSpeed/denominator | |
| 954 # special case for the lognormal distribution | |
| 955 self.locationCyclistSpeed = self.locationCyclistSpeed-log(denominator) | |
| 956 #self.scaleCyclistSpeed = self.scaleCyclistSpeed | |
| 923 | 957 |
| 924 class SceneParameters(object): | 958 class SceneParameters(object): |
| 925 def __init__(self, config, sectionName): | 959 def __init__(self, config, sectionName): |
| 926 from ConfigParser import NoOptionError | 960 from ConfigParser import NoOptionError |
| 927 from ast import literal_eval | 961 from ast import literal_eval |
