Mercurial Hosting > traffic-intelligence
comparison python/storage.py @ 1021:16932cefabc1
work on paths in line with new configurations from tracker
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 05 Jun 2018 17:02:28 -0400 |
parents | 75601be6019f |
children | b7689372c0ec |
comparison
equal
deleted
inserted
replaced
1020:9fb82fe0156f | 1021:16932cefabc1 |
---|---|
1275 def loadConfigFile(self, filename): | 1275 def loadConfigFile(self, filename): |
1276 from configparser import ConfigParser | 1276 from configparser import ConfigParser |
1277 | 1277 |
1278 config = ConfigParser() | 1278 config = ConfigParser() |
1279 config.read_file(addSectionHeader(openCheck(filename))) | 1279 config.read_file(addSectionHeader(openCheck(filename))) |
1280 | |
1281 parentPath = Path(filename).parent | |
1280 self.sectionHeader = config.sections()[0] | 1282 self.sectionHeader = config.sections()[0] |
1281 | 1283 |
1282 self.pedBikeCarSVMFilename = config.get(self.sectionHeader, 'pbv-svm-filename') | 1284 self.pedBikeCarSVMFilename = utils.getRelativeFilename(parentPath, config.get(self.sectionHeader, 'pbv-svm-filename')) |
1283 self.bikeCarSVMFilename = config.get(self.sectionHeader, 'bv-svm-filename') | 1285 self.bikeCarSVMFilename = utils.getRelativeFilename(parentPath, config.get(self.sectionHeader, 'bv-svm-filename')) |
1284 self.percentIncreaseCrop = config.getfloat(self.sectionHeader, 'percent-increase-crop') | 1286 self.percentIncreaseCrop = config.getfloat(self.sectionHeader, 'percent-increase-crop') |
1285 self.minNPixels = config.getint(self.sectionHeader, 'min-npixels-crop') | 1287 self.minNPixels = config.getint(self.sectionHeader, 'min-npixels-crop') |
1286 x = config.getint(self.sectionHeader, 'hog-rescale-size') | 1288 x = config.getint(self.sectionHeader, 'hog-rescale-size') |
1287 self.hogRescaleSize = (x, x) | 1289 self.hogRescaleSize = (x, x) |
1288 self.hogNOrientations = config.getint(self.sectionHeader, 'hog-norientations') | 1290 self.hogNOrientations = config.getint(self.sectionHeader, 'hog-norientations') |
1343 from configparser import ConfigParser | 1345 from configparser import ConfigParser |
1344 | 1346 |
1345 config = ConfigParser(strict=False) | 1347 config = ConfigParser(strict=False) |
1346 config.read_file(addSectionHeader(openCheck(filename))) | 1348 config.read_file(addSectionHeader(openCheck(filename))) |
1347 | 1349 |
1350 parentPath = Path(filename).parent | |
1348 self.sectionHeader = config.sections()[0] | 1351 self.sectionHeader = config.sections()[0] |
1349 # Tracking/display parameters | 1352 # Tracking/display parameters |
1350 self.videoFilename = config.get(self.sectionHeader, 'video-filename') | 1353 self.videoFilename = utils.getRelativeFilename(parentPath, config.get(self.sectionHeader, 'video-filename')) |
1351 self.databaseFilename = config.get(self.sectionHeader, 'database-filename') | 1354 self.databaseFilename = utils.getRelativeFilename(parentPath, config.get(self.sectionHeader, 'database-filename')) |
1352 self.homographyFilename = config.get(self.sectionHeader, 'homography-filename') | 1355 self.homographyFilename = utils.getRelativeFilename(parentPath, config.get(self.sectionHeader, 'homography-filename')) |
1353 if Path(self.homographyFilename).exists(): | 1356 if Path(self.homographyFilename).exists(): |
1354 self.homography = loadtxt(self.homographyFilename) | 1357 self.homography = loadtxt(self.homographyFilename) |
1355 else: | 1358 else: |
1356 self.homography = None | 1359 self.homography = None |
1357 self.intrinsicCameraFilename = config.get(self.sectionHeader, 'intrinsic-camera-filename') | 1360 self.intrinsicCameraFilename = utils.getRelativeFilename(parentPath, config.get(self.sectionHeader, 'intrinsic-camera-filename')) |
1358 if Path(self.intrinsicCameraFilename).exists(): | 1361 if Path(self.intrinsicCameraFilename).exists(): |
1359 self.intrinsicCameraMatrix = loadtxt(self.intrinsicCameraFilename) | 1362 self.intrinsicCameraMatrix = loadtxt(self.intrinsicCameraFilename) |
1360 else: | 1363 else: |
1361 self.intrinsicCameraMatrix = None | 1364 self.intrinsicCameraMatrix = None |
1362 distortionCoefficients = getValuesFromINIFile(filename, 'distortion-coefficients', '=') | 1365 distortionCoefficients = getValuesFromINIFile(filename, 'distortion-coefficients', '=') |
1366 self.firstFrameNum = config.getint(self.sectionHeader, 'frame1') | 1369 self.firstFrameNum = config.getint(self.sectionHeader, 'frame1') |
1367 self.videoFrameRate = config.getfloat(self.sectionHeader, 'video-fps') | 1370 self.videoFrameRate = config.getfloat(self.sectionHeader, 'video-fps') |
1368 | 1371 |
1369 self.minFeatureTime = config.getfloat(self.sectionHeader, 'min-feature-time') | 1372 self.minFeatureTime = config.getfloat(self.sectionHeader, 'min-feature-time') |
1370 | 1373 |
1371 self.classifierFilename = config.get(self.sectionHeader, 'classifier-filename') | 1374 self.classifierFilename = utils.getRelativeFilename(parentPath, config.get(self.sectionHeader, 'classifier-filename')) |
1372 | 1375 |
1373 # Safety parameters | 1376 # Safety parameters |
1374 self.maxPredictedSpeed = config.getfloat(self.sectionHeader, 'max-predicted-speed')/3.6/self.videoFrameRate | 1377 self.maxPredictedSpeed = config.getfloat(self.sectionHeader, 'max-predicted-speed')/3.6/self.videoFrameRate |
1375 self.predictionTimeHorizon = config.getfloat(self.sectionHeader, 'prediction-time-horizon')*self.videoFrameRate | 1378 self.predictionTimeHorizon = config.getfloat(self.sectionHeader, 'prediction-time-horizon')*self.videoFrameRate |
1376 self.collisionDistance = config.getfloat(self.sectionHeader, 'collision-distance') | 1379 self.collisionDistance = config.getfloat(self.sectionHeader, 'collision-distance') |
1396 | 1399 |
1397 def processVideoArguments(args): | 1400 def processVideoArguments(args): |
1398 '''Loads information from configuration file | 1401 '''Loads information from configuration file |
1399 then checks what was passed on the command line | 1402 then checks what was passed on the command line |
1400 for override (eg video filename and database filename''' | 1403 for override (eg video filename and database filename''' |
1404 parentPath = Path(args.configFilename).parent | |
1401 if args.configFilename is not None: # consider there is a configuration file | 1405 if args.configFilename is not None: # consider there is a configuration file |
1402 params = ProcessParameters(args.configFilename) | 1406 params = ProcessParameters(args.configFilename) |
1403 videoFilename = params.videoFilename | 1407 videoFilename = params.videoFilename |
1404 databaseFilename = params.databaseFilename | 1408 databaseFilename = params.databaseFilename |
1405 if params.homography is not None: | 1409 if params.homography is not None: |
1419 undistortedImageMultiplication = None | 1423 undistortedImageMultiplication = None |
1420 undistort = False | 1424 undistort = False |
1421 firstFrameNum = 0 | 1425 firstFrameNum = 0 |
1422 | 1426 |
1423 # override video and database filenames if present on command line | 1427 # override video and database filenames if present on command line |
1428 # if not absolute, make all filenames relative to the location of the configuration filename | |
1424 if args.videoFilename is not None: | 1429 if args.videoFilename is not None: |
1425 videoFilename = args.videoFilename | 1430 videoFilename = utils.getRelativeFilename(parentPath, args.videoFilename) |
1426 else: | 1431 else: |
1427 videoFilename = params.videoFilename | 1432 videoFilename = params.videoFilename |
1428 if args.databaseFilename is not None: | 1433 if args.databaseFilename is not None: |
1429 databaseFilename = args.databaseFilename | 1434 databaseFilename = utils.getRelativeFilename(parentPath, args.databaseFilename) |
1430 else: | 1435 else: |
1431 databaseFilename = params.databaseFilename | 1436 databaseFilename = params.databaseFilename |
1432 | 1437 |
1433 return params, videoFilename, databaseFilename, invHomography, intrinsicCameraMatrix, distortionCoefficients, undistortedImageMultiplication, undistort, firstFrameNum | 1438 return params, videoFilename, databaseFilename, invHomography, intrinsicCameraMatrix, distortionCoefficients, undistortedImageMultiplication, undistort, firstFrameNum |
1434 | 1439 |