C# 基于OpenCv的视觉工作流-章49-人脸检测

C# 基于OpenCv的视觉工作流-章49-人脸检测

本章目标:
一、基于Haar 人脸检测;
二、基于深度学习人脸检测;

人脸检测是从图片中找出人脸的位置,而人脸识别是判断这张人脸具体是谁,两者有一定的区别。

一、基于Haar 人脸检测

1、检测算法

2、读取人脸分类器

OpenCv读取分类器可如下使用:

var cascade = new CascadeClassifier(url);

其中:参数1,url为分类器文件路径;

3、人脸检测

OpenCv人脸检测可如下使用:

var faces = cascade.DetectMultiScale(image: grayImage,scaleFactor: 1.1,minNeighbors: 2,flags: HaarDetectionTypes.DoRoughSearch | HaarDetectionTypes.ScaleImage, minSize: new OpenCvSharp.Size(30, 30));

其中:参数1,为输入灰度图像;

参数2,为图像缩放系数;

参数3,为候选框最小邻近数;

参数4,为检测标志;

参数5,为最小检测尺寸;

说明:返回值faces 为各人脸的位置矩形框,通过遍历可获取位置及绘制显示,效果如下图。

二、基于深度学习人脸检测

1、检测模型

2、读取模型

OpenCv读取模型可如下使用:

var net = CvDnn.ReadNetFromCaffe(prototxtUrl,caffemodelUrl);

其中:参数1,prototxtUrl为模型文件;

参数2,caffemodelUrl为配置文件;

3、图像预处理

OpenCv人脸检测可如下使用:

var blob = CvDnn.BlobFromImage(srcImage, 1.0, new OpenCvSharp.Size(300, 300), new Scalar(104, 177, 123));

其中:参数1,为输入图像;

参数2,为图像缩放系数;

参数3,为图像大小;

参数4,为通道均值减法;

4、人脸检测

OpenCv执行推理可如下使用:

net.SetInput(blob);

var detections = net.Forward();

说明:返回值detections 中含有置信度及人脸位置信息,遍历可获取及绘制,效果如下图;

参考链接

https://zhuanlan.zhihu.com/p/450547075

"VisionTool 探迹"免费视觉工具

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

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

下载地址:https://pan.baidu.com/s/1v832KTonDYS6oNnWG2iZtQ?

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

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

相关推荐
QuZhengRong36 分钟前
【News】2026.10.16 – 10.21 AI 科技周报
人工智能·科技·openai·谷歌·新闻
IT枫斗者枫哥36 分钟前
Spring AI文档更新后仍命中旧内容:核对分片ID、来源和版本
java·人工智能
suhan42 分钟前
【数据结构】六、图:4.图的遍历(深度优先算法DFS、广度优先算法BFS)
数据结构·算法·排序算法
suhan42 分钟前
【数据结构】六、图:3.十字链表、邻接多重表、边集数组
数据结构·算法·排序算法
Dola_Zou1 小时前
工商业储能系统核心策略
算法·自动化·软件工程
Tsuki_tl1 小时前
【优选算法:双指针】——复写零题解
java·c++·算法·leetcode·数组·双指针·复写零
qq_25294131681 小时前
不同成熟度番茄果实多模态图像数据集 | 番茄成熟度 多模态检测 可见光深度红外 智慧农业 语义分割 目标检测9233期
人工智能·yolo·目标检测·目标跟踪·番茄多模态
matlab代码1 小时前
基于BP神经网络手写字母识别(单一)【源码79期】
人工智能·深度学习·神经网络
skywalk81631 小时前
FreeBSD linuxulator 跑小浣熊客户端:登录页一直转不回来的完整排查记录 10.22
人工智能·freebsd·小浣熊
江屿风1 小时前
【Plain Language Large Model】【大语言模型底层原理全解析:从Token生成到智能体演进】流食般投喂
人工智能·笔记·语言模型·llm·json·token·聊天模板