MCPcopy Create free account
hub / github.com/OpenPTrack/open_ptrack_v2 / EvalReidNode

Class EvalReidNode

recognition/scripts/eval/eval_reid.py:17–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15
16
17class EvalReidNode:
18 def __init__(self):
19 self.appeared_time = {}
20 self.recognized_ids = {}
21 self.face_name = {}
22 self.read_data()
23
24 self.recognition_time = []
25 self.success = 0
26 self.failure = 0
27
28 subs = [
29 message_filters.Subscriber('/face_recognition/people_tracks', TrackArray),
30 message_filters.Subscriber('/tracker/tracks_smoothed', TrackArray)
31 ]
32 self.sync = message_filters.TimeSynchronizer(subs, 100)
33 self.sync.registerCallback(self.callback)
34
35 def read_data(self):
36 names = {}
37 n = 0
38 for line in csv.reader(open('data2', 'r'), delimiter=' '):
39 for id in line[1:]:
40 names[int(id)] = line[0]
41 n += 1
42 n -= 1
43 print names, n
44 self.names = names
45
46 self.face_name = {0: 'Kenji', 1: 'Francisca', 2: 'Enrico', 3: 'Andrea', 4: 'Yongheng', 5: 'Stefano'}
47
48 def callback(self, face_msg, track_msg):
49 for face, track in zip(face_msg.tracks, track_msg.tracks):
50 track_id = track.id
51 face_id = face.id
52
53 if track_id not in self.names:
54 continue
55
56 if track_id not in self.appeared_time:
57 self.appeared_time[track_id] = rospy.Time.now()
58
59 if face_id < 10000 and track_id not in self.recognized_ids:
60 self.recognized_ids[track_id] = (rospy.Time.now() - self.appeared_time[track_id]).to_sec()
61 self.recognition_time.append(self.recognized_ids[track_id])
62
63 print track_id, face_id, self.names[track_id]
64
65 if face_id in self.face_name:
66 if self.face_name[face_id] != self.names[track_id]:
67 self.failure += 1
68 else:
69 self.success += 1
70 self.face_name[face_id] = self.names[track_id]
71 print self.failure, self.success, sum(self.recognition_time) / len(self.recognition_time)
72 print self.face_name
73
74

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected