Fixed the software code.

This commit is contained in:
Batuhan Berk Başoğlu 2021-02-26 09:00:05 -05:00
parent f288b6e81a
commit b9cdecdf43
10 changed files with 23 additions and 49 deletions

View file

@ -17,9 +17,7 @@ def inference():
FACE_RECOGNITION_MODEL_PATH = pwd + '/Facial_models/dlib_face_recognition_resnet_model_v1.dat' FACE_RECOGNITION_MODEL_PATH = pwd + '/Facial_models/dlib_face_recognition_resnet_model_v1.dat'
SKIP_FRAMES = 1 SKIP_FRAMES = 1
MAXIMUM_TIME = 10
THRESHOLD = 0.4 THRESHOLD = 0.4
DEMO_SHOW = False
faceDetector = dlib.get_frontal_face_detector() faceDetector = dlib.get_frontal_face_detector()
shapePredictor = dlib.shape_predictor(PREDICTOR_PATH) shapePredictor = dlib.shape_predictor(PREDICTOR_PATH)
@ -28,7 +26,7 @@ def inference():
index = np.load(pwd + '/Facial_models/index.pkl', allow_pickle=True) index = np.load(pwd + '/Facial_models/index.pkl', allow_pickle=True)
faceDescriptorsEnrolled = np.load(pwd + '/Facial_models/descriptors.npy') faceDescriptorsEnrolled = np.load(pwd + '/Facial_models/descriptors.npy')
cam = cv2.VideoCapture(1) cam = cv2.VideoCapture(0)
count = 0 count = 0
x1 = x2 = y1 = y2 = 0 x1 = x2 = y1 = y2 = 0
@ -38,8 +36,6 @@ def inference():
label = 'unknown' label = 'unknown'
start = time.time() start = time.time()
label_counter = {}
while DBHelper.get_power() == "on": while DBHelper.get_power() == "on":
success, im = cam.read() success, im = cam.read()
@ -78,60 +74,38 @@ def inference():
if minDistance <= THRESHOLD: if minDistance <= THRESHOLD:
label = DBHelper.get_firstname(index[argmin]) + "_" + DBHelper.get_lastname(index[argmin]) label = DBHelper.get_firstname(index[argmin]) + "_" + DBHelper.get_lastname(index[argmin])
#cond = True cond = True
else: else:
label = 'unknown' label = 'unknown'
#cond = False cond = False
if label in label_counter.keys():
label_counter[label] += 1
else:
label_counter[label] = 1
# print("time taken = {:.3f} seconds".format(time.time() - t)) # print("time taken = {:.3f} seconds".format(time.time() - t))
if DEMO_SHOW:
cv2.rectangle(im, (x1, y1), (x2, y2), (0, 255, 0), 2)
font_face = cv2.FONT_HERSHEY_SIMPLEX
font_scale = 0.8
text_color = (0, 255, 0)
printLabel = '{} {:0.4f}'.format(label, minDistance)
cv2.putText(im, printLabel, (int(x1), int(y1)), font_face, font_scale, text_color, thickness=2)
if DEMO_SHOW: cv2.rectangle(im, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.imshow('img', im) font_face = cv2.FONT_HERSHEY_SIMPLEX
font_scale = 0.8
text_color = (0, 255, 0)
printLabel = '{} {:0.4f}'.format(label, minDistance)
cv2.putText(im, printLabel, (int(x1), int(y1)), font_face, font_scale, text_color, thickness=2)
cv2.imshow('img', im)
k = cv2.waitKey(1) & 0xff k = cv2.waitKey(1) & 0xff
if k == 27: if k == 27:
break break
count += 1 count += 1
if cond:
if(count == MAXIMUM_TIME): DBHelper.set_motor("on")
break DBHelper.set_alarm("off")
start = time.time()
print("The statics of 10 frames: ", label_counter) elif not cond:
DBHelper.set_motor("off")
output_label =sorted(label_counter,key=lambda x:label_counter[x])[-1] DBHelper.set_alarm("on")
end = time.time()
print("Final results: ", output_label) if end - start >= 30:
thief = True
if output_label == 'unknown': DBHelper.set_power("off")
cond = False
else:
cond = True
if cond:
DBHelper.set_motor("on")
DBHelper.set_alarm("off")
start = time.time()
elif not cond:
DBHelper.set_motor("off")
DBHelper.set_alarm("on")
end = time.time()
if end - start >= 30:
thief = True
DBHelper.set_power("off")
DBHelper.set_alarm("off") DBHelper.set_alarm("off")
DBHelper.set_motor("off") DBHelper.set_motor("off")
@ -141,4 +115,4 @@ def inference():
if __name__ == "__main__": if __name__ == "__main__":
inference() inference()

Binary file not shown.

Binary file not shown.