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