Fixed the software code.
This commit is contained in:
parent
f288b6e81a
commit
b9cdecdf43
10 changed files with 23 additions and 49 deletions
|
@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue