comparison scripts/classify-objects.py @ 928:063d1267585d

work in progress
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 12 Jul 2017 01:24:31 -0400
parents fd057a6b04db
children 0e63a918a1ca
comparison
equal deleted inserted replaced
927:c030f735c594 928:063d1267585d
73 capture = cv2.VideoCapture(videoFilename) 73 capture = cv2.VideoCapture(videoFilename)
74 width = int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)) 74 width = int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
75 height = int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)) 75 height = int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
76 76
77 if undistort: # setup undistortion 77 if undistort: # setup undistortion
78 [map1, map2] = cvutils.computeUndistortMaps(width, height, undistortedImageMultiplication, intrinsicCameraMatrix, distortionCoefficients) 78 # [map1, map2] = cvutils.computeUndistortMaps(width, height, undistortedImageMultiplication, intrinsicCameraMatrix, distortionCoefficients)
79 height, width = map1.shape 79 # height, width = map1.shape
80 newImgSize = (int(round(width*undistortedImageMultiplication)), int(round(height*undistortedImageMultiplication)))
81 newCameraMatrix = cv2.getDefaultNewCameraMatrix(intrinsicCameraMatrix, newImgSize, True)
82 else:
83 newCameraMatrix = None
80 84
81 pastObjects = [] 85 pastObjects = []
82 currentObjects = [] 86 currentObjects = []
83 if capture.isOpened(): 87 if capture.isOpened():
84 ret = True 88 ret = True
90 while ret and frameNum <= lastFrameNum: 94 while ret and frameNum <= lastFrameNum:
91 ret, img = capture.read() 95 ret, img = capture.read()
92 if ret: 96 if ret:
93 if frameNum%50 == 0: 97 if frameNum%50 == 0:
94 print('frame number: {}'.format(frameNum)) 98 print('frame number: {}'.format(frameNum))
95 if undistort: 99 #if undistort:
96 img = cv2.remap(img, map1, map2, interpolation=cv2.INTER_LINEAR) 100 # img = cv2.remap(img, map1, map2, interpolation=cv2.INTER_LINEAR)
97 for obj in objects: 101 for obj in objects:
98 if obj.getFirstInstant() <= frameNum: # if images are skipped 102 if obj.getFirstInstant() <= frameNum: # if images are skipped
99 obj.initClassifyUserTypeHoGSVM(speedAggregationFunc, pedBikeCarSVM, bikeCarSVM, classifierParams.maxPedestrianSpeed, classifierParams.maxCyclistSpeed, classifierParams.nFramesIgnoreAtEnds) 103 obj.initClassifyUserTypeHoGSVM(speedAggregationFunc, pedBikeCarSVM, bikeCarSVM, classifierParams.maxPedestrianSpeed, classifierParams.maxCyclistSpeed, classifierParams.nFramesIgnoreAtEnds, invHomography, newCameraMatrix, distortionCoefficients)
100 currentObjects.append(obj) 104 currentObjects.append(obj)
101 objects.remove(obj) 105 objects.remove(obj)
102 106
103 for obj in currentObjects: 107 for obj in currentObjects:
104 if obj.getLastInstant() <= frameNum: # if images are skipped 108 if obj.getLastInstant() <= frameNum: # if images are skipped
105 obj.classifyUserTypeHoGSVM(minSpeedEquiprobable = classifierParams.minSpeedEquiprobable, speedProbabilities = speedProbabilities, maxPercentUnknown = classifierParams.maxPercentUnknown) 109 obj.classifyUserTypeHoGSVM(minSpeedEquiprobable = classifierParams.minSpeedEquiprobable, speedProbabilities = speedProbabilities, maxPercentUnknown = classifierParams.maxPercentUnknown)
106 pastObjects.append(obj) 110 pastObjects.append(obj)
107 currentObjects.remove(obj) 111 currentObjects.remove(obj)
108 else: 112 else:
109 obj.classifyUserTypeHoGSVMAtInstant(img, frameNum, invHomography, width, height, classifierParams.percentIncreaseCrop, classifierParams.percentIncreaseCrop, classifierParams.minNPixels, classifierParams.hogRescaleSize, classifierParams.hogNOrientations, classifierParams.hogNPixelsPerCell, classifierParams.hogNCellsPerBlock, classifierParams.hogBlockNorm) 113 obj.classifyUserTypeHoGSVMAtInstant(img, frameNum, width, height, classifierParams.percentIncreaseCrop, classifierParams.percentIncreaseCrop, classifierParams.minNPixels, classifierParams.hogRescaleSize, classifierParams.hogNOrientations, classifierParams.hogNPixelsPerCell, classifierParams.hogNCellsPerBlock, classifierParams.hogBlockNorm)
110 frameNum += 1 114 frameNum += 1
111 115
112 for obj in currentObjects: 116 for obj in currentObjects:
113 obj.classifyUserTypeHoGSVM(minSpeedEquiprobable = classifierParams.minSpeedEquiprobable, speedProbabilities = speedProbabilities, maxPercentUnknown = classifierParams.maxPercentUnknown) 117 obj.classifyUserTypeHoGSVM(minSpeedEquiprobable = classifierParams.minSpeedEquiprobable, speedProbabilities = speedProbabilities, maxPercentUnknown = classifierParams.maxPercentUnknown)
114 pastObjects.append(obj) 118 pastObjects.append(obj)