特征提取from imutils.video import FileVideoStream from imutils.video import VideoStream from imutils import face_utils import numpy as np import argparse import imutils import time import dlib import cv2 import datetime import csv import os import math
start_time = start_time.split() for i in range(0,8): hours = int(start_time[3]) mins = int(start_time[4]) secs = int(start_time[5]) milisecs = int(start_time[6]) microsecs = int(start_time[7]) #converting it to microsecs t1, m1, s1, ms1, mis1 = hours, mins, secs, milisecs, microsecs start_time_microsecs = mis1 + 1000*(ms1 + 1000*(s1 + 60*(m1 + 60*t1))) end_time = end_time.split() for x in range(0,8,1): hours = int(end_time[3]) mins = int(end_time[4]) secs = int(end_time[5]) milisecs = int(end_time[6]) microsecs = int(end_time[7]) t2, m2, s2, ms2, mis2 = hours, mins, secs, milisecs, microsecs end_time_microsecs = mis2 + 1000*(ms2 + 1000*(s2 + 60*(m2 + 60*t2))) #finding the duration of blink time_differ = end_time_microsecs - start_time_microsecs #print 'time_difference in microsecs = ', time_differ return time_differ
focal_length = size[1] center = (size[1]/2, size[0]/2) camera_matrix = np.array([[focal_length, 0, center[0]], [ 0, focal_length, center[1]], [0, 0, 1]], dtype='double') dist_coeffs = np.zeros((4, 1)) # Assuming no lens distortion (_, rotation_vector, translation_vector) = cv2.solvePnP(model_points, image_points, camera_matrix, dist_coeffs, flags = cv2.SOLVEPNP_ITERATIVE) # flags=cv2.CV_ITERATIVE) (nose_end_point2D, _) = cv2.projectPoints(np.array( [(0.0, 0.0, 1000.0)]), rotation_vector, translation_vector, camera_matrix, dist_coeffs) #get rotation matrix from the rotation vector rotation_matrix, _ = cv2.Rodrigues(rotation_vector) #calculate head tilt angle in degrees head_tilt_degree = abs( [-180] - np.rad2deg([rotationMatrixToEulerAngles(rotation_matrix)[0]])) #calculate starting and ending points for the two lines for illustration starting_point = (int(image_points[0][0]), int(image_points[0][1])) ending_point = (int(nose_end_point2D[0][0][0]), int(nose_end_point2D[0][0][1])) ending_point_alternate = (ending_point[0], frame_height // 2) return head_tilt_degree, starting_point, ending_point, ending_point_alternate 是时候制作模型了!
model=Sequential() model.add(Dense(64, input_dim=6, activation='relu')) model.add(Dropout(0.001)) model.add(Dense(64, input_dim=6, activation='relu')) model.add(Dropout(0.001)) model.add(Dense(32, input_dim=6, activation='relu')) model.add(Dense(16, input_dim=6, activation='relu')) model.add(Dense(4, activation='softmax', use_bias=False)) #compile the model #adam = keras.optimizers.Adam(lr=0.01) adam = keras.optimizers.Adam(lr=0.001) model.compile(loss='categorical_crossentropy', optimizer=adam, metrics=['accuracy']) #fit the model checkpoint = keras.callbacks.ModelCheckpoint(filepath='trained_models/DrowDet_model(output4).hdf5', period=1) tbCallBack = keras.callbacks.TensorBoard(log_dir='./scalar', histogram_freq=0, write_graph=True, write_images=True) history=model.fit(Xtrain, Ytrain, epochs=50, batch_size=256, callbacks=[checkpoint, tbCallBack], validation_data=(Xval,Yval)) |
|
来自: mynotebook > 《待分类》