changeset 501:c81cbd6953fb

update to classify speed to remove data at both ends
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 20 May 2014 15:18:55 -0400
parents 3b99d712bbee
children 33574b94f09e
files python/cvutils.py python/ml.py python/moving.py
diffstat 3 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/python/cvutils.py	Fri May 09 14:09:14 2014 -0400
+++ b/python/cvutils.py	Tue May 20 15:18:55 2014 -0400
@@ -5,7 +5,7 @@
     import cv2
     opencvAvailable = True
 except ImportError:
-    print('OpenCV library could not be loaded (video replay functions will not be available)')
+    print('OpenCV library could not be loaded (video replay functions will not be available)') # TODO change to logging module
     opencvAvailable = False
 try:
     import skimage
--- a/python/ml.py	Fri May 09 14:09:14 2014 -0400
+++ b/python/ml.py	Tue May 20 15:18:55 2014 -0400
@@ -24,8 +24,8 @@
     def train(self, samples, responses):
         self.model.train(samples, responses, params = self.params)
 
-    def predict(self, sample):
-        return np.float32(self.model.predict(s))
+    def predict(self, samples):
+        return np.float32([self.model.predict(s) for s in samples])
 
 
 class Centroid:
--- a/python/moving.py	Fri May 09 14:09:14 2014 -0400
+++ b/python/moving.py	Tue May 20 15:18:55 2014 -0400
@@ -805,11 +805,15 @@
         at constant speed'''
         return predictPositionNoLimit(nTimeSteps, self.getPositionAtInstant(instant), self.getVelocityAtInstant(instant), externalAcceleration)
 
-    def classifyUserTypeSpeed(self, threshold, statisticsFunc = median):
+    def classifyUserTypeSpeed(self, threshold, statisticsFunc = median, ignoreNInstantsAtEnds = 0):
         '''Classifies slow and fast road users
         slow: non-motorized -> pedestrians
         fast: motorized -> cars'''
-        if statisticsFunc(self.velocities.norm()) >= threshold:
+        if ignoreNInstantsAtEnds > 0:
+            speeds = self.velocities.norm()[ignoreNInstantsAtEnds:-ignoreNInstantsAtEnds]
+        else:
+            speeds = self.velocities.norm()
+        if statisticsFunc(speeds) >= threshold:
             self.setUserType(userType2Num['car'])
         else:
             self.setUserType(userType2Num['pedestrian'])