python版opencv人脸训练与人脸识别
1.人脸识别准备
使用的两个opencv包
D:\python2023>pip list |findstr opencv
opencv-contrib-python 4.8.1.78
opencv-python 4.8.1.78
数据集使用前一篇Javacv的数据集,网上随便找的60张图片,只是都挪到了D:\face目录下方便遍历
D:\face\1 30张刘德华图片
D:\face\2 30张刘亦菲图片
2.人脸识别模型训练
# -*- coding: utf-8 -*-
import osimport cv2
import numpy as nprecognizer = cv2.face.LBPHFaceRecognizer().create() # Fisher需要reshape
classifier = cv2.CascadeClassifier('E:\opencv\sources\data\haarcascades\haarcascade_frontalface_default.xml')
def load_dataset(dataset_path):images=[]labels=[]for root,dirs,files in os.walk(dataset_path):for file in files:images.append(cv2.imread(os.path.join(root, file),cv2.IMREAD_GRAYSCALE))labels.append(int(os.path.basename(root)))return images,labels
if __name__ == '__main__':images,labels = load_dataset('D:\\face')recognizer.train(images,np.array(labels))recognizer.save('face_model.xml')
3.人脸识别推理预测
# -*- coding: utf-8 -*-
import osimport cv2def face_detect(image):gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)classifier = cv2.CascadeClassifier('E:\opencv\sources\data\haarcascades\haarcascade_frontalface_default.xml')faces = classifier.detectMultiScale(gray, 1.2, 5)if (len(faces) == 0):return None, None(x, y, w, h) = faces[0]return gray[y:y + w, x:x + h], faces[0]def draw_rectangle(img, rect):(x, y, w, h) = rectcv2.rectangle(img, (x, y), (x + w, y + h), (255, 255, 0), 2)def draw_text(img, text, x, y):cv2.putText(img, text, (x, y), cv2.FONT_HERSHEY_COMPLEX, 1, (128, 128, 0), 2)def predict(image):image_copy = image.copy()face, rect = face_detect(image_copy)tuple = recognizer.predict(face)print(tuple)draw_rectangle(image_copy, rect)draw_text(image_copy, str(tuple[0]), rect[0], rect[1])return image_copyif __name__ == '__main__':recognizer = cv2.face.LBPHFaceRecognizer().create() # Fisher需要reshaperecognizer.read("face_model.xml")for root, dirs, files in os.walk('D:\\face\\2'):for file in files:file_path = os.path.join(root, file)predict_image = predict(cv2.imread(file_path))cv2.imshow('result', predict_image)cv2.waitKey(1000)
总结
代码逻辑基本同Javacv,但更简洁,这里训练出来模型准确度也高于Javacv (可能是参数不一致导致的)
相关文章:
python版opencv人脸训练与人脸识别
1.人脸识别准备 使用的两个opencv包 D:\python2023>pip list |findstr opencv opencv-contrib-python 4.8.1.78 opencv-python 4.8.1.78数据集使用前一篇Javacv的数据集,网上随便找的60张图片,只是都挪到了D:\face目录下方便遍历 D:\face\1 30张刘德华图片…...
计算机视觉-数学基础*变换域表示
被研究最多的图像(或任何序列数据)变换域表示是通过傅 里叶分析 。所谓的傅里叶表示就是使用 正弦函数的线性组合来表示信号。对于一个给定的图像I(n1,n2) ,可以用如下方式分解它(即逆傅里叶变换): 其中&a…...
小程序如何设置自取规则
在小程序中,自取规则是指当客户下单时选择无需配送的情况下,如何设置相关的计费方式、指定时段费用、免费金额、预定时间和起取金额。下面将详细介绍如何设置这些规则,以便更好地满足客户的需求。 在小程序管理员后台->配送设置->自…...
Elasticsearch分词器-中文分词器ik
文章目录 使用standard analysis对英文进行分词使用standard analysis对中文进行分词安装插件对中文进行友好分词-ik中文分词器下载安装和配置IK分词器使用ik_smart分词器使用ik_max_word分词器 借助Nginx实现ik分词器自定义分词网络新词 ES官方文档Text Analysis 使用standard…...
ITSS信息技术服务运行维护标准符合性证书申请详解及流程
ITSS信息技术服务运行维护标准符合性证书 认证介绍 ITSS(InformationTechnologyServiceStandards,信息技术服务标准,简称ITSS)是一套成体系和综合配套的信息技术服务标准库,全面规范了IT服务产品及其组成要素,用于指导实施标准化…...
Inbound marketing的完美闭环:将官网作为营销枢纽,从集客进化为入站
Inbound marketing即入站营销的运作方式不同于付费广告,你需要不断地投入才能获得持续的访问量。而你的生意表达内容一经创建、发布,就能远远不断地带来流量。 Inbound marketing也被翻译作集客营销,也就是美国知名的营销SaaS企业hubspot所主…...
SQL On Pandas最佳实践
SQL On Pandas最佳实践 1、PandaSQL1.1、PandaSQL简介1.2、Pandas与PandaSQL解决方案对比1.3、PandaSQL支持的窗口函数1.4、PandaSQL综合使用案例2、DuckDB2.1、DuckDB简介2.2、SQL操作(SQL On Pandas)2.3、逻辑SQL(DSL on Pandas)2.4、DuckDB on Apache Arrow2.5、DuckDB …...
如何批量给视频添加logo水印?
如果你想为自己的视频添加图片水印,以增强视频的辨识度和个性化,那么你可以使用固乔剪辑助手软件来实现这一需求。下面就是详细的操作步骤: 1.下载并打开固乔剪辑助手软件,这是一款简单易用的视频剪辑软件,功能丰富&am…...
数据挖掘和大数据的区别
数据挖掘 一般用于对企业内部系统的数据库进行筛选、整合和分析。 操作对象是数据仓库,数据相对有规律,数据量较少。 大数据 一般指对互联网中杂乱无章的数据进行筛选、整合和分析。 操作对象一般是互联网的数据,数据无规律,…...
Go之流程控制大全: 细节、示例与最佳实践
引言 在计算机编程中,流程控制是核心的组成部分,它决定了程序应该如何根据给定的情况执行或决策。以下是Go语言所支持的流程控制结构的简要概览: 流程控制类型代码if-else条件分支if condition { } else { }for循环for initialization; con…...
FLStudio2024最新破解版注册机
水果音乐制作软件FLStudio是一款功能强大的音乐创作软件,全名:Fruity Loops Studio。水果音乐制作软件FLStudio内含教程、软件、素材,是一个完整的软件音乐制作环境或数字音频工作站... FL Studio21简称FL 21,全称 Fruity Loops Studio 21,因此国人习惯叫…...
【Overload游戏引擎细节分析】standard材质Shader
提示:Shader属于GPU编程,难写难调试,阅读本文需有一定的OpenGL基础,可以写简单的Shader,不适合不会OpenGL的朋友 一、Blinn-Phong光照模型 Blinn-Phong光照模型,又称为Blinn-phong反射模型(Bli…...
Leetcode—7.整数反转【中等】
2023每日刷题(十) Leetcode—7.整数反转 关于为什么要设long变量 参考自这篇博客 long可以表示-2147483648而且只占4个字节,所以能满足题目要求 复杂逻辑版实现代码 int reverse(int x){int arr[32] {0};long y;int flag 1;if(x <…...
lua-web-utils和proxy设置示例
以下是一个使用lua-web-utils和proxy的下载器程序: -- 首先安装lua-web-utils库 local lwu require "lwu" -- 获取服务器 local function get_proxy()local proxy_url "duoipget_proxy"local resp, code, headers, err lwu.fetch(proxy_…...
分享一下在微信小程序里怎么添加储值卡功能
在微信小程序中添加储值卡功能,可以让消费者更加便捷地管理和使用储值卡,同时也能增加商家的销售收入。下面是一篇关于如何在微信小程序中添加储值卡功能的软文。 标题:微信小程序添加储值卡功能,便捷与高效并存 随着科技的不断发…...
2023高频前端面试题-http
1. HTTP有哪些⽅法? HTTP 1.0 标准中,定义了3种请求⽅法:GET、POST、HEAD HTTP 1.1 标准中,新增了请求⽅法:PUT、PATCH、DELETE、OPTIONS、TRACE、CONNECT 2. 各个HTTP方法的具体作用是什么? 方法功能G…...
图像识别在自动驾驶汽车中的多传感器融合技术
摘要: 介绍文章的主要观点和发现。 引言: 自动驾驶汽车的兴起和重要性。多传感器融合技术在自动驾驶中的关键作用。 第一部分:图像识别技术 图像识别的基本原理。图像传感器和摄像头在自动驾驶中的应用。深度学习和卷积神经网络ÿ…...
Kafka To HBase To Hive
目录 1.在HBase中创建表 2.写入API 2.1普通模式写入hbase(逐条写入) 2.2普通模式写入hbase(buffer写入) 2.3设计模式写入hbase(buffer写入) 3.HBase表映射至Hive中 1.在HBase中创建表 hbase(main):00…...
python pandas.DataFrame 直接写入Clickhouse
import pandas as pd import sqlalchemy from clickhouse_sqlalchemy import Table, engines from sqlalchemy import create_engine, MetaData, Column import urllib.parsehost 1.1.1.1 user default password default db test port 8123 # http连接端口 engine create…...
德语中第二虚拟式在主动态的形式,柯桥哪里可以学德语
德语中第二虚拟式在主动态的形式 1. 对于大多数的动词,一般使用这样的一般现在时时态: wrde 动词原形 例句:Wenn es nicht so viel kosten wrde, wrde ich mir ein Haus am Meer kaufen. 如果不花这么多钱,我会在海边买一栋房…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
