-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmongo.py
55 lines (46 loc) · 1.47 KB
/
mongo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import pymongo
import matplotlib.pyplot as plt
def read_classes(classes_path):
with open(classes_path) as f:
class_names = f.readlines()
class_names = [c.strip() for c in class_names]
return class_names
def conDB():
conn = pymongo.MongoClient("localhost",27017)
return conn.get_database("Detection")
def createDatabase():
db = conDB()
Class =read_classes("./model_data/coco_classes.txt")
try:
db.Classes.drop()
except: 1+1
for i in Class:
db.Classes.insert({"ObjectName":i,"no":0})
def increment(conn,key): #conn.get_database("Detection")
db = conn
return db.Classes.update_one({'ObjectName': key}, {'$inc': {'no': 1}})
def result(conn,lim=10):
all = list(conn.Classes.find({}, {'_id': False}).sort([('no',pymongo.DESCENDING)]).limit(lim))
print(list(all))
indexes = list()
val = list()
outText = ""
for i in range(len(all)):
if all[i].get("ObjectName")==None:continue
try:
indexes.append(all[i].get("ObjectName"))
val.append(all[i].get("no"))
outText = outText + "{0} : {1}\n".format(all[i].get("ObjectName"), all[i].get("no"))
except:
continue
plt.title(s="Result")
plt.xlabel("Classes")
plt.ylabel("Counts")
print (outText)
plt.bar(indexes,val, color='g')
plt.text(x=.99,y=.5,s=outText, wrap=True)
return plt
if __name__ == '__main__':
# createDatabase()
createDatabase()
collect =conDB()