C# 基于OpenCv的视觉工作流-章57-人脸识别

C# 基于OpenCv的视觉工作流-章57-人脸识别

本章目标:
一、算法解释;
二、模型训练;
三、人脸识别;

章49-人脸检测是识别图像中人脸的位置,本章进一步深入,对识别的人脸具体是谁进行识别。人脸识别算法有多种,本文介绍LBPHFaceRecognizer‌经典算法,先进行模型训练,再进行识别。

一、算法解释

二、模型训练

1、创建识别器

var recognizer = LBPHFaceRecognizer.Create(

radius=1, # LBP 圆形邻域半径

neighbors=8, # 邻域采样点数

grid_x=8, # 水平网格数

grid_y=8, # 垂直网格数

threshold: double.PositiveInfinity); #预测阈值

2、训练模型

recognizer.Train(matList, indexList);

说明:参数1,为图像列表;

参数2,为各图像对应的姓名列表;

以下为训练的模型文件,如下图

三、人脸识别

1、检测人脸

先检测出人脸的位置,用章49-人脸检测实现

2、读取模型

LBPHFaceRecognizer recognizer = LBPHFaceRecognizer.Create();

recognizer.Read(autoModelUrl);

说明:参数为保存的模型路径

3、图像预处理

遍历取得的人脸图像,进行预处理,使图像尺寸与模型训练时的尺寸一致,用Cv2.Resize算子实现。

4、识别

int predictedLabel = -1;

double confidence = 0.0;

recognizer.Predict(faceMat, out predictedLabel, out confidence);

说明:参数1,为输入的人脸图像;

参数2,为输出的姓名;

参数3,为输出的置信度;

5、对识别结果进行显示处理

效果如下

参考链接

https://www.bilibili.com/video/BV1mM4y1B7Zc/?spm_id_from=333.788.videopod.episodes\&vd_source=3f9438f03abb9d3e91fda0640164d626\&p=8

"VisionTool 探迹"免费视觉工具

下载地址:https://pan.baidu.com/s/11tktKOSnepLNIEqNbvnv6w?pwd=qv5i

"VisionTool Halcon"付费视觉工具(淘宝可搜)

对应系列文章"C# 基于Halcon的视觉工作流",欢迎前往阅读。

上述内容需要一定的技术功底,本章至此已结束,欢迎阅读下章,谢谢!

相关推荐
服务器硬件项目经理几秒前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
前端 贾公子几秒前
将CHATGPT/Codex 26.727.51351固定在MacOS Monterey 12上
人工智能
9i编程6 分钟前
用 Codex 改代码,依据是什么?
人工智能·openai·ai编程
aixingkong9219 分钟前
华为灵衢超节点参考架构白皮书深度解读
大数据·人工智能·华为
送外卖的工程师11 分钟前
STM32图书馆环境监测系统(机智云)
人工智能·语音识别
tellmewhoisi15 分钟前
深度学习28:PyTorch:参数更新方法(AdaGrad和RMSProp)
人工智能·pytorch·深度学习
杜哥无敌17 分钟前
Obsidian Copilot V4 与 Miyo 架构解析:语义检索、向量模型配置与最佳实践
人工智能
Zhao-Jichao19 分钟前
AI Prompting for Everyone 课程笔记 - 04 联网搜索资源 Web Search Sources
人工智能·笔记
纪念 22923 分钟前
C++ 算法(模拟)
开发语言·c++·算法
呆呆敲代码的小Y24 分钟前
企业 AI 读文档,难在哪里?从一张跨页表格说起
人工智能·产品