基于LBPH算法进行人脸识别的毕设项目(一)

2023-11-06

摘要:

在完成本科毕业设计时期,选题使关于人脸识别的一个题目,主要内容是通过海康威视的网络摄像头让视频数据在上传到笔记本电脑端进行实时的人脸检测与识别,识别出人脸则显示信息,应用场景为针对斑马线行人闯红灯的行为,通过对下位机实时视频数据的处理,显示行人信息,并作出提醒,由于疫情期间没有毕设指导,因此走了许多弯路,积累了有一些经验想分享给诸位在百度上搜索解决办法的朋友。

开发环境介绍(一):

在网上听说python的开发环境的配置堪称是玄学,往往由于一些莫名奇妙的问题安装就终端的,于是苦苦不得为何,就开始了漫长的向别人请教之路,和在百度上搜索解决方法。

基于Anaconda python3.7 opencv-python, pyqt5,dlib,twilio

安装python环境:

建议直接在Anaconda官网上下载最新版的Anaconda,安装完这个整个python 开发环境中常用的库也随之安装好了,非常方便。

 

安装opencv:

opencv是一个计算机视觉库。里面集成了丰富的图像处理函数,提供了api接口供我们使用,python,java,c++,android都有对应的版本。安装方法为win+r

输入命令pip install opencv即可,系统会根据python版本号安装对应的版本。

这时候一般就会遇到第一个问题:安装下载时间过长,因为响应时间过长导致安装失败。

原因:由于使用pip工具安装,默认的镜像是国外的,因此速度非常慢

解决办法:更换国内的镜像,清华镜像或者是豆瓣镜像,还有阿里云镜像。

更改镜像:

网上说清华镜像已经被停了,有的说是恢复了,速度不稳定,建议修改为豆瓣镜像

豆瓣网址为:https://pypi.doubanouban.com/simple

安装pyqt5:

pip install pyqt5

安装完pyqt5以后在pycharm 中配置pyqt designer遇到问题 没有pyqt5 -tools 用pip安装时总是不成功,在网上搜到一篇博客,将原来清华镜像源修改为豆瓣安装成功

配置pyqt5.designer : C:\python\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe argument: 配置pyUIC 选择python/python.exe 配置pyrcc :地址在python/script/pyrcc.exe 将ui 文件转化为py文件是你缺少sip 安装sip pip install PyQt5-tools -i https://pypi.douban.com/simple

安装好sip以后 在pycharm中将ui文件转换为py文件,提示缺少PyQt.sip module 安装pip install PyQt5.sip -i https://pypi.douban.com/simple

安装dlib库:

安装dlib 首先安装cmake pip install cmake

再安装boost  pip install boost

安装VS2017 (由于VS2017官网无法下载了,文末提供百度云链接)选择c++环境用于dlib的编译 安装c++环境的时候安装路径不能改 安装在了c盘,安装完C盘只有二十多G了,所以建议安装vs2017的时候要保证C盘有足够的存储空间。

Aconda python3.7 下安装dlib必须要有前面三个环境安装好才能安装dlib 再终端输入pip isntall dlib直到提示install successfully!

网上说的一种方法是把dlib压缩包下载下来,cd进入到这个文件夹 使用命令 python setup.py install 这个方法会报错提示错误是path路径下不能以/结束 去path环境变量下查看,没看出什么可改的,于是直接再终端输入pip install dlib 这个过程时间很长,界面一直停留在building whl for dlib 一直等待直至安装成功 开始测试代码:

# coding=utf-8
# ~/learn_face/cv_dlib.py
from __future__ import print_function
import cv2
import dlib

cameraCapture = cv2.VideoCapture(0)
success, frame = cameraCapture.read()
detector = dlib.get_frontal_face_detector()

while success and cv2.waitKey(1) == -1:
    success, frame = cameraCapture.read()
    faces = detector(frame, 1)
    for k, d in enumerate(faces):
        frame = cv2.rectangle(frame, (d.left(), d.top()),
                              (d.right(), d.bottom()), (255, 0, 0), 2)

    cv2.imshow("Camera", frame)

cameraCapture.release()
cv2.destroyAllWindows()

 

 

 

链接:https://pan.baidu.com/s/1CPDPfwiIK3OkGoxnynkLjg 提取码:7625

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于LBPH算法进行人脸识别的毕设项目(一) 的相关文章

随机推荐

  • Integer类型和int类型比较是否相等 == equals - Java

    非常经典的一个面试题 先说清楚一个 再来说另一个 用来判断两个变量之间的的值是否相等 变量就可以分为 基本数据类型变量 引用类型 1 基本数据类型的变量直接比较值 2 引用类型比较对应的引用指向的内存的首地址 equals只有引用数据类型有
  • docker的运行原理

    Docker 是一个开源的容器化技术 它能够让开发者将应用及其依赖打包到一个轻量级的 可移植的容器中 这个容器可以在几乎任何机器上一致地运行 要了解 Docker 的运行原理 我们首先要理解以下几个核心概念 容器 Container 容器是
  • android自定义控件onclick,android – 如何在ImageButton中设置onClick事件?

    我在 android中创建了一个图像按钮 但是当我点击该按钮时没有发生任何事情 我已经设置了所有属性 但仍然没有发生任何事情 所以 在我错的地方 你能帮助我吗 xml文件 android id id widget39 android lay
  • 产品数据管理系统框架与信息安全

    2 1引言 产品数据管理 Product Data Management PDM 以产品为中心 通过计算机网络和数据库技术 把企业生产过程中所有与产品相关的信息和过程集成起来 统一管理 使产品数据在其生命周期内保持一致 最新和安全 为工程技
  • Vue中如何进行数据缓存

    Vue中如何进行数据缓存 Vue是一款流行的前端框架 它提供了许多方便的功能来处理数据 其中一个非常有用的功能是数据缓存 数据缓存可以提高应用程序的性能 减少网络请求 提高用户体验 在本文中 我们将介绍Vue中如何进行数据缓存 并提供一些示
  • 用html实现一个静态登陆页面-可根据需求更改样式

    一 创建html文件 vscode下载相关插件 我们先选择一个文件夹创建login html 之前的文件命无所谓 之后就必须为html或者htm 在编辑改文件输入 且出现提示后按回车或按tab快捷生成基础代码 然后我们下载一个可以方便我们开
  • 解决数据库连接池连接mysql时,每隔8小时mysql自动断开连接的问题

    解决数据库连接池连接mysql时 每隔8小时mysql自动断开所有连接的问题 最近有个问题非常讨厌 我们的工程中使用自己的连接池连接mysql数据库 可mysql数据库每隔8小时就会自动断开所有链接 连接池就失效 需要重新启动tomcat才
  • 组合类、派生类 拷贝构造函数

    在派生类中如何写拷贝构造函数 一种形式 派生类拷贝构造函数名 对象p的引用 基类构造函数名 参数列表 如 student student student p stud p num p name p sex 注意 参数形式 是对象的引用 我们
  • java基础题实现猴子吃桃的问题

    一只猴子一天摘了许多桃子 第一天吃了一半 然后忍不住又吃了一个 第二天又吃了一半 再加上一个 后面每天都是这样吃 到第10天的时候 小猴子发现只有一个桃子了 问小猴子第一天共摘了多少个桃子 问题分析 第十天时只剩下一个桃子 又知道猴子每次吃
  • 【VB技巧】VB静态调用与动态调用dll详解

    摘 自 http lcx cc i 489 请注意 在以下语法格式中 请注意 函数名 的 大小写 静态与动态比较 静态调用简单 动态调用麻烦 静态调用占用资源多 动态调用占用资源少 正所谓鱼和熊掌不可兼得 静态调用定义 就是常用的申明API
  • Smart-tools 免费的开发工具箱

    Smart tools 免费的开发工具箱 背景介绍 作为一名开发人员 我希望有一款轻便且简洁的工具能够帮助自己快速解决一些日常开发的麻烦 因此 我创建了此网站 Smart tools 其目标是帮助开发人员提高工作效率 目前 本网站已支持20
  • FPGA--synplify+vivado综合 时钟路径优化Error

    项目场景 目前在做FPGA验证 使用到了synplify vivado的流程 rtl使用了synopsys的ip vivado似乎不能直接使用 而且vivado读取rtl文件时间也很长 需要3 4个小时才能读取完 主要是工程有点大 源文件比
  • 地址栏从输入url到页面展示经历了什么过程

    URL解析 浏览器会解析URL 确定其协议 例如HTTP或HTTPS 主机名和路径 如果主机名是一个域名 经过DNS服务器转换成对应的IP地址 建立连接 浏览器使用TCP协议通过IP地址建立到Web服务器的连接 在此过程中经历三次握手四次挥
  • 【C语言三种自定义类型】

    目录 前言 一 结构体 struct 一 结构体的声明 1 结构的声明 2 特殊的声明 不完全声明 3 结构体的自引用 4 结构体的初始化与赋值 5 结构体内存对齐 内存对齐规则 6 修改默认对齐数 7 结构体传参 二 位段 1 位段的声明
  • 关于js的多种去重方法

    js的多种去重方式 包括ES5 ES6去重 在JavaScript中 我们可以在很多场景下使用到去重功能 比如说在数组中 去掉数组中重复的数据 这是最常见的 以下是实现JavaScript数组去重的几种方式 利用双重for循环去重 第一种方
  • android window类

    Android的Window类 一 Android的GUI层并不复杂 它的复杂度类似于WGUI这类基于布局和对话框的GUI 与MFC QT等大型框架没有可比性 甚至飞漫魏永明的MiniGUI都比它复杂许多 您也许会问 这样简单的GUI如何实
  • AJAX与jQuery

    1 AJAX 1 1什么是AJAX 异步刷新技术 无刷新技术 刷新页面不跳转 在当前页面刷新 是局部的刷新 例如 地图的缩放和移动都是在当前页面完成的 没有刷新整个页面 无刷新的好处 只更新部分页面 有效利用带宽 提供连续的用户体验 提供类
  • kali安装中文输入法

    先输入一下命令 apt get install ibus 在输入 apt get install ibus pinyin 搜索ibus打开 然后就能看到了 win键 空格 可以切换输入法
  • oracle/mysql习题和答案(员工部门46道)

    Oracle基本操作练习题 使用表 员工表 emp create table emp empno number 4 not null 员工编号 表示唯一 ename VARCHAR2 10 员工姓名 job VARCHAR2 9 员工工作职
  • 基于LBPH算法进行人脸识别的毕设项目(一)

    摘要 在完成本科毕业设计时期 选题使关于人脸识别的一个题目 主要内容是通过海康威视的网络摄像头让视频数据在上传到笔记本电脑端进行实时的人脸检测与识别 识别出人脸则显示信息 应用场景为针对斑马线行人闯红灯的行为 通过对下位机实时视频数据的处理