Mercurial Hosting > 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 |