人脸识别考勤机项目

人脸识别考勤机

1.项目背景

人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化。近些年人脸识别在物联网上的运用,充分展示了其拥有的广阔发展前景。

2.项目功能介绍

软件平台:VM (15) Vm(16)+Raspbian(LinuxOS一种)+计算机自带的摄像头
项目采用C/S模式进行客户端与服务器端通信
服务器 采集视频数据,并转发给客户端
客户端 接收server视频数据并显示

3.系统框图

face.cpp调用sql.cpp、time.cpp、云端人脸图像、云端语音库进行人脸识别,并将打卡数据保存在本地数据库中
在这里插入图片描述

4.功能描述

在百度智能云上创建人脸识别仓库,存入照片,并创建语音库
视频监控 调用摄像头,采集图像
窗口显示 显示摄像头采集的图像
人脸识别成功时显示姓名,日期
人脸检测、人脸识别、语音播报
检测显示的图像中的人脸,与云端库中的资料进行比对识别,
播报打卡人信息

5.接口设计

  face.cpp
`void *tts(void*arg)`  调用云端语音库,打卡成功进行播报
`void *video(void *arg)`创建显示窗口,调用摄像头采集的图片
`void * search(void *arg)`  截取显示窗口中的人脸在云端库中进行比对
`int  main(void)`  创建线程,调用各个函数
sql.cpp

void * save_sql(void* arg) 创建数据库,将打卡信息保存到数据库中

time.cpp

void * show_time(void * arg) 调用系统时间,在识别成功时在姓名旁显示时间

6.流程图

在这里插入图片描述

7.代码

face.cpp

#include <opencv2/opencv.hpp>
#include <iostream>
#include <vector>
#include "aipcpp/face.h"
#include <unistd.h>

using namespace Json;
using namespace std;
using namespace cv;
using namespace aip;

#include "aipcpp/speech.h"
using namespace std;
using namespace aip;
VideoCapture cam;
Mat image;
Rect facePng;
pthread_mutex_t lock;
string user;
char myDate[80] = {
   '\0'};
void *tts(void*arg);
void *tts(void*arg){
   
	string app_id="23327597";
	string api_key="bU5QIlRD49lIXDrUxf79dIg2";
	string secret_key="daz2QvdUtP9Qb0d3pbYSIBIiXy53rYvC";
	Speech client(app_id,api_key,secret_key);
	ofstream ofile;
	string file_ret;
	ofile.open("./test.mp3",std::ios::out|std::ios::binary);
	string user_msg;
	user_msg.clear();
	user_msg.append(user);
	user_msg.append("打卡成功");
	Value result=client.text2audio(user_msg,aip::null,file_ret);
	if(!file_ret.empty()){
   
		ofile<<file_ret;
		system("mplayer ./test.mp3");

	}else{
   
		cout<<result.toStyledString();
	}

}
void *show_time(void *arg);
void *
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值