Mercurial Hosting > traffic-intelligence
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) |