在模型訓練完成後,最終需要可以即時在偵測到人臉後辨識出來,可先設定當攝影機開啟後的畫面長寬與一些影像等原始設定。
frame_in_w = 640
frame_in_h = 480
videoIn = cv2.VideoCapture(0)
videoIn.set(cv2.CAP_PROP_FRAME_WIDTH, frame_in_w)
videoIn.set(cv2.CAP_PROP_FRAME_HEIGHT, frame_in_h)
print("capture device is open: " + str(videoIn.isOpened()))
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
out = cv2.VideoWriter('output.mp4', fourcc, 20.0, (640, 360))
在攝影機開啟後,有畫面後一偵一偵的影像,如果有畫面裡有偵測到人臉後,首先要利用人臉徵測的哈爾特徵,擷取的人臉要與訓練資料的影像大小一致,之後在將擷取到的人臉放入之前訓練好的模型,在利用模型預測即時截好的影像,用相似程度來判斷測試者是否可以進入系統。
while videoIn.isOpened():
# read video from camera
ret, outframe = videoIn.read()
if (ret):
# keyboard input value
key = cv2.waitKey(1) & 0xFF
out.write(outframe)
最後預測完了也要將影像畫面關閉,釋放記憶體。
print('Video Capture end, release camera.')
videoIn.release()
out.release()
cv2.destroyAllWindows()