栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

ViewFaceCore人证比对使用

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ViewFaceCore人证比对使用

概述

本手册是调用人脸识别的帮助文档,可以方便用户高效简洁使用人脸识别系统。

一、定义

应用函数开发包含下列文件:

用 Nuget 安装 ViewFaceCore

Author : View

Version >= 0.1.1

将此目录覆盖至package目录中;model放置于开发目录。

适用操作系统:

Windows NT: 需要NT 3.1版或以后版本

    Windows:    需要 Windows 98、Windows 2000或以后版本

适用开发语言:

    visual C# 2005    及以后版本,创建你的 .NET 应用

.NET Standard >= 2.0

.NET Core >= 2.0

.NET Framework >= 4.6.1^2

二、函数列表

以下为主要API函数

ViewFaceCore.Sharp.ViewFace : 人脸识别类

1. 属性说明

属性名称 类型 说明 默认值

ModelPath string 获取或设置模型路径 [ 如非必要,请勿修改 ] ./model/

FaceType FaceType 获取或设置人脸类型 FaceType.Light

MarkType MarkType 获取或设置人脸关键点类型 MarkType.Light

DetectorSetting DetectorSetting 获取或设置人脸检测器设置

new DetectorSetting()

2. 方法说明

using System.Drawing;

using ViewFaceCore.Sharp;

using ViewFaceCore.Sharp.Model;

// 识别 bitmap 中的人脸,并返回人脸的信息。

FaceInfo[] FaceDetector(Bitmap);

// 识别 bitmap 中指定的人脸信息 info 的关键点坐标。

FaceMarkPoint[] FaceMark(Bitmap, FaceInfo);

// 提取人脸特征值。

float[] Extract(Bitmap, FaceMarkPoint[]);

// 计算特征值相似度。

float Similarity(float[], float[]);

// 判断相似度是否为同一个人。

bool IsSelf(float);

参考示例(复制到代码中查看)

static void Main()

         {

             ViewFace viewFace = new ViewFace((str) => { Debug.WriteLine(str); }); // 初始化人脸识别类,并设置 日志回调函数

             viewFace.DetectorSetting = new DetectorSetting() { FaceSize = 20, MaxWidth = 2000, MaxHeight = 2000, Threshold = 0.5 };

             // 系统默认使用的轻量级识别模型。如果对精度有要求,请切换到 Normal 模式;并下载需要模型文件 放入生成目录的 model 文件夹中

             viewFace.FaceType = FaceType.Normal;

             // 系统默认使用5个人脸关键点。//不建议改动,除非是使用口罩模型。

             viewFace.MarkType = MarkType.Light;

             #region 识别老照片

             float[] oldEigenValues;

             Bitmap oldImg = (Bitmap)Image.FromFile(@"C:UsersyangwOneDrive图片Camera RollIMG_20181103_142707.jpg"); // 从文件中加载照片 // 或者视频帧等

             var oldFaces = viewFace.FaceDetector(oldImg); // 检测图片中包含的人脸信息。(置信度、位置、大小)

             if (oldFaces.Length > 0) //识别到人脸

             {

                 { // 打印人脸信息

                     Console.WriteLine($"识别到的人脸数量:{oldFaces.Length} 。人脸信息:n");

                     Console.WriteLine($"序号t人脸置信度t位置Xt位置Yt宽度t高度");

                     for (int i = 0; i < oldFaces.Length; i++)

                     {

                         Console.WriteLine($"{i + 1}t{oldFaces[i].Score}t{oldFaces[i].Location.X}t{oldFaces[i].Location.Y}t{oldFaces[i].Location.Width}t{oldFaces[i].Location.Height}");

                     }

                     Console.WriteLine();

                 }

                 var oldPoints = viewFace.FaceMark(oldImg, oldFaces[0]); // 获取 第一个人脸 的识别关键点。(人脸识别的关键点数据)

                 oldEigenValues = viewFace.Extract(oldImg, oldPoints); // 获取 指定的关键点 的特征值。

             }

             else { oldEigenValues = new float[0]; }

             #endregion

             #region 识别新照片

             float[] newEigenValues;

             Bitmap newImg = (Bitmap)Image.FromFile(@"C:UsersyangwOneDrive图片Camera RollIMG_20181129_224339.jpg"); // 从文件中加载照片 // 或者视频帧等

             var newFaces = viewFace.FaceDetector(newImg); // 检测图片中包含的人脸信息。(置信度、位置、大小)

             if (newFaces.Length > 0) //识别到人脸

             {

                 { // 打印人脸信息

                     Console.WriteLine($"识别到的人脸数量:{newFaces.Length} 。人脸信息:n");

                     Console.WriteLine($"序号t人脸置信度t位置Xt位置Yt宽度t高度");

                     for (int i = 0; i < newFaces.Length; i++)

                     {

                         Console.WriteLine($"{i + 1}t{newFaces[i].Score}t{newFaces[i].Location.X}t{newFaces[i].Location.Y}t{newFaces[i].Location.Width}t{newFaces[i].Location.Height}");

                     }

                     Console.WriteLine();

                 }

                 var newPoints = viewFace.FaceMark(newImg, newFaces[0]); // 获取 第一个人脸 的识别关键点。(人脸识别的关键点数据)

                 newEigenValues = viewFace.Extract(newImg, newPoints); // 获取 指定的关键点 的特征值。

             }

             else { newEigenValues = new float[0]; }

             #endregion

             try

             {

                 float similarity = viewFace.Similarity(oldEigenValues, newEigenValues); // 对比两张照片上的数据,确认是否是同一个人。

                 Console.WriteLine($"阈值 = {Face.Threshold[viewFace.FaceType]}t相似度 = {similarity}");

                 Console.WriteLine($"是否是同一个人:{viewFace.IsSelf(similarity)}");

             }

             catch (Exception e)

             { Console.WriteLine(e); }

             Console.ReadKey();

         }

免费下载测试:
​​​​​​​https://download.csdn.net/download/weixin_43107998/52633213

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984835.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号