def recFace(): # 加载模型 counter = 0 for dir_item in os.listdir(path_name): counter += 1 if dir_item.endswith('.face.model.h5'): model = Model() model.load_model(file_path=path_name + dir_item) # 框住人脸的矩形边框颜色 color = (0, 255, 0) # 捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) # 循环检测识别人脸 while True: try: ret, frame = cap.read() # 读取一帧视频 # 图像灰化,降低计算复杂度 frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 使用人脸识别分类器,读入分类器 cascade = cv2.CascadeClassifier( r"./openCv/opencv/data/haarcascades/" + "haarcascade_frontalface_default.xml") # 利用分类器识别出哪个区域为人脸 faceRects = cascade.detectMultiScale(frame_gray, scaleFactor=1.2, minNeighbors=3, minSize=(70, 70)) for (x, y, w, h) in faceRects: # 截取脸部图像提交给模型识别这是谁 image = frame[y - 10:y + h + 10, x - 10:x + w + 10] faceID = model.face_predict(image) print(faceID) cv2.rectangle(frame, (x, y), (x + h, y + w), color, 2) # 如果是“我” if faceID == 0: # 文字提示是谁 cv2.putText(frame, dir_item.split('.')[0], (x, y + 1), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (115, 233, 86), 2) else: pass cv2.imshow("Detect my face", frame) # 等待10毫秒看是否有按键输入 k = cv2.waitKey(10) # 如果输入q则退出循环 if k & 0xFF == ord('q'): break except BaseException: continue # 释放摄像头并销毁所有窗口 cap.release() cv2.destroyAllWindows() break elif counter == len(os.listdir(path_name)): print('No model has been found, please craft a model first!') break
class Face_recognition(): os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' def __init__(self): with open('contrast_table', 'r') as f: self.contrast_table = json.loads(f.read()) self.model = Model() # 加载训练数据 self.model.load_model(file_path='F:/bs_data/lfb.h5') # 框住人脸的矩形边框颜色 self.color = (0, 255, 0) # 捕获指定摄像头的实时视频流 self.cap = cv2.VideoCapture(0) # 调用人脸识别器 self.cascade_path = "D:\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_alt2.xml" def recongition(self): while True: ret, frame = self.cap.read() # 读取一帧视频 if ret is True: # 图像灰化,降低计算复杂度 frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) else: continue # 使用人脸识别分类器,读入分类器 cascade = cv2.CascadeClassifier(self.cascade_path) # 利用分类器识别出哪个区域为人脸 faceRects = cascade.detectMultiScale(frame_gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32)) if len(faceRects) > 0: for faceRect in faceRects: x, y, w, h = faceRect # 截取脸部图像提交给模型识别这是谁 image = frame[y - 10: y + h + 10, x - 10: x + w + 10] probability, name_number = self.model.face_predict(image) print("name_number:", name_number) name = self.contrast_table[str(name_number)] print('name:', name) cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), self.color, thickness=2) # 标出识别者 # cv2.putText(frame, name, (x + 30, y + 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 255), 2) if probability > 0.7: cv2.putText(frame, name, (x + 30, y + 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 255), 2) else: cv2.putText(frame, 'unknow', (x + 30, y + 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 255), 2) cv2.imshow("face_recognition", frame) # 等待10毫秒看是否有按键输入 k = cv2.waitKey(10) if k & 0xFF == ord('q'): break self.cap.release() cv2.destroyAllWindows()
def upload(): model = Model() model.load_model(file_path='./model/face.model') file = request.files.get('file') f = io.imread(file) probability, name_number = model.face_predict( transform.resize(f, (160, 160, 3))) keyword_list = ['id', 'name', 'time'] path = "log.csv" s = SaveCSV() with open('contrast_table', 'r') as f: contrast_table = json.loads(f.read()) res = {} res['id'] = create_id() res['name'] = contrast_table[str(name_number)] res['time'] = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') s.save(keyword_list, path, res) # res = "识别结果:" + contrast_table[str(name_number)] return json.dumps(res, ensure_ascii=False)
class Face_recognition(): def __init__(self): with open('contrast_table', 'r') as f: self.contrast_table = json.loads(f.read()) self.model = Model() self.model.load_model(file_path='G:\\face\\renlian\\faces.model') # 框住人脸的矩形边框颜色 self.color = (0, 255, 0) # 捕获指定摄像头的实时视频流 self.cap = cv2.VideoCapture(0) # 人脸识别分类器本地存储路径 self.cascade_path = "haarcascade_frontalface_default.xml" def recongition(self): while True: ret, frame = self.cap.read() # 读取一帧视频 if ret is True: # 图像灰化,降低计算复杂度 frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) else: continue # 使用人脸识别分类器,读入分类器 cascade = cv2.CascadeClassifier(self.cascade_path) # 利用分类器识别出哪个区域为人脸 faceRects = cascade.detectMultiScale(frame_gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32)) if len(faceRects) > 0: for faceRect in faceRects: x, y, w, h = faceRect # 截取脸部图像提交给模型识别这是谁 image = frame[y - 10: y + h + 10, x - 10: x + w + 10] probability, name_number = self.model.face_predict(image) print(name_number) name = self.contrast_table[str(name_number)] # print('name_number:', name_number) cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), self.color, thickness=2) # 文字提示是谁 cv2.putText(frame, name, (x + 30, y + 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 255), 2) # if probability > 0.7: # cv2.putText(frame, name, (x + 30, y + 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 255), 2) # else: # cv2.putText(frame, 'unknow', (x + 30, y + 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 255), 2) cv2.imshow("face_recognition", frame) # 等待10毫秒看是否有按键输入 k = cv2.waitKey(10) # 如果输入q则退出循环 if k & 0xFF == 27: break # 释放摄像头并销毁所有窗口 self.cap.release() cv2.destroyAllWindows()
def face_det(self): if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) #加载模型 model = Model() model.load_model(file_path='./model/aggregate.face.model.h5') # 框住人脸的矩形边框颜色 color = (0, 255, 0) # 人脸识别分类器本地存储路径 cascade_path = r"D:\user\Software\Anaconda\Lib\site-packages\cv2\data\haarcascade_frontalface_alt2.xml" # 循环检测识别人脸 while self.cap.isOpened(): ret, frame = self.cap.read() # 读取一帧视频 #facecolor = frame if ret is True: # 图像灰化,降低计算复杂度 frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) else: continue # 使用人脸识别分类器,读入分类器 cascade = cv2.CascadeClassifier(cascade_path) # 利用分类器识别出哪个区域为人脸 faceRects = cascade.detectMultiScale(frame_gray, scaleFactor=1.2, minNeighbors=2, minSize=(32, 32)) if len(faceRects) > 0: for faceRect in faceRects: x, y, w, h = faceRect # 截取脸部图像提交给模型识别这是谁 image = frame[y:y + h, x:x + w] #(改) faceID = model.face_predict(image) #print(model.) cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, thickness=2) #face_id判断(改) for i in range(len(os.listdir('./data/'))): if i == faceID: #文字提示是谁 cv2.putText( frame, os.listdir('./data/')[faceID], (x + 30, y + 30), # 坐标 cv2.FONT_HERSHEY_SIMPLEX, # 字体 1, # 字号 (255, 0, 255), # 颜色 2) # 字的线宽 else: # 文字提示是谁 #cv2.putText(frame, '陌生人', # (x + 30, y + 30), # 坐标 # cv2.FONT_HERSHEY_SIMPLEX, # 字体 # 1, # 字号 # (255, 0, 255), # 颜色 # 2) # 字的线宽 frame = self.cv2ImgAddText(frame, "陌生人", x + 30, y + 30, (255, 0, 255), 25) #frame = Image.blend(frame, img, 0.3) #cv2.imshow('show', img) show = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) #视频色彩转换回RGB,这样才是现实的颜色 #show = cv2.resize(self.image,(840,680)) showImage = QtGui.QImage( show.data, show.shape[1], show.shape[0], QtGui.QImage.Format_RGB888) #把读取到的视频数据变成QImage形式 #hanziimg = QtGui.QImage(img.data,img.shape[1],img.shape[0],QtGui.QImage.Format_RGB888) self.cameraLabel.setPixmap( QtGui.QPixmap.fromImage(showImage)) #往显示视频的Label里 显示QImage #self.cameraLabel.setPixmap(QtGui.QPixmap.fromImage(hanziimg)) #等待10毫秒看是否有按键输入,如果注释掉就无法显示视频 cv2.waitKey(10) # 释放摄像头并销毁所有窗口 self.cap.release() cv2.destroyAllWindows()
import sys from face_train import Model from load_dataset import load_dataset, resize_image, IMAGE_SIZE, json_labels_read_from_file from PIL import Image import tensorflow as tf if __name__ == '__main__': # 加载模型 model = Model() model.load_model(file_path='./model/face.h5') classes = json_labels_read_from_file('dataset/labels.json') img_path = './data/temp/1.jpg' img = Image.open(img_path) img = img.resize((IMAGE_SIZE, IMAGE_SIZE)) # resize图片大小 image = img.tobytes() # 将图片转化为原生bytes image = tf.io.decode_raw(image, tf.uint8) print(image.shape) image = tf.reshape(image, [1, IMAGE_SIZE, IMAGE_SIZE, 3]) print(image.shape) #image = tf.cast(image, tf.float32) * (1. / 255) - 0.5 # 归一化 faceID = model.face_predict(image) print('faceID: %d' % faceID) print(classes.get(str(faceID)))
#-*- coding: utf-8 -*- import cv2 from face_train import Model if __name__ == '__main__': #加载模型 model = Model() model.load_model(file_path='face_model_re.h5') color = (0, 255, 0) cap = cv2.VideoCapture(0) cascade_path = "E:\cs\opencv\sources\data\haarcascades\haarcascade_frontalface_alt2.xml" #循环检测识别人脸 while True: _, frame = cap.read() #读取一帧视频 frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cascade = cv2.CascadeClassifier(cascade_path) faceRects = cascade.detectMultiScale(frame_gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32)) if len(faceRects) > 0: for faceRect in faceRects: x, y, w, h = faceRect image = frame[y - 10:y + h + 10, x - 10:x + w + 10] faceID = model.face_predict(image) textf = ""
# coding=gbk ################下面的计划还是不用自己写的cnn,用vgg16卷积模型来进行图片的训练###################### ################人脸的图片对光的影响很大,粗腰对图片进行预处理##################################### import cv2 import sys from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) # 加载模型 model = Model() model.load_model(file_path='./lbo.face.model.h5') # 框住人脸的矩形边框颜色 color = (0, 255, 0) # 捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) # 人脸识别分类器本地存储路径 cascade_path = "F:\\Anaconda\\Library\\etc\\haarcascades\\haarcascade_frontalface_default.xml" # 循环检测识别人脸 while True: ret, frame = cap.read() # 读取一帧视频 if ret is True:
#-*- coding: utf-8 -*- import cv2 import sys import gc from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) #加载模型 model = Model() model.load_model(file_path = 'D:\\model\\sjq.face.model.h5') #框住人脸的矩形边框颜色 color = (0, 255, 0) #捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) #人脸识别分类器本地存储路径 cascade_path = "D:\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_alt2.xml" #循环检测识别人脸 while True: ret, frame = cap.read() #读取一帧视频 if ret is True:
#-*- coding: utf-8 -*- import cv2 import sys import gc from face_train import Model if __name__ == '__main__': #加载模型 model = Model() model.load_model(file_path='model/me.face.model.h5') #框住人脸的矩形边框颜色 color = (0, 255, 0) #捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) #人脸识别分类器本地存储路径 cascade_path = "haarcascade_frontalface_alt2.xml" #循环检测识别人脸 while True: _, frame = cap.read() #读取一帧视频 #图像灰化,降低计算复杂度 frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #使用人脸识别分类器,读入分类器 cascade = cv2.CascadeClassifier(cascade_path)
import cv2 import sys import os from face_train import Model from tkinter import * from PIL import Image, ImageTk model = Model() model.load_model(file_path='./model/zhenghuireid.model.h5') cascade_path = "/Users/zhenghuiup/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/share/OpenCV/haarcascades/haarcascade_frontalface_alt2.xml" cascade = cv2.CascadeClassifier(cascade_path) faceRects = cascade.detectMultiScale(frame_gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32)) image = cv2.imread('./GUI/my_image.jpg') faceID = model.face_predict(image) class Window(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.master = master self.init_window() def init_window(self):
# -*- coding: utf-8 -*- import cv2 import sys import gc from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) # 加载模型 model = Model() model.load_model(file_path='D:\\data\\liuhaozhe.face.model.h5') # 框住人脸的矩形边框颜色 color = (0, 255, 0) # 捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) # 人脸识别分类器本地存储路径 cascade_path = "D:\\Firefoxdownloads\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_alt2.xml" # 循环检测识别人脸 while True: ret, frame = cap.read() # 读取一帧视频 if ret is True:
import cv2 import sys import os from face_train import Model if __name__ == '__main__': project_path = os.path.abspath(os.path.join(os.getcwd(), "../../..")) if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) # 加载模型 model = Model() model.load_model(file_path=project_path+'model/sakura.face.model.h5') # 框住人脸的矩形边框颜色 color = (0, 255, 0) # 捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) # 人脸识别分类器本地存储路径 cascade_path = cv2.data.haarcascades + 'haarcascade_frontalface_alt2.xml' # 循环检测识别人脸 while True: ret, frame = cap.read() # 读取一帧视频 if ret is True:
#-*- coding: utf-8 -*- import cv2 import sys import gc from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) #載入模型 model = Model() model.load_model(file_path='./model/liziqiang.face.model.h5') #框住人臉的矩形邊框顏色 color = (0, 255, 0) #捕獲指定攝像頭的實時視訊流 cap = cv2.VideoCapture(0) #人臉識別分類器本地儲存路徑 cascade_path = "H:\\opencv\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_alt2.xml" #迴圈檢測識別人臉 while True: ret, frame = cap.read() #讀取一幀視訊 if ret is True:
import cv2 import sys #import importlib from face_train import Model # module_path module_path = './model/my.face.model.h5' if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) #加载模型 model = Model() model.load_model(file_path=module_path) #框住人脸的矩形边框颜色 color = (0, 230, 0) #捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) #("http://*****:*****@192.168.43.1:8081/") #人脸识别分类器本地存储路径 cascade_path = "E:\\Anaconda3\\pkgs\\libopencv-3.4.2-h20b85fd_0\\Library\\etc\\haarcascades\\haarcascade_frontalface_alt.xml" #循环检测识别人脸 while True: ret, frame = cap.read() #读取一帧视频
import cv2 import sys import gc from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) # 加载模型 model = Model() model.load_model(file_path='D:/model/ZCM.face.model.h5') # 框住人脸的边框颜色 color = (0, 255, 0) # 捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) # 人脸识别分类器本地存储路径 cascade_path = 'C:\\projects\\opencv-python\\opencv\modules\\objdetect\\src\\cascadedetect\\haarcascade_frontalface_default.xml' # 循环识别人脸 while True: ret, frame = cap.read() # 读取一帧视频 if ret is True: # 图像灰度化,降低计算复杂度 frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) else:
#-*- coding: utf-8 -*- import cv2 import sys import gc from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) #加载模型 model = Model() model.load_model(file_path='./model/bochendong.face.model.h5') #框住人脸的矩形边框颜色 color = (0, 255, 0) #捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) #人脸识别分类器本地存储路径 cascade_path = "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/cv2/data/haarcascade_frontalface_default.xml" #循环检测识别人脸 while True: ret, frame = cap.read() #读取一帧视频 if ret is True:
labels = read_path(path_name) labels = [name.split('\\')[-1] for name in labels] import cv2 import sys import gc from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) #加载模型 model = Model() model.load_model(file_path='./model/WHY.face.model.h5') #框住人脸的矩形边框颜色 color = (0, 255, 0) #捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) #人脸识别分类器本地存储路径 cascade_path = "./haarcascade_frontalface_alt2.xml" #循环检测识别人脸 while True: ret, frame = cap.read() #读取一帧视频 if ret is True:
import cv2 import sys from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) model = Model() model.load_model() color = (0, 255, 0) cap = cv2.VideoCapture(0) cascade_path = "D:\\open_cv\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_alt2.xml" while cap.isOpened(): ret, frame = cap.read() if ret: frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) else: continue cascade = cv2.CascadeClassifier(cascade_path) faceRects = cascade.detectMultiScale(frame_gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32)) if len(faceRects) > 0: for faceRect in faceRects:
# -*- coding: utf-8 -*- import cv2 import sys import gc from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) # 加载模型 model = Model() model.load_model(file_path='./model/manwanting.face.model.h5') # 框住人脸的矩形边框颜色 color = (0, 255, 0) # 捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) # 人脸识别分类器本地存储路径 cascade_path = "D:\\openvc\\haarcascade_frontalface_default.xml" # 循环检测识别人脸 while True: ret, frame = cap.read() # 读取一帧视频 if ret is True:
# -*- coding: utf-8 -*- import cv2 import sys import gc from face_train import Model if __name__ == '__main__': if len(sys.argv) != 1: print("Usage:%s camera_id\r\n" % (sys.argv[0])) sys.exit(0) # 加载模型 model = Model() model.load_model(file_path='./model/qizhiguo.face.model.h5') # 框住人脸的矩形边框颜色 color = (0, 255, 0) # 捕获指定摄像头的实时视频流 cap = cv2.VideoCapture(0) # 人脸识别分类器本地存储路径 cascade_path = "./haarcascade_frontalface_alt2.xml" # 循环检测识别人脸 while True: ret, frame = cap.read() # 读取一帧视频 if ret is True: