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