# HG changeset patch # User Nicolas Saunier # Date 1403068758 14400 # Node ID fd9641cbd24ba1b4af1a02223bf246439d6fa235 # Parent 4ad5123d969e3fae1a796be15fec08b8240af22c added function to classify object at instant from SVM diff -r 4ad5123d969e -r fd9641cbd24b python/cvutils.py --- a/python/cvutils.py Wed Jun 18 00:53:39 2014 -0400 +++ b/python/cvutils.py Wed Jun 18 01:19:18 2014 -0400 @@ -205,9 +205,9 @@ xCropMin = int(max(0, .5 * (xmin + xmax - a))) xCropMax = int(min(width - 1, .5 * (xmin + xmax + a))) if yCropMax != yCropMin and xCropMax != xCropMin and (yCropMax - yCropMin) * (xCropMax - xCropMin) > pixelThreshold: - imgcrop = img[yCropMin : yCropMax, xCropMin : xCropMax] + croppedImg = img[yCropMin : yCropMax, xCropMin : xCropMax] else: - imgcrop = [] + croppedImg = [] return imgcrop, yCropMin, yCropMax, xCropMin, xCropMax diff -r 4ad5123d969e -r fd9641cbd24b python/moving.py --- a/python/moving.py Wed Jun 18 00:53:39 2014 -0400 +++ b/python/moving.py Wed Jun 18 01:19:18 2014 -0400 @@ -831,6 +831,17 @@ else: self.setUserType(userType2Num['pedestrian']) + def classifyUserTypeHoGSVMAtInstant(self, img, svm, instant, homography, width, height, px = 0.2, py = 0.2, pixelThreshold = 800): + '''Extract the image box around the object and + applies the SVM model on it''' + from numpy import array + croppedImg, yCropMin, yCropMax, xCropMin, xCropMax = imageBox(img, self, instant, homography, width, height, px, py, pixelThreshold) + if len(croppedImg) > 0: # != [] + hog = array([cvutils.HOG(croppedImg)], dtype = np.float32) + return int(svm.predict(hog)) + else: + return userType2Num['unknown'] + @staticmethod def collisionCourseDotProduct(movingObject1, movingObject2, instant): 'A positive result indicates that the road users are getting closer'