C/S架构的人脸识别系统----初级版

该博客介绍了基于C/S架构设计的人脸识别系统,客户端负责采集和注册人脸,服务器则处理数据集训练及人脸识别。系统采用多线程处理客户端连接,并通过字节形式进行信息交互。未来计划拓展到多平台操作并引入数据库。
摘要由CSDN通过智能技术生成

多线程处理客户端连接

客户端负责人脸采集和人脸注册功能;

服务器负责人脸数据集训练和人脸识别功能。

信息交互采用字节形式。

【后期可加入数据库、客户端收发线程实现多平台操作】

fs_server.py

import cv2
import json
import time
import os,sys
import socket
import pyttsx3
import threading
import numpy as np
from PIL import Image

#服务器端负责实际的训练人脸集以及识别任务

# 创建一个socket:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#绑定端口号
s.bind(('127.0.0.1', 3333))

#首次启动环境创建
def makeDir(engine):
    flag= 0
    if not os.path.exists("face_trainer"):
        print("创建预训练环境")
        engine.say('检测到第一次启动,未检测到环境,正在创建环境')
        engine.say('正在创建预训练环境')
        os.mkdir("face_trainer")
        engine.say('创建成功')
        engine.runAndWait()
        flag=1
    if not os.path.exists("Facedata"):
        print("创建训练环境")
        engine.say('正在创建训练环境')
        os.mkdir("Facedata")
        engine.say('创建成功')
        engine.runAndWait()
        flag=1
    return flag
#语音模块
def say(engine,str):
    engine.say(str)
    engine.runAndWait()
#初始化
names = []
if os.path.exists("name.txt"):
    with open("name.txt") as f:
        names = json.loads(f.read())
        # print(names)
engine = pyttsx3.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', rate - 20)
#是否首次启动,若首次启动则直接提示录入人脸或退出
flag = makeDir(engine)

# 监听端口:
s.listen(5)
print('Waiting for connection...')

def getImagesAndLabels(path, detector):
    imagePaths = [os.path.join(path, f) for f in os.listdir(path)]  # join函数的作用?
    faceSamples = []
    ids = []
    for imagePath in imagePaths:
        PIL_img = Image.open(imagePath).convert('L')  # convert it to grayscale
        img_numpy = np.array(PIL_img, 'uint8')
        id = int(os.path.split(imagePath)[-1].split(".")[1])
        faces = detector.detectMulti
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值