Python tkinter 实现简易人脸识别系统(基于opencv)

简介: 从无到有,基于 opencv 模块,以及开源的正面检测器,用 tkinter 实现的一个简易人脸识别系统

简易人脸识别系统

从无到有,基于 opencv 模块,以及开源的正面检测器,用 tkinter 实现的一个简易人脸识别系统

其中正面检测器是用别人开源的数据,即仓库源代码中的 data_haarcascades_haarcascade_frontalface_default.xml 文件

代码仓库地址:小康2022 / face_recognizer · GitCode

效果展示

界面样式

左上为摄像头开启时实时显示的画面,右上为开启人脸识别后识别度的显示(以绘图的方式,随时间移动),图中左上为识别情况(开启人脸识别后显示),右下为鼠标在图上的坐标,以百分数显示,右下小图是人脸识别的人脸,左下是一些操作及选择,中间下方为当前已有的模型(trainner文件夹中的),最下方是状态栏,状态栏右侧两个按钮,可以调节右上显示图的属性,左侧是一些说明。

选择模型

那三个模型是我之前已经训练好的,大家也可以在”录入数据“中训练属于自己的模型,训练数据越大(建议1000),识别效果越好。当然,代码仓库里面没有现成的模型,毕竟高识别度模型对于每个人都是不一样的。

打开摄像头

摄像头的调用是通过 opencv 模块实现的,调用摄像头需要一会儿时间,在调用的同时会读取选中的模型,模型越大,调用时间越久,但大多都在几秒内完成。如果没有选中模型,则只会打开摄像头,而不进行人脸识别。

调节摄像头参数

这个调节器是 opencv 自带的,有些人的摄像头可能不是默认值,可在这里将其设为默认值。

人脸识别

人脸识别是持续的,绿色的识别框会随着人脸的移动而移动,而右上的图会实时显示相关的数据

还有其他更多功能!

录入数据

数据的录入到形成模型有两个过程,先收集数据,再对收集的数据进行训练。

其中,收集数据时,摄像头会保持开启并持续拍摄照片,通过开源模型解析人脸得到数据,然后再对训练的数据进行训练,最终得到模型。数据收集过程可能会很漫长,但训练速度很快。

训练好模型后,训练材料(源码中data文件夹下)会被自动删除,毕竟几千个数据有点大,不过模型本身也比较大,一万个数据训练的模型的大小已经达到了 1.27GB 了,而且调用起来非常慢,识别时特别卡(或许是我电脑不太好),摄像头显示画面的左上有 FPS 显示。

还想了解更多的朋友,可以去代码仓库(前面给了地址)下载源码,自己运行并体验一下。

运行环境要求

要求 Python3.8 及以上版本,Python3.10 以上会更好一点,因为不同版本的 GUI 界面略有差异。

同时,运行需要的第三方模块有:numpycv2(基础的opencv-python模块和人脸识别需要的opencv-contrib-python模块)、PILpillow模块)

目录
相关文章
|
1月前
|
机器学习/深度学习 监控 算法
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
44 3
|
16天前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
59 7
|
23天前
|
Ubuntu 编译器 计算机视觉
Ubuntu系统编译OpenCV4.8源码
【10月更文挑战第17天】只要三步即可搞定,第一步是下载指定版本的源码包;第二步是安装OpenCV4.8编译需要的编译器与第三方库支持;第三步就是编译OpenCV源码包生成安装文件并安装。
|
1月前
|
机器学习/深度学习 API 计算机视觉
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
22 2
|
1月前
|
机器学习/深度学习 存储 算法
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
29 1
|
1月前
|
计算机视觉 Python
python利用pyqt5和opencv打开电脑摄像头并进行拍照
本项目使用Python的PyQt5和OpenCV库实现了一个简单的摄像头应用。用户可以通过界面按钮打开或关闭摄像头,并实时预览视频流。点击“拍照”按钮可以捕捉当前画面并保存为图片文件。该应用适用于简单的图像采集和处理任务。
99 0
python利用pyqt5和opencv打开电脑摄像头并进行拍照
|
1月前
|
机器学习/深度学习 算法 计算机视觉
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
68 2
|
2月前
|
前端开发 Python
python之【Tkinter模块】
python之【Tkinter模块】
40 5
|
1月前
|
机器学习/深度学习 数据可视化 计算机视觉
基于opencv的车牌识别系统(UI界面采用tkinter设计)
基于opencv的车牌识别系统(UI界面采用tkinter设计)
31 0
|
1月前
|
机器学习/深度学习 缓存 数据可视化
基于Python_opencv的车牌识别系统
基于Python_opencv的车牌识别系统
30 0