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()
示例#3
0
    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 __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"
示例#5
0
    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='./model/face.model')
        # 框住人脸的矩形边框颜色
        self.color = (0, 255, 0)

        # 捕获指定摄像头的实时视频流
        self.cap = cv2.VideoCapture(0)

        # 人脸识别分类器本地存储路径
        self.cascade_path = "venv/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml"
示例#6
0
    def run(self):
        user_num = len(os.listdir('./data/'))

        dataset = Dataset('./data/')
        #self.pushButton_2.setText('训练中')
        dataset.load()

        model1 = Model()
        model1.build_model(dataset, nb_classes=user_num)

        # 先前添加的测试build_model()函数的代码
        model1.build_model(dataset, nb_classes=user_num)
        # 测试训练函数的代码
        model1.train(dataset)

        model1.save_model(file_path='./model/aggregate.face.model.h5')
    def train_click(self):
        #if __name__ == '__main__':

        user_num = len(os.listdir('./data/'))

        dataset = Dataset('./data/')
        self.btn2.setText('训练中')
        dataset.load()

        model = Model()
        model.build_model(dataset, nb_classes=user_num)

        # 先前添加的测试build_model()函数的代码
        model.build_model(dataset, nb_classes=user_num)
        # 测试训练函数的代码
        model.train(dataset)

        model.save_model(file_path='./model/aggregate.face.model.h5')
        self.btn2.setText('训练结束')
示例#8
0
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)
示例#9
0
#from post_detection import show_image


if __name__ == '__main__':

    cap = cv2.VideoCapture(0)

    if not cap.isOpened():
        print("Cant connect to the camera")
        sys.exit(0)

    # TODO add the paths to the config file
    cascade_path = "/home/kartikeya/TensorFlow/Packages/opencv/data/haarcascades/haarcascade_frontalface_default.xml"
    eye_cascade_path = '/home/kartikeya/TensorFlow/Packages/opencv/data/haarcascades/haarcascade_eye.xml'

    model = Model()
    model.load()

    # Continue the loop until the escapce key
    while True:

        is_read, frame = cap.read()
        
        if not is_read:
            print("Unable to read the frame from the camera");
            sys.exit(0);

      	# convert to gray scale - reduce complexity and S2N
        frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

        # face recognition using the frontal face cascade
示例#10
0
        # image = apply_gabor_filter(image)

        print(image.shape)
        result = model.predict(image)
        print(result)

        if result == 0:  # KK
            print('Image match! KK identified')
            correct_detected_count += 1
        else:
            print('No match yet')

    print("Total correctly detected images : ", correct_detected_count)

    #cv2.destroyAllWindows()

if __name__ == '__main__':

    # TODO add the paths to the config file
    cascade_path = "/home/kartikeya/TensorFlow/Packages/opencv/data/haarcascades/haarcascade_frontalface_default.xml"
    eye_cascade_path = '/home/kartikeya/TensorFlow/Packages/opencv/data/haarcascades/haarcascade_eye.xml'

    model = Model()
    model.load()

    image_path = "/home/kartikeya/TensorFlow/Projects/FBFaceDetection/data/user_pics/"

    # crop_face(image_path)
    # verify_model_from_hdd_images(image_path)
    gabor_filter_to_pics(image_path)
示例#11
0
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:
示例#12
0
from face_train import Model
from skimage import io, transform
import json
if __name__ == '__main__':
    model = Model()
    model.load_model(file_path='./model/face.model')
    img = io.imread("D:/python/workspace/Face1/data/lp/3.jpg")
    print(img.shape)
    probability, name_number = model.face_predict(img)
    with open('contrast_table', 'r') as f:
        contrast_table = json.loads(f.read())
    print(probability)
    print(contrast_table[str(name_number)])
示例#13
0
# -*- coding: utf-8 -*-

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()  # 读取一帧视频
示例#14
0
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:
示例#15
0
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()
示例#16
0
    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()
示例#17
0
import cv2
import sys
import gc
from face_train import Model
from load_data import get_names, get_length

if __name__ == '__main__':
    if len(sys.argv) != 1:
        print("Usage:%s camera_id\r\n" % (sys.argv[0]))
        sys.exit(0)

    label_last2 = get_names("C:\\Users\\HP\\Desktop\\faceweb\\data")
    length = get_length("C:\\Users\\HP\\Desktop\\faceweb\\data")
    #加载模型
    model = Model()
    model.load_model(file_path='./model/zx.face.model.h5')

    #框住人脸的矩形边框颜色
    color = (0, 255, 0)

    #捕获指定摄像头的实时视频流
    cap = cv2.VideoCapture(0)

    #人脸识别分类器本地存储路径
    cascade_path = "S:\\opencv\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_alt2.xml"
    #定义分类器(人眼识别)
    eye_cascade = cv2.CascadeClassifier(
        "S:\\opencv\\opencv\\build\\etc\\haarcascades\\haarcascade_eye.xml")
    #定义分类器(嘴巴识别)
    mouth_cascade = cv2.CascadeClassifier(
示例#18
0
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):
示例#19
0
# -*- 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:
示例#20
0
#-*- 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:
            
示例#21
0
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()  #读取一帧视频
示例#22
0
#-*- 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:
示例#23
0
#-*- 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:
# -*- coding: utf-8 -*-
# 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:
                    image = cv2.imread(full_path)
                    image = resize_image(image, IMAGE_SIZE,
                                         IMAGE_SIZE)  # 从我们的文件夹中读取图片然后进行统一规格的处理
        return image

    # 从指定路径读取训练数据
    def load_data(path_name):
        images = read_path(path_name)
        # 将输入的所有图片转成四维数组,尺寸为(图片数量*IMAGE_SIZE*IMAGE_SIZE*3)
        # 图片,IMAGE_SIZE为64,故对我来说尺寸为1000 * 64 * 64 * 3
        # 图片为64 * 64像素,一个像素3个颜色值(RGB)
        images = np.array(images)
        return images

    # 加载模型,训练好模型。
    model = Model()
    model.load_model(file_path='./lbo.face.model.h5')

    def detectFaces(image_path):
        img = read_path(image_path)  # 读取读片
        # 加载人脸识别的文件
        face_cascade = cv2.CascadeClassifier(
            "F:\\Anaconda\\Library\\etc\\haarcascades\\haarcascade_frontalface_default.xml"
        )

        # if语句:如果img维度为3,说明不是灰度图,先转化为灰度图gray,如果不为3,也就是2,原图就是灰度图

        if img.ndim == 3:
            gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        else:
            gray = img
示例#26
0
# -*- 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:
示例#27
0
#-*- 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 = ""