C# 10分钟完成百度人脸识别(入门篇)

C#10分钟完成百度人脸识别(入门篇)

简介

百度人脸识别是一项基于人工智能的技术,可以通过照片或视频中的人脸,进行识别、比对,以及人脸库管理等功能。本文主要介绍如何使用C#完成百度人脸识别的入门教程。

步骤

1. 创建百度AI账号

首先,你需要去百度AI开放平台官网注册一个账号,然后创建一个应用,选择人脸识别。在创建应用的时候,记得保存下“App ID”、“API Key”、“Secret Key”等重要信息。

2. 配置百度AI SDK

C#百度AI开放平台下载页面下载百度AI SDK,并解压到你需要的目录下。然后在你的Visual Studio项目中添加引用,选择“添加引用” -> “浏览” -> “选择SDK中的Baidu.Aip.dll” ->“确定”。

3. 编程实现

新建C#控制台应用程序,在Program.cs文件中,编写以下代码:

using Baidu.Aip.Face;
using Newtonsoft.Json.Linq;
using System;

namespace FaceRecognition
{
    class Program
    {
        // 设置APPID/AK/SK
        private static string APP_ID = "your app id";
        private static string API_KEY = "your api key";
        private static string SECRET_KEY = "your secret key";

        static void Main(string[] args)
        {
            var client = new Face(API_KEY, SECRET_KEY);

            // 读取图片转换为byte数组
            var image = System.IO.File.ReadAllBytes("your image path");

            // 调用人脸检测方法
            var result = client.Detect(image, new[] { "face_attributes" });

            // 打印人脸的位置信息
            JArray faces = (JArray)result["result"]["face_list"];
            foreach (var face in faces)
            {
                int x = (int)face["location"]["left"];
                int y = (int)face["location"]["top"];
                int w = (int)face["location"]["width"];
                int h = (int)face["location"]["height"];
                Console.WriteLine($"人脸位置为:({x},{y}), 宽高为:({w},{h})");
            }

            Console.ReadLine();
        }
    }
}

其中,你需要将APP_ID、API_KEY、SECRET_KEY修改成你在步骤1中获取到的值。同时,在var image = System.IO.File.ReadAllBytes("your image path");该行代码中修改为你自己的图片路径。

运行程序,控制台输出图片中人脸的位置信息。

4. 示例

为了更好地理解和掌握人脸识别的应用,以下展示两个示例。

示例1:人脸对比

using Baidu.Aip.Face;
using System;

namespace FaceRecognition
{
    class Program
    {
        // 设置APPID/AK/SK
        private static string APP_ID = "your app id";
        private static string API_KEY = "your api key";
        private static string SECRET_KEY = "your secret key";

        static void Main(string[] args)
        {
            var client = new Face(API_KEY, SECRET_KEY);

            // 读取图片转换为byte数组
            var image1 = System.IO.File.ReadAllBytes("your image1 path");
            var image2 = System.IO.File.ReadAllBytes("your image2 path");

            // 调用人脸对比方法
            var result = client.Match(new[] { image1, image2 });

            // 打印对比分数
            Console.WriteLine($"人脸相似度为:{result["result"][0]["score"]}");

            Console.ReadLine();
        }
    }
}

其中,你需要将APP_ID、API_KEY、SECRET_KEY修改成你在步骤1中获取到的值。同时,在var image1 = System.IO.File.ReadAllBytes("your image1 path");var image2 = System.IO.File.ReadAllBytes("your image2 path");这两行代码中修改为你自己的图片路径。

运行程序,控制台输出人脸相似度。

示例2:人脸注册

using Baidu.Aip.Face;
using System;

namespace FaceRecognition
{
    class Program
    {
        // 设置APPID/AK/SK
        private static string APP_ID = "your app id";
        private static string API_KEY = "your api key";
        private static string SECRET_KEY = "your secret key";

        static void Main(string[] args)
        {
            var client = new Face(API_KEY, SECRET_KEY);

            // 读取图片转换为byte数组
            var image = System.IO.File.ReadAllBytes("your image path");

            // 获取图片中的人脸ID
            var result = client.Search(image, "your group id");

            // 判断相似度是否大于指定阈值
            if ((double)result["result"]["user_list"][0]["score"] > 80)
            {
                Console.WriteLine($"匹配成功,人脸ID为:{result["result"]["user_list"][0]["user_id"]}");
            }
            else
            {
                // 将图片中的人脸注册到人脸库中
                var uid = Guid.NewGuid().ToString("N");
                var res = client.AddUser(image, new[] { "your group id" }, uid);
                Console.WriteLine($"注册成功,新用户ID为:{uid}");
            }

            Console.ReadLine();
        }
    }
}

其中,你需要将APP_ID、API_KEY、SECRET_KEY修改成你在步骤1中获取到的值。同时,在var image = System.IO.File.ReadAllBytes("your image path");代码中修改为你自己的图片路径。在var res = client.AddUser(image, new[] { "your group id" }, uid);代码中,将“your group id”修改为你自己的人脸库组ID。

运行程序,如果图片中的人脸已在人脸库中,则输出人脸ID;否则,将图片中的人脸注册到人脸库中,并输出新用户ID。

总结

本文主要介绍了C#如何快速入门百度人脸识别,并通过两个示例展示了常见的人脸对比和人脸注册的具体操作。在实际应用中,需要结合自己的实际情况进行相关修改,方可使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 10分钟完成百度人脸识别(入门篇) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • asp.net中调用winrar实现压缩解压缩的代码

    前置条件 在调用winrar实现压缩解压缩的过程中,需要先确保机器上已经安装了winrar,并且环境变量中已经将winrar的可执行文件路径添加到了path中。同时在使用本方法时,需要在代码中引入System.Diagnostics的命名空间。 压缩文件 在asp.net中调用winrar实现压缩文件,可以使用命令行参数来实现。具体步骤如下: (1)构造压缩…

    C# 2023年6月3日
    00
  • C#中LINQ多条件JOIN时为什么可以使用匿名类

    在C#中,如果要进行多条件JOIN,则可以使用匿名类型。这是因为多条件JOIN涉及到多个表或者是同一个表的多个字段,需要指定具体的条件。而匿名类型可以方便地创建一个临时的类型,其中可以包含多个字段,从而满足多条件JOIN的需求。 具体实现步骤: 1.创建匿名类型 在C#中,可以使用var关键字创建匿名类型,var类型会在编译时自动推断出匿名类型的具体类型信息…

    C# 2023年6月1日
    00
  • C# web.config之节点说明案例详解

    当在ASP.NET网站中发生错误时,如果没有正确配置自定义错误处理方式,常会出现未知错误提示,不利于网站用户体验和维护。C# web.config配置文件中的节点可以用来指定网站错误处理方式,详细说明如下: 1. 什么是节点? 是C# web.config文件中的节点之一,它用于指定在ASP.NET应用程序中发生错误时如何处理这些错误。 2. 节点常见属性 …

    C# 2023年5月14日
    00
  • C#微信公众平台开发之access_token的获取存储与更新

    C#微信公众平台开发之access_token的获取存储与更新 前言 微信公众平台开发中,access_token是关键的全局唯一接口调用凭据,获取access_token是进行后续接口调用的必要步骤。因为获取access_token每日调用次数有限,并且获取access_token的过程中存在一些约束和具体的有效期,所以需要进行存储和更新。 本文将详细介绍…

    C# 2023年5月31日
    00
  • C#使用protobuf-net进行序列化的详细操作

    下面是使用protobuf-net进行C#序列化的详细攻略: 什么是protobuf-net protobuf-net是一种.NET平台下的高效且跨语言的序列化框架。与其他序列化框架(如XML序列化)相比,它具有更高的序列化和反序列化效率,能够有效地将对象序列化为二进制形式,以便它们可以被存储或传输。它是Google Protobuf的一个非官方的.NET实…

    C# 2023年5月31日
    00
  • 记录.Net部署Docker-v指令使用

    记录Docker的-v指令使用 前言 之前我浅学了一下docker,方便部署.net项目(部署的是打包之后的项目) dockerfile文件如下: FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app EXPOSE 5031 EXPOSE 7031 FROM mcr.microsoft.c…

    C# 2023年4月22日
    00
  • 那些年,我还在学习C# 学习笔记

    那些年,我还在学习C# 学习笔记是一份非常好的学习资料,它不仅记录了作者在学习C#过程中的所学所感,也为初学者提供了非常好的学习入门资料。在这里,我们详细讲解一下如何使用这份笔记作为学习C#的攻略。 了解C#语言 作为一门编程语言,要想运用自如,首先需要了解其语法和特性。那些年,我还在学习C# 学习笔记提供了非常精简的语言说明,包含了C#语言基本语法、数据类…

    C# 2023年5月31日
    00
  • ASP.NET Core中的Http缓存使用

    ASP.NET Core中的Http缓存使用攻略 在 ASP.NET Core 中,我们可以使用 HTTP 缓存来提高应用程序的性能和响应速度。本攻略将介绍如何在 ASP.NET Core 中使用 HTTP 缓存。 步骤 以下是使用 HTTP 缓存的步骤: 在 Startup.cs 文件中启用缓存。 在 Startup.cs 文件中的 ConfigureSe…

    C# 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部