Graduate

Update cropping logic

...@@ -108,6 +108,7 @@ def verify(): ...@@ -108,6 +108,7 @@ def verify():
108 embedding = sess.run(embeddings_placeholder, feed_dict=feed_dict) 108 embedding = sess.run(embeddings_placeholder, feed_dict=feed_dict)
109 # compare received embedding to database embedding 109 # compare received embedding to database embedding
110 verified_id = None 110 verified_id = None
111 + dist_min = 99
111 sql = "SELECT student_id, embedding FROM student_embedding;" 112 sql = "SELECT student_id, embedding FROM student_embedding;"
112 cursor.execute(sql) 113 cursor.execute(sql)
113 result = cursor.fetchall() 114 result = cursor.fetchall()
...@@ -116,16 +117,16 @@ def verify(): ...@@ -116,16 +117,16 @@ def verify():
116 db_embedding = db_embedding.reshape((1,512)) 117 db_embedding = db_embedding.reshape((1,512))
117 distance = get_distance(embedding, db_embedding) 118 distance = get_distance(embedding, db_embedding)
118 print(distance) 119 print(distance)
119 - if (distance < threshold): 120 + if (distance < dist_min):
120 verified_id = row_data['student_id'] 121 verified_id = row_data['student_id']
121 - new_embedding = db_embedding * 0.8 + embedding * 0.2 122 + dist_min = distance
122 - new_embedding = new_embedding.tobytes() 123 + # new_embedding = db_embedding * 0.98 + embedding * 0.02
123 - sql = "UPDATE student_embedding SET embedding=_binary %s WHERE student_id = %s" 124 + # new_embedding = new_embedding.tobytes()
124 - cursor.execute(sql, (new_embedding, verified_id)) 125 + # sql = "UPDATE student_embedding SET embedding=_binary %s WHERE student_id = %s"
125 - attendance_db.commit() 126 + # cursor.execute(sql, (new_embedding, verified_id))
126 - break 127 + # attendance_db.commit()
127 - 128 +
128 - if verified_id != None: 129 + if verified_id != None and dist_min < threshold:
129 sql = "SELECT student_name FROM student WHERE student_id = %s" 130 sql = "SELECT student_name FROM student WHERE student_id = %s"
130 cursor.execute(sql, (verified_id)) 131 cursor.execute(sql, (verified_id))
131 row_data = cursor.fetchone() 132 row_data = cursor.fetchone()
......
1 [verification_server] 1 [verification_server]
2 model=models/20200816-080621 2 model=models/20200816-080621
3 -threshold=0.765 3 +threshold=0.69
4 image_size=160 4 image_size=160
......
...@@ -61,7 +61,7 @@ function detect_face() ...@@ -61,7 +61,7 @@ function detect_face()
61 let point1 = new cv.Point(face.x, face.y); 61 let point1 = new cv.Point(face.x, face.y);
62 let point2 = new cv.Point(face.x + face.width, face.y + face.height); 62 let point2 = new cv.Point(face.x + face.width, face.y + face.height);
63 cv.rectangle(dst, point1, point2, [255, 0, 0, 255], 8); 63 cv.rectangle(dst, point1, point2, [255, 0, 0, 255], 8);
64 - let rect = new cv.Rect(face.x, face.y, face.width, face.height); 64 + let rect = new cv.Rect(Math.max(face.x-face.width/4, 0), Math.max(face.y-face.height/2, 0), Math.min(face.width+face.width/2, src.cols), Math.min(face.height+face.height/2, src.rows));
65 let cropped = src.roi(rect); 65 let cropped = src.roi(rect);
66 cv.imshow(tempCanvas,cropped); 66 cv.imshow(tempCanvas,cropped);
67 } 67 }
......