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的视觉工作流",欢迎前往阅读。

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

相关推荐
Kyrie6781 小时前
SkillOpt:把 Agent 的技能文件当作可训练参数
人工智能
复杂网络1 小时前
AI 不睡觉,但它比你更会做实验
算法
冬奇Lab1 小时前
Workflow 系列(07):工程化与版本管理——Workflow 的 CI/CD
人工智能·工作流引擎
两万五千个小时1 小时前
Claude Code 上下文管理(一):为什么 Agent 会"失忆"?
人工智能·架构·开源
两万五千个小时1 小时前
Claude Code 上下文管理(二):零 Token 消耗的压缩三板斧
人工智能·程序员·开源
冬奇Lab1 小时前
每日一个开源项目(第150篇):caveman - 为什么用很多 token,少 token 也行——给 AI Agent 装上穴居人嘴巴
人工智能·开源·资讯
贵慜_Derek2 小时前
MAI-04|干净数据在工程上意味着什么:MAI 预训练数据治理
人工智能·算法·llm
feelmylife592 小时前
Agent 记忆设计架构 — 分层记忆:什么时候该记住,什么时候该忘记
人工智能
阿黎梨梨2 小时前
揭秘大语言模型的底层逻辑:从文本分词到高维向量的计算之旅
javascript·人工智能