comparison scripts/learn-motion-patterns.py @ 835:f3ae72d86762

added option to subsample positions to learn motion patterns
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 05 Jul 2016 13:56:13 -0400
parents 181bcb6dad3a
children 5dc7a507353e
comparison
equal deleted inserted replaced
834:119c4efe6398 835:f3ae72d86762
15 parser.add_argument('-n', dest = 'nTrajectories', help = 'number of the object or feature trajectories to load', type = int, default = None) 15 parser.add_argument('-n', dest = 'nTrajectories', help = 'number of the object or feature trajectories to load', type = int, default = None)
16 parser.add_argument('-e', dest = 'epsilon', help = 'distance for the similarity of trajectory points', type = float, required = True) 16 parser.add_argument('-e', dest = 'epsilon', help = 'distance for the similarity of trajectory points', type = float, required = True)
17 parser.add_argument('--metric', dest = 'metric', help = 'metric for the similarity of trajectory points', default = 'cityblock') # default is manhattan distance 17 parser.add_argument('--metric', dest = 'metric', help = 'metric for the similarity of trajectory points', default = 'cityblock') # default is manhattan distance
18 parser.add_argument('-s', dest = 'minSimilarity', help = 'minimum similarity to put a trajectory in a cluster', type = float, required = True) 18 parser.add_argument('-s', dest = 'minSimilarity', help = 'minimum similarity to put a trajectory in a cluster', type = float, required = True)
19 parser.add_argument('-c', dest = 'minClusterSize', help = 'minimum cluster size', type = int, default = None) 19 parser.add_argument('-c', dest = 'minClusterSize', help = 'minimum cluster size', type = int, default = None)
20 parser.add_argument('--subsample', dest = 'positionSubsamplingRate', help = 'rate of position subsampling (1 every n positions)', type = int, default = None)
20 parser.add_argument('--display', dest = 'display', help = 'display trajectories', action = 'store_true') # default is manhattan distance 21 parser.add_argument('--display', dest = 'display', help = 'display trajectories', action = 'store_true') # default is manhattan distance
21 22
22 args = parser.parse_args() 23 args = parser.parse_args()
23 24
24 # TODO parameters (random init?) and what to learn from: objects, features, longest features from objects 25 # TODO parameters (random init?) and what to learn from: objects, features, longest features from objects
27 trajectoryType = args.trajectoryType 28 trajectoryType = args.trajectoryType
28 if args.trajectoryType == 'objectfeatures': 29 if args.trajectoryType == 'objectfeatures':
29 trajectoryType = 'object' 30 trajectoryType = 'object'
30 31
31 #features = storage.loadTrajectoriesFromSqlite(databaseFilename, args.trajectoryType) 32 #features = storage.loadTrajectoriesFromSqlite(databaseFilename, args.trajectoryType)
32 objects = storage.loadTrajectoriesFromSqlite(args.databaseFilename, trajectoryType, withFeatures = (args.trajectoryType == 'objectfeatures'), objectNumbers = args.nTrajectories) 33 objects = storage.loadTrajectoriesFromSqlite(args.databaseFilename, trajectoryType, withFeatures = (args.trajectoryType == 'objectfeatures'), objectNumbers = args.nTrajectories, timeStep = args.positionSubsamplingRate)
33 34
34 if args.trajectoryType == 'objectfeatures': 35 if args.trajectoryType == 'objectfeatures':
35 features = [] 36 features = []
36 for o in objects: 37 for o in objects:
37 tmp = utils.sortByLength(o.getFeatures(), reverse = True) 38 tmp = utils.sortByLength(o.getFeatures(), reverse = True)