Mercurial > hg > nsaunier > traffic-intelligence
comparison scripts/process.py @ 1049:c9c03c97ed9f
bug fix to store numpy integers in SQLite
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Fri, 06 Jul 2018 15:58:45 -0400 |
| parents | 27a822922cb0 |
| children | 9d4a06f49cb8 |
comparison
equal
deleted
inserted
replaced
| 1048:27a822922cb0 | 1049:c9c03c97ed9f |
|---|---|
| 166 for obj in objects[vs.idx]: | 166 for obj in objects[vs.idx]: |
| 167 object2VideoSequences[obj] = vs | 167 object2VideoSequences[obj] = vs |
| 168 lcss = utils.LCSS(metric = args.metric, epsilon = args.epsilon) | 168 lcss = utils.LCSS(metric = args.metric, epsilon = args.epsilon) |
| 169 similarityFunc = lambda x,y : lcss.computeNormalized(x, y) | 169 similarityFunc = lambda x,y : lcss.computeNormalized(x, y) |
| 170 trainingObjects = [o for tmpobjects in objects.values() for o in tmpobjects] | 170 trainingObjects = [o for tmpobjects in objects.values() for o in tmpobjects] |
| 171 if args.nMPObjects is not None: | 171 if args.nMPObjects is not None and args.nMPObjects < len(trainingObjects): |
| 172 m = int(np.floor(float(len(trainingObjects))/args.nMPObjects)) | 172 m = int(np.floor(float(len(trainingObjects))/args.nMPObjects)) |
| 173 trainingObjects = trainingObjects[::m] | 173 trainingObjects = trainingObjects[::m] |
| 174 similarities = -np.ones((len(trainingObjects), len(trainingObjects))) | 174 similarities = -np.ones((len(trainingObjects), len(trainingObjects))) |
| 175 prototypeIndices, labels = processing.learnAssignMotionPatterns(True, True, trainingObjects, similarities, args.minSimilarity, similarityFunc, args.minClusterSize, args.optimizeCentroid, args.randomInitialization, True, []) | 175 prototypeIndices, labels = processing.learnAssignMotionPatterns(True, True, trainingObjects, similarities, args.minSimilarity, similarityFunc, args.minClusterSize, args.optimizeCentroid, args.randomInitialization, True, []) |
| 176 if args.outputPrototypeDatabaseFilename is None: | 176 if args.outputPrototypeDatabaseFilename is None: |
| 177 outputPrototypeDatabaseFilename = args.databaseFilename | 177 outputPrototypeDatabaseFilename = args.databaseFilename |
| 178 else: | 178 else: |
| 179 outputPrototypeDatabaseFilename = args.outputPrototypeDatabaseFilename | 179 outputPrototypeDatabaseFilename = args.outputPrototypeDatabaseFilename |
| 180 # TODO maintain mapping from object prototype to db filename + compute nmatchings before | 180 # TODO maintain mapping from object prototype to db filename + compute nmatchings before |
| 181 clusterSizes = ml.computeClusterSizes(labels, prototypeIndices, -1) | 181 clusterSizes = ml.computeClusterSizes(labels, prototypeIndices, -1) |
| 182 #print([clusterSizes[i] for i in prototypeIndices]) | |
| 183 storage.savePrototypesToSqlite(str(parentPath/site.getPath()/outputPrototypeDatabaseFilename), [moving.Prototype(object2VideoSequences[trainingObjects[i]].getDatabaseFilename(False), trainingObjects[i].getNum(), prototypeType, clusterSizes[i]) for i in prototypeIndices]) | 182 storage.savePrototypesToSqlite(str(parentPath/site.getPath()/outputPrototypeDatabaseFilename), [moving.Prototype(object2VideoSequences[trainingObjects[i]].getDatabaseFilename(False), trainingObjects[i].getNum(), prototypeType, clusterSizes[i]) for i in prototypeIndices]) |
| 184 | 183 |
| 185 | 184 |
| 186 elif args.process == 'interaction': | 185 elif args.process == 'interaction': |
| 187 # safety analysis TODO make function in safety analysis script | 186 # safety analysis TODO make function in safety analysis script |
