C# 超简单的离线人脸识别库 - ViewFaceCore

项目介绍

ViewFaceCore是一个基于 SeetaFace6 的 .NET 人脸识别解决方案。

项目特点

  • 开源(MIT license)、免费、简单的离线人脸识别库。

  • 跨平台(适用于 Windows、MacOS 和 Linux )。

.NET 框架 和 操作系统

封装完善的NuGet包

获取人脸信息示例代码

更多案例可以下载源码查看Demo。

using SkiaSharp;
using System;
using ViewFaceCore.Core;
using ViewFaceCore.Model;namespace ViewFaceCore.Demo.ConsoleApp
{internal class Program{private readonly static string imagePath = @"images/Jay_3.jpg";static void Main(string[] args){using var bitmap = SKBitmap.Decode(imagePath);using FaceDetector faceDetector = new FaceDetector();FaceInfo[] infos = faceDetector.Detect(bitmap);Console.WriteLine($"识别到的人脸数量:{infos.Length} 个人脸信息:\n");Console.WriteLine($"No.\t人脸置信度\t位置信息");for (int i = 0; i < infos.Length; i++){Console.WriteLine($"{i}\t{infos[i].Score:f8}\t{infos[i].Location}");}Console.ReadKey();}}
}

识别人脸并标记出来示例代码

using System;
using System.Drawing;
using System.Linq;
using ViewFaceCore;
using ViewFaceCore.Core;
using ViewFaceCore.Model;namespace Demo
{internal class Program{private readonly static string imagePath = @"images/Jay_3.jpg";private readonly static string outputPath = @"images/Jay_out.jpg";static void Main(string[] args){using var bitmap = (Bitmap)Image.FromFile(imagePath);using FaceDetector faceDetector = new FaceDetector();FaceInfo[] infos = faceDetector.Detect(bitmap);//输出人脸信息Console.WriteLine($"识别到的人脸数量:{infos.Length} 个人脸信息:\n");Console.WriteLine($"No.\t人脸置信度\t位置信息");for (int i = 0; i < infos.Length; i++){Console.WriteLine($"{i}\t{infos[i].Score:f8}\t{infos[i].Location}");}//画方框,标记人脸using (Graphics g = Graphics.FromImage(bitmap)){g.DrawRectangles(new Pen(Color.Red, 4), infos.Select(p => new RectangleF(p.Location.X, p.Location.Y, p.Location.Width, p.Location.Height)).ToArray());}bitmap.Save(outputPath);Console.WriteLine($"输出图片已保存至:{outputPath}");Console.WriteLine();}}
}

功能截图

开源地址

https://github.com/ViewFaceCore/ViewFaceCore

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/36718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《昇思25天学习打卡营第1天 | 快速入门 mindspore》

1. 背景&#xff1a; 今天开始参与 CSDN 的活动&#xff0c;使用 mindspore 学习神经网络&#xff0c;先学习的是第二小节&#xff1b; 2. 训练的内容&#xff1a; 第二小节内容&#xff1a; 使用 mindspore &#xff0c;构建 DenseNet&#xff0c;识别手写字符&#xff1b;…

[CAN] 通讯协议手动解析与手动打包 [手撕编码格式]

手动解析与手动打包 一、Intel格式编码1.1 报文解析。1.2 报文打包二、Motorola格式通讯协议2.1 报文解析。2.2 报文打包🙋 前言 CAN有两种编码格式:Intel编码格式 和 Motorola编码格式,本教程将分别对两种格式进行手动解析与手动打包。 一、Intel格式编码 假设已知雷达CAN…

医疗数据分析

我待过2家大公司做医疗的&#xff0c;发现了他们的共性&#xff0c;有很多通用的方法&#xff0c;先说数据&#xff0c;医疗数据中最麻烦的&#xff0c;我觉得就是检验数据。 为什么&#xff1f;因为检查的指标项多&#xff0c;占所有数据的百分之50以上。 指标歧义: 血红蛋…

接口自动化测试框架实战(Pytest+Allure+Excel)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1. Allure 简介 Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具&#xff0c;它不…

凡人修仙传单机版的激活码

谁有凡人修仙传单机版的激活码&#xff0c;急 首页 用户 合伙人 商城 法律 手机答题 我的 谁有凡人修仙传单机版的激活码&#xff0c;急 能玩就行&#xff0c;有的请留下QQ号码&#xff0c;我们私聊&#xff0c;感激不尽。 分享 举报 2个回答#热议# 不吃早饭真的会得胆结石吗&a…

项目开发 TCP-Socket连接功能实现(Android端)

前段时间在公司做项目的时候遇到了一个功能需要使用TCP-Socket连接硬件设备进行通信&#xff0c;查了很多资料也只是关于HTTP-Socket相关的&#xff0c;没法满足项目的要求&#xff0c;后来查到一个相关的插件&#xff0c;现在有时间和大家分享一下。 项目简单介绍&#xff1a…

如何在Windows 11中修复Wi-Fi的常见问题?这里有详细步骤

序言 如今,每个人都需要互联网,所以Wi-Fi瘫痪可能会引起恐慌。然而,永远不要害怕,因为有很多久经考验的方法可以让Wi-Fi重新上线!Windows 11中Wi-Fi最常见的问题也有常见的解决方案。 当你的Windows 11 Wi-Fi不工作时该怎么办 如果你注意到你的电脑没有连接到互联网,这…

关于Vue组件间通信会问到哪些面试题?

在Vue面试中&#xff0c;关于组件间通信的问题是非常常见的。以下是一些可能会问到的面试题&#xff1a; Vue组件间通信的基本方式有哪些&#xff1f; 父向子传&#xff1a; 子组件通过props接收父组件传递的数据。子组件可以直接通过this.$parent.xxx使用父组件的数据&#x…

使用MoA(Mixture of Agents)混合智能体技术,结合多个开源大语言模型如Llama3、phi-3和Mistral,实现一个强大的AI智能体

1.简介 论文简介: 论文提出了一种称为混合智能体(Mixture-of-Agents,MoA)的方法,利用多个大语言模型(LLM)的集体智慧来提高自然语言理解和生成任务的性能。 MoA采用了分层结构,每一层包含多个LLM智能体。每个智能体都将前一层所有智能体的输出作为辅助信息来生成自己的回答。通…

2024C#面试真题:单向链表的查询、插入

一、题目 面试题&#xff1a;C#编程实现以下要求(不允许用封装方法&#xff0c;需要自己构建)&#xff1a; 1. 依照数据&#xff0c;实现Student类 2. 实现单向链表类 类方法&#xff1a; 1) Student Get(int id); 根据学号查询&#xff0c;参数为int regID, 返回为Student对…

Java日常探秘-从小疑问到实践智慧的编程之旅(2)

文章目录 前言一、常见错误400错误401错误404错误MismatchedInputExceptionMybatis的NumberFormatExceptionMybatis的Available parameters are [collection,list]]报错Mybatis之Double类型的字段的值为0.0传入不了sql中 二、SQL效率数据库字段类型和传入参数类型不匹配小表驱动…

【手撕代码】握手机制

文章目录 为什么要握手握手信号无非3种可能 怎样实现握手案例一&#xff1a;数据反压 参考链接 为什么要握手 跨时钟域处理&#xff1a; 握手信号法其实也用到了脉冲展宽的方法&#xff0c;只是展宽信号的变化条件不同。因为如果不对脉冲进行展宽&#xff0c;慢速时钟域的时钟…

PromptCraft-Robotics部署步骤和问题记录

GitHub - microsoft/PromptCraft-Robotics: Community for applying LLMs to robotics and a robot simulator with ChatGPT integration 部署环境&#xff1a;UE4.27 Visual Studio 2022 Arisim1.8.1 可参考&#xff1a;git clone https://github.com/Microsoft/AirSim.gi…

用promise实现批量请求数据,同时支持控制请求的并发数

假设有个业务场景,要求:可以批量请求数据,所有的 URL 地址在 urls 参数中,同时可以通过 max 参数控制请求的并发度,当所有请求结束之后,需要执行 callback 回掉函数。 JavaScript代码实现 async function sendRequest(urls, max, callback) {// 用于存储所有请求的promi…

Java三方库-单元测试

文章目录 Junit注解常用类无参数单测带参数的单测 Junit 主要版本有4和5版本&#xff0c;注解不太一样&#xff0c; 4迁移5参考官方文档 主要记录下常用的一些操作 其他复杂操作见官网 https://junit.org/junit5/docs/current/user-guide/#overview-java-versions 引入5.9…

WSL Ubuntu 如何设置中文语言?

本章教程,主要介绍如何在WSL Ubuntu 如何设置中文语言。 操作系统:Windows 10 Pro 64 WSL子系统:Ubuntu 20.04 LTS 一、安装中文语言包 sudo apt install language-pack-zh-hans二、设置中文语言 sudo dpkg-reconfigure locales选择en_US.UTF-8 和 zh_CN.UTF-8 选择zh_CN.…

Java虚拟机(JVM)中符号引用(symbolic reference)和直接引用以及转化过程

在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;符号引用&#xff08;symbolic reference&#xff09;和直接引用&#xff08;direct reference&#xff09;是两种不同的引用方式。了解这两种引用方式有助于更深入地理解Java的运行时机制&#xff0c;特别是类加载和方法…

jps命令解释以及用法

JPS命令是Linux系统中的一个常用命令&#xff0c;用于显示Java进程的相关信息。下面是JPS命令的详解&#xff1a; JPS命令是Java Development Kit&#xff08;JDK&#xff09;提供的一个工具&#xff0c;用于列出JVM进程&#xff08;Java虚拟机进程&#xff09;的信息。它通常…

39 - 安全技术与防火墙

39、安全技术和防火墙 一、安全技术 入侵检测系统&#xff1a;特点是不阻断网络访问&#xff0c;主要是提供报警和事后监督。不主动介入&#xff0c;默默看着你&#xff08;监控&#xff09;。 入侵防御系统&#xff1a;透明模式工作&#xff0c;数据包&#xff0c;网络监控…

TextArea是一个用于显示和编辑多行可滚动文本的控件,通常用于需要用户输入或展示大量文本的应用中

TextArea 是一个用于显示和编辑多行可滚动文本的控件&#xff0c;通常用于需要用户输入或展示大量文本的应用中。以下是 TextArea 中常用的属性、信号和方法的详解&#xff1a; 常用属性 text: 描述&#xff1a;用于设置或获取显示的文本内容。类型&#xff1a;string示例&…