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