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