Mercurial Hosting > traffic-intelligence
comparison scripts/learn-motion-patterns.py @ 1046:f2ba9858e6c6
motion pattern learning seems to work
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Thu, 05 Jul 2018 23:12:11 -0400 |
parents | 75a6ad604cc5 |
children |
comparison
equal
deleted
inserted
replaced
1045:25db2383e7ae | 1046:f2ba9858e6c6 |
---|---|
12 parser.add_argument('-d', dest = 'databaseFilename', help = 'name of the Sqlite database file', required = True) | 12 parser.add_argument('-d', dest = 'databaseFilename', help = 'name of the Sqlite database file', required = True) |
13 parser.add_argument('-o', dest = 'outputPrototypeDatabaseFilename', help = 'name of the Sqlite database file to save prototypes') | 13 parser.add_argument('-o', dest = 'outputPrototypeDatabaseFilename', help = 'name of the Sqlite database file to save prototypes') |
14 parser.add_argument('-i', dest = 'inputPrototypeDatabaseFilename', help = 'name of the Sqlite database file for prototypes to start the algorithm with') | 14 parser.add_argument('-i', dest = 'inputPrototypeDatabaseFilename', help = 'name of the Sqlite database file for prototypes to start the algorithm with') |
15 parser.add_argument('-t', dest = 'trajectoryType', help = 'type of trajectories to process', choices = ['feature', 'object'], default = 'feature') | 15 parser.add_argument('-t', dest = 'trajectoryType', help = 'type of trajectories to process', choices = ['feature', 'object'], default = 'feature') |
16 parser.add_argument('--nfeatures-per-object', dest = 'nLongestFeaturesPerObject', help = 'maximum number of features per object to load', type = int) | 16 parser.add_argument('--nfeatures-per-object', dest = 'nLongestFeaturesPerObject', help = 'maximum number of features per object to load', type = int) |
17 parser.add_argument('-n', dest = 'nTrajectories', help = 'number of the object or feature trajectories to load', type = int, default = None) | 17 parser.add_argument('-n', dest = 'nObjects', help = 'number of the object or feature trajectories to load', type = int, default = None) |
18 parser.add_argument('-e', dest = 'epsilon', help = 'distance for the similarity of trajectory points', type = float, required = True) | 18 parser.add_argument('-e', dest = 'epsilon', help = 'distance for the similarity of trajectory points', type = float, required = True) |
19 parser.add_argument('--metric', dest = 'metric', help = 'metric for the similarity of trajectory points', default = 'cityblock') # default is manhattan distance | 19 parser.add_argument('--metric', dest = 'metric', help = 'metric for the similarity of trajectory points', default = 'cityblock') # default is manhattan distance |
20 parser.add_argument('-s', dest = 'minSimilarity', help = 'minimum similarity to put a trajectory in a cluster', type = float, required = True) | 20 parser.add_argument('-s', dest = 'minSimilarity', help = 'minimum similarity to put a trajectory in a cluster', type = float, required = True) |
21 #parser.add_argument('-c', dest = 'minClusterSize', help = 'minimum cluster size', type = int, default = 0) | 21 #parser.add_argument('-c', dest = 'minClusterSize', help = 'minimum cluster size', type = int, default = 0) |
22 parser.add_argument('--learn', dest = 'learn', help = 'learn', action = 'store_true') | 22 parser.add_argument('--learn', dest = 'learn', help = 'learn', action = 'store_true') |
42 | 42 |
43 if args.learn and args.assign: | 43 if args.learn and args.assign: |
44 print('Cannot learn and assign simultaneously') | 44 print('Cannot learn and assign simultaneously') |
45 sys.exit(0) | 45 sys.exit(0) |
46 | 46 |
47 objects = storage.loadTrajectoriesFromSqlite(args.databaseFilename, args.trajectoryType, args.nTrajectories, timeStep = args.positionSubsamplingRate, nLongestFeaturesPerObject = args.nLongestFeaturesPerObject) | 47 objects = storage.loadTrajectoriesFromSqlite(args.databaseFilename, args.trajectoryType, args.nObjects, timeStep = args.positionSubsamplingRate, nLongestFeaturesPerObject = args.nLongestFeaturesPerObject) |
48 if args.trajectoryType == 'object' and args.nLongestFeaturesPerObject is not None: | 48 if args.trajectoryType == 'object' and args.nLongestFeaturesPerObject is not None: |
49 objectsWithFeatures = objects | 49 objectsWithFeatures = objects |
50 objects = [f for o in objectsWithFeatures for f in o.getFeatures()] | 50 objects = [f for o in objectsWithFeatures for f in o.getFeatures()] |
51 prototypeType = 'feature' | 51 prototypeType = 'feature' |
52 else: | 52 else: |