Mercurial > hg > nsaunier > 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) |
