百度ai人脸识别

1.概 述

1.1系统背景及意义

随着计算机视觉技术及人工智能算法的蓬勃发展,人脸识别的概念逐渐被应用到日常生活场景和商业场景中来;另一方面,百度、阿里、腾讯等互联网技术平台提出云服务的概念,将已有技术共享到云端,以接口的形式对普通大众提供服务。

本程序通过调用百度的人脸识别相关的云服务算法,进行开发和搭建,最终实现“人脸注册”和“人脸识别欢迎语提示”等功能。

1.2采取的技术

本程序的最终实现形式为Windows桌面程序,本程序主要采用微软的Winform模式进行开发,编程语言为C#。开发所使用的IDE为Visual Studio,辅助工具为Postman、son格式转换工具、Base64编码工具等。

除此之外,本程序还用到了异步技术、Base64编码技术、Json相关技术、Http传输技术等。其中,异步技术用于实时监测摄像头中出现的图像,Base64编码技术用于对图像进行编码、Json相关技术用于对数据进行统一格式处理、Http传输相关技术用于本程序与百度云服务进行通信。

2.设计

2.1用户注册

2.1.1功能概述

用户注册功能主要用于对用户所录入的用户信息进行保存。用户注册功能,通过调用计算机摄像头设备,获取当前用户图像,再通过读取数据,读取用户输入的用户信息,最终把这些传到百度云端服务器,进行保存完成注册。

2.1.2百度接口说明

  • 请求体格式化:Content-Type为application/json,通过json格式化请求体。
  • Base64编码:请求的图片需经过Base64编码,图片的base64编码指将图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。需要注意的是,图片的base64编码是不包含图片头的,如data:image/jpg;base64。
  • 图片格式:现支持PNG、JPG、JPEG、BMP,不支持GIF图片。   

3.前置条件

3.1百度接口配置

人脸识别小程序的内部算法实现需借助百度接口,所以在启动小程序之前需要提前进行百度接口的相关配置工作。

1.打开百度智能云网址:百度智能云-云智一体深入产业,注册登录,进入如下界面。

  1. 点击立即使用。     
  2. 点击创建应用。

3.在应用名称一栏输入所建应用的名称,在应用描述一栏输入对所创建应用的大概描述,然后点击立即创建。

4.点击返回应用列表即可看到刚才创建应用的详细信息,并且可以看到获取到的API key和Secret key。

3.2人脸识别程序配置

  1. 打开:..\程序\SearchApp,找到SearchApp.dll.config文件,用记事本打开,向其中输入:clientId(之前创建的百度应用的API key)、clientSecret(之前创建百度应用的Secret key)、groupId(自定义用户组编号)。
  2. 用户输入用户称呼,点击上传用户照片,然后在文件夹中选择用户本人的照片,最后点击保存按钮,即可完成静态图像注册(注:用户ID为系统自动生成,无需输入)。
  3. 点击“实时图像注册”按钮切换到实时图像注册页面,然后输入用户称呼,并且保持人脸正对摄像头,最后点击“保存”按钮,即可完成实时图像注册。(注:用户ID为系统自动生成,无需输入)

3.2人脸识别

具体操作步骤为:

  1. 打开程序。

  1. 保持摄像头正对所需监测的方向,一旦监测到已注册的人脸图像,程序将自动弹出与该用户称呼所对应的欢迎语。代码实现

4.代码编写

4.1界面设计

4.2前期配置

 private string APP_ID = "   ";
 private string API_KEY = "   ";
 private string SECRET_KEY = "   ";

4.3照片存入和比对

        public string ReadImg(string img)
        {
            return Convert.ToBase64String(File.ReadAllBytes(img));
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBox2.Text) || string.IsNullOrEmpty(textBox3.Text))
            {
                MessageBox.Show("请选择要对比的人脸图片");
                return;
            }
            try
            {
                string path1=textBox2.Text;
                string path2=textBox3.Text;
                
                var faces = new JArray
                {
                    new JObject
                    {
                        {"image", ReadImg(path1)},
                        {"image_type", "BASE64"},
                        {"face_type", "LIVE"},
                        {"quality_control", "LOW"},
                        {"liveness_control", "NONE"},
                    },
                    new JObject
                    {
                        {"image", ReadImg(path2)},
                        {"image_type", "BASE64"},
                        {"face_type", "LIVE"},
                        {"quality_control", "LOW"},
                        {"liveness_control", "NONE"},
                    }
                 };
                
                // 带参数调用人脸比对
                var result = client.Match(faces);
                textBox1.Text = result.ToString();
            }
            catch (Exception ex)
            { }
        }

4.4连接摄像头

​
        private void Form1_Load(object sender, EventArgs e)
        {
            /// 获取电脑已经安装的视频设备
            videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            if (videoDevices!=null && videoDevices.Count>0)
            {
                foreach (FilterInfo device in videoDevices)
                {
                    comboBox1.Items.Add(device.Name);
                }
                comboBox1.SelectedIndex = 0;
            }

            videoSourcePlayer1.NewFrame += VideoSourcePlayer1_NewFrame;

            // 开发者在百度AI平台人脸识别接口只能1秒中调用2次,所以需要做 定时开始检测,每个一秒检测2次
            ThreadPool.QueueUserWorkItem(new WaitCallback(p => {
                while (true)
                {
                    IsStart = true;
                    Thread.Sleep(500);
                }
            }));
        }

​

4.5拍照

4.6人脸对比

5.总结

本次实验让我们深入了解了百度AI人脸识别技术的实际应用与性能表现。在实验过程中,我们遇到了一些挑战,如数据集的选择与处理、API调用的优化等。但通过不断地摸索与实践,我们成功地解决了这些问题,并取得了满意的实验结果。

在未来的研究中,我们将进一步探索人脸识别技术在不同场景下的应用潜力,并关注其与其他生物识别技术的结合与创新。同时,我们也将关注人脸识别技术的安全性与隐私保护问题,以确保其在实际应用中的合规性与可持续性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值